Generated code for 'scrub-*' commands.
[libguestfs.git] / python / guestfs.py
index 324dea5..0bc041e 100644 (file)
@@ -78,6 +78,87 @@ class GuestFS:
     def __del__ (self):
         libguestfsmod.close (self._o)
 
+    def test0 (self, str, optstr, strlist, b, integer, filein, fileout):
+        return libguestfsmod.test0 (self._o, str, optstr, strlist, b, integer, filein, fileout)
+
+    def test0rint (self, val):
+        return libguestfsmod.test0rint (self._o, val)
+
+    def test0rinterr (self):
+        return libguestfsmod.test0rinterr (self._o)
+
+    def test0rint64 (self, val):
+        return libguestfsmod.test0rint64 (self._o, val)
+
+    def test0rint64err (self):
+        return libguestfsmod.test0rint64err (self._o)
+
+    def test0rbool (self, val):
+        return libguestfsmod.test0rbool (self._o, val)
+
+    def test0rboolerr (self):
+        return libguestfsmod.test0rboolerr (self._o)
+
+    def test0rconststring (self, val):
+        return libguestfsmod.test0rconststring (self._o, val)
+
+    def test0rconststringerr (self):
+        return libguestfsmod.test0rconststringerr (self._o)
+
+    def test0rstring (self, val):
+        return libguestfsmod.test0rstring (self._o, val)
+
+    def test0rstringerr (self):
+        return libguestfsmod.test0rstringerr (self._o)
+
+    def test0rstringlist (self, val):
+        return libguestfsmod.test0rstringlist (self._o, val)
+
+    def test0rstringlisterr (self):
+        return libguestfsmod.test0rstringlisterr (self._o)
+
+    def test0rintbool (self, val):
+        return libguestfsmod.test0rintbool (self._o, val)
+
+    def test0rintboolerr (self):
+        return libguestfsmod.test0rintboolerr (self._o)
+
+    def test0rpvlist (self, val):
+        return libguestfsmod.test0rpvlist (self._o, val)
+
+    def test0rpvlisterr (self):
+        return libguestfsmod.test0rpvlisterr (self._o)
+
+    def test0rvglist (self, val):
+        return libguestfsmod.test0rvglist (self._o, val)
+
+    def test0rvglisterr (self):
+        return libguestfsmod.test0rvglisterr (self._o)
+
+    def test0rlvlist (self, val):
+        return libguestfsmod.test0rlvlist (self._o, val)
+
+    def test0rlvlisterr (self):
+        return libguestfsmod.test0rlvlisterr (self._o)
+
+    def test0rstat (self, val):
+        return libguestfsmod.test0rstat (self._o, val)
+
+    def test0rstaterr (self):
+        return libguestfsmod.test0rstaterr (self._o)
+
+    def test0rstatvfs (self, val):
+        return libguestfsmod.test0rstatvfs (self._o, val)
+
+    def test0rstatvfserr (self):
+        return libguestfsmod.test0rstatvfserr (self._o)
+
+    def test0rhashtable (self, val):
+        return libguestfsmod.test0rhashtable (self._o, val)
+
+    def test0rhashtableerr (self):
+        return libguestfsmod.test0rhashtableerr (self._o)
+
     def launch (self):
         u"""Internally libguestfs is implemented by running a
         virtual machine using qemu(1).
@@ -116,7 +197,13 @@ class GuestFS:
         to modify the image).
         
         This is equivalent to the qemu parameter "-drive
-        file=filename".
+        file=filename,cache=off".
+        
+        Note that this call checks for the existence of
+        "filename". This stops you from specifying other types
+        of drive which are supported by qemu such as "nbd:" and
+        "http:" URLs. To specify those, use the general
+        "g.config" call instead.
         """
         return libguestfsmod.add_drive (self._o, filename)
 
@@ -126,9 +213,37 @@ class GuestFS:
         
         This is equivalent to the qemu parameter "-cdrom
         filename".
