]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/ua_status.c
Fix reporting jobs from state file + misc
[bacula/bacula] / bacula / src / dird / ua_status.c
index 796f9fc50699d0a3603167a73f55b15ec7a710df..a33cd179bd97ec4dc35aecc76f04c47281e3cf63 100644 (file)
@@ -202,8 +202,8 @@ static void do_director_status(UAContext *ua, char *cmd)
    bsendmsg(ua, "%s Version: " VERSION " (" BDATE ") %s %s %s\n", my_name,
            HOST_OS, DISTNAME, DISTVER);
    bstrftime_nc(dt, sizeof(dt), daemon_start_time);
-   bsendmsg(ua, _("Daemon started %s, %d Job%s run.\n"), dt, last_job.NumJobs,
-        last_job.NumJobs == 1 ? "" : "s");
+   bsendmsg(ua, _("Daemon started %s, %d Job%s run.\n"), dt, last_jobs->size(),
+        last_jobs->size() == 1 ? "" : "s");
    /*
     * List scheduled Jobs
     */
@@ -349,7 +349,7 @@ static void list_scheduled_jobs(UAContext *ua)
    int level, num_jobs = 0;
    bool hdr_printed = false;
 
-   Dmsg0(200, "enter find_runs()\n");
+   Dmsg0(200, "enter list_sched_jobs()\n");
 
    /* Loop through all jobs */
    LockRes();
@@ -377,7 +377,7 @@ static void list_scheduled_jobs(UAContext *ua)
    } else {
       bsendmsg(ua, "\n");
    }
-   Dmsg0(200, "Leave find_runs()\n");
+   Dmsg0(200, "Leave list_sched_jobs_runs()\n");
 }
 
 static void list_running_jobs(UAContext *ua)
@@ -389,8 +389,10 @@ static void list_running_jobs(UAContext *ua)
    char level[10];
    bool pool_mem = false;
 
+   Dmsg0(200, "enter list_run_jobs()\n");
    lock_jcr_chain();
-   for (jcr=NULL; (jcr=get_next_jcr(jcr)); njobs++) {
+   foreach_jcr(jcr) {
+      njobs++;
       if (jcr->JobId == 0) {     /* this is us */
         /* this is a console or other control job. We only show console
          * jobs in the status output.
@@ -406,21 +408,19 @@ static void list_running_jobs(UAContext *ua)
    if (njobs == 0) {
       unlock_jcr_chain();
       bsendmsg(ua, _("No Running Jobs.\n"));
+      Dmsg0(200, "leave list_run_jobs()\n");
       return;
    }
    njobs = 0;
    bsendmsg(ua, _("\nRunning Jobs:\n"));
    bsendmsg(ua, _("Level JobId  Job                        Status\n"));
    bsendmsg(ua, _("====================================================================\n"));
-   for (jcr=NULL; (jcr=get_next_jcr(jcr)); njobs++) {
-      if (!acl_access_ok(ua, Job_ACL, jcr->job->hdr.name)) {
-        continue;
-      }
-      if (jcr->JobId == 0) {     /* this is us */
-        njobs--;
+   foreach_jcr(jcr) {
+      if (jcr->JobId == 0 || !acl_access_ok(ua, Job_ACL, jcr->job->hdr.name)) {
         free_locked_jcr(jcr);
         continue;
       }
+      njobs++;
       switch (jcr->JobStatus) {
       case JS_Created:
          msg = _("is waiting execution");
@@ -535,8 +535,8 @@ static void list_running_jobs(UAContext *ua)
       free_locked_jcr(jcr);
    }
    unlock_jcr_chain();
-
    bsendmsg(ua, "\n");
+   Dmsg0(200, "leave list_run_jobs()\n");
 }
 
 static void list_terminated_jobs(UAContext *ua)