capitests: Add 'InitScratchFS' test environment.
[libguestfs.git] / generator / generator_actions.ml
index d62ca82..c081606 100644 (file)
@@ -1177,6 +1177,120 @@ Future versions of libguestfs may return other strings.
 
 Please read L<guestfs(3)/INSPECTION> for more details.");
 
+  ("inspect_list_applications", (RStructList ("applications", "application"), [Device "root"], []), -1, [],
+   [],
+   "get list of applications installed in the operating system",
+   "\
+This function should only be called with a root device string
+as returned by C<guestfs_inspect_os>.
+
+Return the list of applications installed in the operating system.
+
+I<Note:> This call works differently from other parts of the
+inspection API.  You have to call C<guestfs_inspect_os>, then
+C<guestfs_inspect_get_mountpoints>, then mount up the disks,
+before calling this.  Listing applications is a significantly
+more difficult operation which requires access to the full
+filesystem.  Also note that unlike the other
+C<guestfs_inspect_get_*> calls which are just returning
+data cached in the libguestfs handle, this call actually reads
+parts of the mounted filesystems during the call.
+
+This returns an empty list if the inspection code was not able
+to determine the list of applications.
+
+The application structure contains the following fields:
+
+=over 4
+
+=item C<app_name>
+
+The name of the application.  For Red Hat-derived and Debian-derived
+Linux guests, this is the package name.
+
+=item C<app_display_name>
+
+The display name of the application, sometimes localized to the
+install language of the guest operating system.
+
+If unavailable this is returned as an empty string C<\"\">.
+Callers needing to display something can use C<app_name> instead.
+
+=item C<app_epoch>
+
+For package managers which use epochs, this contains the epoch of
+the package (an integer).  If unavailable, this is returned as C<0>.
+
+=item C<app_version>
+
+The version string of the application or package.  If unavailable
+this is returned as an empty string C<\"\">.
+
+=item C<app_release>
+
+The release string of the application or package, for package
+managers that use this.  If unavailable this is returned as an
+empty string C<\"\">.
+
+=item C<app_install_path>
+
+The installation path of the application (on operating systems
+such as Windows which use installation paths).  This path is
+in the format used by the guest operating system, it is not
+a libguestfs path.
+
+If unavailable this is returned as an empty string C<\"\">.
+
+=item C<app_trans_path>
+
+The install path translated into a libguestfs path.
+If unavailable this is returned as an empty string C<\"\">.
+
+=item C<app_publisher>
+
+The name of the publisher of the application, for package
+managers that use this.  If unavailable this is returned
+as an empty string C<\"\">.
+
+=item C<app_url>
+
+The URL (eg. upstream URL) of the application.
+If unavailable this is returned as an empty string C<\"\">.
+
+=item C<app_source_package>
+
+For packaging systems which support this, the name of the source
+package.  If unavailable this is returned as an empty string C<\"\">.
+
+=item C<app_summary>
+
+A short (usually one line) description of the application or package.
+If unavailable this is returned as an empty string C<\"\">.
+
+=item C<app_description>
+
+A longer description of the application or package.
+If unavailable this is returned as an empty string C<\"\">.
+
+=back
+
+Please read L<guestfs(3)/INSPECTION> for more details.");
+
+  ("inspect_get_hostname", (RString "hostname", [Device "root"], []), -1, [],
+   [],
+   "get hostname of the operating system",
+   "\
+This function should only be called with a root device string
+as returned by C<guestfs_inspect_os>.
+
+This function returns the hostname of the operating system
+as found by inspection of the guest's configuration files.
+
+If the hostname could not be determined, then the
+string C<unknown> is returned.
+
+Please read L<guestfs(3)/INSPECTION> for more details.");
+
 ]
 
 (* daemon_functions are any functions which cause some action
@@ -1292,13 +1406,13 @@ See also C<guestfs_list_filesystems>.");
 
   ("list_partitions", (RStringList "partitions", [], []), 8, [],
    [InitBasicFS, Always, TestOutputListOfDevices (
-      [["list_partitions"]], ["/dev/sda1"]);
+      [["list_partitions"]], ["/dev/sda1"; "/dev/sdb1"]);
     InitEmpty, Always, TestOutputListOfDevices (
       [["part_init"; "/dev/sda"; "mbr"];
        ["part_add"; "/dev/sda"; "p"; "64"; "204799"];
        ["part_add"; "/dev/sda"; "p"; "204800"; "409599"];
        ["part_add"; "/dev/sda"; "p"; "409600"; "-64"];
-       ["list_partitions"]], ["/dev/sda1"; "/dev/sda2"; "/dev/sda3"])],
+       ["list_partitions"]], ["/dev/sda1"; "/dev/sda2"; "/dev/sda3"; "/dev/sdb1"])],
    "list the partitions",
    "\
 List all the partitions detected on all block devices.
