The branch, master has been updated via 0fdd7e16a1d samba-tool gpo: clean up tmpdir after create via 5750d7a1d05 samba-tool: allow testparm to dump global section only via 1c6e59a7dfc pyparam: expose lpcfg_dump_globals() via e0d96197fdd pytest/netcmd: test samba-tool testparm global section from 5075df4575d s3: smbd: Remove ugly SMB1-specific hack to filename_convert_dirfsp()
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 0fdd7e16a1d2c68e3fa4262c8e7355b0889c5b66 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Thu Mar 24 18:39:55 2022 +1300 samba-tool gpo: clean up tmpdir after create 'fetch' and 'backup' might also leave files in /tmp, but in those cases we want the files. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15006 Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: David Mulder <dmul...@suse.com> Autobuild-User(master): Douglas Bagnall <dbagn...@samba.org> Autobuild-Date(master): Sat Aug 6 01:42:09 UTC 2022 on sn-devel-184 commit 5750d7a1d05bccf61b3ae0ea4dcb36e0c103cb26 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Thu Aug 4 15:44:45 2022 +1200 samba-tool: allow testparm to dump global section only BUG: https://bugzilla.samba.org/show_bug.cgi?id=15070 Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: David Mulder <dmul...@suse.com> commit 1c6e59a7dfcc0758606db835082bfe789356e382 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Thu Aug 4 15:41:25 2022 +1200 pyparam: expose lpcfg_dump_globals() This is needed by samba-tool testparm, in the next commit. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15070 Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: David Mulder <dmul...@suse.com> commit e0d96197fdd9ea85bc320768b578a02b80bedbb9 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Fri Aug 5 10:48:06 2022 +1200 pytest/netcmd: test samba-tool testparm global section Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: David Mulder <dmul...@suse.com> ----------------------------------------------------------------------- Summary of changes: python/samba/netcmd/gpo.py | 4 ++++ python/samba/netcmd/testparm.py | 5 ++++- python/samba/tests/netcmd.py | 8 ++++++++ source4/param/pyparam.c | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) Changeset truncated at 500 lines: diff --git a/python/samba/netcmd/gpo.py b/python/samba/netcmd/gpo.py index 3b21dc6128c..fe8afa7d9a0 100644 --- a/python/samba/netcmd/gpo.py +++ b/python/samba/netcmd/gpo.py @@ -1296,6 +1296,10 @@ class cmd_create(GPOCommand): else: self.samdb.transaction_commit() + if tmpdir is None: + # Without --tmpdir, we created one in /tmp/. It must go. + shutil.rmtree(self.tmpdir) + self.outf.write("GPO '%s' created as %s\n" % (displayname, gpo)) diff --git a/python/samba/netcmd/testparm.py b/python/samba/netcmd/testparm.py index b44dea1f141..41dbb4bd623 100644 --- a/python/samba/netcmd/testparm.py +++ b/python/samba/netcmd/testparm.py @@ -106,7 +106,10 @@ class cmd_testparm(Command): try: section = lp[section_name] except KeyError: - raise CommandError("Unknown section %s" % section_name) + if section_name in ['global', 'globals']: + lp.dump_globals() + else: + raise CommandError(f"Unknown section {section_name}") else: section.dump(lp.default_service, verbose) else: diff --git a/python/samba/tests/netcmd.py b/python/samba/tests/netcmd.py index 4bcddd332e7..833ad418923 100644 --- a/python/samba/tests/netcmd.py +++ b/python/samba/tests/netcmd.py @@ -94,6 +94,14 @@ class TestParmTests(NetCmdTestCase): "--section-name=tmp"], retcode=None) + def test_section_globals(self): + # We can have '[global]' and '[globals]' + for name in ['global', 'globals']: + self.run_netcmd(cmd_testparm, + [f"--configfile={self.smbconf.name}", + f"--section-name={name}"], + retcode=None) + def test_no_such_section(self): out, err = self.run_netcmd(cmd_testparm, ["--configfile=%s" % self.smbconf.name, diff --git a/source4/param/pyparam.c b/source4/param/pyparam.c index e15592b5743..8f28083819a 100644 --- a/source4/param/pyparam.c +++ b/source4/param/pyparam.c @@ -289,6 +289,37 @@ static PyObject *py_lp_dump(PyObject *self, PyObject *args) Py_RETURN_NONE; } +static PyObject *py_lp_dump_globals(PyObject *self, PyObject *args) +{ + bool show_defaults = false; + const char *file_name = ""; + const char *mode = "w"; + FILE *f; + struct loadparm_context *lp_ctx = PyLoadparmContext_AsLoadparmContext(self); + + if (!PyArg_ParseTuple(args, "|bss", &show_defaults, &file_name, &mode)) + return NULL; + + if (file_name[0] == '\0') { + f = stdout; + } else { + f = fopen(file_name, mode); + } + + if (f == NULL) { + PyErr_SetFromErrno(PyExc_IOError); + return NULL; + } + + lpcfg_dump_globals(lp_ctx, f, show_defaults); + + if (f != stdout) { + fclose(f); + } + + Py_RETURN_NONE; +} + static PyObject *py_lp_dump_a_parameter(PyObject *self, PyObject *args) { char *param_name; @@ -433,6 +464,8 @@ static PyMethodDef py_lp_ctx_methods[] = { "Get the server role." }, { "dump", py_lp_dump, METH_VARARGS, "S.dump(show_defaults=False, file_name='', mode='w')" }, + { "dump_globals", py_lp_dump_globals, METH_VARARGS, + "S.dump_globals(show_defaults=False, file_name='', mode='w')" }, { "dump_a_parameter", py_lp_dump_a_parameter, METH_VARARGS, "S.dump_a_parameter(name, service_name, file_name='', mode='w')" }, { "log_level", py_lp_log_level, METH_NOARGS, -- Samba Shared Repository