summaryrefslogtreecommitdiffstats
path: root/src/guestfs.pod
Commit message (Collapse)AuthorAgeFilesLines
* ruby: Translate C examples into Ruby and include documentation.Richard W.M. Jones2010-11-241-2/+2
|
* python: Translate C examples into Python and include documentation.Richard W.M. Jones2010-11-241-5/+2
|
* ocaml: Translate C examples into OCaml and include documentation.Richard W.M. Jones2010-11-241-1/+2
|
* docs: Standard C examples, and guestfs-examples(3) man page.Richard W.M. Jones2010-11-241-0/+4
|
* New tool: virt-filesystemsRichard W.M. Jones2010-11-231-0/+1
| | | | | | | | This tool replaces virt-list-filesystems and virt-list-partitions with a new tool written in C with a more uniform command line structure and output. This existing Perl tools are deprecated but remain indefinitely.
* New API: inspect-get-hostname to return the hostname of the guest.Richard W.M. Jones2010-11-161-0/+8
| | | | | This returns the hostname of the guest. Tested on RHEL, Fedora, Debian 5, Ubuntu 10.10, FreeBSD 8, Windows 7.
* New API: inspect-list-applications.Richard W.M. Jones2010-11-151-1/+3
| | | | | | | | This converts the current Perl code in virt-inspector for listing applications, into C, making it a part of the core API. This is also capable of fetching the list of Windows applications from the registry.
* docs: Add a section on security.Richard W.M. Jones2010-11-131-1/+154
|
* docs: Rearrange guestfs(3) sections.Richard W.M. Jones2010-11-131-254/+254
| | | | | | | | | | | This rearranges the sections into a more logical order: - synopsis and introduction - API-related overview sections - (security will go here, see next commit) - API in detail - architecture and other internals - usual end sections
* docs: Clarify no additional error available from guestfs_create.Richard W.M. Jones2010-11-031-0/+6
|
* docs: Clarify default error handler.Richard W.M. Jones2010-11-031-1/+26
|
* docs: Error strings are in fact localized, documentation was wrong.Richard W.M. Jones2010-11-031-4/+0
|
* docs: Clarify, not every function that returns int returns -1 for errors.Richard W.M. Jones2010-11-031-2/+2
|
* lib: Expose errno through new API guestfs_last_errno.Richard W.M. Jones2010-11-031-17/+52
| | | | | | | 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-031-0/+3
| | | | | | | | 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.
* 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.