@@ -2547,10 +2661,10 @@ to return the existing UUID of a filesystem.");
   ("get_e2uuid", (RString "uuid", [Device "device"], []), 83, [DeprecatedBy "vfs_uuid"],
    (* Regression test for RHBZ#597112. *)
    (let uuid = uuidgen () in
-    [InitBasicFS, Always, TestOutput (
-       [["mke2journal"; "1024"; "/dev/sdb"];
-        ["set_e2uuid"; "/dev/sdb"; uuid];
-        ["get_e2uuid"; "/dev/sdb"]], uuid)]),
+    [InitNone, Always, TestOutput (
+       [["mke2journal"; "1024"; "/dev/sdc"];
+        ["set_e2uuid"; "/dev/sdc"; uuid];
+        ["get_e2uuid"; "/dev/sdc"]], uuid)]),
    "get the ext2/3/4 filesystem UUID",
    "\
 This returns the ext2/3/4 filesystem UUID of the filesystem on
@@ -3865,12 +3979,12 @@ This command disables the libguestfs appliance swap on file.");
 
   ("swapon_label", (RErr, [String "label"], []), 174, [],
    [InitEmpty, Always, TestRun (
-      [["part_disk"; "/dev/sdb"; "mbr"];
-       ["mkswap_L"; "swapit"; "/dev/sdb1"];
+      [["part_disk"; "/dev/sda"; "mbr"];
+       ["mkswap_L"; "swapit"; "/dev/sda1"];
        ["swapon_label"; "swapit"];
        ["swapoff_label"; "swapit"];
-       ["zero"; "/dev/sdb"];
-       ["blockdev_rereadpt"; "/dev/sdb"]])],
+       ["zero"; "/dev/sda"];
+       ["blockdev_rereadpt"; "/dev/sda"]])],
    "enable swap on labeled swap partition",
    "\
 This command enables swap to a labeled swap partition.
@@ -3886,7 +4000,7 @@ labeled swap partition.");
   ("swapon_uuid", (RErr, [String "uuid"], []), 176, [Optional "linuxfsuuid"],
    (let uuid = uuidgen () in
     [InitEmpty, Always, TestRun (
-       [["mkswap_U"; uuid; "/dev/sdb"];
+       [["mkswap_U"; uuid; "/dev/sdc"];
         ["swapon_uuid"; uuid];
         ["swapoff_uuid"; uuid]])]),
    "enable swap on swap partition by UUID",
@@ -5399,10 +5513,10 @@ error occurs.
 See also C<guestfs_download>, C<guestfs_pread>.");
 
   ("pwrite_device", (RInt "nbytes", [Device "device"; BufferIn "content"; Int64 "offset"], []), 275, [ProtocolLimitWarning],
-   [InitPartition, Always, TestOutputList (
+   [InitPartition, Always, TestOutputListOfDevices (
       [["pwrite_device"; "/dev/sda"; "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"; "446"];
        ["blockdev_rereadpt"; "/dev/sda"];
-       ["list_partitions"]], [])],
+       ["list_partitions"]], ["/dev/sdb1"])],
    "write to part of a device",
    "\
 This command writes to part of a device.  It writes the data