POOL_DBR pr;
vol_list_t *vl, *vol_list = NULL;
MEDIA_DBR mr;
+ char ed1[50], ed2[50], ed3[50];
char *slot_list;
int max_slots;
int drive;
int i=1;
/* output format */
- const char *slot_api_empty_format="%i|||||\n";
- const char *slot_api_full_format="%i|%i|%s|%s|%s|%s|\n";
+ const char *slot_api_empty_format="%i||||||||\n";
+
+ /* Slot|RealSlot|Volume|Bytes|Status|MediaType|Pool|LastW|Expire */
+ const char *slot_api_full_format="%i|%i|%s|%s|%s|%s|%s|%s|%s\n";
+
+ /* Slot | Volume | Status | MediaType | Pool */
const char *slot_hformat=" %4i%c| %16s | %9s | %20s | %18s |\n";
if (!open_client_db(ua)) {
if (!vl->VolName) {
Dmsg1(100, "No VolName for Slot=%d.\n", vl->Slot);
- if (!ua->api) {
+ if (ua->api) {
+ ua->send_msg(slot_api_empty_format, vl->Slot);
+
+ } else {
ua->send_msg(slot_hformat,
vl->Slot, '*',
"?", "?", "?", "?");
- } else {
- ua->send_msg(slot_api_empty_format, vl->Slot);
}
continue;
}
/* Hope that slots are ordered */
for (; i < vl->Slot; i++) {
if (slot_list[i]) {
- if (!ua->api) {
+ if (ua->api) {
+ ua->send_msg(slot_api_empty_format, i);
+
+ } else {
ua->send_msg(slot_hformat,
i, ' ', "", "", "", "");
- } else {
- ua->send_msg(slot_api_empty_format, i);
}
slot_list[i]=0;
}
if (!db_get_pool_record(ua->jcr, ua->db, &pr)) {
strcpy(pr.Name, "?");
}
+ db_unlock(ua->db);
- if (!ua->api) {
+ if (ua->api) {
+ ua->send_msg(slot_api_full_format,
+ vl->Slot, mr.Slot, mr.VolumeName,
+ edit_uint64(mr.VolBytes, ed1),
+ mr.VolStatus, mr.MediaType, pr.Name,
+ edit_uint64(mr.LastWritten, ed2),
+ edit_uint64(mr.LastWritten+mr.VolRetention, ed3));
+ } else {
/* Print information */
ua->send_msg(slot_hformat,
vl->Slot, ((vl->Slot==mr.Slot)?' ':'*'),
mr.VolumeName, mr.VolStatus, mr.MediaType, pr.Name);
- } else {
- ua->send_msg(slot_api_full_format,
- vl->Slot, mr.Slot, mr.VolumeName, mr.VolStatus,
- mr.MediaType, pr.Name);
}
- db_unlock(ua->db);
continue;
} else { /* TODO: get information from catalog */
- ua->send_msg(slot_hformat,
- vl->Slot, '*',
- mr.VolumeName, "?", "?", "?");
+ if (ua->api) {
+ ua->send_msg(slot_api_empty_format, vl->Slot);
+
+ } else {
+ ua->send_msg(slot_hformat,
+ vl->Slot, '*',
+ mr.VolumeName, "?", "?", "?");
+ }
}
db_unlock(ua->db);
}
for (; i <= max_slots; i++) {
if (slot_list[i]) {
if (!ua->api) {
+ ua->send_msg(slot_api_empty_format, i);
+
+ } else {
ua->send_msg(slot_hformat,
i, ' ', "", "", "", "");
- } else {
- ua->send_msg(slot_api_empty_format, i);
}
slot_list[i]=0;
}