X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=generator%2Fgenerator_actions.ml;h=2e4d12064eaed38cd0c6fb2a15b55052bd40861a;hb=afe56418946bd8be0706435ed6045bb3ba0f9f99;hp=a324d99726e253d99f137b4ffd0be3b9192c1879;hpb=371eabfae3790588ed97c0017d2882799c7ea871;p=libguestfs.git diff --git a/generator/generator_actions.ml b/generator/generator_actions.ml index a324d99..2e4d120 100644 --- a/generator/generator_actions.ml +++ b/generator/generator_actions.ml @@ -113,7 +113,7 @@ using L. You should call this after configuring the handle (eg. adding drives) but before performing any actions."); - ("wait_ready", (RErr, [], []), -1, [NotInFish], + ("wait_ready", (RErr, [], []), -1, [NotInFish; DeprecatedBy "launch"], [], "wait until the qemu subprocess launches (no op)", "\ @@ -155,7 +155,7 @@ and specifying the format."); "\ This function adds a virtual CD-ROM disk image to the guest. -This is equivalent to the qemu parameter C<-cdrom filename>. +This is equivalent to the qemu parameter I<-cdrom filename>. Notes: @@ -190,7 +190,7 @@ automatically."); "add qemu parameters", "\ This can be used to add arbitrary qemu command line parameters -of the form C<-param value>. Actually it's not quite arbitrary - we +of the form I<-param value>. Actually it's not quite arbitrary - we prevent you from setting some parameters which would interfere with parameters that we use. @@ -791,6 +791,10 @@ Currently defined distros are: Arch Linux. +=item \"centos\" + +CentOS. + =item \"debian\" Debian. @@ -825,7 +829,11 @@ Some Red Hat-derived distro. =item \"rhel\" -Red Hat Enterprise Linux and some derivatives. +Red Hat Enterprise Linux. + +=item \"scientificlinux\" + +Scientific Linux. =item \"slackware\" @@ -928,6 +936,12 @@ which is the filesystem that would be mounted there Non-mounted devices such as swap devices are I returned in this list. +For operating systems like Windows which still use drive +letters, this call will only return an entry for the first +drive \"mounted on\" C. For information about the +mapping of drive letters to partitions, see +C. + Please read L for more details. See also C."); @@ -1451,6 +1465,58 @@ Please read L for more details. See also C, C."); + ("inspect_get_windows_current_control_set", (RString "controlset", [Device "root"], []), -1, [], + [], + "get Windows CurrentControlSet of inspected operating system", + "\ +This function should only be called with a root device string +as returned by C. + +This returns the Windows CurrentControlSet of the inspected guest. +The CurrentControlSet is a registry key name such as C. + +This call assumes that the guest is Windows and that the +Registry could be examined by inspection. If this is not +the case then an error is returned. + +Please read L for more details."); + + ("inspect_get_drive_mappings", (RHashtable "drives", [Device "root"], []), -1, [], + [], + "get drive letter mappings", + "\ +This function should only be called with a root device string +as returned by C. + +This call is useful for Windows which uses a primitive system +of assigning drive letters (like \"C:\") to partitions. +This inspection API examines the Windows Registry to find out +how disks/partitions are mapped to drive letters, and returns +a hash table as in the example below: + + C => /dev/vda2 + E => /dev/vdb1 + F => /dev/vdc1 + +Note that keys are drive letters. For Windows, the key is +case insensitive and just contains the drive letter, without +the customary colon separator character. + +In future we may support other operating systems that also used drive +letters, but the keys for those might not be case insensitive +and might be longer than 1 character. For example in OS-9, +hard drives were named C, C

etc. + +For Windows guests, currently only hard drive mappings are +returned. Removable disks (eg. DVD-ROMs) are ignored. + +For guests that do not use drive mappings, or if the drive mappings +could not be determined, this returns an empty hash table. + +Please read L for more details. +See also C, +C."); + ] (* daemon_functions are any functions which cause some action @@ -1458,7 +1524,7 @@ C."); *) let daemon_functions = [ - ("mount", (RErr, [Device "device"; String "mountpoint"], []), 1, [], + ("mount", (RErr, [Device "device"; String "mountpoint"], []), 1, [DeprecatedBy "mount_options"], [InitEmpty, Always, TestOutput ( [["part_disk"; "/dev/sda"; "mbr"]; ["mkfs"; "ext2"; "/dev/sda1"]; @@ -2066,7 +2132,7 @@ example C."); ("sfdisk", (RErr, [Device "device"; Int "cyls"; Int "heads"; Int "sectors"; - StringList "lines"], []), 43, [DangerWillRobinson], + StringList "lines"], []), 43, [DangerWillRobinson; DeprecatedBy "part_add"], [], "create partitions on a block device", "\ @@ -2195,17 +2261,14 @@ of compressed file. The exact command which runs is C. Note in particular that the filename is not prepended to the output -(the C<-b> option). +(the I<-b> option). -This command can also be used on C devices -(and partitions, LV names). You can for example use this -to determine if a device contains a filesystem, although -it's usually better to use C. +The output depends on the output of the underlying L +command and it can change in future in ways beyond our control. +In other words, the output is not guaranteed by the ABI. -If the C does not begin with C then -this command only works for the content of regular files. -For other file types (directory, symbolic link etc) it -will just return the string C etc."); +See also: L, C, C, +C, C (etc)."); ("command", (RString "output", [StringList "arguments"], []), 50, [ProtocolLimitWarning], [InitScratchFS, Always, TestOutput ( @@ -2899,10 +2962,9 @@ Checking or repairing NTFS volumes is not supported This command is entirely equivalent to running C."); ("zero", (RErr, [Device "device"], []), 85, [Progress], - [InitBasicFS, Always, TestOutput ( + [InitBasicFS, Always, TestRun ( [["umount"; "/dev/sda1"]; - ["zero"; "/dev/sda1"]; - ["file"; "/dev/sda1"]], "data")], + ["zero"; "/dev/sda1"]])], "write zeroes to the device", "\ This command writes zeroes over the first few blocks of C. @@ -3157,7 +3219,7 @@ volume to match the new size of the underlying device."); ("sfdisk_N", (RErr, [Device "device"; Int "partnum"; Int "cyls"; Int "heads"; Int "sectors"; - String "line"], []), 99, [DangerWillRobinson], + String "line"], []), 99, [DangerWillRobinson; DeprecatedBy "part_add"], [], "modify a single partition on a block device", "\ @@ -3169,7 +3231,7 @@ pass C<0> for the cyls/heads/sectors parameters. See also: C"); - ("sfdisk_l", (RString "partitions", [Device "device"], []), 100, [], + ("sfdisk_l", (RString "partitions", [Device "device"], []), 100, [DeprecatedBy "part_list"], [], "display the partition table", "\ @@ -3314,8 +3376,8 @@ See also C."); "check an ext2/ext3 filesystem", "\ This runs C, ie. runs the ext2/ext3 -filesystem checker on C, noninteractively (C<-p>), -even if the filesystem appears to be clean (C<-f>). +filesystem checker on C, noninteractively (I<-p>), +even if the filesystem appears to be clean (I<-f>). This command is only needed because of C (q.v.). Normally you should use C."); @@ -3577,7 +3639,7 @@ This command is mostly useful for interactive sessions. It is I intended that you try to parse the output string. Use C from programs."); - ("du", (RInt64 "sizekb", [Pathname "path"], []), 127, [], + ("du", (RInt64 "sizekb", [Pathname "path"], []), 127, [Progress], [InitISOFS, Always, TestOutputInt ( [["du"; "/directory"]], 2 (* ISO fs blocksize is 2K *))], "estimate file space usage", @@ -3788,7 +3850,7 @@ This function is primarily intended for use by programs. To get a simple list of names, use C. To get a printable directory for human consumption, use C."); - ("sfdiskM", (RErr, [Device "device"; StringList "lines"], []), 139, [DangerWillRobinson], + ("sfdiskM", (RErr, [Device "device"; StringList "lines"], []), 139, [DangerWillRobinson; DeprecatedBy "part_add"], [], "create partitions on a block device", "\ @@ -4091,7 +4153,7 @@ This command creates a hard link using the C command."); "create a hard link", "\ This command creates a hard link using the C command. -The C<-f> option removes the link (C) if it exists already."); +The I<-f> option removes the link (C) if it exists already."); ("ln_s", (RErr, [String "target"; Pathname "linkname"], []), 166, [], [InitScratchFS, Always, TestOutputStruct ( @@ -4112,7 +4174,7 @@ This command creates a symbolic link using the C command."); "create a symbolic link", "\ This command creates a symbolic link using the C command, -The C<-f> option removes the link (C) if it exists already."); +The I<-f> option removes the link (C) if it exists already."); ("readlink", (RString "link", [Pathname "path"], []), 168, [], [] (* XXX tested above *), @@ -5158,6 +5220,15 @@ it to local file C (as an xz compressed tar archive)."); "\ This command resizes an NTFS filesystem, expanding or shrinking it to the size of the underlying device. + +I After the resize operation, the filesystem is marked +as requiring a consistency check (for safety). You have to boot +into Windows to perform this check and clear this condition. +Furthermore, ntfsresize refuses to resize filesystems +which have been marked in this way. So in effect it is +not possible to call ntfsresize multiple times on a single +filesystem without booting into Windows between each resize. + See also L."); ("vgscan", (RErr, [], []), 232, [], @@ -5795,7 +5866,7 @@ For UFS block sizes, please see L. =item C -This passes the C<-O> parameter to the external mkfs program. +This passes the I<-O> parameter to the external mkfs program. For certain filesystem types, this allows extra filesystem features to be selected. See L and L @@ -5851,7 +5922,7 @@ See also: C, C, L."); "resize an ext2, ext3 or ext4 filesystem to the minimum size", "\ This command is the same as C, but the filesystem -is resized to its minimum size. This works like the C<-M> option +is resized to its minimum size. This works like the I<-M> option to the C command. To get the resulting size of the filesystem you should call