Commit Graph

5610 Commits

Author SHA1 Message Date
Richard W.M. Jones
7c463ac477 sparsify: Get free space on TMPDIR and give a warning if we estimate it is too little. 2013-08-06 13:23:04 +01:00
Richard W.M. Jones
f6b2efcdff Update TODO file. 2013-08-06 12:20:31 +01:00
Richard W.M. Jones
c4a3e8112a New APIs: aug-setm and aug-label.
Bindings for the aug_setm and aug_label APIs in Augeas.
2013-08-06 11:47:21 +01:00
Richard W.M. Jones
f26a0407d2 augeas: Improve error reporting.
Display all the information from the handle about errors.
2013-08-06 11:47:21 +01:00
Richard W.M. Jones
a709b10bb6 launch: libvirt: Enable kvmclock.
This enables stable guest clocks.
2013-08-05 18:06:24 +01:00
Richard W.M. Jones
6f76fdb41e launch: libvirt: Enable <cpu mode=host-model>.
This may still cause problems on some CPUs because of a bug
in libvirt.  See:
https://bugzilla.redhat.com/show_bug.cgi?id=870071
2013-08-05 16:51:51 +01:00
Richard W.M. Jones
038ed0a08e launch: direct: Specify -cpu host,+kvmclock.
'-cpu host' makes the CPU look like the host CPU.  This is useful
because it means the appliance can use all the host CPU's features,
eg. for fast checksumming or MD XORing.

'kvmclock' is the paravirtualized clock for qemu/KVM.  It's much more
stable than relying on tsc or a virtualized device such as HPET, and
clock instability is one of the problems we have encountered when
running libguestfs on a heavily loaded machine, especially in a nested VM.

Note that we require qemu >= 1.2 (and have for a while) which has long
supported both of these options.
2013-08-05 16:39:24 +01:00
Richard W.M. Jones
568368cdf5 launch: direct: Add drives after machine parameters.
This is just code motion.  It should affect the semantics of the code,
nor how the appliance VM is created.
2013-08-05 16:35:15 +01:00
Richard W.M. Jones
8d68f1c5ce ./run: Omit timeout -k option on RHEL 6.
If timeout doesn't have the -k option, don't use it.
2013-08-05 15:45:33 +01:00
Richard W.M. Jones
82a6563414 Version 1.23.13. 1.23.13 2013-08-03 12:45:55 +01:00
Richard W.M. Jones
93f8baeb9a sysprep: Add "notes" field for notes on shortcomings, bugs, etc.
Instead of keeping this information as comments in the source, put it
into the virt-sysprep(1) man page.
2013-08-03 10:59:48 +01:00
Richard W.M. Jones
4cdbae926b sysprep: Various code refactorings of the operations.
- Use 'op' instead of 'xxx_op' for operation table.
 - Add a 'defaults' for the operation table and remove any default
   values.

This is just code motion and there is no functional change.
2013-08-03 10:25:19 +01:00
Richard W.M. Jones
67fd809ca3 resize: Mark progress bar functions as "noalloc".
Avoids GC overhead and turns these into simple C calls.  See:
http://camltastic.blogspot.co.uk/2008/08/tip-calling-c-functions-directly-with.html
2013-08-03 10:04:29 +01:00
Richard W.M. Jones
3d39549ded resize: Mark isatty function as "noalloc".
This turns it into an ordinary C call without the unnecessary [in this
case] GC frame overhead.  See:
http://camltastic.blogspot.co.uk/2008/08/tip-calling-c-functions-directly-with.html
2013-08-03 10:01:34 +01:00
Richard W.M. Jones
0c512a52bd FAQ: Tips about using direct backend and fixed appliance on Fedora/RHEL. 2013-08-03 09:20:41 +01:00
Richard W.M. Jones
9268f14879 FAQ: Common problem with Debian is not running update-guestfs-appliance. 2013-08-03 09:19:57 +01:00
Richard W.M. Jones
44df867382 sysprep: Allow root and non-root passwords to be set.
This adds a virt-sysprep 'password' operation which adds the
following command line options:

  --root-password     Set the guest's root password.
  --password          Set any guest password.
2013-08-02 15:37:30 +01:00
Richard W.M. Jones
5deea7fce6 sysprep: Disable fs-uuids operation by default.
Disable this operation because it is more likely than not to break
Linux guests.

To fix this properly will involve finding all the places in the guest
where the UUIDs are used to locate and mount filesystems,
eg. /etc/fstab and possibly initramfs.

