]> git.sur5r.net Git - bacula/bacula/commitdiff
Update doc
authorKern Sibbald <kern@sibbald.com>
Thu, 3 Apr 2003 17:19:13 +0000 (17:19 +0000)
committerKern Sibbald <kern@sibbald.com>
Thu, 3 Apr 2003 17:19:13 +0000 (17:19 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@416 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/cats/sql_list.c
bacula/src/dird/ua_output.c

index e53b91760c93c8f55127cb46f5bce36c4e4126ac..62498588b1d5d7b6b2689732003c62519966c95f 100644 (file)
@@ -124,21 +124,40 @@ db_list_client_records(void *jcr, B_DB *mdb, DB_LIST_HANDLER *sendit, void *ctx,
 }
 
 
+/*
+ * If VolumeName is non-zero, list the record for that Volume
+ *   otherwise, list the Volumes in the Pool specified by PoolId
+ */
 void
 db_list_media_records(void *jcr, B_DB *mdb, MEDIA_DBR *mdbr, 
                      DB_LIST_HANDLER *sendit, void *ctx, int full)
 {
    if (full) {
-      Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,Slot,PoolId,"
-         "MediaType,FirstWritten,LastWritten,LabelDate,VolJobs,"
-         "VolFiles,VolBlocks,VolMounts,VolBytes,VolErrors,VolWrites,"
-         "VolCapacityBytes,VolStatus,Recycle,VolRetention,"
-         "VolUseDuration,MaxVolJobs,MaxVolFiles,MaxVolBytes "
-         "FROM Media WHERE Media.PoolId=%u ORDER BY MediaId", mdbr->PoolId);
+      if (mdbr->VolumeName[0] != 0) {
+         Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,Slot,PoolId,"
+            "MediaType,FirstWritten,LastWritten,LabelDate,VolJobs,"
+            "VolFiles,VolBlocks,VolMounts,VolBytes,VolErrors,VolWrites,"
+            "VolCapacityBytes,VolStatus,Recycle,VolRetention,"
+            "VolUseDuration,MaxVolJobs,MaxVolFiles,MaxVolBytes "
+            "FROM Media WHERE Media.VolumeName='%s'", mdbr->VolumeName);
+      } else {
+         Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,Slot,PoolId,"
+            "MediaType,FirstWritten,LastWritten,LabelDate,VolJobs,"
+            "VolFiles,VolBlocks,VolMounts,VolBytes,VolErrors,VolWrites,"
+            "VolCapacityBytes,VolStatus,Recycle,VolRetention,"
+            "VolUseDuration,MaxVolJobs,MaxVolFiles,MaxVolBytes "
+            "FROM Media WHERE Media.PoolId=%u ORDER BY MediaId", mdbr->PoolId);
+      }
    } else {
-      Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,MediaType,VolStatus,"
-         "VolBytes,LastWritten,VolRetention,Recycle,Slot "
-         "FROM Media WHERE Media.PoolId=%u ORDER BY MediaId", mdbr->PoolId);
+      if (mdbr->VolumeName[0] != 0) {
+         Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,MediaType,VolStatus,"
+            "VolBytes,LastWritten,VolRetention,Recycle,Slot "
+            "FROM Media WHERE Media.VolumeName='%s'", mdbr->VolumeName);
+      } else {
+         Mmsg(&mdb->cmd, "SELECT MediaId,VolumeName,MediaType,VolStatus,"
+            "VolBytes,LastWritten,VolRetention,Recycle,Slot "
+            "FROM Media WHERE Media.PoolId=%u ORDER BY MediaId", mdbr->PoolId);
+      }
    }
 
    db_lock(mdb);
index 658bc84df1666281c043df70a6b57a217be461c7..a2edf426bbfe2150fe8b33456515bf9dcf5436a2 100644 (file)
@@ -329,6 +329,7 @@ static int do_listcmd(UAContext *ua, char *cmd, int llist)
            for (i=1; i<ua->argc; i++) {
                if (strcasecmp(ua->argk[i], _("pool")) == 0) {
                  if (!get_pool_dbr(ua, &pr)) {
+                     bsendmsg(ua, _("No Pool specified.\n"));
                     return 1;
                  }
                  mr.PoolId = pr.PoolId;
@@ -356,6 +357,15 @@ static int do_listcmd(UAContext *ua, char *cmd, int llist)
            free(ids);
            return 1;
         }
+      /* List a specific volume */
+      } else if (strcasecmp(ua->argk[i], _("volume")) == 0) {
+        if (!ua->argv[i]) {
+            bsendmsg(ua, _("No Volume Name specified.\n"));
+           return 1;
+        }
+        bstrncpy(mr.VolumeName, ua->argv[i], sizeof(mr.VolumeName));
+        db_list_media_records(ua->jcr, ua->db, &mr, prtit, ua, llist);
+        return 1;
       } else {
          bsendmsg(ua, _("Unknown list keyword: %s\n"), NPRT(ua->argk[i]));
       }