From 45cfb4100a11c4e0c0c8da3bf95f3b3b3bf5cf1b Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Sat, 30 Apr 2005 19:39:50 +0000 Subject: [PATCH] Start Python documentation git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1969 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/examples/python/DirStartUp.py | 3 ++- bacula/src/dird/pythondir.c | 26 ++++++++++++++++++++++++++ bacula/src/lib/pythonlib.c | 6 +++--- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/bacula/examples/python/DirStartUp.py b/bacula/examples/python/DirStartUp.py index 37eaa28d5c..d6d0dae12a 100644 --- a/bacula/examples/python/DirStartUp.py +++ b/bacula/examples/python/DirStartUp.py @@ -21,7 +21,8 @@ class BaculaEvents: """ events = JobEvents() # create instance of Job class events.job = job # save Bacula's job pointer - job.set_events = events # register events desired +# job.set_events = events # register events desired + job.set_events(events) # register events desired sys.stderr = events # send error output to Bacula sys.stdout = events # send stdout to Bacula jobid = job.JobId; client = job.Client diff --git a/bacula/src/dird/pythondir.c b/bacula/src/dird/pythondir.c index 9869753cef..4ab14fb785 100644 --- a/bacula/src/dird/pythondir.c +++ b/bacula/src/dird/pythondir.c @@ -39,9 +39,25 @@ extern JCR *get_jcr_from_PyObject(PyObject *self); extern PyObject *find_method(PyObject *eventsObject, PyObject *method, const char *name); + static int set_job_events(PyObject *self, PyObject *arg); static int job_run(PyObject *self, PyObject *arg); +#ifdef needed +static PyObject *set_bacula_job_events(PyObject *self, PyObject *arg) +{ + Dmsg2(000, "In set_bacula_job_events self=%p arg=%p\n", + self, arg); + Py_INCREF(Py_None); + return Py_None; +} +PyMethodDef JobMethods[] = { + {"set_events", set_bacula_job_events, METH_VARARGS, "Define Bacula events."}, + {NULL, NULL, 0, NULL} /* last item */ +}; +#endif + + struct s_vars { const char *name; char *fmt; @@ -205,6 +221,16 @@ bail_out: return -1; } +#ifdef needed +static PyObject *set_bacula_job_events(PyObject *self, PyObject *arg) +{ + Dmsg2(000, "In set_bacula_job_events self=%p arg=%p\n", + self, arg); + Py_INCREF(Py_None); + return Py_None; +} +#endif + static int set_job_events(PyObject *self, PyObject *arg) { diff --git a/bacula/src/lib/pythonlib.c b/bacula/src/lib/pythonlib.c index 378c85036a..5af7ff6a0a 100644 --- a/bacula/src/lib/pythonlib.c +++ b/bacula/src/lib/pythonlib.c @@ -120,7 +120,7 @@ void init_python_interpreter(const char *progname, const char *scripts, JobType.tp_doc = "Bacula Job object"; JobType.tp_getattr = job_getattr; JobType.tp_setattr = job_setattr; - + if (PyType_Ready(&JobType) != 0) { Jmsg0(NULL, M_ERROR_TERM, 0, "Could not initialize Python Job type.\n"); PyErr_Print(); @@ -262,8 +262,8 @@ int generate_daemon_event(JCR *jcr, const char *event) if (PyErr_Occurred()) { PyErr_Print(); Dmsg2(000, "Python JobEnd error. job=%p JobId=%d\n", jcr->Python_job, - jcr->JobId); - JobEnd_method = NULL; + jcr->JobId); + JobEnd_method = NULL; } Jmsg(jcr, M_ERROR, 0, "Python function \"%s\" not found.\n", event); goto bail_out; -- 2.39.5