Add 'append', LIBGUESTFS_APPEND to set additional kernel options.

This commit is contained in:
Richard W.M. Jones
2009-05-13 17:51:14 +01:00
parent 5b17af107f
commit e8ecc08f66
21 changed files with 466 additions and 2 deletions

View File

@@ -632,6 +632,54 @@ py_guestfs_get_path (PyObject *self, PyObject *args)
return py_r;
}
static PyObject *
py_guestfs_set_append (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
int r;
const char *append;
if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_set_append",
&py_g, &append))
return NULL;
g = get_handle (py_g);
r = guestfs_set_append (g, append);
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_get_append (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
const char *r;
if (!PyArg_ParseTuple (args, (char *) "O:guestfs_get_append",
&py_g))
return NULL;
g = get_handle (py_g);
r = guestfs_get_append (g);
if (r == NULL) {
PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
return NULL;
}
py_r = PyString_FromString (r);
return py_r;
}
static PyObject *
py_guestfs_set_autosync (PyObject *self, PyObject *args)
{
@@ -3367,6 +3415,8 @@ static PyMethodDef methods[] = {
{ (char *) "get_qemu", py_guestfs_get_qemu, METH_VARARGS, NULL },
{ (char *) "set_path", py_guestfs_set_path, METH_VARARGS, NULL },
{ (char *) "get_path", py_guestfs_get_path, METH_VARARGS, NULL },
{ (char *) "set_append", py_guestfs_set_append, METH_VARARGS, NULL },
{ (char *) "get_append", py_guestfs_get_append, METH_VARARGS, NULL },
{ (char *) "set_autosync", py_guestfs_set_autosync, METH_VARARGS, NULL },
{ (char *) "get_autosync", py_guestfs_get_autosync, METH_VARARGS, NULL },
{ (char *) "set_verbose", py_guestfs_set_verbose, METH_VARARGS, NULL },

View File

@@ -192,6 +192,30 @@ class GuestFS:
"""
return libguestfsmod.get_path (self._o)
def set_append (self, append):
u"""This function is used to add additional options to the
guest kernel command line.
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).
"""
return libguestfsmod.set_append (self._o, append)
def get_append (self):
u"""Return the additional kernel options which are added to
the guest kernel command line.
If "NULL" then no options are added.
"""
return libguestfsmod.get_append (self._o)
def set_autosync (self, autosync):
u"""If "autosync" is true, this enables autosync. Libguestfs
will make a best effort attempt to run "g.umount_all"