X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=perl%2FAmanda%2FChanger%2Fmulti.pm;h=7a087b5d1af96fcc72b621efdcdd3f1ed2252ba2;hb=d28952249e392eb31bc8eecc53f6c477f30c617b;hp=9324a54124fbf4eaade3855945a836c1eaaaa7c7;hpb=c6f0a88c567f8536c498f554285aed1f8150da18;p=debian%2Famanda diff --git a/perl/Amanda/Changer/multi.pm b/perl/Amanda/Changer/multi.pm index 9324a54..7a087b5 100644 --- a/perl/Amanda/Changer/multi.pm +++ b/perl/Amanda/Changer/multi.pm @@ -1,8 +1,9 @@ -# 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 @@ -111,6 +112,7 @@ sub new { } 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 = { @@ -122,6 +124,7 @@ sub new { state_filename => $state_filename, first_slot => $first_slot, last_slot => $last_slot, + 'lock-timeout' => $lock_timeout, }; bless ($self, $class); @@ -410,7 +413,8 @@ sub inventory { 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) { @@ -622,7 +626,9 @@ sub _get_current { 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