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.
static void do_client_status(UAContext *ua, CLIENT *client, char *cmd);
static void do_director_status(UAContext *ua);
static void do_all_status(UAContext *ua);
+void status_slots(UAContext *ua, STORE *store);
static char OKqstatus[] = "1000 OK .status\n";
static char DotStatusJob[] = "JobId=%s JobStatus=%c JobErrors=%d\n";
} else {
store = get_storage_resource(ua, false/*no default*/);
if (store) {
- do_storage_status(ua, store, NULL);
+ if (find_arg(ua, NT_("slots")) > 0) {
+ status_slots(ua, store);
+ } else {
+ do_storage_status(ua, store, NULL);
+ }
}
return 1;
}
edit_uint64_with_commas(sm_max_bytes, b3),
edit_uint64_with_commas(sm_buffers, b4),
edit_uint64_with_commas(sm_max_buffers, b5));
+
+ /* TODO: use this function once for all daemons */
+ if (debug_level > 0 && plugin_list->size() > 0) {
+ int len;
+ Plugin *plugin;
+ POOL_MEM msg(PM_FNAME);
+ pm_strcpy(msg, " Plugin: ");
+ foreach_alist(plugin, plugin_list) {
+ len = pm_strcat(msg, plugin->file);
+ if (len > 80) {
+ pm_strcat(msg, "\n ");
+ } else {
+ pm_strcat(msg, " ");
+ }
+ }
+ ua->send_msg("%s\n", msg.c_str());
+ }
}
static void do_director_status(UAContext *ua)
JOB *job;
int level;
int priority;
- time_t runtime;
+ utime_t runtime;
POOL *pool;
STORE *store;
};
bool close_db = false;
JCR *jcr = ua->jcr;
MEDIA_DBR mr;
+ int orig_jobtype;
+ orig_jobtype = jcr->get_JobType();
memset(&mr, 0, sizeof(mr));
if (sp->job->JobType == JT_BACKUP) {
jcr->db = NULL;
mr.StorageId = sp->store->StorageId;
jcr->wstore = sp->store;
Dmsg0(250, "call find_next_volume_for_append\n");
+ /* no need to set ScratchPoolId, since we use fnv_no_create_vol */
ok = find_next_volume_for_append(jcr, &mr, 1, fnv_no_create_vol, fnv_no_prune);
}
if (!ok) {
db_close_database(jcr, jcr->db);
}
jcr->db = ua->db; /* restore ua db to jcr */
+ jcr->set_JobType(orig_jobtype);
}
/*
*/
static void list_scheduled_jobs(UAContext *ua)
{
- time_t runtime;
+ utime_t runtime;
RUN *run;
JOB *job;
int level, num_jobs = 0;
i = find_arg_with_value(ua, NT_("days"));
if (i >= 0) {
days = atoi(ua->argv[i]);
- if ((days < 0) || (days > 500) && !ua->api) {
+ if (((days < 0) || (days > 500)) && !ua->api) {
ua->send_msg(_("Ignoring invalid value for days. Max is 500.\n"));
days = 1;
}
/* this is a console or other control job. We only show console
* jobs in the status output.
*/
- if (jcr->JobType == JT_CONSOLE && !ua->api) {
+ if (jcr->get_JobType() == JT_CONSOLE && !ua->api) {
bstrftime_nc(dt, sizeof(dt), jcr->start_time);
ua->send_msg(_("Console connected at %s\n"), dt);
}
msg = _("Dir inserting Attributes");
break;
}
- switch (jcr->JobType) {
+ switch (jcr->get_JobType()) {
case JT_ADMIN:
case JT_RESTORE:
bstrncpy(level, " ", sizeof(level));
break;
default:
- bstrncpy(level, level_to_str(jcr->JobLevel), sizeof(level));
+ bstrncpy(level, level_to_str(jcr->get_JobLevel()), sizeof(level));
level[7] = 0;
break;
}