Generated code for mknod, mkfifo, mknod_b, mknod_c, umask.
[libguestfs.git] / python / guestfs.py
index 4f32ae7..bb9bc08 100644 (file)
@@ -197,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)
 
@@ -207,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
@@ -381,6 +415,33 @@ class GuestFS:
         """
         return libguestfsmod.end_busy (self._o)
 
+    def set_memsize (self, memsize):
+        u"""This sets the memory size in megabytes allocated to the
+        qemu subprocess. This only has any effect if called
+        before "g.launch".
+        
+        You can also change this by setting the environment
+        variable "LIBGUESTFS_MEMSIZE" before the handle is
+        created.
+        
+        For more information on the architecture of libguestfs,
+        see guestfs(3).
+        """
+        return libguestfsmod.set_memsize (self._o, memsize)
+
+    def get_memsize (self):
+        u"""This gets the memory size in megabytes allocated to the
+        qemu subprocess.
+        
+        If "g.set_memsize" was not called on this handle, and if
+        "LIBGUESTFS_MEMSIZE" was not set, then this returns the
+        compiled-in default value for memsize.
+        
+        For more information on the architecture of libguestfs,
+        see guestfs(3).
+        """
+        return libguestfsmod.get_memsize (self._o)
+
     def mount (self, device, mountpoint):
         u"""Mount a guest disk at a position in the filesystem.
         Block devices are named "/dev/sda", "/dev/sdb" and so
@@ -913,7 +974,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.
@@ -943,6 +1006,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
@@ -1304,6 +1369,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)
 
@@ -1438,7 +1505,7 @@ class GuestFS:
         """
         return libguestfsmod.pvresize (self._o, device)
 
-    def sfdisk_N (self, device, n, cyls, heads, sectors, line):
+    def sfdisk_N (self, device, partnum, cyls, heads, sectors, line):
         u"""This runs sfdisk(8) option to modify just the single
         partition "n" (note: "n" counts from 1).
         
@@ -1448,7 +1515,7 @@ class GuestFS:
         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)
+        return libguestfsmod.sfdisk_N (self._o, device, partnum, cyls, heads, sectors, line)
 
     def sfdisk_l (self, device):
         u"""This displays the partition table on "device", in the
@@ -1565,3 +1632,325 @@ class GuestFS:
         """
         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)
