# Contact information: Zmanda Inc, 465 S. Mathilda Ave., Suite 300
# Sunnyvale, CA 94086, USA, or: http://www.zmanda.com
-use Test::More tests => 42;
+use Test::More tests => 43;
use File::Path;
use Data::Dumper;
use strict;
pass("Create 3-way RAIT of vtapes");
my $steps = define_steps
- cb_ref => \$finished_cb;
+ cb_ref => \$finished_cb,
+ finalize => sub { $chg->quit() };
step get_info => sub {
$chg->info(info_cb => $steps->{'check_info'},
die $err if $err;
is_deeply($inv, [
- { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS,
+ { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED,
f_type => $Amanda::Header::F_EMPTY, label => undef, # undef because labels don't match
reserved => 0,
slot => '{1,1,1}', import_export => undef },
- { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS,
+ { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED,
f_type => $Amanda::Header::F_EMPTY, label => undef, # all blank
reserved => 0,
slot => '{2,2,2}', import_export => undef },
- { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS,
+ { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED,
f_type => $Amanda::Header::F_EMPTY, label => undef, # mismatched labels
reserved => 0,
slot => '{3,3,3}', import_export => undef },
- { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS,
+ { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED,
f_type => $Amanda::Header::F_EMPTY, label => undef, # mismatched labels
reserved => 0,
slot => '{4,4,4}', import_export => undef } ,
my $chg = Amanda::Changer->new("chg-rait:{chg-disk:$tapebase/1,chg-disk:$tapebase/2,ERROR}");
pass("Create 3-way RAIT of vtapes, with the third errored out");
+ is($chg->have_inventory(), '1', "changer have inventory");
my $steps = define_steps
- cb_ref => \$finished_cb;
+ cb_ref => \$finished_cb,
+ finalize => sub { $chg->quit() };
step get_info => sub {
$chg->info(info_cb => $steps->{'check_info'},
pass("Create 3-way RAIT of vtapes with correctly-labeled children");
my $steps = define_steps
- cb_ref => \$finished_cb;
+ cb_ref => \$finished_cb,
+ finalize => sub { $chg->quit() };
step setup => sub {
reset_taperoot();
slot => '{1,1,1}', import_export => undef },
{ state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, f_type => $Amanda::Header::F_TAPESTART, label => 'mytape-2', reserved => 0,
slot => '{2,2,2}', import_export => undef },
- { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0,
+ { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0,
slot => '{3,3,3}', import_export => undef },
- { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0,
+ { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0,
slot => '{4,4,4}', import_export => undef } ,
], "second inventory is correct");
"Create RAIT device from a named config subsection");
my $steps = define_steps
- cb_ref => \$finished_cb;
+ cb_ref => \$finished_cb,
+ finalize => sub { $chg->quit() };
step do_load_1 => sub {
reset_taperoot();
my $chg;
my $steps = define_steps
- cb_ref => \$finished_cb;
+ cb_ref => \$finished_cb,
+ finalize => sub { $chg->quit() if defined $chg };
step start => sub {
$chg = Amanda::Changer->new("myrait");