X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=server-src%2Famcheck-device.pl;h=a27d006148ba4e4880dd787f20bb3995c01cd55b;hb=b221e8dc16f345f8c8d7df8df71f4d36daaabb4c;hp=d9689cb9ad8ae55966b8b1fbf1a805dd0c79009b;hpb=cb38d19aa8dc2c5d380ab2d7ad9724a5d99eee5d;p=debian%2Famanda diff --git a/server-src/amcheck-device.pl b/server-src/amcheck-device.pl index d9689cb..a27d006 100644 --- a/server-src/amcheck-device.pl +++ b/server-src/amcheck-device.pl @@ -29,6 +29,7 @@ use Amanda::Device qw( :constants ); use Amanda::MainLoop; use Amanda::Changer; use Amanda::Taper::Scan; +use Amanda::Interactivity; use Getopt::Long; Amanda::Util::setup_application("amcheck-device", "server", $CONTEXT_CMDLINE); @@ -141,16 +142,23 @@ sub failure { sub do_check { my ($finished_cb) = @_; my ($res, $label, $mode); + my $tlf = Amanda::Config::config_dir_relative(getconf($CNF_TAPELIST)); + my $tl = Amanda::Tapelist->new($tlf); + my $chg = Amanda::Changer->new(undef, tapelist => $tl); + return failure($chg, $finished_cb) if ($chg->isa("Amanda::Changer::Error")); + my $interactivity = Amanda::Interactivity->new( + name => getconf($CNF_INTERACTIVITY)); + my $scan_name = getconf($CNF_TAPERSCAN); + my $taperscan = Amanda::Taper::Scan->new(algorithm => $scan_name, + changer => $chg, + interactivity => $interactivity, + tapelist => $tl); my $steps = define_steps - cb_ref => \$finished_cb; + cb_ref => \$finished_cb, + finalize => sub { $taperscan->quit(); }; step start => sub { - my $chg = Amanda::Changer->new(); - - return failure($chg, $finished_cb) if ($chg->isa("Amanda::Changer::Error")); - - my $taperscan = Amanda::Taper::Scan->new(changer => $chg); $taperscan->scan( result_cb => $steps->{'result_cb'}, user_msg_fn => \&_user_msg_fn @@ -161,15 +169,6 @@ sub do_check { (my $err, $res, $label, $mode) = @_; return failure($err, $finished_cb) if $err; - if (defined $res->{'device'}->volume_label()) { - $res->set_label(label => $res->{'device'}->volume_label(), - finished_cb => $steps->{'set_labeled'}); - } else { - $steps->{'set_labeled'}->(undef); - }; - }; - - step set_labeled => sub { my $modestr = ($mode == $ACCESS_APPEND)? "append" : "write"; my $slot = $res->{'this_slot'}; if (defined $res->{'device'}->volume_label()) {