-# Copyright (c) 2008,2009,2010 Zmanda, Inc. All Rights Reserved.
+# Copyright (c) 2008-2012 Zmanda, Inc. All Rights Reserved.
#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 as published
-# by the Free Software Foundation.
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
}
my $state_filename = Amanda::Config::config_dir_relative($config->{'changerfile'});
+ my $lock_timeout = $config->{'lock-timeout'};
Amanda::Debug::debug("Using state file: $state_filename");
my $self = {
state_filename => $state_filename,
first_slot => $first_slot,
last_slot => $last_slot,
+ 'lock-timeout' => $lock_timeout,
};
bless ($self, $class);
my $s = { slot => $slot,
state => $state->{slots}->{$unaliased}->{state} || Amanda::Changer::SLOT_UNKNOWN,
reserved => $self->_is_slot_in_use($state, $slot) };
- if (defined $state->{slots}->{$unaliased}) {
+ if (defined $state->{slots}->{$unaliased} and
+ exists $state->{slots}->{$unaliased}->{device_status}) {
$s->{'device_status'} =
$state->{slots}->{$unaliased}->{device_status};
if ($s->{'device_status'} != $DEVICE_STATUS_SUCCESS) {
if (defined $state->{current_slot}) {
my $slot = $self->{number}->{$state->{current_slot}};
# return the slot if it exist.
- return $slot if $slot >= $self->{'first_slot'} && $slot < $self->{'last_slot'};
+ return $slot if defined $slot and
+ $slot >= $self->{'first_slot'} and
+ $slot < $self->{'last_slot'};
Amanda::Debug::debug("statefile current_slot is not configured");
}
# return the first slot