summaryrefslogtreecommitdiffstats
path: root/daemon
Commit message (Collapse)AuthorAgeFilesLines
* docs: Obsolete HACKING file, move content into guestfs(3) man page.Richard W.M. Jones2010-12-192-3/+4
| | | | | | Add a new section called "EXTENDING LIBGUESTFS" to the guestfs manual page which contains all the information previously in "HACKING".
* New APIs: getxattr and lgetxattr to get single extended attributes.Richard W.M. Jones2010-12-161-0/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These APIs are essentially required to work around a problem with ntfs-3g. This filesystem (or FUSE?) does not list all extended attributes of a file when you call listxattr(2). However if you know the name of an extended attribute, you can retrieve it directly using getxattr(2). The current APIs (getxattrs etc) are simple to use, but they don't work if we can't list out the extended attributes (ie. by calling listxattr(2)). Example using the new APIs on an ntfs-3g filesystem: ><fs> lgetxattr "/Documents and Settings" system.ntfs_attrib | hexdump -C 00000000 16 24 00 00 |.$..| 00000004 ><fs> lgetxattr "/Documents and Settings" system.ntfs_reparse_data | hexdump -C 00000000 03 00 00 a0 34 00 00 00 00 00 18 00 1a 00 10 00 |....4...........| 00000010 5c 00 3f 00 3f 00 5c 00 43 00 3a 00 5c 00 55 00 |\.?.?.\.C.:.\.U.| 00000020 73 00 65 00 72 00 73 00 00 00 43 00 3a 00 5c 00 |s.e.r.s...C.:.\.| 00000030 55 00 73 00 65 00 72 00 73 00 00 00 |U.s.e.r.s...| 0000003c ><fs> getxattr "/Documents and Settings" system.ntfs_reparse_data | hexdump -C libguestfs: error: getxattr: getxattr: No such file or directory ><fs> getxattr "/Documents and Settings" system.ntfs_attrib | hexdump -C libguestfs: error: getxattr: getxattr: No such file or directory ><fs> lgetxattr "/Documents and Settings" system.ntfs_attrib | hexdump -C 00000000 16 24 00 00 |.$..| 00000004 ><fs> getxattr "/Users" system.ntfs_attrib | hexdump -C 00000000 11 00 00 00 |....| 00000004
* daemon: Use prog_exists to check for features.Richard W.M. Jones2010-12-102-12/+5
| | | | This updates commit 0938509e0422363554023ab99381fd70a22a6e08.
* Remove several unused local variables.Richard W.M. Jones2010-12-101-1/+1
| | | | (Revealed by compiling under Debian where this is a warning).
* ubuntu: deactivate LVs and VGs before removing them.Richard W.M. Jones2010-12-071-0/+10
| | | | | | | | Even with the '-f' option, LVM on Ubuntu sometimes cannot remove active LVs and VGs. Change lvm-remove-all so it deactivates each LV and VG before removing them.
* Revert "umount-all: Add udev_settle after unmounting disks."Richard W.M. Jones2010-12-071-3/+0
| | | | | | | This reverts commit ad2abf89c364d5ec73fb12af63b053637d99d757. Ubuntu still has errors even with the addition of udev_settle after umount-all. Therefore this was just masking the problem.
* debian: Fix ntfs3g available API on Debian.Richard W.M. Jones2010-12-071-1/+5
| | | | | Really we should have a test for "is program on $PATH?" but this fix will do for now.
* umount-all: Add udev_settle after unmounting disks.Richard W.M. Jones2010-12-071-0/+3
| | | | | | This helps avoid an error on Ubuntu, but it's not clear if this is a real solution or just helps by adjusting the timing of some race condition.
* build: Don't emit warnings about stack protector failures.Richard W.M. Jones2010-12-061-0/+2
| | | | These are seen on gcc 4.5.1 used in Ubuntu.
* New API: mkfs_opts, mkfs with optional arguments.Richard W.M. Jones2010-12-021-49/+49
| | | | | | This is an extensible version of 'mkfs' which supports optional arguments. There is now no need for 'mkfs_b' since you should use 'mkfs_opts' with the optional 'blocksize' argument instead.
* generator: Code to handle optional arguments in daemon functions.Richard W.M. Jones2010-12-021-8/+0
| | | | | | | | Previously we only supported optional arguments for library functions (commit 14490c3e1aac61c6ac90f28828896683f64f0dc9). This extends that work so that optional arguments can also be passed through to the daemon.
* Add progress notification messages to upload and upload-offset APIs.Richard W.M. Jones2010-12-011-11/+28
|
* protocol: Handle progress notification messages during FileIn.Richard W.M. Jones2010-12-011-0/+1
| | | | | | | If the daemon sends progress notification messages while we are uploading FileIn parameters, these are received in check_for_daemon_cancellation_or_eof. Modify this library function so that it turns these messages into callbacks.
* protocol: Upload progress messages and optional arguments.Richard W.M. Jones2010-12-012-0/+30
| | | | | | | | Two unrelated changes to the protocol to support progress messages during uploads, and optional arguments. Note that this makes an incompatible change to the protocol, and this is reflected in the protocol version field (3 -> 4).
* daemon: Close leaked file descriptor along checksum error path (RHBZ#657499).Richard W.M. Jones2010-11-261-1/+3
|
* daemon: blkid cache is at a different location on Debian.Richard W.M. Jones2010-11-241-1/+2
| | | | Remove both possible cache locations.
* daemon: In sfdisk call blockdev --rereadpt with device name.Richard W.M. Jones2010-11-231-1/+1
|
* daemon: findfs-uuid and findfs-label should not return /dev/mapper paths.Richard W.M. Jones2010-11-161-0/+16
|
* lib: Expose errno through new API guestfs_last_errno.Richard W.M. Jones2010-11-032-2/+24
| | | | | | | If either the daemon sends back an errno, or a system call fails in the library, save the errno in the handle and then make it available to callers through the guestfs_last_errno function.
* daemon: Send back the errno as a string.Richard W.M. Jones2010-11-032-2/+18
| | | | | | | | This changes the protocol again so that if the errno is available, it is converted to a string (like "EIO") and sent back over the protocol to the library. In this commit the library just discards the string.
* daemon: Don't use ../src path to include generator_protocol.hRichard W.M. Jones2010-11-0333-33/+33
| | | | | This file is already hard-linked into the current directory, so the relative path is not required.
* daemon: Tolerate failure of blockdev --rereadpt after sfdisk.Richard W.M. Jones2010-11-021-2/+1
| | | | | See commit 840536ea5a0568296dfd3e483442c76b93c5a949 and commit 956fc5a3feacc970ea763697bf28fb686c875408.
* daemon: Fix /dev/mapper paths from mounts and mountpoints (RHBZ#646432).Richard W.M. Jones2010-10-283-34/+56
| | | | Make the LV paths returned by these two commands canonical.
* New API: lvm-canonical-lv-name: make LV name canonical.Richard W.M. Jones2010-10-271-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When logical volume names appear in places like /etc/fstab files they can have the form "/dev/mapper/foo-bar". This function takes such names and makes them canonical. Note that this operation cannot be performed using the current API, because 'guestfs_stat' does not work on device names, and we don't really want to make a 'stat-device' call since that exposes too much non-useful detail about the appliance. With this patch you can do this: ><fs> debug ll /dev/mapper total 8 drwxrwxr-x 2 root root 4096 Oct 25 12:51 . drwxr-xr-x 16 root root 4096 Oct 25 12:51 .. crw------- 1 root root 10, 62 Oct 25 12:51 control lrwxrwxrwx 1 root root 7 Oct 25 12:51 vg_f13x64-lv_root -> ../dm-0 lrwxrwxrwx 1 root root 7 Oct 25 12:51 vg_f13x64-lv_swap -> ../dm-1 ><fs> lvm-canonical-lv-name /dev/mapper/vg_f13x64-lv_root /dev/vg_f13x64/lv_root ><fs> lvm-canonical-lv-name /dev/mapper/vg_f13x64-lv_swap /dev/vg_f13x64/lv_swap ><fs> lvm-canonical-lv-name /dev/mapper/foo libguestfs: error: lvm_canonical_lv_name: lvm_canonical_lv_name_stub: /dev/mapper/foo: No such file or directory ><fs> lvm-canonical-lv-name /dev/mapper/control libguestfs: error: lvm_canonical_lv_name: /dev/mapper/control: not a logical volume ><fs> lvm-canonical-lv-name /dev/vg_f13x64/lv_root /dev/vg_f13x64/lv_root
* daemon: Print failed path in stat command errors.Richard W.M. Jones2010-10-251-2/+2
|
* daemon: Use stdint UINT64_C instead of <const>ULL.Richard W.M. Jones2010-10-221-4/+5
|
* parted: Don't return "loop" for non-partitioned devices (RHBZ#634246).Richard W.M. Jones2010-10-181-0/+15
| | | | | | | | If you ran part-get-parttype command on a device which didn't contain a partition, it used to return the string "loop". This is an internal representation that parted uses. We should instead return an error because part-get-parttype makes no sense for devices which are not partitioned.
* debug: Add qtrace <device> on|off to allow selective traces.Richard W.M. Jones2010-10-061-0/+91
|
* part-disk: Align whole disk partition to 64 sectors.Richard W.M. Jones2010-10-061-15/+9
| | | | | | Change the part-disk command so it aligns the partition to 64 sectors (instead of 1 or 34 sectors as now). This should ensure that the filesystem contained within is aligned.
* New API: pread-device, partial read for devices.Richard W.M. Jones2010-09-271-15/+38
|
* pread: Check count and offset parameters are not negative.Richard W.M. Jones2010-09-271-0/+10
|
* New API: pwrite-deviceRichard W.M. Jones2010-09-261-9/+35
| | | | | This is the same as the existing 'pwrite' API call, but allows you to write to a device.
* pwrite: Check offset is not negative.Richard W.M. Jones2010-09-261-0/+5
|
* Call blockdev --rereadpt then udev_settle after sfdisk commands.Richard W.M. Jones2010-09-241-3/+6
| | | | | | | This updates commit 956fc5a3feacc970ea763697bf28fb686c875408 so that we call udev_settle after rereading the partition table. This ensures that the devices nodes for the new partitions have been created.
* Call blockdev --rereadpt after sfdisk commands.Richard W.M. Jones2010-09-221-1/+13
| | | | | | | | | | | | On fast machines sfdisk has some sort of race where it fails to re-read the partition table it has just created (it's not clear if this is a race in sfdisk, the kernel or some other component). This commit works around the problem by calling blockdev --rereadpt after sfdisk operations, which experience shows is enough to stop the problem from happening.
* New APIs: upload-offset and download-offsetRichard W.M. Jones2010-09-211-3/+112
| | | | | These APIs allow you to efficiently write and read parts of files or devices.
* New API: part-to-dev: Convert partition name to device name.Richard Jones2010-09-151-0/+27
| | | | | This adds a formal API for going from a partition to the containing device, eg. /dev/sda1 -> /dev/sda
* Split generator into separate source files.Richard Jones2010-09-111-4/+5
| | | | | | | | | | 'src/generator.ml' is no more. Instead the generator is logically split up over many different source files. Read generator/README for help and tips. We compile the generator down to bytecode, not native code. This means it will run more slowly, but is done for maximum portability.
* syntax: Remove unused c-ctype.h header.Richard Jones2010-09-101-1/+0
|
* New APIs: is-chardev, is-blockdev, is-fifo, is-symlink, is-socketRichard Jones2010-09-091-17/+61
| | | | These complement the existing is-file and is-dir APIs.
* daemon: Move 'exists', 'is-file' and 'is-dir' to separate file.Richard Jones2010-09-094-56/+87
| | | | This commit is just code movement.
* daemon: Don't warn about 'long long' usage.Richard Jones2010-09-061-0/+2
| | | | | This removes a fatal warning (-Werror) which stops compilation on 32 bit machines.
* debug: Add 'debug progress' command.Richard Jones2010-09-011-0/+33
| | | | | This debugging command generates progress notification messages, used for testing purposes.
* debug: Arrange prototypes in alphabetical order.Richard Jones2010-09-011-1/+1
|
* daemon: Enable debug command by default.Richard Jones2010-09-012-32/+8
| | | | | | | The debug command is useful for internal testing, and so should be enabled by default in all builds. Note that it is still *not* part of the stable ABI.
* Add progress messages to download command.Richard Jones2010-09-011-0/+27
|
* Add progress messages to zero-device command.Richard Jones2010-09-011-5/+16
|
* Add progress messages to zero command.Richard Jones2010-09-011-1/+3
|
* Add progress messages to fill-pattern command.Richard Jones2010-09-011-0/+1
|
* Add progress messages to fill command.Richard Jones2010-09-011-0/+1
|