From 056ffd4e26e1cc48e82a9f24c621ec8ef5844f3b Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Thu, 3 Apr 2003 17:19:13 +0000 Subject: [PATCH] Update doc git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@416 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/src/cats/sql_list.c | 37 ++++++++++++++++++++++++++++--------- bacula/src/dird/ua_output.c | 10 ++++++++++ 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/bacula/src/cats/sql_list.c b/bacula/src/cats/sql_list.c index e53b91760c..62498588b1 100644 --- a/bacula/src/cats/sql_list.c +++ b/bacula/src/cats/sql_list.c @@ -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); diff --git a/bacula/src/dird/ua_output.c b/bacula/src/dird/ua_output.c index 658bc84df1..a2edf426bb 100644 --- a/bacula/src/dird/ua_output.c +++ b/bacula/src/dird/ua_output.c @@ -329,6 +329,7 @@ static int do_listcmd(UAContext *ua, char *cmd, int llist) for (i=1; iargc; 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])); } -- 2.39.5