+        
+        Note that this call checks for the existence of
+        "filename". This stops you from specifying other types
+        of drive which are supported by qemu such as "nbd:" and
+        "http:" URLs. To specify those, use the general
+        "g.config" call instead.
         """
         return libguestfsmod.add_cdrom (self._o, filename)
 
+    def add_drive_ro (self, filename):
+        u"""This adds a drive in snapshot mode, making it
+        effectively read-only.
+        
+        Note that writes to the device are allowed, and will be
+        seen for the duration of the guestfs handle, but they
+        are written to a temporary file which is discarded as
+        soon as the guestfs handle is closed. We don't currently
+        have any method to enable changes to be committed,
+        although qemu can support this.
+        
+        This is equivalent to the qemu parameter "-drive
+        file=filename,snapshot=on".
+        
+        Note that this call checks for the existence of
+        "filename". This stops you from specifying other types
+        of drive which are supported by qemu such as "nbd:" and
+        "http:" URLs. To specify those, use the general
+        "g.config" call instead.
+        """
+        return libguestfsmod.add_drive_ro (self._o, filename)
+
     def config (self, qemuparam, qemuvalue):
         u"""This can be used to add arbitrary qemu command line
         parameters of the form "-param value". Actually it's not
@@ -152,10 +267,6 @@ class GuestFS:
         You can also override this by setting the
         "LIBGUESTFS_QEMU" environment variable.
         
-        The string "qemu" is stashed in the libguestfs handle,
-        so the caller must make sure it remains valid for the
-        lifetime of the handle.
-        
         Setting "qemu" to "NULL" restores the default qemu
         binary.
         """
@@ -176,10 +287,6 @@ class GuestFS:
         The default is "$libdir/guestfs" unless overridden by
         setting "LIBGUESTFS_PATH" environment variable.
         
-        The string "path" is stashed in the libguestfs handle,
-        so the caller must make sure it remains valid for the
-        lifetime of the handle.
-        
         Setting "path" to "NULL" restores the default path.
         """
         return libguestfsmod.set_path (self._o, path)
@@ -199,10 +306,6 @@ class GuestFS:
         The default is "NULL" unless overridden by setting
         "LIBGUESTFS_APPEND" environment variable.
         
-        The string "append" is stashed in the libguestfs handle,
-        so the caller must make sure it remains valid for the
-        lifetime of the handle.
-        
         Setting "append" to "NULL" means *no* additional options
         are passed (libguestfs always adds a few of its own).
         """
@@ -762,6 +865,8 @@ class GuestFS:
         you would pass "lines" as a single element list, when
         the single element being the string "," (comma).
         
+        See also: "g.sfdisk_l", "g.sfdisk_N"
+        
         This command is dangerous. Without careful use you can
         easily destroy all your data.
         """
@@ -842,7 +947,9 @@ class GuestFS:
         The single parameter is an argv-style list of arguments.
         The first element is the name of the program to run.
         Subsequent elements are parameters. The list must be
-        non-empty (ie. must contain a program name).
+        non-empty (ie. must contain a program name). Note that
+        the command runs directly, and is *not* invoked via the
+        shell (see "g.sh").
         
         The return value is anything printed to *stdout* by the
         command.
@@ -872,6 +979,8 @@ class GuestFS:
         u"""This is the same as "g.command", but splits the result
         into a list of lines.
         
+        See also: "g.sh_lines"
+        
         This function returns a list of strings.
         
         Because of the message protocol, there is a transfer
@@ -1233,6 +1342,8 @@ class GuestFS:
         *not* enough to securely wipe the device). It should be
         sufficient to remove any partition tables, filesystem
         superblocks and so on.
+        
+        See also: "g.scrub_device".
         """
         return libguestfsmod.zero (self._o, device)
 
