diff options
Diffstat (limited to 'python')
-rw-r--r-- | python/guestfs-py.c | 78 | ||||
-rw-r--r-- | python/guestfs.py | 39 |
2 files changed, 116 insertions, 1 deletions
diff --git a/python/guestfs-py.c b/python/guestfs-py.c index 60e20d2e..b1623fe5 100644 --- a/python/guestfs-py.c +++ b/python/guestfs-py.c @@ -4531,6 +4531,81 @@ py_guestfs_glob_expand (PyObject *self, PyObject *args) return py_r; } +static PyObject * +py_guestfs_scrub_device (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_scrub_device", + &py_g, &device)) + return NULL; + g = get_handle (py_g); + + r = guestfs_scrub_device (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_scrub_file (PyObject *self, PyObject *args) +{ + PyObject *py_g; + guestfs_h *g; + PyObject *py_r; + int r; + const char *file; + + if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_scrub_file", + &py_g, &file)) + return NULL; + g = get_handle (py_g); + + r = guestfs_scrub_file (g, file); + 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_scrub_freespace (PyObject *self, PyObject *args) +{ + PyObject *py_g; + guestfs_h *g; + PyObject *py_r; + int r; + const char *dir; + + if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_scrub_freespace", + &py_g, &dir)) + return NULL; + g = get_handle (py_g); + + r = guestfs_scrub_freespace (g, dir); + 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 PyMethodDef methods[] = { { (char *) "create", py_guestfs_create, METH_VARARGS, NULL }, { (char *) "close", py_guestfs_close, METH_VARARGS, NULL }, @@ -4699,6 +4774,9 @@ static PyMethodDef methods[] = { { (char *) "sh", py_guestfs_sh, METH_VARARGS, NULL }, { (char *) "sh_lines", py_guestfs_sh_lines, METH_VARARGS, NULL }, { (char *) "glob_expand", py_guestfs_glob_expand, METH_VARARGS, NULL }, + { (char *) "scrub_device", py_guestfs_scrub_device, METH_VARARGS, NULL }, + { (char *) "scrub_file", py_guestfs_scrub_file, METH_VARARGS, NULL }, + { (char *) "scrub_freespace", py_guestfs_scrub_freespace, METH_VARARGS, NULL }, { NULL, NULL, 0, NULL } }; diff --git a/python/guestfs.py b/python/guestfs.py index 39766109..0bc041e6 100644 --- a/python/guestfs.py +++ b/python/guestfs.py @@ -197,7 +197,7 @@ 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 @@ -1342,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) @@ -1667,3 +1669,38 @@ class GuestFS: """ 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) + |