]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/util.c
kes Prepare to add JS_Warnings termination status.
[bacula/bacula] / bacula / src / lib / util.c
index d88714f43645a41e1e0c6d629fc2e093c6ec980e..5d3bffa30afa8ee894efd1cbf7e0ee21ba7caeb8 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2000-2006 Free Software Foundation Europe e.V.
+   Copyright (C) 2000-2009 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.
@@ -20,7 +20,7 @@
    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.
@@ -134,10 +134,11 @@ unbash_spaces(POOL_MEM &pm)
    }
 }
 
-char *encode_time(time_t time, char *buf)
+char *encode_time(utime_t utime, char *buf)
 {
    struct tm tm;
    int n = 0;
+   time_t time = utime;
 
 #if defined(HAVE_WIN32)
    /*
@@ -194,6 +195,9 @@ void jobstatus_to_ascii(int JobStatus, char *msg, int maxlen)
    case JS_Error:
       jobstat = _("Non-fatal error");
       break;
+   case JS_Warnings:
+      jobstat = _("OK -- with warnings");
+      break;
    case JS_Canceled:
       jobstat = _("Canceled");
       break;
@@ -230,6 +234,12 @@ void jobstatus_to_ascii(int JobStatus, char *msg, int maxlen)
    case JS_WaitPriority:
       jobstat = _("Waiting on Priority");
       break;
+   case JS_DataCommitting:
+      jobstat = _("SD committing Data");
+      break;
+   case JS_DataDespooling:
+      jobstat = _("SD despooling Data");
+      break;
    case JS_AttrDespooling:
       jobstat = _("SD despooling Attributes");
       break;
@@ -249,6 +259,56 @@ void jobstatus_to_ascii(int JobStatus, char *msg, int maxlen)
    bstrncpy(msg, jobstat, maxlen);
 }
 
+/*
+ * Convert a JobStatus code into a human readable form - gui version
+ */
+void jobstatus_to_ascii_gui(int JobStatus, char *msg, int maxlen)
+{
+   const char *cnv = NULL;
+   switch (JobStatus) {
+   case JS_Terminated:
+      cnv = _("Completed successfully");
+      break;
+   case JS_Warnings:
+      cnv = _("Completed with warnings");
+      break;
+   case JS_ErrorTerminated:
+      cnv = _("Terminated with errors");
+      break;
+   case JS_FatalError:
+      cnv = _("Fatal error");
+      break;
+   case JS_Created:
+      cnv = _("Created, not yet running");
+      break;
+   case JS_Canceled:
+      cnv = _("Canceled by user");
+      break;
+   case JS_Differences:
+      cnv = _("Verify found differences");
+      break;
+   case JS_WaitFD:
+      cnv = _("Waiting for File daemon");
+      break;
+   case JS_WaitSD:
+      cnv = _("Waiting for Storage daemon");
+      break;
+   case JS_WaitPriority:
+      cnv = _("Waiting for higher priority jobs");
+      break;
+   case JS_AttrInserting:
+      cnv = _("Batch inserting file records");
+      break;
+   };
+
+   if (cnv) {
+      bstrncpy(msg, cnv, maxlen);
+   } else {
+     jobstatus_to_ascii(JobStatus, msg, maxlen);
+   }
+}
+
+
 /*
  * Convert Job Termination Status into a string
  */
@@ -260,6 +320,9 @@ const char *job_status_to_str(int stat)
    case JS_Terminated:
       str = _("OK");
       break;
+   case JS_Warnings:
+      str = _("OK -- with warnings");
+      break;
    case JS_ErrorTerminated:
    case JS_Error:
       str = _("Error");
@@ -307,6 +370,9 @@ const char *job_type_to_str(int type)
    case JT_COPY:
       str = _("Copy");
       break;
+   case JT_JOB_COPY:
+      str = _("Job Copy");
+      break;
    case JT_CONSOLE:
       str = _("Console");
       break;
@@ -360,6 +426,9 @@ const char *job_level_to_str(int level)
    case L_VERIFY_DATA:
       str = _("Verify Data");
       break;
+   case L_VIRTUAL_FULL:
+      str = _("Virtual Full");
+      break;
    case L_NONE:
       str = " ";
       break;
@@ -370,6 +439,33 @@ const char *job_level_to_str(int level)
    return str;
 }
 
+const char *volume_status_to_str(const char *status)
+{
+   int pos;
+   const char *vs[] = {
+      NT_("Append"),    _("Append"),
+      NT_("Archive"),   _("Archive"),
+      NT_("Disabled"),  _("Disabled"),
+      NT_("Full"),      _("Full"),
+      NT_("Used"),      _("Used"),
+      NT_("Cleaning"),  _("Cleaning"),
+      NT_("Purged"),    _("Purged"),
+      NT_("Recycle"),   _("Recycle"),
+      NT_("Read-Only"), _("Read-Only"),
+      NT_("Error"),     _("Error"),
+      NULL,             NULL};
+
+   if (status) {
+     for (pos = 0 ; vs[pos] ; pos += 2) {
+       if ( !strcmp(vs[pos],status) ) {
+         return vs[pos+1];
+       }
+     }
+   }
+
+   return _("Invalid volume status");
+}
+
 
 /***********************************************************************
  * Encode the mode bits into a 10 character string like LS does
@@ -659,7 +755,7 @@ POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to, job_co
             break;
          case 'l':
             if (jcr) {
-               str = job_level_to_str(jcr->JobLevel);
+               str = job_level_to_str(jcr->get_JobLevel());
             } else {
                str = _("*none*");
             }
@@ -690,7 +786,7 @@ POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to, job_co
             break;
          case 't':
             if (jcr) {
-               str = job_type_to_str(jcr->JobType);
+               str = job_type_to_str(jcr->get_JobType());
             } else {
                str = _("*none*");
             }