/* libguestfs generated file
* WARNING: THIS FILE IS GENERATED BY 'src/generator.ml'.
* ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
*
* Copyright (C) 2009 Red Hat Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <Python.h>
#include "guestfs.h"
typedef struct {
PyObject_HEAD
guestfs_h *g;
} Pyguestfs_Object;
static guestfs_h *
get_handle (PyObject *obj)
{
assert (obj);
assert (obj != Py_None);
return ((Pyguestfs_Object *) obj)->g;
}
static PyObject *
put_handle (guestfs_h *g)
{
assert (g);
return
PyCObject_FromVoidPtrAndDesc ((void *) g, (char *) "guestfs_h", NULL);
}
/* This list should be freed (but not the strings) after use. */
static const char **
get_string_list (PyObject *obj)
{
int i, len;
const char **r;
assert (obj);
if (!PyList_Check (obj)) {
PyErr_SetString (PyExc_RuntimeError, "expecting a list parameter");
return NULL;
}
len = PyList_Size (obj);
r = malloc (sizeof (char *) * (len+1));
if (r == NULL) {
PyErr_SetString (PyExc_RuntimeError, "get_string_list: out of memory");
return NULL;
}
for (i = 0; i < len; ++i)
r[i] = PyString_AsString (PyList_GetItem (obj, i));
r[len] = NULL;
return r;
}
static PyObject *
put_string_list (char * const * const argv)
{
PyObject *list;
int argc, i;
for (argc = 0; argv[argc] != NULL; ++argc)
;
list = PyList_New (argc);
for (i = 0; i < argc; ++i)
PyList_SetItem (list, i, PyString_FromString (argv[i]));
return list;
}
static PyObject *
put_table (char * const * const argv)
{
PyObject *list, *item;
int argc, i;
for (argc = 0; argv[argc] != NULL; ++argc)
;
list = PyList_New (argc >> 1);
for (i = 0; i < argc; i += 2) {
item = PyTuple_New (2);
PyTuple_SetItem (item, 0, PyString_FromString (argv[i]));
PyTuple_SetItem (item, 1, PyString_FromString (argv[i+1]));
PyList_SetItem (list, i >> 1, item);
}
return list;
}
static void
free_strings (char **argv)
{
int argc;
for (argc = 0; argv[argc] != NULL; ++argc)
free (argv[argc]);
free (argv);
}
static PyObject *
py_guestfs_create (PyObject *self, PyObject *args)
{
guestfs_h *g;
g = guestfs_create ();
if (g == NULL) {
PyErr_SetString (PyExc_RuntimeError,
"guestfs.create: failed to allocate handle");
return NULL;
}
guestfs_set_error_handler (g, NULL, NULL);
return put_handle (g);
}
static PyObject *
py_guestfs_close (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
if (!PyArg_ParseTuple (args, (char *) "O:guestfs_close", &py_g))
return NULL;
g = get_handle (py_g);
guestfs_close (g);
Py_INCREF (Py_None);
return Py_None;
}
static PyObject *
put_lvm_pv (struct guestfs_lvm_pv *pv)
{
PyObject *dict;
dict = PyDict_New ();
PyDict_SetItemString (dict, "pv_name",
PyString_FromString (pv->pv_name));
PyDict_SetItemString (dict, "pv_uuid",
PyString_FromStringAndSize (pv->pv_uuid, 32));
PyDict_SetItemString (dict, "pv_fmt",
PyString_FromString (pv->pv_fmt));
PyDict_SetItemString (dict, "pv_size",
PyLong_FromUnsignedLongLong (pv->pv_size));
PyDict_SetItemString (dict, "dev_size",
PyLong_FromUnsignedLongLong (pv->dev_size));
PyDict_SetItemString (dict, "pv_free",
PyLong_FromUnsignedLongLong (pv->pv_free));
PyDict_SetItemString (dict, "pv_used",
PyLong_FromUnsignedLongLong (pv->pv_used));
PyDict_SetItemString (dict, "pv_attr",
PyString_FromString (pv->pv_attr));
PyDict_SetItemString (dict, "pv_pe_count",
PyLong_FromLongLong (pv->pv_pe_count));
PyDict_SetItemString (dict, "pv_pe_alloc_count",
PyLong_FromLongLong (pv->pv_pe_alloc_count));
PyDict_SetItemString (dict, "pv_tags",
PyString_FromString (pv->pv_tags));
PyDict_SetItemString (dict, "pe_start",
PyLong_FromUnsignedLongLong (pv->pe_start));
PyDict_SetItemString (dict, "pv_mda_count",
PyLong_FromLongLong (pv->pv_mda_count));
PyDict_SetItemString (dict, "pv_mda_free",
PyLong_FromUnsignedLongLong (pv->pv_mda_free));
return dict;
};
static PyObject *
put_lvm_pv_list (struct guestfs_lvm_pv_list *pvs)
{
PyObject *list;
int i;
list = PyList_New (pvs->len);
for (i = 0; i < pvs->len; ++i)
PyList_SetItem (list, i, put_lvm_pv (&pvs->val[i]));
return list;
};
static PyObject *
put_lvm_vg (struct guestfs_lvm_vg *vg)
{
PyObject *dict;
dict = PyDict_New ();
PyDict_SetItemString (dict, "vg_name",
PyString_FromString (vg->vg_name));
PyDict_SetItemString (dict, "vg_uuid",
PyString_FromStringAndSize (vg->vg_uuid, 32));
PyDict_SetItemString (dict, "vg_fmt",
PyString_FromString (vg->vg_fmt));
PyDict_SetItemString (dict, "vg_attr",
PyString_FromString (vg->vg_attr));
PyDict_SetItemString (dict, "vg_size",
PyLong_FromUnsignedLongLong (vg->vg_size));
PyDict_SetItemString (dict, "vg_free",
PyLong_FromUnsignedLongLong (vg->vg_free));
PyDict_SetItemString (dict, "vg_sysid",
PyString_FromString (vg->vg_sysid));
PyDict_SetItemString (dict, "vg_extent_size",
PyLong_FromUnsignedLongLong (vg->vg_extent_size));
PyDict_SetItemString (dict, "vg_extent_count",
PyLong_FromLongLong (vg->vg_extent_count));
PyDict_SetItemString (dict, "vg_free_count",
PyLong_FromLongLong (vg->vg_free_count));
PyDict_SetItemString (dict, "max_lv",
PyLong_FromLongLong (vg->max_lv));
PyDict_SetItemString (dict, "max_pv",
PyLong_FromLongLong (vg->max_pv));
PyDict_SetItemString (dict, "pv_count",
PyLong_FromLongLong (vg->pv_count));
PyDict_SetItemString (dict, "lv_count",
PyLong_FromLongLong (vg->lv_count));
PyDict_SetItemString (dict, "snap_count",
PyLong_FromLongLong (vg->snap_count));
PyDict_SetItemString (dict, "vg_seqno",
PyLong_FromLongLong (vg->vg_seqno));
PyDict_SetItemString (dict, "vg_tags",
PyString_FromString (vg->vg_tags));
PyDict_SetItemString (dict, "vg_mda_count",
PyLong_FromLongLong (vg->vg_mda_count));
PyDict_SetItemString (dict, "vg_mda_free",
PyLong_FromUnsignedLongLong (vg->vg_mda_free));
return dict;
};
static PyObject *
put_lvm_vg_list (struct guestfs_lvm_vg_list *vgs)
{
PyObject *list;
int i;
list = PyList_New (vgs->len);
for (i = 0; i < vgs->len; ++i)
PyList_SetItem (list, i, put_lvm_vg (&vgs->val[i]));
return list;
};
static PyObject *
put_lvm_lv (struct guestfs_lvm_lv *lv)
{
PyObject *dict;
dict = PyDict_New ();
PyDict_SetItemString (dict, "lv_name",
PyString_FromString (lv->lv_name));
PyDict_SetItemString (dict, "lv_uuid",
PyString_FromStringAndSize (lv->lv_uuid, 32));
PyDict_SetItemString (dict, "lv_attr",
PyString_FromString (lv->lv_attr));
PyDict_SetItemString (dict, "lv_major",
PyLong_FromLongLong (lv->lv_major));
PyDict_SetItemString (dict, "lv_minor",
PyLong_FromLongLong (lv->lv_minor));
PyDict_SetItemString (dict, "lv_kernel_major",
PyLong_FromLongLong (lv->lv_kernel_major));
PyDict_SetItemString (dict, "lv_kernel_minor",
PyLong_FromLongLong (lv->lv_kernel_minor));
PyDict_SetItemString (dict, "lv_size",
PyLong_FromUnsignedLongLong (lv->lv_size));
PyDict_SetItemString (dict, "seg_count",
PyLong_FromLongLong (lv->seg_count));
PyDict_SetItemString (dict, "origin",
PyString_FromString (lv->origin));
if (lv->snap_percent >= 0)
PyDict_SetItemString (dict, "snap_percent",
PyFloat_FromDouble ((double) lv->snap_percent));
else {
Py_INCREF (Py_None);
PyDict_SetItemString (dict, "snap_percent", Py_None); }
if (lv->copy_percent >= 0)
PyDict_SetItemString (dict, "copy_percent",
PyFloat_FromDouble ((double) lv->copy_percent));
else {
Py_INCREF (Py_None);
PyDict_SetItemString (dict, "copy_percent", Py_None); }
PyDict_SetItemString (dict, "move_pv",
PyString_FromString (lv->move_pv));
PyDict_SetItemString (dict, "lv_tags",
PyString_FromString (lv->lv_tags));
PyDict_SetItemString (dict, "mirror_log",
PyString_FromString (lv->mirror_log));
PyDict_SetItemString (dict, "modules",
PyString_FromString (lv->modules));
return dict;
};
static PyObject *
put_lvm_lv_list (struct guestfs_lvm_lv_list *lvs)
{
PyObject *list;
int i;
list = PyList_New (lvs->len);
for (i = 0; i < lvs->len; ++i)
PyList_SetItem (list, i, put_lvm_lv (&lvs->val[i]));
return list;
};
static PyObject *
put_stat (struct guestfs_stat *stat)
{
PyObject *dict;
dict = PyDict_New ();
PyDict_SetItemString (dict, "dev",
PyLong_FromLongLong (stat->dev));
PyDict_SetItemString (dict, "ino",
PyLong_FromLongLong (stat->ino));
PyDict_SetItemString (dict, "mode",
PyLong_FromLongLong (stat->mode));
PyDict_SetItemString (dict, "nlink",
PyLong_FromLongLong (stat->nlink));
PyDict_SetItemString (dict, "uid",
PyLong_FromLongLong (stat->uid));
PyDict_SetItemString (dict, "gid",
PyLong_FromLongLong (stat->gid));
PyDict_SetItemString (dict, "rdev",
PyLong_FromLongLong (stat->rdev));
PyDict_SetItemString (dict, "size",
PyLong_FromLongLong (stat->size));
PyDict_SetItemString (dict, "blksize",
PyLong_FromLongLong (stat->blksize));
PyDict_SetItemString (dict, "blocks",
PyLong_FromLongLong (stat->blocks));
PyDict_SetItemString (dict, "atime",
PyLong_FromLongLong (stat->atime));
PyDict_SetItemString (dict, "mtime",
PyLong_FromLongLong (stat->mtime));
PyDict_SetItemString (dict, "ctime",
PyLong_FromLongLong (stat->ctime));
return dict;
};
static PyObject *
put_statvfs (struct guestfs_statvfs *statvfs)
{
PyObject *dict;
dict = PyDict_New ();
PyDict_SetItemString (dict, "bsize",
PyLong_FromLongLong (statvfs->bsize));
PyDict_SetItemString (dict, "frsize",
PyLong_FromLongLong (statvfs->frsize));
PyDict_SetItemString (dict, "blocks",
PyLong_FromLongLong (statvfs->blocks));
PyDict_SetItemString (dict, "bfree",
PyLong_FromLongLong (statvfs->bfree));
PyDict_SetItemString (dict, "bavail",
PyLong_FromLongLong (statvfs->bavail));
PyDict_SetItemString (dict, "files",
PyLong_FromLongLong (statvfs->files));
PyDict_SetItemString (dict, "ffree",
PyLong_FromLongLong (statvfs->ffree));
PyDict_SetItemString (dict, "favail",
PyLong_FromLongLong (statvfs->favail));
PyDict_SetItemString (dict, "fsid",
PyLong_FromLongLong (statvfs->fsid));
PyDict_SetItemString (dict, "flag",
PyLong_FromLongLong (statvfs->flag));
PyDict_SetItemString (dict, "namemax",
PyLong_FromLongLong (statvfs->namemax));
return dict;
};
static PyObject *
py_guestfs_test0 (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
int r;
const char *str;
const char *optstr;
PyObject *py_strlist;
const char **strlist;
int b;
int integer;
const char *filein;
const char *fileout;
if (!PyArg_ParseTuple (args, (char *) "OszOiiss:guestfs_test0",
&py_g, &str, &optstr, &py_strlist, &b, &integer, &filein, &fileout))
return NULL;
g = get_handle (py_g);
strlist = get_string_list (py_strlist);
if (!strlist) return NULL;
r = guestfs_test0 (g, str, optstr, strlist, b, integer, filein, fileout);
free (strlist);
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_test0rint (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
int r;
const char *val;
if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_test0rint",
&py_g, &val))
return NULL;
g = get_handle (py_g);
r = guestfs_test0rint (g, val);
if (r == -1) {
PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
return NULL;
}
py_r = PyInt_FromLong ((long) r);
return py_r;
}
static PyObject *
py_guestfs_test0rinterr (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
int r;
if (!PyArg_ParseTuple (args, (char *) "O:guestfs_test0rinterr",
&py_g))
return NULL;
g = get_handle (py_g);
r = guestfs_test0rinterr (g);
if (r == -1) {
PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
return NULL;
}
py_r = PyInt_FromLong ((long) r);
return py_r;
}
static PyObject *
py_guestfs_test0rint64 (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
int64_t r;
const char *val;
if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_test0rint64",
&py_g, &val))
return NULL;
g = get_handle (py_g);
r = guestfs_test0rint64 (g, val);
if (r == -1) {
PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
return NULL;
}
py_r = PyLong_FromLongLong (r);
return py_r;
}
static PyObject *
py_guestfs_test0rint64err (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
int64_t r;
if (!PyArg_ParseTuple (args, (char *) "O:guestfs_test0rint64err",
&py_g))
return NULL;
g = get_handle (py_g);
r = guestfs_test0rint64err (g);
if (r == -1) {
PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
return NULL;
}
py_r = PyLong_FromLongLong (r);
return py_r;
}
static PyObject *
py_guestfs_test0rbool (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
int r;
const char *val;
if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_test0rbool",
&py_g, &val))
return NULL;
g = get_handle (py_g);
r = guestfs_test0rbool (g, val);
if (r == -1) {
PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
return NULL;
}
py_r = PyInt_FromLong ((long) r);
return py_r;
}
static PyObject *
py_guestfs_test0rboolerr (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
int r;
if (!PyArg_ParseTuple (args, (char *) "O:guestfs_test0rboolerr",
&py_g))
return NULL;
g = get_handle (py_g);
r = guestfs_test0rboolerr (g);
if (r == -1) {
PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
return NULL;
}
py_r = PyInt_FromLong ((long) r);
return py_r;
}
static PyObject *
py_guestfs_test0rconststring (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
const char *r;
const char *val;
if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_test0rconststring",
&py_g, &val))
return NULL;
g = get_handle (py_g);
r = guestfs_test0rconststring (g, val);
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_test0rconststringerr (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
const char *r;
if (!PyArg_ParseTuple (args, (char *) "O:guestfs_test0rconststringerr",
&py_g))
return NULL;
g = get_handle (py_g);
r = guestfs_test0rconststringerr (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_test0rstring (PyObject *self, PyObject *args)
{
PyObject *py_g;
guestfs_h *g;
PyObject *py_r;
char *r;
const char *val;
if (!PyArg_ParseTuple (args, (char *) "Os:guestfs_test0rstring",
&py_g, &val))
return NULL;
g = get_handle (py_g);
r = guestfs_test0rstring (g, val);
if (r == NULL) {
PyErr_SetString (PyExc_RuntimeError, guestfs_last_error (g));
|