/* Return Job variables */ PyObject *job_getattr(PyObject *self, char *attrname) { JCR *jcr; bool found = false; int i; char buf[10]; char errmsg[200]; Dmsg1(100, "In job_getattr=%s\n", attrname); jcr = get_jcr_from_PyObject(self); if (!jcr) { bstrncpy(errmsg, _("Job pointer not found."), sizeof(errmsg)); goto bail_out; } for (i=0; getvars[i].name; i++) { if (strcmp(getvars[i].name, attrname) == 0) { found = true; break; } } if (!found) { /* Try our methods */ return Py_FindMethod(JobMethods, self, attrname); } switch (i) { case 0: /* Job */ return Py_BuildValue((char *)getvars[i].fmt, jcr->job_name); /* Non-unique name */ case 1: /* SD's name */ return Py_BuildValue((char *)getvars[i].fmt, my_name); case 2: /* level */ return Py_BuildValue((char *)getvars[i].fmt, job_level_to_str(jcr->get_JobLevel())); case 3: /* type */ return Py_BuildValue((char *)getvars[i].fmt, job_type_to_str(jcr->get_JobType())); case 4: /* JobId */ return Py_BuildValue((char *)getvars[i].fmt, jcr->JobId); case 5: /* Client */ return Py_BuildValue((char *)getvars[i].fmt, jcr->client_name); case 6: /* Pool */ return Py_BuildValue((char *)getvars[i].fmt, jcr->dcr->pool_name); case 7: /* MediaType */ return Py_BuildValue((char *)getvars[i].fmt, jcr->dcr->media_type); case 8: /* JobName */ return Py_BuildValue((char *)getvars[i].fmt, jcr->Job); case 9: /* JobStatus */ buf[1] = 0; buf[0] = jcr->JobStatus; return Py_BuildValue((char *)getvars[i].fmt, buf); case 10: return Py_BuildValue((char *)getvars[i].fmt, jcr->dcr->VolumeName); case 11: return Py_BuildValue((char *)getvars[i].fmt, jcr->dcr->dev_name); } bsnprintf(errmsg, sizeof(errmsg), _("Attribute %s not found."), attrname); bail_out: PyErr_SetString(PyExc_AttributeError, errmsg); return NULL; }
/* backup level combo */ void levelComboFill(QComboBox *combo) { combo->addItem(QS_ANY); combo->addItem(job_level_to_str(L_FULL), L_FULL); combo->addItem(job_level_to_str(L_INCREMENTAL), L_INCREMENTAL); combo->addItem(job_level_to_str(L_DIFFERENTIAL), L_DIFFERENTIAL); combo->addItem(job_level_to_str(L_SINCE), L_SINCE); combo->addItem(job_level_to_str(L_VERIFY_CATALOG), L_VERIFY_CATALOG); combo->addItem(job_level_to_str(L_VERIFY_INIT), L_VERIFY_INIT); combo->addItem(job_level_to_str(L_VERIFY_VOLUME_TO_CATALOG), L_VERIFY_VOLUME_TO_CATALOG); combo->addItem(job_level_to_str(L_VERIFY_DISK_TO_CATALOG), L_VERIFY_DISK_TO_CATALOG); combo->addItem(job_level_to_str(L_VERIFY_DATA), L_VERIFY_DATA); /* combo->addItem(job_level_to_str(L_BASE), L_BASE); base jobs ignored */ }
void ItemFormatterBase::setJobLevelFld(int index, const QString &fld, bool center) { QByteArray lvl(fld.trimmed().toAscii()); if (lvl.size()) { setTextFld(index, job_level_to_str(lvl[0]), center); } else { setTextFld(index, "", center); } }
static int job_item(JCR *jcr, int code, const char **val_ptr, int *val_len, int *val_size) { const char *str = " "; char buf[20]; switch (code) { case 1: /* Job */ str = jcr->res.job->name(); break; case 2: /* Director's name */ str = my_name; break; case 3: /* level */ str = job_level_to_str(jcr->getJobLevel()); break; case 4: /* type */ str = job_type_to_str(jcr->getJobType()); break; case 5: /* JobId */ bsnprintf(buf, sizeof(buf), "%d", jcr->JobId); str = buf; break; case 6: /* Client */ str = jcr->res.client->name(); if (!str) { str = " "; } break; case 7: /* NumVols */ bsnprintf(buf, sizeof(buf), "%d", jcr->NumVols); str = buf; break; case 8: /* Pool */ str = jcr->res.pool->name(); break; case 9: /* Storage */ if (jcr->res.wstore) { str = jcr->res.wstore->name(); } else { str = jcr->res.rstore->name(); } break; case 10: /* Catalog */ str = jcr->res.catalog->name(); break; case 11: /* MediaType */ if (jcr->res.wstore) { str = jcr->res.wstore->media_type; } else { str = jcr->res.rstore->media_type; } break; case 12: /* JobName */ str = jcr->Job; break; } *val_ptr = bstrdup(str); *val_len = strlen(str); *val_size = *val_len + 1; return 1; }
/* Returns: NULL if error * PyObject * return value if OK */ PyObject *job_getattr(PyObject *self, char *attrname) { JCR *jcr; bool found = false; int i; char buf[10]; char errmsg[200]; Dmsg0(100, "In job_getattr.\n"); jcr = get_jcr_from_PyObject(self); if (!jcr) { bstrncpy(errmsg, _("Job pointer not found."), sizeof(errmsg)); goto bail_out; } for (i=0; getvars[i].name; i++) { if (strcmp(getvars[i].name, attrname) == 0) { found = true; break; } } if (!found) { /* Try our methods */ return Py_FindMethod(JobMethods, self, attrname); } switch (i) { case 0: /* Job */ return Py_BuildValue((char *)getvars[i].fmt, jcr->job->hdr.name); case 1: /* level */ return Py_BuildValue((char *)getvars[i].fmt, job_level_to_str(jcr->getJobLevel())); case 2: /* type */ return Py_BuildValue((char *)getvars[i].fmt, job_type_to_str(jcr->getJobType())); case 3: /* JobId */ return Py_BuildValue((char *)getvars[i].fmt, jcr->JobId); case 4: /* Client */ 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((char *)getvars[i].fmt, jcr->NumVols); } else { bsnprintf(errmsg, sizeof(errmsg), _("Pool record not found.")); goto bail_out; } case 6: /* Pool */ return Py_BuildValue((char *)getvars[i].fmt, jcr->pool->name()); case 7: /* Storage */ if (jcr->wstore) { return Py_BuildValue((char *)getvars[i].fmt, jcr->wstore->name()); } else if (jcr->rstore) { return Py_BuildValue((char *)getvars[i].fmt, jcr->rstore->name()); } else { goto bail_out; } case 8: return Py_BuildValue((char *)getvars[i].fmt, jcr->catalog->name()); case 9: /* MediaType */ if (jcr->wstore) { return Py_BuildValue((char *)getvars[i].fmt, jcr->wstore->media_type); } else if (jcr->rstore) { return Py_BuildValue((char *)getvars[i].fmt, jcr->rstore->media_type); } else { goto bail_out; } case 10: /* JobName */ return Py_BuildValue((char *)getvars[i].fmt, jcr->Job); case 11: /* JobStatus */ buf[1] = 0; buf[0] = jcr->JobStatus; return Py_BuildValue((char *)getvars[i].fmt, buf); case 12: /* Priority */ return Py_BuildValue((char *)getvars[i].fmt, jcr->JobPriority); case 13: return Py_BuildValue((char *)getvars[i].fmt, jcr->VolumeName); case 14: /* CatalogRes */ 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(jcr->db)); case 15: /* JobErrors */ return Py_BuildValue((char *)getvars[i].fmt, jcr->JobErrors); case 16: /* JobFiles */ return Py_BuildValue((char *)getvars[i].fmt, jcr->JobFiles); case 17: /* SDJobFiles */ return Py_BuildValue((char *)getvars[i].fmt, jcr->SDJobFiles); case 18: /* SDErrors */ return Py_BuildValue((char *)getvars[i].fmt, jcr->SDErrors); case 19: /* FDJobStatus */ buf[1] = 0; buf[0] = jcr->FDJobStatus; return Py_BuildValue((char *)getvars[i].fmt, buf); case 20: /* SDJobStatus */ buf[1] = 0; buf[0] = jcr->SDJobStatus; return Py_BuildValue((char *)getvars[i].fmt, buf); } bsnprintf(errmsg, sizeof(errmsg), _("Attribute %s not found."), attrname); bail_out: PyErr_SetString(PyExc_AttributeError, errmsg); return NULL; }