| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
| |
attach-method.
|
|
|
|
| |
It should work with any attach-method.
|
|
|
|
|
|
|
|
| |
We were using format= which was bogus and libvirt was ignoring it and
forcing raw format instead.
Also in its default configuration libvirt won't do disk format
autodetection at all, so we must do it instead.
|
|
|
|
|
|
|
| |
And in any case there is no point, since proto.c already sets the
SOCK_CLOEXEC flag (using accept4) on this socket.
The code now matches the code in launch-appliance.c.
|
| |
|
|
|
|
|
| |
This causes libvirt to add the qemu -no-reboot option, which
reflects existing behaviour.
|
|
|
|
|
|
|
|
|
|
| |
You can now choose the default attach method in two ways:
(1) Set the LIBGUESTFS_ATTACH_METHOD environment variable.
(2) ./configure --with-default-attach-method=appliance|libvirt|...
Note that (1) overrides (2).
|
| |
|
|
|
|
|
|
|
|
| |
We need to select the <domain type=...> attribute depending on whether
KVM is detected in the libvirt capabilities.
This is a hack because it doesn't try to parse the libvirt
capabilities XML.
|
|
|
|
|
| |
This ensures maximum performance of the appliance, particularly for
things like MD where the guest needs to use optimal SSE instructions.
|
|
|
|
| |
file (thanks Dan Berrange).
|
| |
|
| |
|
|
|
|
|
|
|
| |
For compatibility with the appliance backend, devices added readonly
are in fact added writable with snapshots on top. This is necessary
because options like 'mount -o ro' usually require write access to the
disk (eg. to replay journals).
|
|
|
|
|
|
|
|
|
|
|
|
| |
Complete the attach-method libvirt backend.
This backend uses libvirt to create a transient KVM domain to run the
appliance.
Note that this still will only work with local libvirt URIs since the
<kernel>, <initrd> and appliance links in the libvirt XML refer to
local files, and virtio serial only works locally (limitation of
libvirt). Remote support will be added later.
|
|
|
|
|
| |
With this commit, you can set the attach method to libvirt,
but calling launch will give an error.
|
|
|
|
| |
This is just code motion.
|
|
|
|
|
|
|
|
|
| |
Since we will be calling guestfs___build_appliance from the libvirt
code in future, there's no point having two places where we have to
acquire the lock. Push the lock down into this function instead.
Because "glthread/lock.h" includes <errno.h> we have to add this
header to the file too.
|
|
|
|
|
|
| |
Just make gcc happy when fuse is not available.
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
|
|
|
|
|
|
| |
g->attach_ops points to a structure which contains the
operations supported by each attach method backend
(ie. appliance, unix, etc.).
|
|
|
|
|
| |
Although we still use the handle as convenient temporary
storage.
|
|
|
|
|
|
| |
Move and rewrite guestfs_config so it accumulates a list of qemu
parameters in the handle. These are added to the appliance at launch
time (with attach method == unix:... you'll now get an error).
|
| |
|
| |
|
|
|
|
| |
Arrange the fields more logically. This is just code motion.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
launch-appliance.c contains the code associated with the 'appliance'
attach-method. Mostly. In fact there are a few APIs which don't fit
so nicely:
- config: deprecated API which fiddles with the qemu command
line directly
- max-disks: depends on the qemu implementation (virtio-scsi
or not)
- debug-drives: used for testing only
launch-unix.c contains the code associated with 'unix:<path>'.
launch.c is the common code for launching, along with a few other APIs
such as guestfs_add_drive_opts.
This commit also reduces the number of headers to just those
which are required.
|
|
|
|
|
| |
Note that debug* calls are not part of the stable API and can be
removed or changed at any time.
|
|
|
|
| |
Just a small code cleanup / simplification.
|
|
|
|
|
|
|
| |
This is just code motion.
Some files cannot be renamed. Notably rpcgen input and output files
must not contain dash characters, else rpcgen breaks.
|
|
|
|
|
| |
This file contains the code implementing guestfs_add_domain
(for adding a libvirt domain) so this name is less confusing.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add xfs_info to show the geometry of the xfs filesystem.
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
RWMJ:
- Updated po/POTFILES.
- Use xfs_ prefix for all struct fields.
- Return uninitialized fields as -1 / empty string.
- Copyedit the description.
|
|
|
|
|
| |
Instead of working around bugs, podwrapper has been fixed so that
links work in all output formats.
|
| |
|
|
|
|
|
| |
This will allow us to easily change the location of this
script in future.
|
|
|
|
|
|
| |
By using the once_had_no_optargs flag, this change is backwards
compatible for callers (except Haskell, PHP and GObject as discussed
in earlier commit).
|
|
|
|
|
| |
The internal_* prefix is reserved for internal functions
such as these tests.
|
|
|
|
|
|
| |
This reverts commit 6e5a85bb9b6557bc337625a339728e23f5f2dd94.
It turns out this is a bug in QEMU after all.
|
|
|
|
|
|
|
| |
https://bugs.launchpad.net/qemu/+bug/1021649 is invalid, probably
caused by a Fedora ROM.
This updates commit 52d188e32fb8addb45bf926df07e34ab35898f85.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new API splits orderly close into a two-step process:
if (guestfs_shutdown (g) == -1) {
/* handle the error, eg. qemu error */
}
guestfs_close (g);
Note that the explicit shutdown step is only necessary in the case
where you have made changes to the disk image and want to handle write
errors. Read the documentation for further information.
This change also:
- deprecates guestfs_kill_subprocess
- turns guestfs_kill_subprocess into the same as guestfs_shutdown
- changes guestfish and other tools to call shutdown + close
where necessary (not for read-only tools)
- updates documentation
- updates examples
|
|
|
|
|
| |
Currently guestfs_close has no method to return an error indication,
so this commit simply prints the error on stderr.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The order is now:
- remove the handle from the list of handles
- send close trace message
- sync and shutdown qemu
- run user close callback
- free temporary directory
- free memory
This commit ought to be no functional change.
|
|
|
|
| |
This is just a comment and has no functional effect.
|
|
|
|
|
| |
Note that qemu treats these identically, so this change has
no functional effect.
|
|
|
|
|
| |
If the partition name we're about to return doesn't really exist,
then don't perform the mapping.
|
|
|
|
|
|
|
|
| |
See https://bugzilla.redhat.com/show_bug.cgi?id=836573#c3
for an explanation.
Useful function 'is_partition' shows how to tell if a device name
represents a partition.
|