@@ -1346,3 +1457,250 @@ class GuestFS:
         """
         return libguestfsmod.hexdump (self._o, path)
 
+    def zerofree (self, device):
+        u"""This runs the *zerofree* program on "device". This
+        program claims to zero unused inodes and disk blocks on
+        an ext2/3 filesystem, thus making it possible to
+        compress the filesystem more effectively.
+        
+        You should not run this program if the filesystem is
+        mounted.
+        
+        It is possible that using this program can damage the
+        filesystem or data on the filesystem.
+        """
+        return libguestfsmod.zerofree (self._o, device)
+
+    def pvresize (self, device):
+        u"""This resizes (expands or shrinks) an existing LVM
+        physical volume to match the new size of the underlying
+        device.
+        """
+        return libguestfsmod.pvresize (self._o, device)
+
+    def sfdisk_N (self, device, n, cyls, heads, sectors, line):
+        u"""This runs sfdisk(8) option to modify just the single
+        partition "n" (note: "n" counts from 1).
+        
+        For other parameters, see "g.sfdisk". You should usually
+        pass 0 for the cyls/heads/sectors parameters.
+        
+        This command is dangerous. Without careful use you can
+        easily destroy all your data.
+        """
+        return libguestfsmod.sfdisk_N (self._o, device, n, cyls, heads, sectors, line)
+
+    def sfdisk_l (self, device):
+        u"""This displays the partition table on "device", in the
+        human-readable output of the sfdisk(8) command. It is
+        not intended to be parsed.
+        """
+        return libguestfsmod.sfdisk_l (self._o, device)
+
+    def sfdisk_kernel_geometry (self, device):
+        u"""This displays the kernel's idea of the geometry of
+        "device".
+        
+        The result is in human-readable format, and not designed
+        to be parsed.
+        """
+        return libguestfsmod.sfdisk_kernel_geometry (self._o, device)
+
+    def sfdisk_disk_geometry (self, device):
+        u"""This displays the disk geometry of "device" read from
+        the partition table. Especially in the case where the
+        underlying block device has been resized, this can be
+        different from the kernel's idea of the geometry (see
+        "g.sfdisk_kernel_geometry").
+        
+        The result is in human-readable format, and not designed
+        to be parsed.
+        """
+        return libguestfsmod.sfdisk_disk_geometry (self._o, device)
+
+    def vg_activate_all (self, activate):
+        u"""This command activates or (if "activate" is false)
+        deactivates all logical volumes in all volume groups. If
+        activated, then they are made known to the kernel, ie.
+        they appear as "/dev/mapper" devices. If deactivated,
+        then those devices disappear.
+        
+        This command is the same as running "vgchange -a y|n"
+        """
+        return libguestfsmod.vg_activate_all (self._o, activate)
+
+    def vg_activate (self, activate, volgroups):
+        u"""This command activates or (if "activate" is false)
+        deactivates all logical volumes in the listed volume
+        groups "volgroups". If activated, then they are made
+        known to the kernel, ie. they appear as "/dev/mapper"
+        devices. If deactivated, then those devices disappear.
+        
+        This command is the same as running "vgchange -a y|n
+        volgroups..."
+        
+        Note that if "volgroups" is an empty list then all
+        volume groups are activated or deactivated.
+        """
+        return libguestfsmod.vg_activate (self._o, activate, volgroups)
+
+    def lvresize (self, device, mbytes):
+        u"""This resizes (expands or shrinks) an existing LVM
+        logical volume to "mbytes". When reducing, data in the
+        reduced part is lost.
+        """
+        return libguestfsmod.lvresize (self._o, device, mbytes)
+
+    def resize2fs (self, device):
+        u"""This resizes an ext2 or ext3 filesystem to match the
+        size of the underlying device.
+        
+        *Note:* It is sometimes required that you run
+        "g.e2fsck_f" on the "device" before calling this
+        command. For unknown reasons "resize2fs" sometimes gives
+        an error about this and sometimes not. In any case, it
+        is always safe to call "g.e2fsck_f" before calling this
+        function.
+        """
+        return libguestfsmod.resize2fs (self._o, device)
+
+    def find (self, directory):
+        u"""This command lists out all files and directories,
+        recursively, starting at "directory". It is essentially
+        equivalent to running the shell command "find directory
+        -print" but some post-processing happens on the output,
+        described below.
+        
+        This returns a list of strings *without any prefix*.
+        Thus if the directory structure was:
+        
+        /tmp/a
+        /tmp/b
+        /tmp/c/d
+        
+        then the returned list from "g.find" "/tmp" would be 4
+        elements:
+        
+        a
+        b
+        c
+        c/d
+        
+        If "directory" is not a directory, then this command
+        returns an error.
+        
+        The returned list is sorted.
+        
+        This function returns a list of strings.
+        """
+        return libguestfsmod.find (self._o, directory)
+
+    def e2fsck_f (self, device):
+        u"""This runs "e2fsck -p -f device", ie. runs the ext2/ext3
+        filesystem checker on "device", noninteractively ("-p"),
+        even if the filesystem appears to be clean ("-f").
+        
+        This command is only needed because of "g.resize2fs"
+        (q.v.). Normally you should use "g.fsck".
+        """
+        return libguestfsmod.e2fsck_f (self._o, device)
+
+    def sleep (self, secs):
+        u"""Sleep for "secs" seconds.
+        """
+        return libguestfsmod.sleep (self._o, secs)
+
+    def ntfs_3g_probe (self, rw, device):
+        u"""This command runs the ntfs-3g.probe(8) command which
+        probes an NTFS "device" for mountability. (Not all NTFS
+        volumes can be mounted read-write, and some cannot be
+        mounted at all).
+        
+        "rw" is a boolean flag. Set it to true if you want to
+        test if the volume can be mounted read-write. Set it to
+        false if you want to test if the volume can be mounted
+        read-only.
+        
+        The return value is an integer which 0 if the operation
+        would succeed, or some non-zero value documented in the
+        ntfs-3g.probe(8) manual page.
+        """
+        return libguestfsmod.ntfs_3g_probe (self._o, rw, device)
+
+    def sh (self, command):
+        u"""This call runs a command from the guest filesystem via
+        the guest's "/bin/sh".
+        
+        This is like "g.command", but passes the command to:
+        
+        /bin/sh -c "command"
+        
+        Depending on the guest's shell, this usually results in
+        wildcards being expanded, shell expressions being
+        interpolated and so on.
+        
+        All the provisos about "g.command" apply to this call.
+        """
+        return libguestfsmod.sh (self._o, command)
+
+    def sh_lines (self, command):
+        u"""This is the same as "g.sh", but splits the result into a
+        list of lines.
+        
+        See also: "g.command_lines"
+        
+        This function returns a list of strings.
+        """
+        return libguestfsmod.sh_lines (self._o, command)
+
+    def glob_expand (self, pattern):
+        u"""This command searches for all the pathnames matching
+        "pattern" according to the wildcard expansion rules used
+        by the shell.
+        
+        If no paths match, then this returns an empty list
+        (note: not an error).
+        
+        It is just a wrapper around the C glob(3) function with
+        flags "GLOB_MARK|GLOB_BRACE". See that manual page for
+        more details.
+        
+        This function returns a list of strings.
+        """
+        return libguestfsmod.glob_expand (self._o, pattern)
+
+    def scrub_device (self, device):
+        u"""This command writes patterns over "device" to make data
+        retrieval more difficult.
+        
+        It is an interface to the scrub(1) program. See that
+        manual page for more details.
+        
+        This command is dangerous. Without careful use you can
+        easily destroy all your data.
+        """
+        return libguestfsmod.scrub_device (self._o, device)
+
+    def scrub_file (self, file):
+        u"""This command writes patterns over a file to make data
+        retrieval more difficult.
+        
+        The file is *removed* after scrubbing.
+        
+        It is an interface to the scrub(1) program. See that
+        manual page for more details.
+        """
+        return libguestfsmod.scrub_file (self._o, file)
+
+    def scrub_freespace (self, dir):
+        u"""This command creates the directory "dir" and then fills
+        it with files until the filesystem is full, and scrubs
+        the files as for "g.scrub_file", and deletes them. The
+        intention is to scrub any free space on the partition
+        containing "dir".
+        
+        It is an interface to the scrub(1) program. See that
+        manual page for more details.
+        """
+        return libguestfsmod.scrub_freespace (self._o, dir)
+