summaryrefslogtreecommitdiffstats
path: root/src/generator.ml
Commit message (Collapse)AuthorAgeFilesLines
* Documentation: Use 'g' instead of 'handle' in documentation.Richard Jones2010-04-171-3/+3
| | | | | By convention we use 'g' for handles. Copy this convention through to all the documentation.
* generator: Use shortname in check_state() call.Richard Jones2010-04-171-1/+2
| | | | Saves a tiny bit of space in the library.
* Fix upload losing synchronization if root not mounted (RHBZ#576879).Richard Jones2010-04-171-13/+24
| | | | | | | | | | | | Modify the generator so that it can correctly handle early cancellation for Pathname|Device|.. parameters. This fixes the upload command, but consequently we need to fix the parameters for tar_in and t?z_in commands. This should also mean that 'win:' can now be used as the second argument of tar_in and t?z_in commands in guestfish, whereas previously this wouldn't have worked. Adds a regression test for the original problem.
* generator: Fix typo in a comment.Richard Jones2010-04-171-1/+1
|
* Improved checking, documentation of modes (RHBZ#582901, RHBZ#582929).Richard Jones2010-04-171-6/+22
| | | | | | | | | | | chmod: Disallow negative mode, document mode affected by umask. mkdir-mode: Disallow negative mode, document that filesystems may interpret the mode in different ways. mknod: Disallow negative mode, document mode affected by umask. umask: Check the range of umask mask value carefully.
* New API: get-umask, returns the current umask (RHBZ#582891).Richard Jones2010-04-171-1/+10
|
* Add a build test for the 'umask' command.Richard Jones2010-04-171-3/+2
|
* fish: Print output from some commands in octal/hex as approp. (RHBZ#583242).Richard Jones2010-04-171-5/+33
|
* Documentation: lvcreate should say 'logical volume' (RHBZ#582953)Richard Jones2010-04-171-2/+2
|
* New API: Add aug-clear call for clearing an Augeas node.Richard Jones2010-04-131-1/+13
|
* New API: lvresize-free to extend LVs into percentage of free space.Richard Jones2010-04-121-0/+15
|
* New API: checksum-device for checksumming devices.Richard Jones2010-04-101-0/+10
| | | | Analogous to the usual 'checksum' call.
* New partition APIs: part_del, part_get_bootable, part_get/set_mbr_idRichard Jones2010-04-101-0/+55
| | | | These APIs flesh out further the partitioning API.
* Documentation: Clarify documentation on the bootable flag.Richard Jones2010-04-101-4/+3
|
* New API: vgscanRichard Jones2010-04-101-0/+8
| | | | | Implement vgscan to allow for a full rescan of all LVM PVs, VGs and LVs.
* New API: ntfsresize.Richard Jones2010-04-101-0/+8
| | | | | This implements the ntfsresize operation, using the external program from ntfsprogs.
* New API calls to upload/download txz files (RHBZ#580556).Richard Jones2010-04-081-2/+20
|
* fish: Print extended help when the user types an unknown command first.Richard Jones2010-04-071-0/+2
| | | | | | | | $ guestfish /tmp/disk.img /tmp/disk.img: unknown command Did you mean to open a disk image? guestfish -a disk.img For a list of commands: guestfish -h For complete documentation: man guestfish
* New API: guestfs_zero_device to zero whole devices.Richard Jones2010-03-311-1/+10
|
* tests: Move alarm(2) calls to the correct place in the tests.Richard Jones2010-03-271-3/+3
| | | | This is a re-fix for RHBZ#505329.
* appliance: Set $PATH instead of hard-coding paths to binaries everywhere.Richard Jones2010-03-261-1/+1
| | | | | | Change the appliance so PATH includes common directories. Thus we don't need to hard-code paths to binaries (eg. "/sbin/fdisk") everywhere.
* perl: use newSVpvn for variable length strings.Richard Jones2010-03-251-3/+3
| | | | | | | Previously we used newSVpv (str, len), but if len == 0 then this means Perl tries to calculate the string length using strlen(3). This is not desirable when we know the length, in which case we should use newSVpvn instead.
* New API: guestfs_copy_size to copy a fixed number of bytes.Richard Jones2010-03-231-1/+14
| | | | | | | This is similar to 'guestfs_dd', but it copies just a fixed number of bytes from the source to the destination. It's an error if the source is too short or if the destination is too small.
* Mac OS X: implement readline functions.Richard Jones2010-03-221-3/+12
| | | | | OS X has an older version of readline with some differences in the names of functions.
* Mac OS X: include <string.h> in guestfs-actions.cRichard Jones2010-03-221-0/+1
| | | | This is required because guestfs-actions.c uses 'memset'.
* generator: Small fix for GODI users.Richard Jones2010-03-221-0/+1
| | | | | GODI has an odd package layout, so the generator was unable to find xml-light. Add the GODI directory to the search path.
* New APIs: Query the relationship between LVM objects.Richard Jones2010-03-181-0/+42
| | | | | | | | | These calls allow you to query the relationship between LVM objects, for example, which PVs contain a VG, or which LVs are contained in a VG. See the example / test program 'regressions/test-lvm-mapping.pl' for an example of how to do this from Perl.
* add_drive_ro adds readonly=on option if available.Richard Jones2010-03-161-1/+3
| | | | | | | | | | | | | | Change the add_drive_ro call so it adds the readonly=on option if qemu supports that. This just means that qemu will not try to open the drive with O_RDWR, and should not otherwise change the behaviour of qemu or libguestfs. (In particular, writes to the read-only drive are still permitted, and are just discarded when the handle is closed). However it should alleviate RHBZ#571714 where udev was deciding to incorrectly relabel a device because we had opened the device for writing (even though we didn't actually write to it).
* Allow qemu_supports to run earlier.Richard Jones2010-03-161-1/+9
| | | | | | | Reimplement qemu_supports() internal function. Allow it to run before launch so we can test qemu features. Document that you should run guestfs_set_qemu as early as possible to make sure these tests are reliable.
* Tab to space (whitespace fixes only).Richard Jones2010-03-121-82/+82
|
* guestfish: Use xstrtoll to parse Int params (RHBZ#569757 RHBZ#567567).Richard Jones2010-03-121-1/+1
| | | | | | Change guestfish so it uses xstrtoll to parse Int (31 bit) parameters. This fixes two bugs on 32 bit platforms which failed when long = 32 bits. long long = 64 bits on both.
* Turn ProtocolLimitWarning into link to documentation section.Richard Jones2010-02-151-2/+1
|
* initrd-cat: Needs ProtocolLimitWarning.Richard Jones2010-02-151-1/+1
|
* Remove references to FTP, replace with FUSE.Richard Jones2010-02-151-6/+7
| | | | | | | We originally intended to implement an FTP server (and before than, an NFS server). But we didn't implement either. We did however implement a FUSE service (guestmount) which takes the place of both.
* daemon: Don't need to prefix error messages with the command name.Richard Jones2010-02-121-1/+1
| | | | | | | | | | | | | | | | | | | | The RPC stubs already prefix the command name to error messages. The daemon doesn't have to do this. As a (small) benefit this also makes the daemon slightly smaller. Code in the daemon such as: if (argv[0] == NULL) { reply_with_error ("passed an empty list"); return NULL; } now results in error messages like this: ><fs> command "" libguestfs: error: command: passed an empty list (whereas previously you would have seen ..command: command:..)
* generator: Don't prefix error messages with command name.Richard Jones2010-02-121-11/+10
| | | | | | | The command name is already being added by the RPC stubs, so adding it again in Perl and C# just results in doubled error messages like: foo: foo: the error
* New APIs: add-drive{,-ro}-with-if allows you to set QEMU block emulation.Richard Jones2010-02-121-0/+25
| | | | | | | | | | | The default if=... comes from configure time (currently it defaults to if=virtio). This change allows you to set the QEMU block emulation. We don't think this will be used very often, but virt-v2v requires it in order to work around a subtle problem with running 'mkinitrd' in an appliance attached to a guest.
* generator: 'interface' is a reserved word in Java.Richard Jones2010-02-121-0/+1
|
* add_cdrom: Update docs for adding ISO images.Richard Jones2010-02-121-2/+16
| | | | See also RHBZ#563450 (NB: This commit does not fix the bug).
* Use mount-options instead of mount to avoid implicit -o sync.Richard Jones2010-02-101-17/+17
| | | | | | | | | | | | | | | guestfs_mount adds -o sync implicitly. This causes a very large performance problem for write-intensive programs (eg. virt-v2v). Document this as a "gotcha". Change the tests, guestfish, Sys::Guestfs::Lib, guestmount to use mount-options instead. (Note that this gotcha does not affect mount-ro). The source of the performance problem was first identified by Matthew Booth.
* New API call: initrd-cat to list a file from an initrd.Richard Jones2010-02-091-0/+17
|
* Implement 'vgrename' and 'lvrename' APIs.Richard Jones2010-01-281-0/+20
|
* guestfish: Use xstrtol to parse integers (RHBZ#557655).Richard Jones2010-01-251-4/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current code uses atoi to parse the generator Int type and atoll to parse the generator Int64 type. The problem with the ato* functions is that they don't cope with errors very well, and they cannot parse numbers that begin with 0.. or 0x.. for octal and hexadecimal respectively. This replaces the atoi call with a call to Gnulib xstrtol and the atoll call with a call to Gnulib xstrtoll. The generated code looks like this for all Int arguments: { strtol_error xerr; long r; xerr = xstrtol (argv[0], NULL, 0, &r, ""); if (xerr != LONGINT_OK) { fprintf (stderr, _("%s: %s: invalid integer parameter (%s returned %d)\n"), cmd, "memsize", "xstrtol", xerr); return -1; } /* The Int type in the generator is a signed 31 bit int. */ if (r < (-(2LL<<30)) || r > ((2LL<<30)-1)) { fprintf (stderr, _("%s: %s: integer out of range\n"), cmd, "memsize"); return -1; } /* The check above should ensure this assignment does not overflow. */ memsize = r; } and like this for all Int64 arguments (note we don't need the range check for these): { strtol_error xerr; long long r; xerr = xstrtoll (argv[1], NULL, 0, &r, ""); if (xerr != LONGINT_OK) { fprintf (stderr, _("%s: %s: invalid integer parameter (%s returned %d)\n"), cmd, "size", "xstrtoll", xerr); return -1; } size = r; } Note this also fixes an unrelated bug in guestfish handling of RBufferOut. We were using 'fwrite' without checking the return value, and this could have caused silent failures, eg. in the case where there was not enough disk space to store the resulting file, or even if the program was interrupted (but continued) during the write. Replace this with Gnulib 'full-write', and check the return value and report errors.
* Add 'filesize' call.Richard Jones2010-01-251-0/+12
| | | | | Returns the size of a file. You can already do this with 'stat', but this call is good for scripting.
* Use linker script to control visibility of symbols.Richard Jones2010-01-041-0/+46
|
* generator: Move all library generation code together.Richard Jones2010-01-041-1/+1
|
* generator: Print total lines of generated code.Richard Jones2010-01-041-2/+18
|
* C#: Add documentation about experimental nature of these bindings.Richard Jones2010-01-041-0/+28
|
* Experimental C# bindings.Richard Jones2010-01-021-5/+217
| | | | Tested in only limited situations, with Mono on Linux.
* Move guestfs(3) and guestfish(1) man pages into subdirectories.Richard Jones2009-12-311-4/+4
| | | | | | | | These manual pages have for a very long time 'lived' in the top source directory. Clean up this situation by moving those manual pages (plus associated generated files) into the src/ and fish/ subdirectories respectively.