summaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2009-05-15 14:01:28 +0100
committerRichard W.M. Jones <rjones@redhat.com>2009-05-15 14:52:34 +0100
commit5cd39c83e23eb300d1bdfa806902a31b409ff420 (patch)
treea47e2bf9afc16cb9404ae996f512a9d3f22e553b /python
parentb8e5f51c79f539a740827506cc9da3ffcb6c87f8 (diff)
downloadlibguestfs-5cd39c83e23eb300d1bdfa806902a31b409ff420.tar.gz
libguestfs-5cd39c83e23eb300d1bdfa806902a31b409ff420.tar.xz
libguestfs-5cd39c83e23eb300d1bdfa806902a31b409ff420.zip
Add: pvresize, sfdisk-N, sfdisk-l, sfdisk-kernel-geomtry, sfdisk-disk-geometry commands. Pass --no-reread flag to sfdisk.
Diffstat (limited to 'python')
-rw-r--r--python/guestfs-py.c135
-rw-r--r--python/guestfs.py49
2 files changed, 184 insertions, 0 deletions
diff --git a/python/guestfs-py.c b/python/guestfs-py.c
index 8301c703..140594d2 100644
--- a/python/guestfs-py.c
+++ b/python/guestfs-py.c
@@ -3427,6 +3427,136 @@ py_guestfs_zerofree (PyObject *self, PyObject *args)
return py_r;
}
+static PyObject *
+py_guestfs_pvresize (PyObject *self, PyObject *args)
+{
+ PyObject *py_g;
+ guestfs_h *g;
+ PyObject *py_r;
+ int r;
+ const char *device;
+
+ if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_pvresize",
+ &py_g, &device))
+ return NULL;
+ g = get_handle (py_g);
+
+ r = guestfs_pvresize (g, device);
+ if (r == -1) {
+ PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
+ return NULL;
+ }
+
+ Py_INCREF (Py_None);
+ py_r = Py_None;
+ return py_r;
+}
+
+static PyObject *
+py_guestfs_sfdisk_N (PyObject *self, PyObject *args)
+{
+ PyObject *py_g;
+ guestfs_h *g;
+ PyObject *py_r;
+ int r;
+ const char *device;
+ int n;
+ int cyls;
+ int heads;
+ int sectors;
+ const char *line;
+
+ if (!PyArg_ParseTuple (args, (char *) "Osiiiis:guestfs_sfdisk_N",
+ &py_g, &device, &n, &cyls, &heads, &sectors, &line))
+ return NULL;
+ g = get_handle (py_g);
+
+ r = guestfs_sfdisk_N (g, device, n, cyls, heads, sectors, line);
+ if (r == -1) {
+ PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
+ return NULL;
+ }
+
+ Py_INCREF (Py_None);
+ py_r = Py_None;
+ return py_r;
+}
+
+static PyObject *
+py_guestfs_sfdisk_l (PyObject *self, PyObject *args)
+{
+ PyObject *py_g;
+ guestfs_h *g;
+ PyObject *py_r;
+ char *r;
+ const char *device;
+
+ if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_sfdisk_l",
+ &py_g, &device))
+ return NULL;
+ g = get_handle (py_g);
+
+ r = guestfs_sfdisk_l (g, device);
+ if (r == NULL) {
+ PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
+ return NULL;
+ }
+
+ py_r = PyString_FromString (r);
+ free (r);
+ return py_r;
+}
+
+static PyObject *
+py_guestfs_sfdisk_kernel_geometry (PyObject *self, PyObject *args)
+{
+ PyObject *py_g;
+ guestfs_h *g;
+ PyObject *py_r;
+ char *r;
+ const char *device;
+
+ if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_sfdisk_kernel_geometry",
+ &py_g, &device))
+ return NULL;
+ g = get_handle (py_g);
+
+ r = guestfs_sfdisk_kernel_geometry (g, device);
+ if (r == NULL) {
+ PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
+ return NULL;
+ }
+
+ py_r = PyString_FromString (r);
+ free (r);
+ return py_r;
+}
+
+static PyObject *
+py_guestfs_sfdisk_disk_geometry (PyObject *self, PyObject *args)
+{
+ PyObject *py_g;
+ guestfs_h *g;
+ PyObject *py_r;
+ char *r;
+ const char *device;
+
+ if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_sfdisk_disk_geometry",
+ &py_g, &device))
+ return NULL;
+ g = get_handle (py_g);
+
+ r = guestfs_sfdisk_disk_geometry (g, device);
+ if (r == NULL) {
+ PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
+ return NULL;
+ }
+
+ py_r = PyString_FromString (r);
+ free (r);
+ return py_r;
+}
+
static PyMethodDef methods[] = {
{ (char *) "create", py_guestfs_create, METH_VARARGS, NULL },
{ (char *) "close", py_guestfs_close, METH_VARARGS, NULL },
@@ -3551,6 +3681,11 @@ static PyMethodDef methods[] = {
{ (char *) "strings_e", py_guestfs_strings_e, METH_VARARGS, NULL },
{ (char *) "hexdump", py_guestfs_hexdump, METH_VARARGS, NULL },
{ (char *) "zerofree", py_guestfs_zerofree, METH_VARARGS, NULL },
+ { (char *) "pvresize", py_guestfs_pvresize, METH_VARARGS, NULL },
+ { (char *) "sfdisk_N", py_guestfs_sfdisk_N, METH_VARARGS, NULL },
+ { (char *) "sfdisk_l", py_guestfs_sfdisk_l, METH_VARARGS, NULL },
+ { (char *) "sfdisk_kernel_geometry", py_guestfs_sfdisk_kernel_geometry, METH_VARARGS, NULL },
+ { (char *) "sfdisk_disk_geometry", py_guestfs_sfdisk_disk_geometry, METH_VARARGS, NULL },
{ NULL, NULL, 0, NULL }
};
diff --git a/python/guestfs.py b/python/guestfs.py
index 044e1fac..8ac4037c 100644
--- a/python/guestfs.py
+++ b/python/guestfs.py
@@ -750,6 +750,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.
"""
@@ -1348,3 +1350,50 @@ class GuestFS:
"""
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)
+