summaryrefslogtreecommitdiffstats
path: root/src/guestfs.pod
Commit message (Collapse)AuthorAgeFilesLines
* docs: Clarify no additional error available from guestfs_create.Richard W.M. Jones2010-11-051-0/+6
| | | | (cherry picked from commit 5d6a91844520d07f9477e2ddca4caf8f040ef8a1)
* docs: Clarify default error handler.Richard W.M. Jones2010-11-051-1/+25
| | | | Cherry picked from commit 01d613ae957431d65c700a34e369ef4c06dd6d8f.
* docs: Error strings are in fact localized, documentation was wrong.Richard W.M. Jones2010-11-051-4/+0
| | | | Cherry picked from commit 6a218092812783eaea43919674eb8d1c74a80b33.
* docs: Clarify, not every function that returns int returns -1 for errors.Richard W.M. Jones2010-11-051-2/+3
| | | | Cherry picked from commit aae5bebe6878c01803653fae166c58b7217b6100.
* doc: Warn about security implications of running commands.Richard W.M. Jones2010-10-281-0/+16
|
* Enable autosync by default.Richard W.M. Jones2010-10-271-0/+3
|
* generator: Optional arguments, add-drive-opts (RHBZ#642934,CVE-2010-3851).Richard W.M. Jones2010-10-221-2/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This large commit changes the generator so that optional arguments can be supported for functions. The model for arguments (known as the "style") is changed from (ret, args) to (ret, args, optargs) where optargs is a more limited list of arguments. One function has been added which takes optional arguments, it is "add-drive-opts", modelled as: (RErr, [String "filename"], #required [Bool "readonly"; String "format"; String "iface"]) #optional Note that this function is processed in the library (does not go over the RPC protocol to the daemon). This has allowed us to simplify the current implementation by omitting changes related to RPC or the daemon, although we plan to add these at some point in the future. From C this function can be called in 3 different ways as in these examples: guestfs_add_drive_opts (g, filename, GUESTFS_ADD_DRIVE_OPTS_READONLY, 1, GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", -1); (the argument(s) between 'filename' and '-1' are the optional ones). guestfs_add_drive_opts_va (g, filename, args); where 'args' is a va_list. This works like the first version. struct guestfs_add_drive_opts_argv optargs = { .bitmask = GUESTFS_ADD_DRIVE_OPTS_READONLY_BITMASK, .readonly = 1, } guestfs_add_drive_opts_argv (g, filename, &optargs); This last form lets you construct lists of optional arguments, and is used by guestfish and the language bindings. In guestfish optional arguments are used like this: add-drive-opts filename readonly:true In OCaml these are mapped naturally to OCaml optional arguments, eg: g#add_drive_opts ~readonly:true filename; In Perl these are mapped to extra arguments, eg: $g->add_drive_opts ($filename, readonly => 1); In Python these are mapped to optional arguments, eg: g.add_drive_opts ("file", readonly = 1, format = "qcow2") In Ruby these are mapped to a final hash argument, eg: g.add_drive_opts("file", {}) g.add_drive_opts("file", :readonly => 1) g.add_drive_opts("file", :readonly => 1, :iface => "virtio") In PHP these are mapped to extra parameters. This is not quite accurate since you cannot omit arbitrary optional parameters, but there's not much than can be done within the limitations of PHP as a language. Unimplemented in: Haskell, C#, Java.
* Document ambiguity between devices and paths in API.Richard W.M. Jones2010-09-261-0/+31
|
* Document accurately how supermin appliance uses /tmp as a cache.Richard W.M. Jones2010-09-241-3/+3
|
* guestfs: Reference guestfs-browser architecture in threads documentation.Richard Jones2010-09-091-0/+3
|
* guestfs: Document progress notification messages in protocol.Richard Jones2010-09-091-0/+14
|
* guestfs: More accurate documentation for initial message.Richard Jones2010-09-091-4/+3
|
* guestfs: Remove traces of documentation for non-existent 'low-level API'Richard Jones2010-09-091-13/+10
|
* guestfs: Fix typo in man page.Richard Jones2010-09-091-1/+1
|
* PHP bindings.Richard Jones2010-09-041-1/+8
| | | | | | Note that these are not complete on 32 bit architectures. PHP doesn't offer any convenient 64 bit type (on 32 bit). Therefore you should always use these PHP bindings on 64 bit.
* Define LIBGUESTFS_HAVE_<shortname> for C API functions.Richard Jones2010-09-041-7/+12
| | | | | | | | | | | | The actions each have a corresponding define, eg: #define LIBGUESTFS_HAVE_VGUUID 1 extern char *guestfs_vguuid (guestfs_h *g, const char *vgname); However functions which are for testing, debugging or deprecated do not have the corresponding define. Also a few functions are so basic (eg. guestfs_create) that there is no point defining a symbol for them.
* Consistent use of 'void *opaque' to refer to opaque pointer in C API.Richard Jones2010-09-011-3/+3
| | | | | | We inconsistently used 'void *data' or 'void *opaque' all over to refer to the same thing. Use 'void *opaque' in all places in the published API and documentation.
* Implement private data area.Richard Jones2010-09-011-0/+38
| | | | | | | | | The private data area is a hash table which is associated with libguestfs handles, that C callers may use to store arbitrary data for the lifetime of the handle. Later the OCaml bindings will use this in order to implement callbacks.
* Implement progress messages in the daemon and library.Richard Jones2010-08-311-0/+50
| | | | | | | | | | | | This implements progress notification messages in the daemon, and adds a callback in the library to handle them. No calls are changed so far, so in fact no progress messages can be generated by this commit. For more details, see: https://www.redhat.com/archives/libguestfs/2010-July/msg00003.html https://www.redhat.com/archives/libguestfs/2010-July/msg00024.html
* New APIs: set-network and get-network to enable network support.Richard Jones2010-08-241-0/+5
| | | | guestfs_set_network (g, true) enables network support in the appliance.
* Change protocol to send Linux errno from daemon to library.Richard Jones2010-08-241-1/+4
| | | | | | | This changes the protocol so that the Linux errno (if available) is sent back to the library. Note that the errno is not yet made available to callers, since it is not clear how best to present this Linux-specific number.
* Raise error message max size to 64K.Richard Jones2010-08-241-9/+0
| | | | | | | | | This commit removes one of the protocol limits, by raising the maximum error message size from 256 bytes to 64K. Although we could consider raising this further, since the error messages are currently stored in fixed sized buffers on the stack, that would require more invasive code changes.
* New APIs for guest inspection.Richard Jones2010-08-171-4/+64
| | | | | | | | | | | | | | | | | | | | | This commit converts (some of) the Perl inspection code to C and makes it available through core APIs. The new APIs are: inspect-os - Does the inspection, returns list of OSes inspect-get-* - Get results of the inspection where '*' is one of: type - 'windows' or 'linux' distro - Linux distro arch - architecture product-name - long product name string major-version minor-version - major.minor version of OS mountpoints - get a list of the mountpoints filesystems - get all filesystems associated with the OS This works for all existing supported Linux and Windows OSes.
* New APIs: Support for opening LUKS-encrypted disks.Richard Jones2010-07-211-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for opening LUKS-encrypted disks, via three new APIs: luks_open: Create a mapping for an encrypted disk. luks_open_ro: Same, but read-only mapping. luks_close: Close a mapping. A typical guestfish session using this functionality looks like this: $ guestfish --ro -a encrypted.img ><fs> run ><fs> list-devices /dev/vda ><fs> list-partitions /dev/vda1 /dev/vda2 ><fs> vfs-type /dev/vda2 crypto_LUKS ><fs> luks-open /dev/vda2 luksdev Enter key or passphrase ("key"): ><fs> vgscan ><fs> vg-activate-all true ><fs> pvs /dev/dm-0 ><fs> vgs vg_f13x64encrypted ><fs> lvs /dev/vg_f13x64encrypted/lv_root /dev/vg_f13x64encrypted/lv_swap ><fs> mount /dev/vg_f13x64encrypted/lv_root / ><fs> ll / total 132 dr-xr-xr-x. 24 root root 4096 Jul 21 12:01 . dr-xr-xr-x 20 root root 0 Jul 21 20:06 .. drwx------. 3 root root 4096 Jul 21 11:59 .dbus drwx------. 2 root root 4096 Jul 21 12:00 .pulse -rw-------. 1 root root 256 Jul 21 12:00 .pulse-cookie dr-xr-xr-x. 2 root root 4096 May 13 03:03 bin NOT included in this patch: - An easier way to use this from guestfish. - Ability to create LUKS devices. - Ability to change LUKS keys on existing devices. - Direct access to the /dev/mapper device (eg. if it contains anything apart from VGs).
* generator: Add 'Key' parameter type.Richard Jones2010-07-211-0/+15
| | | | | | | | | | | | | Add a 'Key' parameter type, used for passing sensitive key material into libguestfs. Eventually the plan is to mlock() key material into memory. However this is very difficult to achieve because the encoded XDR strings end up in many places. Therefore users should note that key material passed to libguestfs might end up in swap. The only difference between 'Key' and 'String' currently is that guestfish requests the key from /dev/tty with echoing turned off.
* doc: Add guestfish 'lvcreate 1M' gotcha.Richard Jones2010-07-161-0/+21
|
* Add error callback (RHBZ#602599).Richard Jones2010-06-101-0/+18
| | | | Read the note in the man page before using this feature.
* Fix typo in documentation of guestfs_set_launch_done_callback.Richard Jones2010-06-101-1/+1
|
* Revise documentation on creating files.Richard Jones2010-05-271-1/+5
|
* fish: New command: 'supported'Richard Jones2010-05-251-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | This checks all available optional groups and prints out which ones are supported by the daemon. Note you must launch the appliance first. Example: ><fs> supported augeas yes inotify yes linuxfsuuid yes linuxmodules yes linuxxattrs yes lvm2 yes mknod yes ntfs3g yes ntfsprogs yes realpath yes scrub yes selinux yes xz yes zerofree yes
* New API: write for creating files with fixed content (RHBZ#501889).Richard Jones2010-05-201-3/+1
| | | | | | | | | | | | | The guestfs_write call can be used to create small files with arbitrary 8 bit content, including \0 bytes. This replaces and deprecates write-file, which cannot be modified to use BufferIn because of an unfortunate choice in the ABI: the size parameter to write-file, if zero, means that the daemon tries to calculate the length of the buffer using strlen. However this fails if we pass a zero-length buffer using BufferIn because then the daemon tries to do strlen on a (really) zero length buffer, not even containing a terminating \0 character, thus segfaulting.
* guestfs(3): Documentation on protocol gotchas.Richard Jones2010-04-291-0/+17
|
* docs: Routine refresh of the documentation for guestfs(3) and guestfish(1).Richard Jones2010-04-241-100/+96
|
* Document new version numbering policy.Richard Jones2010-04-201-0/+63
| | | | | | | | See discussion on mailing list: https://www.redhat.com/archives/libguestfs/2010-April/msg00005.html https://www.redhat.com/archives/libguestfs/2010-April/msg00057.html https://www.redhat.com/archives/libguestfs/2010-April/msg00058.html
* Document umask (RHBZ#582548, RHBZ#583554).Richard Jones2010-04-191-1/+18
|
* Documentation: Use 'g' instead of 'handle' in documentation.Richard Jones2010-04-171-45/+50
| | | | | By convention we use 'g' for handles. Copy this convention through to all the documentation.
* In guestfs(3), unmount "/" directory in the example.Richard Jones2010-04-171-0/+1
|
* Add compilation/linking example to guestfs(3) man page.Richard Jones2010-04-171-0/+4
|
* Documentation updates.Richard Jones2010-04-111-0/+13
| | | | | | | Fix copyright years. Fix URLs to point to new PRC site. Make sure guestfish(1) and guestfs(3) manpages reference the current list of tools.
* Docs: Change exit(1) -> exit(EXIT_FAILURE)Richard Jones2010-03-121-1/+1
|
* Spin off hivex as a separate upstream project.Richard Jones2010-02-221-4/+4
| | | | | | | | | | | | | | This commit makes the semi-independent hivex library into a separate upstream project. The git repo for hivex is now: http://git.annexia.org/?p=hivex.git;a=summary Downloads of hivex are available here: http://libguestfs.org/download/ All questions, patches, bugs etc should be sent to the libguestfs mailing list and bug tracker.
* Turn ProtocolLimitWarning into link to documentation section.Richard Jones2010-02-151-0/+23
|
* Remove references to FTP, replace with FUSE.Richard Jones2010-02-151-1/+2
| | | | | | | 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.
* Use mount-options instead of mount to avoid implicit -o sync.Richard Jones2010-02-101-0/+9
| | | | | | | | | | | | | | | 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.
* Documentation: Added a section on libguestfs gotchas.Richard Jones2010-02-081-0/+55
|
* C#: Add documentation about experimental nature of these bindings.Richard Jones2010-01-041-5/+11
|
* Move guestfs(3) and guestfish(1) man pages into subdirectories.Richard Jones2009-12-311-0/+1300
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.