param: Add python binding for lpcfg_cache_path
authorDavid Mulder <dmulder@suse.com>
Tue, 10 Apr 2018 21:07:34 +0000 (15:07 -0600)
committerDouglas Bagnall <dbagnall@samba.org>
Thu, 12 Apr 2018 06:13:34 +0000 (08:13 +0200)
Signed-off-by: David Mulder <dmulder@suse.com>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/param/pyparam.c

index f16c2c0b227bab09bdcd343870a1bdd1f8ba8321..18d7017b9c69fe1cfa2352f38fcf13f1cb181da2 100644 (file)
@@ -358,6 +358,28 @@ static PyObject *py_samdb_url(PyObject *self, PyObject *unused)
        return PyStr_FromFormat("tdb://%s/sam.ldb", lpcfg_private_dir(lp_ctx));
 }
 
+static PyObject *py_cache_path(PyObject *self, PyObject *args)
+{
+       struct loadparm_context *lp_ctx = PyLoadparmContext_AsLoadparmContext(self);
+       char *name = NULL;
+       char *path = NULL;
+       PyObject *ret = NULL;
+
+       if (!PyArg_ParseTuple(args, "s", &name)) {
+               return NULL;
+       }
+
+       path = lpcfg_cache_path(NULL, lp_ctx, name);
+       if (!path) {
+               PyErr_Format(PyExc_RuntimeError,
+                            "Unable to access cache %s", name);
+               return NULL;
+       }
+       ret = PyStr_FromString(path);
+       talloc_free(path);
+
+       return ret;
+}
 
 static PyMethodDef py_lp_ctx_methods[] = {
        { "load", py_lp_ctx_load, METH_VARARGS,
@@ -394,6 +416,9 @@ static PyMethodDef py_lp_ctx_methods[] = {
        { "samdb_url", py_samdb_url, METH_NOARGS,
                "S.samdb_url() -> string\n"
                "Returns the current URL for sam.ldb." },
+       { "cache_path", py_cache_path, METH_VARARGS,
+               "S.cache_path(name) -> string\n"
+               "Returns a path in the Samba cache directory." },
        { NULL }
 };