Add method to reset + reload rpm configuration to python bindings
authorPanu Matilainen <pmatilai@redhat.com>
Thu, 1 Sep 2011 05:31:04 +0000 (08:31 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Thu, 1 Sep 2011 05:31:04 +0000 (08:31 +0300)
python/rpmmodule.c

index d3e664a..2894882 100644 (file)
@@ -114,6 +114,22 @@ static PyObject * doLog(PyObject * self, PyObject * args, PyObject *kwds)
     Py_RETURN_NONE;
 }
 
+static PyObject * reloadConfig(PyObject * self, PyObject * args, PyObject *kwds)
+{
+    char * target = NULL;
+    char * kwlist[] = { "target", NULL };
+    int rc;
+    
+    if (!PyArg_ParseTupleAndKeywords(args, kwds, "|s", kwlist, &target))
+        return NULL;
+
+    rpmFreeMacros(NULL);
+    rpmFreeRpmrc();
+    rc = rpmReadConfigFiles(NULL, target) ;
+
+    return PyBool_FromLong(rc == 0);
+}
+
 static PyMethodDef rpmModuleMethods[] = {
     { "addMacro", (PyCFunction) rpmmacro_AddMacro, METH_VARARGS|METH_KEYWORDS,
        NULL },
@@ -148,6 +164,8 @@ static PyMethodDef rpmModuleMethods[] = {
        NULL },
     { "setStats", (PyCFunction) setStats, METH_O,
        NULL },
+    { "reloadConfig", (PyCFunction) reloadConfig, METH_VARARGS|METH_KEYWORDS,
+       NULL },
 
     { NULL }
 } ;