lintian doesn't like orphan packages with uploaders...
[debian/amanda] / server-src / amcheck-device.pl
index 3a72bbe0053a0296889163fc22edb45fc589dc91..b87d0e30954c9534609888f1029b489666523246 100644 (file)
@@ -1,9 +1,10 @@
 #! @PERL@
-# Copyright (c) 2009, 2010 Zmanda Inc.  All Rights Reserved.
+# Copyright (c) 2009-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
@@ -95,6 +96,17 @@ sub _user_msg_fn {
                     print STDERR "slot $params{'err'}->{'this_slot'}:";
                 }
                 print STDERR " $params{'err'}\n";
+            } elsif (!$params{'res'}) {
+                my $volume_label = $params{'label'};
+                if ($params{'active'}) {
+                    print STDERR " volume '$volume_label' is still active and cannot be overwritten\n";
+                } elsif ($params{'does_not_match_labelstr'}) {
+                    print STDERR " volume '$volume_label' does not match labelstr '$params{'labelstr'}'\n";
+                } elsif ($params{'not_in_tapelist'}) {
+                    print STDERR " volume '$volume_label' is not in the tapelist\n"
+                } else {
+                    print STDERR " volume '$volume_label'\n";
+                }
             } else { # res must be defined
                 my $res = $params{'res'};
                 my $dev = $res->{'device'};
@@ -119,7 +131,12 @@ sub _user_msg_fn {
                 } elsif ($dev->status & $DEVICE_STATUS_VOLUME_UNLABELED and
                          $dev->volume_header and
                          $dev->volume_header->{'type'} == $Amanda::Header::F_WEIRD) {
-                    print STDERR " contains a non-Amanda volume; check and relabel it with 'amlabel -f'\n";
+                   my $autolabel = getconf($CNF_AUTOLABEL);
+                   if ($autolabel->{'non_amanda'}) {
+                       print STDERR " contains a non-Amanda volume\n";
+                   } else {
+                       print STDERR " contains a non-Amanda volume; check and relabel it with 'amlabel -f'\n";
+                   }
                 } elsif ($dev->status & $DEVICE_STATUS_VOLUME_ERROR) {
                     my $message = $dev->error_or_status();
                     print STDERR " Can't read label: $message\n";
@@ -184,7 +201,13 @@ sub do_check {
        if (defined $res->{'device'} and defined $res->{'device'}->volume_label()) {
            print "Will $modestr to volume '$label' in slot $slot.\n";
        } else {
-           print "Will $modestr label '$label' to new volume in slot $slot.\n";
+           my $header = $res->{'device'}->volume_header();
+           if (defined $header and defined $header->{'type'} and
+               $header->{'type'} == $Amanda::Header::F_WEIRD) {
+               print "Will $modestr label '$label' to non-Amanda volume in slot $slot.\n";
+           } else {
+               print "Will $modestr label '$label' to new volume in slot $slot.\n";
+           }
        }
 
        $steps->{'check_access_type'}->();