X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fdird%2Fpythondir.c;h=a6c517662957cb1b9828fab09f42ebc680db0916;hb=4945ff13c438769e0f6a2b97a9d5c6467d696374;hp=c17606e2f4a6697b061aab4dd0e9b4f9a3013eca;hpb=eb326beecb6fc8803ab73e6395c68c5a29ac8cc2;p=bacula%2Fbacula diff --git a/bacula/src/dird/pythondir.c b/bacula/src/dird/pythondir.c index c17606e2f4..a6c5176629 100644 --- a/bacula/src/dird/pythondir.c +++ b/bacula/src/dird/pythondir.c @@ -1,16 +1,7 @@ -/* - * - * Bacula interface to Python for the Director - * - * Kern Sibbald, November MMIV - * - * Version $Id$ - * - */ /* Bacula® - The Network Backup Solution - Copyright (C) 2004-2006 Free Software Foundation Europe e.V. + Copyright (C) 2004-2008 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. @@ -29,11 +20,20 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - Bacula® is a registered trademark of John Walker. + Bacula® is a registered trademark of Kern Sibbald. The licensor of Bacula is the Free Software Foundation Europe (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, Switzerland, email:ftf@fsfeurope.org. */ +/* + * + * Bacula interface to Python for the Director + * + * Kern Sibbald, November MMIV + * + * Version $Id$ + * + */ #include "bacula.h" #include "dird.h" @@ -67,7 +67,7 @@ PyMethodDef JobMethods[] = { struct s_vars { const char *name; - char *fmt; + const char *fmt; }; /* Read-only variables */ @@ -138,78 +138,78 @@ PyObject *job_getattr(PyObject *self, char *attrname) } switch (i) { case 0: /* Job */ - return Py_BuildValue(getvars[i].fmt, jcr->job->hdr.name); + return Py_BuildValue((char *)getvars[i].fmt, jcr->job->hdr.name); case 1: /* level */ - return Py_BuildValue(getvars[i].fmt, job_level_to_str(jcr->JobLevel)); + return Py_BuildValue((char *)getvars[i].fmt, job_level_to_str(jcr->get_JobLevel())); case 2: /* type */ - return Py_BuildValue(getvars[i].fmt, job_type_to_str(jcr->JobType)); + return Py_BuildValue((char *)getvars[i].fmt, job_type_to_str(jcr->get_JobType())); case 3: /* JobId */ - return Py_BuildValue(getvars[i].fmt, jcr->JobId); + return Py_BuildValue((char *)getvars[i].fmt, jcr->JobId); case 4: /* Client */ - return Py_BuildValue(getvars[i].fmt, jcr->client->hdr.name); + return Py_BuildValue((char *)getvars[i].fmt, jcr->client->hdr.name); case 5: /* NumVols */ POOL_DBR pr; memset(&pr, 0, sizeof(pr)); bstrncpy(pr.Name, jcr->pool->hdr.name, sizeof(pr.Name)); if (db_get_pool_record(jcr, jcr->db, &pr)) { jcr->NumVols = pr.NumVols; - return Py_BuildValue(getvars[i].fmt, jcr->NumVols); + return Py_BuildValue((char *)getvars[i].fmt, jcr->NumVols); } else { bsnprintf(errmsg, sizeof(errmsg), _("Pool record not found.")); goto bail_out; } case 6: /* Pool */ - return Py_BuildValue(getvars[i].fmt, jcr->pool->name()); + return Py_BuildValue((char *)getvars[i].fmt, jcr->pool->name()); case 7: /* Storage */ if (jcr->wstore) { - return Py_BuildValue(getvars[i].fmt, jcr->wstore->name()); + return Py_BuildValue((char *)getvars[i].fmt, jcr->wstore->name()); } else if (jcr->rstore) { - return Py_BuildValue(getvars[i].fmt, jcr->rstore->name()); + return Py_BuildValue((char *)getvars[i].fmt, jcr->rstore->name()); } else { goto bail_out; } case 8: - return Py_BuildValue(getvars[i].fmt, jcr->catalog->name()); + return Py_BuildValue((char *)getvars[i].fmt, jcr->catalog->name()); case 9: /* MediaType */ if (jcr->wstore) { - return Py_BuildValue(getvars[i].fmt, jcr->wstore->media_type); + return Py_BuildValue((char *)getvars[i].fmt, jcr->wstore->media_type); } else if (jcr->rstore) { - return Py_BuildValue(getvars[i].fmt, jcr->rstore->media_type); + return Py_BuildValue((char *)getvars[i].fmt, jcr->rstore->media_type); } else { goto bail_out; } case 10: /* JobName */ - return Py_BuildValue(getvars[i].fmt, jcr->Job); + return Py_BuildValue((char *)getvars[i].fmt, jcr->Job); case 11: /* JobStatus */ buf[1] = 0; buf[0] = jcr->JobStatus; - return Py_BuildValue(getvars[i].fmt, buf); + return Py_BuildValue((char *)getvars[i].fmt, buf); case 12: /* Priority */ - return Py_BuildValue(getvars[i].fmt, jcr->JobPriority); + return Py_BuildValue((char *)getvars[i].fmt, jcr->JobPriority); case 13: - return Py_BuildValue(getvars[i].fmt, jcr->VolumeName); + return Py_BuildValue((char *)getvars[i].fmt, jcr->VolumeName); case 14: /* CatalogRes */ - return Py_BuildValue(getvars[i].fmt, + return Py_BuildValue((char *)getvars[i].fmt, jcr->catalog->db_name, jcr->catalog->db_address, jcr->catalog->db_user, jcr->catalog->db_password, jcr->catalog->db_socket, jcr->catalog->db_port, db_get_type()); case 15: /* JobErrors */ - return Py_BuildValue(getvars[i].fmt, jcr->JobErrors); + return Py_BuildValue((char *)getvars[i].fmt, jcr->JobErrors); case 16: /* JobFiles */ - return Py_BuildValue(getvars[i].fmt, jcr->JobFiles); + return Py_BuildValue((char *)getvars[i].fmt, jcr->JobFiles); case 17: /* SDJobFiles */ - return Py_BuildValue(getvars[i].fmt, jcr->SDJobFiles); + return Py_BuildValue((char *)getvars[i].fmt, jcr->SDJobFiles); case 18: /* SDErrors */ - return Py_BuildValue(getvars[i].fmt, jcr->SDErrors); + return Py_BuildValue((char *)getvars[i].fmt, jcr->SDErrors); case 19: /* FDJobStatus */ buf[1] = 0; buf[0] = jcr->FDJobStatus; - return Py_BuildValue(getvars[i].fmt, buf); + return Py_BuildValue((char *)getvars[i].fmt, buf); case 29: /* SDJobStatus */ buf[1] = 0; buf[0] = jcr->SDJobStatus; - return Py_BuildValue(getvars[i].fmt, buf); + return Py_BuildValue((char *)getvars[i].fmt, buf); } bsnprintf(errmsg, sizeof(errmsg), _("Attribute %s not found."), attrname); bail_out: @@ -253,13 +253,13 @@ int job_setattr(PyObject *self, char *attrname, PyObject *value) if (setvars[i].fmt != NULL) { switch (setvars[i].fmt[0]) { case 's': - if (!PyArg_Parse(value, setvars[i].fmt, &strval)) { + if (!PyArg_Parse(value, (char *)setvars[i].fmt, &strval)) { PyErr_SetString(PyExc_TypeError, _("Read-only attribute")); return -1; } break; case 'i': - if (!PyArg_Parse(value, setvars[i].fmt, &intval)) { + if (!PyArg_Parse(value, (char *)setvars[i].fmt, &intval)) { PyErr_SetString(PyExc_TypeError, _("Read-only attribute")); return -1; } @@ -296,9 +296,9 @@ int job_setattr(PyObject *self, char *attrname, PyObject *value) } for (i=0; joblevels[i].level_name; i++) { if (strcmp(strval, joblevels[i].level_name) == 0) { - if (joblevels[i].job_type == jcr->JobType) { - jcr->JobLevel = joblevels[i].level; - jcr->jr.JobLevel = jcr->JobLevel; + if (joblevels[i].job_type == jcr->get_JobType()) { + jcr->set_JobLevel(joblevels[i].level); + jcr->jr.JobLevel = jcr->get_JobLevel(); return 0; } } @@ -459,7 +459,7 @@ int generate_job_event(JCR *jcr, const char *event) } bstrncpy(jcr->event, event, sizeof(jcr->event)); - result = PyObject_CallFunction(method, "O", Job); + result = PyObject_CallFunction(method, (char *)"O", Job); jcr->event[0] = 0; /* no event in progress */ if (result == NULL) { if (PyErr_Occurred()) {