From: John Mulligan Date: Mon, 25 Apr 2022 13:59:36 +0000 (-0400) Subject: lib/smbconf: add delete_parameter method to SMBConf X-Git-Tag: talloc-2.3.4~230 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=64a36f5bf025616aeaae7412980883a0381c8a19;p=thirdparty%2Fsamba.git lib/smbconf: add delete_parameter method to SMBConf Add a delete_parameter method wrapping smbconf_delete_parameter. Signed-off-by: John Mulligan Reviewed-by: Jeremy Allison Reviewed-by: Douglas Bagnall --- diff --git a/lib/smbconf/pysmbconf.c b/lib/smbconf/pysmbconf.c index 6219b6b5d3a..fe5c1558d98 100644 --- a/lib/smbconf/pysmbconf.c +++ b/lib/smbconf/pysmbconf.c @@ -482,6 +482,24 @@ static PyObject *obj_create_set_share(py_SMBConf_Object * self, PyObject * args) Py_RETURN_NONE; } +static PyObject *obj_delete_parameter(py_SMBConf_Object * self, PyObject * args) +{ + sbcErr err; + char *servicename = NULL; + char *param_name = NULL; + + if (!PyArg_ParseTuple(args, "ss", &servicename, ¶m_name)) { + return NULL; + } + + err = smbconf_delete_parameter(self->conf_ctx, servicename, param_name); + if (err != SBC_ERR_OK) { + py_raise_SMBConfError(err); + return NULL; + } + Py_RETURN_NONE; +} + PyDoc_STRVAR(obj_requires_messaging_doc, "requires_messaging() -> bool\n" "\n" @@ -539,6 +557,10 @@ PyDoc_STRVAR(obj_create_set_share_doc, "create_set_share(str, [(str, str)...]) -> None\n" "Create and set the definition of a service.\n"); +PyDoc_STRVAR(obj_delete_parameter_doc, +"delete_parameter(str, str) -> None\n" +"Delete a single configuration parameter.\n"); + static PyMethodDef py_smbconf_obj_methods[] = { { "requires_messaging", (PyCFunction) obj_requires_messaging, METH_NOARGS, obj_requires_messaging_doc }, @@ -562,6 +584,8 @@ static PyMethodDef py_smbconf_obj_methods[] = { METH_VARARGS, obj_set_global_parameter_doc }, { "delete_share", (PyCFunction) obj_delete_share, METH_VARARGS, obj_delete_share_doc }, + { "delete_parameter", (PyCFunction) obj_delete_parameter, METH_VARARGS, + obj_delete_parameter_doc }, { 0 }, }; diff --git a/python/samba/tests/smbconf.py b/python/samba/tests/smbconf.py index 76b0efd2e48..53912d7a080 100644 --- a/python/samba/tests/smbconf.py +++ b/python/samba/tests/smbconf.py @@ -210,6 +210,30 @@ class SMBConfTests(samba.tests.TestCase): ValueError, sconf.create_set_share, "baz", [("a", "b", "c")] ) + def test_delete_parameter(self): + sconf = self.s3smbconf.init_reg(None) + sconf.drop() + + params = [ + ("path", "/mnt/baz"), + ("browseable", "yes"), + ("read only", "no"), + ] + sconf.create_set_share("baz", params) + self.assertEqual(sconf.get_share("baz"), ("baz", params)) + + sconf.delete_parameter("baz", "browseable") + self.assertEqual( + sconf.get_share("baz"), + ( + "baz", + [ + ("path", "/mnt/baz"), + ("read only", "no"), + ], + ), + ) + if __name__ == "__main__": import unittest