allow setting of the debug level in python from C
authorAndrew Tridgell <tridge@samba.org>
Thu, 3 Sep 2009 03:03:31 +0000 (13:03 +1000)
committerAndrew Tridgell <tridge@samba.org>
Thu, 3 Sep 2009 08:36:09 +0000 (18:36 +1000)
source4/param/provision.c
source4/scripting/python/pyglue.c
source4/scripting/python/samba/provision.py

index c8bff59deb66d7eba22cc0f93562efe0cf1ddd9a..bbc6837a90c783166fe24555261473489afc4b9f 100644 (file)
@@ -34,7 +34,7 @@ NTSTATUS provision_bare(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx,
                        struct provision_settings *settings, 
                        struct provision_result *result)
 {
-       char *configfile;
+       const char *configfile;
        PyObject *provision_mod, *provision_dict, *provision_fn, *py_result, *parameters;
        
        DEBUG(0,("Provision for Become-DC test using python\n"));
@@ -123,6 +123,9 @@ NTSTATUS provision_bare(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx,
        PyDict_SetItemString(parameters, "machinepass", 
                             PyString_FromString(settings->machine_password));
 
+       
+       PyDict_SetItemString(parameters, "debuglevel", PyInt_FromLong(DEBUGLEVEL));
+
        py_result = PyEval_CallObjectWithKeywords(provision_fn, NULL, parameters);
 
        Py_DECREF(parameters);
index 79ee0ec388492429b4fbea5ffb3949e25b33dfb5..42c04c1f3847a0d6095d286a974f2d5ede9f1fae 100644 (file)
@@ -93,6 +93,15 @@ static PyObject *py_unix2nttime(PyObject *self, PyObject *args)
        return PyInt_FromLong((uint64_t)nt);
 }
 
+static PyObject *py_set_debug_level(PyObject *self, PyObject *args)
+{
+       unsigned level;
+       if (!PyArg_ParseTuple(args, "I", &level))
+               return NULL;
+       (DEBUGLEVEL) = level;
+       Py_RETURN_NONE;
+}
+
 static PyObject *py_ldb_set_credentials(PyObject *self, PyObject *args)
 {
        PyObject *py_creds, *py_ldb;
@@ -483,6 +492,8 @@ static PyMethodDef py_misc_methods[] = {
                NULL },
        { "dom_sid_to_rid", (PyCFunction)py_dom_sid_to_rid, METH_VARARGS,
                NULL },
+       { "set_debug_level", (PyCFunction)py_set_debug_level, METH_VARARGS,
+               "set debug level" },
        { NULL }
 };
 
index cbffa22f333e8e519deb813a2946b6b0a28bacb8..7b3ef4b5772ee0fa40a2801745fd416970efdfdf 100644 (file)
@@ -1298,12 +1298,14 @@ def provision_become_dc(setup_dir=None,
                         policyguid=None, invocationid=None, machinepass=None, 
                         dnspass=None, root=None, nobody=None, users=None, 
                         wheel=None, backup=None, serverrole=None, 
-                        ldap_backend=None, ldap_backend_type=None, sitename=None):
+                        ldap_backend=None, ldap_backend_type=None, sitename=None, debuglevel=1):
 
     def message(text):
         """print a message if quiet is not set."""
         print text
 
+    glue.set_debug_level(debuglevel)
+
     return provision(setup_dir, message, system_session(), None,
               smbconf=smbconf, targetdir=targetdir, samdb_fill=FILL_DRS, realm=realm, 
               rootdn=rootdn, domaindn=domaindn, schemadn=schemadn, configdn=configdn, serverdn=serverdn,