| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
| |
RBufferOut binding didn't free the buffer after copying it onto
the OCaml heap.
Found by valgrind.
|
| |
|
|
|
|
| |
This cleans up commit cbd1c45d95c530c8d94103dcc2c521bf5501ef59.
|
|
|
|
|
|
|
|
| |
This API is used to stop a md device.
When we want to move a device to another md array, we should
stop the md device which contained this device first.
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
|
|
|
|
|
|
|
|
|
| |
This change renames the following 2 apis:
* mdadm_create -> md_create
* mdadm_detail -> md_detail
This is more consistent with list_md_devices, and removes a reference to an
implementation detail from the api.
|
| |
|
|
|
|
|
|
|
|
|
| |
eg:
static void
run_foo ()
{
}
|
| |
|
|
|
|
|
|
|
| |
Return a list of Linux MD devices detected in the guest.
This API complements list_devices, list_partitions, list_lvs and
list_dm_devices.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously we bound the 'tune2fs -l' command so that we could list out
the tunables of an ext2/3/4 filesystem. Also commands like
set_e2label and set_e2uuid used tune2fs.
This commit binds many of the tunables that can be set using tune2fs.
The coverage is not complete, but we can add more later because this
uses optional parameters so the call is extensible without breaking
ABI. The current change gives us enough for using libguestfs within
OpenStack.
|
| |
|
|
|
|
|
| |
You can use TestOutputHashtable to test the output of RHashtable
functions.
|
|
|
|
|
|
| |
If any function had more than 10 required + optional parameters, OCaml
bindings could not be generated. Currently there are no such
functions.
|
|
|
|
|
|
|
|
| |
The bitmask was being constructed backwards(!)
As a result, any test which tested optional arguments didn't work.
There are very few such tests and they happened not to be affected by
this.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These fixes allow libguestfs bindings to work with Python 3 (tested
with Python 3.2)
You can select which Python you compile against by doing:
PYTHON=python ./configure && make && make check
or:
PYTHON=python3 ./configure && make && make check
|
|
|
|
| |
Ooops ...
|
|
|
|
|
| |
Because this is a useful introspection API, it is a candidate for
being backported into older stable branches.
|
|
|
|
|
| |
This warning was applied unevenly. Potentially any command can be
dangerous or safe, so it was a needless warning.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This optional argument controls how <readonly/> disks in
the libvirt XML are handled. It can be set to one of:
"write" (default) - add them R/W
"read" - add them R/O
"error" - throw an error if asked to add them R/W
"ignore" - ignore these disks
I have added limited regression tests for this feature. However
libvirt's test:/// XML does not allow you to specify that a domain
starts off shut down, so we cannot fully test this. Instead I tested
it by hand.
|
|
|
|
|
|
| |
This changes the private function guestfs___for_each_disk so that the
<readonly/> flag on libvirt disks is detected and passed through to
the callback function.
|
|
|
|
|
|
|
|
|
|
|
| |
The four new APIs:
guestfs_copy_device_to_device,
guestfs_copy_device_to_file,
guestfs_copy_file_to_device, and
guestfs_copy_file_to_file
let you copy from a source to a destination, between files and
devices, optionally allowing source and destination offsets and size
to be specified.
|
|
|
|
|
|
| |
This converts a partition device name (eg. /dev/sda1) to a partition
number (eg. 1). This is useful in conjunction with the parted APIs
that mostly take a disk device + partnum.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We currently use a heuristic to guess how drive names we find
referenced in the guest map to drive names in the appliance. If this
heuristic fails it can cause inspection to fail.
This change adds a new 'name' option to add_drive_opts, which allows
the user to explicitly pass the name of a drive to libguestfs if it is
known. This change also updates the fstab-parsing inspection code to
use this information if it is available.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a NFC on its own, but provides a place-holder for drive metadata which
can be used after launch.
Fixes by RWMJ:
- Fix the tests: this requires a new internal function 'debug-drives'
that dumps out the g->drives information so it can be checked in
two of the tests. Previously these tests used 'debug-cmdline'.
- Test file existence / use_cache_off in the add_drive_opts function,
not when launching qemu in the child process.
- Call free along error paths.
- Add comments.
|
| |
|
|
|
|
|
|
| |
For now, only detect the tool, but support from reading
installed package could be added later ( may require either
a package of pkgsrc, or a smaller tool to read the db ).
|
|
|
|
| |
This would also erronously detect SLES as Opensuse.
|
| |
|
|
|
|
| |
This updates commit 5c2f1a2d9433eeb5aebeec26f0412c703bbe7269.
|
| |
|
|
|
|
|
|
|
| |
These calls allow you to change the number of virtual CPUs assigned to
the appliance.
This also adds a --smp option to virt-rescue.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These APIs let you copy compressed files or devices out from the disk
image.
Compression is useful for large images which are mostly zeroes. We
cannot currently do sparseness detection, and compression gives us a
form of zero detection for free.
Example usage:
$ guestfish --ro -a /dev/vg_pin/F16x64 -i \
compress-out gzip /etc/passwd /tmp/passwd.gz
$ file -z /tmp/passwd.gz
/tmp/passwd.gz: ASCII text (gzip compressed data, was "passwd", from
Unix, last modified: Sun Aug 28 14:40:46 2011)
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This also improves the documentation for this call, pointing out
several pitfalls in using it.
This unfortunately breaks existing callers that might use
guestfs_grub_install without checking for this new group.
|
|
|
|
| |
This event is generated whenever a libguestfs function is called.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
pclose can return > 0 when the status of the command was non-zero.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This code modifies zero, zero-device, is-zero, is-zero-device.
zero and zero-device are modified so that if the blocks of the device
already contain zeroes, then we don't write zeroes. The reason for
this is to avoid unnecessarily making the underlying storage
non-sparse or (in the qcow2 case) growing it.
is-zero and is-zero-device are modified so that zero detection is
faster. This is a nice side effect of making the first change.
Since avoiding unnecessary zeroing involves reading the blocks before
writing them, whereas before we just blindly wrote, this can be
slower. As you can see from the tests below, in the case where the
disk is sparse, it actually turns out to be faster, because we avoid
allocating the underlying blocks.
However in the case where the disk is non-sparse and full of existing
data, it is much slower. There might be a case for an API flag to
adjust whether or not we perform the zero check. I did not add this
flag because it is unlikely that the caller would have enough
information to be able to set the flag correctly.
(Elapsed time in seconds)
Format Test case Before After
Raw Sparse 16.4 5.3
Preallocated zero 17.0 18.8
Preallocated random 16.0 41.3
Qcow2 preallocation=off 18.7 5.6
preallocation=metadata 17.4 5.8
The current code uses a fixed block size of 4K for reading and
writing. I also tried the same tests with a block size of 64K but it
didn't make any significant difference.
(Thanks to Federico Simoncelli for suggesting this change)
|
| |
|
|
|
|
| |
(RHBZ#729887).
|