+
+    def mkdtemp (self, template):
+        u"""This command creates a temporary directory. The
+        "template" parameter should be a full pathname for the
+        temporary directory name with the final six characters
+        being "XXXXXX".
+        
+        For example: "/tmp/myprogXXXXXX" or
+        "/Temp/myprogXXXXXX", the second one being suitable for
+        Windows filesystems.
+        
+        The name of the temporary directory that was created is
+        returned.
+        
+        The temporary directory is created with mode 0700 and is
+        owned by root.
+        
+        The caller is responsible for deleting the temporary
+        directory and its contents after use.
+        
+        See also: mkdtemp(3)
+        """
+        return libguestfsmod.mkdtemp (self._o, template)
+
+    def wc_l (self, path):
+        u"""This command counts the lines in a file, using the "wc
+        -l" external command.
+        """
+        return libguestfsmod.wc_l (self._o, path)
+
+    def wc_w (self, path):
+        u"""This command counts the words in a file, using the "wc
+        -w" external command.
+        """
+        return libguestfsmod.wc_w (self._o, path)
+
+    def wc_c (self, path):
+        u"""This command counts the characters in a file, using the
+        "wc -c" external command.
+        """
+        return libguestfsmod.wc_c (self._o, path)
+
+    def head (self, path):
+        u"""This command returns up to the first 10 lines of a file
+        as a list of strings.
+        
+        This function returns a list of strings.
+        
+        Because of the message protocol, there is a transfer
+        limit of somewhere between 2MB and 4MB. To transfer
+        large files you should use FTP.
+        """
+        return libguestfsmod.head (self._o, path)
+
+    def head_n (self, nrlines, path):
+        u"""If the parameter "nrlines" is a positive number, this
+        returns the first "nrlines" lines of the file "path".
+        
+        If the parameter "nrlines" is a negative number, this
+        returns lines from the file "path", excluding the last
+        "nrlines" lines.
+        
+        If the parameter "nrlines" is zero, this returns an
+        empty list.
+        
+        This function returns a list of strings.
+        
+        Because of the message protocol, there is a transfer
+        limit of somewhere between 2MB and 4MB. To transfer
+        large files you should use FTP.
+        """
+        return libguestfsmod.head_n (self._o, nrlines, path)
+
+    def tail (self, path):
+        u"""This command returns up to the last 10 lines of a file
+        as a list of strings.
+        
+        This function returns a list of strings.
+        
+        Because of the message protocol, there is a transfer
+        limit of somewhere between 2MB and 4MB. To transfer
+        large files you should use FTP.
+        """
+        return libguestfsmod.tail (self._o, path)
+
+    def tail_n (self, nrlines, path):
+        u"""If the parameter "nrlines" is a positive number, this
+        returns the last "nrlines" lines of the file "path".
+        
+        If the parameter "nrlines" is a negative number, this
+        returns lines from the file "path", starting with the
+        "-nrlines"th line.
+        
+        If the parameter "nrlines" is zero, this returns an
+        empty list.
+        
+        This function returns a list of strings.
+        
+        Because of the message protocol, there is a transfer
+        limit of somewhere between 2MB and 4MB. To transfer
+        large files you should use FTP.
+        """
+        return libguestfsmod.tail_n (self._o, nrlines, path)
+
+    def df (self):
+        u"""This command runs the "df" command to report disk space
+        used.
+        
+        This command is mostly useful for interactive sessions.
+        It is *not* intended that you try to parse the output
+        string. Use "statvfs" from programs.
+        """
+        return libguestfsmod.df (self._o)
+
+    def df_h (self):
+        u"""This command runs the "df -h" command to report disk
+        space used in human-readable format.
+        
+        This command is mostly useful for interactive sessions.
+        It is *not* intended that you try to parse the output
+        string. Use "statvfs" from programs.
+        """
+        return libguestfsmod.df_h (self._o)
+
+    def du (self, path):
+        u"""This command runs the "du -s" command to estimate file
+        space usage for "path".
+        
+        "path" can be a file or a directory. If "path" is a
+        directory then the estimate includes the contents of the
+        directory and all subdirectories (recursively).
+        
+        The result is the estimated size in *kilobytes* (ie.
+        units of 1024 bytes).
+        """
+        return libguestfsmod.du (self._o, path)
+
+    def initrd_list (self, path):
+        u"""This command lists out files contained in an initrd.
+        
+        The files are listed without any initial "/" character.
+        The files are listed in the order they appear (not
+        necessarily alphabetical). Directory names are listed as
+        separate items.
+        
+        Old Linux kernels (2.4 and earlier) used a compressed
+        ext2 filesystem as initrd. We *only* support the newer
+        initramfs format (compressed cpio files).
+        
+        This function returns a list of strings.
+        """
+        return libguestfsmod.initrd_list (self._o, path)
+
+    def mount_loop (self, file, mountpoint):
+        u"""This command lets you mount "file" (a filesystem image
+        in a file) on a mount point. It is entirely equivalent
+        to the command "mount -o loop file mountpoint".
+        """
+        return libguestfsmod.mount_loop (self._o, file, mountpoint)
+
+    def mkswap (self, device):
+        u"""Create a swap partition on "device".
+        """
+        return libguestfsmod.mkswap (self._o, device)
+
+    def mkswap_L (self, label, device):
+        u"""Create a swap partition on "device" with label "label".
+        """
+        return libguestfsmod.mkswap_L (self._o, label, device)
+
+    def mkswap_U (self, uuid, device):
+        u"""Create a swap partition on "device" with UUID "uuid".
+        """
+        return libguestfsmod.mkswap_U (self._o, uuid, device)
+
+    def mknod (self, mode, devmajor, devminor, path):
+        u"""This call creates block or character special devices, or
+        named pipes (FIFOs).
+        
+        The "mode" parameter should be the mode, using the
+        standard constants. "devmajor" and "devminor" are the
+        device major and minor numbers, only used when creating
+        block and character special devices.
+        """
+        return libguestfsmod.mknod (self._o, mode, devmajor, devminor, path)
+
+    def mkfifo (self, mode, path):
+        u"""This call creates a FIFO (named pipe) called "path" with
+        mode "mode". It is just a convenient wrapper around
+        "g.mknod".
+        """
+        return libguestfsmod.mkfifo (self._o, mode, path)
+
+    def mknod_b (self, mode, devmajor, devminor, path):
+        u"""This call creates a block device node called "path" with
+        mode "mode" and device major/minor "devmajor" and
+        "devminor". It is just a convenient wrapper around
+        "g.mknod".
+        """
+        return libguestfsmod.mknod_b (self._o, mode, devmajor, devminor, path)
+
+    def mknod_c (self, mode, devmajor, devminor, path):
+        u"""This call creates a char device node called "path" with
+        mode "mode" and device major/minor "devmajor" and
+        "devminor". It is just a convenient wrapper around
+        "g.mknod".
+        """
+        return libguestfsmod.mknod_c (self._o, mode, devmajor, devminor, path)
+
+    def umask (self, mask):
+        u"""This function sets the mask used for creating new files
+        and device nodes to "mask & 0777".
+        
+        Typical umask values would be 022 which creates new
+        files with permissions like "-rw-r--r--" or
+        "-rwxr-xr-x", and 002 which creates new files with
+        permissions like "-rw-rw-r--" or "-rwxrwxr-x".
+        
+        See also umask(2), "g.mknod", "g.mkdir".
+        
+        This call returns the previous umask.
+        """
+        return libguestfsmod.umask (self._o, mask)
+