- Fix the Rescue CDROM.
Maybe in 1.37:
+- Add ClientDefs similar to JobDefs.
- Print more info when bextract -p accepts a bad block.
- To mark files as deleted, run essentially a Verify to disk, and
when a file is found missing (MarkId != JobId), then create
===================================
-
+- Add macro expansions in JobDefs.
+ Run Before Job = "SomeFile %{Level} %{Client}"
+ Write Bootstrap="/some/dir/%{JobName}_%{Client}.bsr"
- Use non-blocking network I/O but if no data is available, use
select().
- Use gather write() for network I/O.
Changes to 1.37.18:
16May05
+- Add more debug to SD for Autochangers + status output.
- Add Scratch to PoolType in PostgreSQL make...tables and do not
permit NULL PoolTypes. Fix for bug 319 reported by Eric.
- Update LICENSE.
{ N_("trace"), trace_cmd, _("turn on/off trace to file")},
{ N_("unmount"), unmount_cmd, _("unmount <storage-name>")},
{ N_("umount"), unmount_cmd, _("umount <storage-name> for old-time Unix guys")},
- { N_("update"), update_cmd, _("update Volume or Pool")},
+ { N_("update"), update_cmd, _("update Volume, Pool or slots")},
{ N_("use"), use_cmd, _("use catalog xxx")},
{ N_("var"), var_cmd, _("does variable expansion")},
{ N_("version"), version_cmd, _("print Director version")},
if (!dev_cap(dev, CAP_AUTOCHANGER) || !dcr->device->changer_name ||
!dcr->device->changer_command) {
- bnet_fsend(dir, _("3993 Not a autochanger device.\n"));
+ bnet_fsend(dir, _("3993 Device %s not an autochanger device.\n"),
+ dev->print_name());
return false;
}
bpipe = open_bpipe(changer, timeout, "r");
if (!bpipe) {
unlock_changer(dcr);
- bnet_fsend(dir, _("3993 Open bpipe failed.\n"));
+ bnet_fsend(dir, _("3996 Open bpipe failed.\n"));
goto bail_out;
}
if (strcmp(cmd, "list") == 0) {
bool status_cmd(JCR *jcr)
{
DEVRES *device;
+ AUTOCHANGER *changer;
DEVICE *dev;
BSOCK *user = jcr->dir_bsock;
char dt[MAX_TIME_LENGTH];
*/
bnet_fsend(user, _("\nDevice status:\n"));
// LockRes();
+ foreach_res(changer, R_AUTOCHANGER) {
+ bnet_fsend(user, _("Autochanger \"%s\" with devices:\n"),
+ changer->hdr.name);
+ foreach_alist(device, changer->device) {
+ if (device->dev) {
+ bnet_fsend(user, " %s\n", device->dev->print_name());
+ } else {
+ bnet_fsend(user, " %s\n", device->hdr.name);
+ }
+ }
+ }
foreach_res(device, R_DEVICE) {
dev = device->dev;
if (dev && dev->is_open()) {
int monitor; /* Have only access to status and .status functions */
#ifdef HAVE_TLS
int tls_enable; /* Enable TLS */
- int tls_require; /* Require TLS */
+ int tls_require; /* Require TLS */
int tls_verify_peer; /* TLS Verify Client Certificate */
char *tls_ca_certfile; /* TLS CA Certificate File */
char *tls_ca_certdir; /* TLS CA Certificate Directory */
utime_t heartbeat_interval; /* Interval to send hb to FD */
#ifdef HAVE_TLS
int tls_enable; /* Enable TLS */
- int tls_require; /* Require TLS */
+ int tls_require; /* Require TLS */
int tls_verify_peer; /* TLS Verify Client Certificate */
char *tls_ca_certfile; /* TLS CA Certificate File */
char *tls_ca_certdir; /* TLS CA Certificate Directory */
class AUTOCHANGER {
public:
RES hdr;
- alist *device;
+ alist *device; /* List of DEVRES device pointers */
char *changer_name; /* Changer device name */
char *changer_command; /* Changer command -- external program */
pthread_mutex_t changer_mutex; /* One changer operation at a time */