]> git.apps.os.sepia.ceph.com Git - ceph-cm-ansible.git/commitdiff
smart.pl multiline mode: show failed/missing drives as well
authorDan Mick <dan.mick@redhat.com>
Tue, 8 Sep 2015 21:23:01 +0000 (14:23 -0700)
committerDan Mick <dan.mick@redhat.com>
Tue, 8 Sep 2015 23:35:06 +0000 (16:35 -0700)
also, make a global "multiline" flag (since it's now being used
in multiple places)

Signed-off-by: Dan Mick <dan.mick@redhat.com>
roles/testnode/files/libexec/smart.pl

index 7a826864800ee03b821dd429dad69fc10dca7e0d..9c4e03e0881dd857bc2c4df2d4298272a7c30d0a 100644 (file)
@@ -16,6 +16,7 @@ my $type;
 my $mdadm;
 my $fullcommand;
 my $message;
+my $multiline;
 
 my $hostname = `uname -n`;
 chomp $hostname;
@@ -28,6 +29,10 @@ our $realloc = '50';
 our $pend = '1';
 our $uncorrect = '1';
 
+if ($ARGV[0] =~ /-m/) {
+    $multiline = 1;
+}
+
 if ( $hostname =~ /mira/i )
 {
        $realloc = '200';
@@ -188,7 +193,12 @@ if ( $pci =~ /areca/i)
                $sgindex++;
        }
        my $scsidev = "/dev/sg$sgindex";
-       open(CLI,"sudo /usr/sbin/cli64 disk info | grep -vi Modelname | grep -v ====== | grep -vi GuiErr | grep -vi Free | grep -vi Failed | grep -vi 'N.A.' |");
+    if ($multiline) {
+        # don't filter out Failed/N.A drives
+        open(CLI,"sudo /usr/sbin/cli64 disk info | grep -vi Modelname | grep -v ====== | grep -vi GuiErr |");
+    } else {
+        open(CLI,"sudo /usr/sbin/cli64 disk info | grep -vi Modelname | grep -v ====== | grep -vi GuiErr | grep -vi Free | grep -vi Failed | grep -vi 'N.A.' |");
+    }
        while (<CLI>)
        {
                $drives++;
@@ -198,7 +208,12 @@ if ( $pci =~ /areca/i)
                        foreach ($info[1])
                        {
                                my $drive = $_;
-                               smartctl("$smartctl","areca",$drive,$scsidev);
+                               my $status = $info[$#info];
+                if ($multiline && ($status =~ /Failed/ || $status =~ /N\.A\./)) {
+                    push(@out, "Drive $drive $status");
+                } else {
+                    smartctl("$smartctl","areca",$drive,$scsidev);
+                }
                        }
                }
        }