This updates commit 8965368eb8.
2013-08-02 15:17:24 +01:00
Richard W.M. Jones
a89675ee5c journal: Fix incorrect printf format specifier for 32-bit.
journal.c: In function 'do_journal_skip':
journal.c:134:5: error: format '%zd' expects argument of type 'signed size_t', but argument 3 has type 'int64_t' [-Werror=format=]
     reply_with_perror_errno (-r, "failed to skip %zd journal entries", skip);
     ^

This fixes commit 5cb7f294f6.
2013-07-31 22:37:57 +01:00
Richard W.M. Jones
6a46bd9a86 arm: Avoid cast-align warning.
Note the 64-bit int field really isn't aligned.  We hope that the ARM
kernel this is running on will do the appropriate fix ups.
2013-07-31 22:37:57 +01:00
Nicholas Strugnell
94e5ea6b5e sysprep: rhn_systemid: delete osad-auth.conf file in RHN configuration 2013-07-31 16:33:17 +01:00
Richard W.M. Jones
a1e8acc736 Version 1.23.12. 1.23.12 2013-07-30 18:16:30 +01:00
Richard W.M. Jones
65b4ab11e1 tests: fish: Add valgrind testing to various existing tests.
This involves running ./guestfish under $VG (== valgrind + options,
defined only when check-valgrind is run).
2013-07-30 16:27:55 +01:00
Richard W.M. Jones
23d429ff84 fish: Add a test for -a URI options. 2013-07-30 16:15:04 +01:00
Richard W.M. Jones
e3df223a5a fish: Fix guestfish so it can recognize sheepdog://... as a valid URI.
Because "sheepdog" is 8 characters, it wasn't recognized before.
2013-07-30 16:13:24 +01:00
Richard W.M. Jones
b65c1c667b sysprep: Allow -a URI options to be used (RHBZ#968875).
This allows you to sysprep a remote guest by doing eg:

  virt-sysprep -a ssh://remote.example.com/disk.img
2013-07-30 15:37:16 +01:00
Richard W.M. Jones
406522d1d2 resize: Add bindings for the guestfish -a URI parsing mini-library.
This allows -a options to be parsed from OCaml programs, reusing
the same code that is being used by C.
2013-07-30 15:37:16 +01:00
Richard W.M. Jones
4d7c14fdbb fish: Split off URI handling (for -a argument) from general options parsing.
This is so we will be able to reuse the same code in the OCaml tools.

This is just code motion.
2013-07-30 15:37:16 +01:00
Richard W.M. Jones
671be806ae fish: options: Fix optarg -> arg.
Don't read the global variable optarg.  Read arg instead.
(In all cases they are the same, so this bug made no difference).
2013-07-30 13:49:49 +01:00
Richard W.M. Jones
a3891430bc fish: Don't store xmlURIPtr directly in the drive struct.
Original drv_uri fields:

      xmlURIPtr uri;        /* URI */
      char *socket;         /* ?socket parameter from URI. */
      const char *format;   /* format (NULL == autodetect) */

New drv_uri fields:

      char *path;           /* disk path */
      char *protocol;       /* protocol (eg. "nbd") */
      char **server;        /* server(s) - can be NULL */
      char *username;       /* username - can be NULL */
      const char *format;   /* format (NULL == autodetect) */
      const char *orig_uri; /* original URI (for error messages etc.) */

This is just code motion.
2013-07-30 12:17:22 +01:00
Richard W.M. Jones
0e1ba00059 internal: Add CLEANUP_XMLFREEURI (cleanup function for xmlURIPtr). 2013-07-30 12:16:38 +01:00
Richard W.M. Jones
b56990ddf8 resize: Move isatty_stdout function to separate module (TTY.isatty_stdout).
It was jammed into the Progress module just for convenience.
2013-07-30 11:46:22 +01:00
Richard W.M. Jones
c663ab3bb9 daemon: cap-get-file: Return empty string if no capability on file (RHBZ#989356).
Return an empty string (instead of an error) if no capabilities are
set on a file, and document that in the API.
2013-07-29 14:37:50 +01:00
Richard W.M. Jones
fb282e677c resize: Link to information about dracut-modules-growroot. 2013-07-29 13:52:16 +01:00
Richard W.M. Jones
a1236b7251 tests/mount-local: Fix test of parallel mount-local.
This fixes commit 14fabcd88e.

Bug found by Kashyap Chamarthy.
2013-07-29 11:58:48 +01:00
Richard W.M. Jones
7a6968f1e4 Version 1.23.11. 1.23.11 2013-07-29 08:58:41 +01:00
Richard W.M. Jones
ebf477107d tests: Add tests for the new journal APIs (RHBZ#988100).
This relies on the test data from
commit b502197ec4.
2013-07-28 19:16:04 +01:00
Richard W.M. Jones
5cb7f294f6 New APIs: Add systemd journal support (RHBZ#988100).
This adds simple support for reading the journal files from guests
that use the systemd journal.

The new APIs are:

  journal-open
  journal-close
  journal-next
  journal-skip
  journal-get
  journal-get-data-threshold
  journal-set-data-threshold
  internal-journal-get

More complex journal support (eg. for seeking within the journal,
support for cursors) could be added later.
2013-07-28 19:16:03 +01:00
Richard W.M. Jones
b502197ec4 tests/guests: Add some systemd journal data to the Fedora test images.
The journal data blob comes from a real Fedora 20 (x86-64) machine.
2013-07-27 18:16:42 +01:00
Richard W.M. Jones
1937108a4a src/file.c: Be sure to call guestfs___lazy_make_tmpdir before using g->tmpdir.
Although g->tmpdir is always set after launch, and none of these calls
should be used before launch, it's always possible that a caller would
use one of these APIs before launching the handle.

If guestfs___lazy_make_tmpdir is not called, then g->tmpdir is NULL,
and the constructed filename would look like "(null)/...".

In fact it's possible to observe this error (although it seems to have
no especially bad effects):

  $ strace guestfish ls / |& fgrep '(null)'
  unlink("(null)/ls1")     = -1 ENOENT (No such file or directory)
2013-07-27 16:45:37 +01:00
Richard W.M. Jones
e31c32ce1b generator: Fix the case where a daemon function has one FileIn/FileOut parameter and no other parameters.
The FileIn/FileOut parameters are not passed through to the daemon.
Previously we generated incorrect RPC code (an empty 'struct
guestfs_<fn>_args') because we didn't account for these FileIn/FileOut
parameters correctly.
2013-07-27 16:45:37 +01:00
Richard W.M. Jones
559bd48960 generator: Fix whitespace. 2013-07-27 15:58:32 +01:00
Richard W.M. Jones
44c5026d9e sysprep: On RHEL, firstboot script should be called S99... not 99.
Thanks: Nicholas Strugnell
2013-07-26 15:42:36 +01:00
Richard W.M. Jones
4d2c63a9bc Version 1.23.10. 1.23.10 2013-07-23 12:23:51 +01:00
Richard W.M. Jones
4180abcc1f tests: Use unique or temporary names for temporary files.
Review every test(!) to ensure that it:

 - Doesn't use a generic name (eg. "test1.img", "test.out") for any
   temporary file it needs.

 - Does instead use a unique name or a temporary name (eg. a name like
   "name-of-the-test.img", or a scratch disk).

 - Does not use 'rm -f' to clean up its temporary files (so we can
   detect errors if the wrong temporary file is created or removed).

This allows tests to be run in parallel, so they don't stomp on each
other's temporary files.
2013-07-23 10:16:00 +01:00
Richard W.M. Jones
ccd069f859 fish: For -N option, add drive with explicit format = "raw".
Although autodetecting is safe (we always have just created a drive),
it saves a little bit of time if we don't have to run qemu-img to
detect the disk format with the libvirt backend.

Note that for prepared drives the format is always raw and we don't
anticipate creating drives in other formats.
2013-07-23 09:44:32 +01:00
Richard W.M. Jones
7c8c6e0760 fish: Allow -N filename=type to use 'filename' instead of 'test1.img' (etc.)
So:

  guestfish -N fs

is equivalent to:

  guestfish -N test1.img=fs
2013-07-22 15:45:06 +01:00
Richard W.M. Jones
3c94f02456 fish: Split up long line in --help output. 2013-07-22 15:24:52 +01:00
Richard W.M. Jones
a8b03201f0 fish: Clarify documentation.
It's not "the guest" which is launched, but the libguestfs appliance.
2013-07-22 15:16:39 +01:00
Richard W.M. Jones
8965368eb8 sysprep: Add new fs-uuids operation.
This creates new random UUIDs for all filesystems in a guest.
2013-07-22 13:52:23 +01:00