/*
* Update Slots corresponding to Volumes in autochanger
*/
-int update_slots(UAContext *ua)
+void update_slots(UAContext *ua)
{
STORE *store;
vol_list_t *vl, *vol_list = NULL;
if (!open_db(ua)) {
- return 1;
+ return;
}
store = get_storage_resource(ua, true/*arg is storage*/);
if (!store) {
- return 1;
+ return;
}
set_storage(ua->jcr, store);
drive = get_storage_drive(ua, store);
- scan = find_arg(ua, N_("scan")) >= 0;
+ scan = find_arg(ua, NT_("scan")) >= 0;
max_slots = get_num_slots_from_SD(ua);
Dmsg1(100, "max_slots=%d\n", max_slots);
if (max_slots <= 0) {
bsendmsg(ua, _("No slots in changer to scan.\n"));
- return 1;
+ return;
}
slot_list = (char *)malloc(max_slots+1);
if (!get_user_slot_list(ua, slot_list, max_slots)) {
free(slot_list);
- return 1;
+ return;
}
vol_list = get_vol_list_from_SD(ua, scan);
free(slot_list);
close_sd_bsock(ua);
- return 1;
+ return;
}
bsendmsg(ua, "%s", db_strerror(ua->db));
}
} else { /* create the media record */
+ if (pr.MaxVols > 0 && pr.NumVols >= pr.MaxVols) {
+ bsendmsg(ua, _("Maximum pool Volumes=%d reached.\n"), pr.MaxVols);
+ goto bail_out;
+ }
set_pool_dbr_defaults_in_media_dbr(&mr, &pr);
bstrncpy(mr.VolStatus, "Cleaning", sizeof(mr.VolStatus));
mr.MediaType[0] = 0;
bstrncpy(dev_name, store->dev_name(), sizeof(dev_name));
bash_spaces(dev_name);
/* Ask for autochanger list of volumes */
- bnet_fsend(sd, _("readlabel %s Slot=%d drive=%d\n"), dev_name, Slot, drive);
+ bnet_fsend(sd, NT_("readlabel %s Slot=%d drive=%d\n"), dev_name, Slot, drive);
Dmsg1(100, "Sent: %s", sd->msg);
/* Get Volume name in this Slot */
while (bnet_recv(sd) >= 0) {
bsendmsg(ua, "%s", sd->msg);
Dmsg1(100, "Got: %s", sd->msg);
- if (strncmp(sd->msg, "3001 Volume=", 12) == 0) {
+ if (strncmp(sd->msg, NT_("3001 Volume="), 12) == 0) {
VolName = (char *)malloc(sd->msglen);
- if (sscanf(sd->msg, "3001 Volume=%s Slot=%d", VolName, &rtn_slot) == 2) {
+ if (sscanf(sd->msg, NT_("3001 Volume=%s Slot=%d"), VolName, &rtn_slot) == 2) {
break;
}
free(VolName);
bstrncpy(dev_name, store->dev_name(), sizeof(dev_name));
bash_spaces(dev_name);
/* Ask for autochanger list of volumes */
- bnet_fsend(sd, _("autochanger list %s \n"), dev_name);
+ bnet_fsend(sd, NT_("autochanger list %s \n"), dev_name);
/* Read and organize list of Volumes */
while (bnet_recv(sd) >= 0) {
bstrncpy(dev_name, store->dev_name(), sizeof(dev_name));
bash_spaces(dev_name);
/* Ask for autochanger number of slots */
- bnet_fsend(sd, _("autochanger slots %s\n"), dev_name);
+ bnet_fsend(sd, NT_("autochanger slots %s\n"), dev_name);
while (bnet_recv(sd) >= 0) {
if (sscanf(sd->msg, "slots=%d\n", &slots) == 1) {
bstrncpy(dev_name, store->dev_name(), sizeof(dev_name));
bash_spaces(dev_name);
/* Ask for autochanger number of slots */
- bnet_fsend(sd, _("autochanger drives %s\n"), dev_name);
+ bnet_fsend(sd, NT_("autochanger drives %s\n"), dev_name);
while (bnet_recv(sd) >= 0) {
- if (sscanf(sd->msg, "drives=%d\n", &drives) == 1) {
+ if (sscanf(sd->msg, NT_("drives=%d\n"), &drives) == 1) {
break;
} else {
bsendmsg(ua, "%s", sd->msg);