OSSP CVS Repository

ossp - Check-in [3564]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 3564
Date: 2003-Sep-08 15:43:05 (local)
2003-Sep-08 13:43:05 (UTC)
User:thl
Branch:
Comment: hwDisk for SunOS as array
Tickets:
Inspections:
Files:
ossp-pkg/snmpdx/snmpdx.d/hwDisk.pm      added-> 1.1
ossp-pkg/snmpdx/snmpdx.mib/snmpdx.mib      1.6 -> 1.7     29 inserted, 22 deleted

ossp-pkg/snmpdx/snmpdx.d/hwDisk.pm -> 1.1

*** /dev/null    Thu May 16 01:03:46 2024
--- -    Thu May 16 01:05:04 2024
***************
*** 0 ****
--- 1,87 ----
+ ##
+ ##  snmpdx -- SNMP Daemon Extension
+ ##  Copyright (c) 2003 The OSSP Project <http://www.ossp.org/>
+ ##  Copyright (c) 2003 Ralf S. Engelschall <rse@engelschall.com>
+ ##  Copyright (c) 2003 Cable & Wireless <http://www.cw.com/>
+ ##
+ ##  Permission to use, copy, modify, and distribute this software for
+ ##  any purpose with or without fee is hereby granted, provided that
+ ##  the above copyright notice and this permission notice appear in all
+ ##  copies.
+ ##
+ ##  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ ##  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ ##  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ ##  IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ ##  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ ##  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ ##  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ ##  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ##  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ ##  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ ##  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ ##  SUCH DAMAGE.
+ ##
+ ##  hwDisk: Hardware, Disk
+ ##
+ 
+ package My::Probe::hwDisk;
+ our @ISA = qw(My::Probe);
+ 
+ sub oids ($) {
+     my ($self) = @_;
+     return $self->{-ctx}->{-mib}->oids("*.snmpdx.host.hardware.hwDisk.*");
+ }
+ 
+ sub probe ($$) {
+     my ($self, $obj) = @_;
+ 
+     if ($self->{-ctx}->{-platform}->id() =~ m/FreeBSD/i) {
+         my $hwDiskInfoENTRY = undef; #N/A
+     }
+     elsif ($self->{-ctx}->{-platform}->id() =~ m/Linux/i) {
+         my $hwDiskInfoENTRY = undef; #N/A
+     }
+     elsif($self->{-ctx}->{-platform}->id() =~ m/SunOS/i) {
+         my $hwDiskInfoENTRY = undef;
+ 
+         #   local workspace
+         my $out; my $raw; my $arch; my $new;
+ 
+         #   initialize arch
+         $arch = $self->{-ctx}->{-platform}->arch();
+ 
+         #   hwDiskInfoENTRY
+         $out = $self->{-ctx}->{-sys}->run("/usr/platform/$arch/sbin/prtdiag -v", "1m");
+         $raw = $out->{-stdout};
+         if ($raw =~ m/\n=+ Environmental Status =+\n.*\nDisk LED Status:[^\n]+\n(.*?)\n=+/s) {
+             $raw = $1;
+             $raw =~ s/[[:]//gs;
+             $raw =~ s/\]/\n/gs;
+             foreach $line (split "\n", $raw) {
+                 if ($line =~ m/DISK\s+(\d+)\s+(OK|ERROR)/) {
+                     my $new = {};
+                     $new->{hwDiskId} = "DISK$1";
+                     if ($2 =~ m/^OK$/) {
+                         $new->{hwDiskStatus} = 1;
+                     }
+                     else {
+                         $new->{hwDiskStatus} = 0;
+                     }
+                     push(@hwDiskInfoENTRY, $new);
+                 }
+             }
+         }
+ 
+         if ($obj->{-name} =~ m/\.hwDiskInfoENTRY\.([^.]+)\.(\d+)$/) {
+             my $col = $1;
+             my $row = ($2 > 0 ? $2 - 1 : 0);
+             $self->{-ctx}->{-log}->printf(4, "col=%s row=%s", $col, $row);
+             $obj->{-value} = @hwDiskInfoENTRY[$row]->{$col} if (defined @hwDiskInfoENTRY[$row]->{$col});
+         }
+     }
+     return;
+ }
+ 
+ 1;
+ 


ossp-pkg/snmpdx/snmpdx.mib/snmpdx.mib 1.6 -> 1.7

--- snmpdx.mib   2003/09/08 12:50:17     1.6
+++ snmpdx.mib   2003/09/08 13:43:05     1.7
@@ -344,39 +344,46 @@
     ::= { hwRam 2 }
 
 --
---  Hardware: Disk Space
+--  Hardware: Disk
 --
 
 hwDisk OBJECT IDENTIFIER
     ::= { hardware 4 }
 
-hwDiskMax OBJECT-TYPE
-    SYNTAX      Gauge32
-    MAX-ACCESS  read-only
+hwDiskInfoTABLE OBJECT-TYPE
+    SYNTAX          SEQUENCE OF HwDiskIndexENTRY
+    MAX-ACCESS  not-accessible
     STATUS      current
-    DESCRIPTION "maximum available Disk space in MB"
+    DESCRIPTION "FIXME Table description!?"
     ::= { hwDisk 1 }
 
-hwDiskUsed OBJECT-TYPE
-    SYNTAX      Gauge32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION "currently used Disk space in MB"
-    ::= { hwDisk 2 }
-
-hwDiskTemp OBJECT-TYPE
-    SYNTAX      Gauge32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION "temperature of Disks"
-    ::= { hwDisk 3 }
+hwDiskInfoENTRY OBJECT-TYPE
+    SYNTAX          HwDiskIndexENTRY
+    MAX-ACCESS  not-accessible
+    STATUS          current
+    DESCRIPTION "FIXME Row description!?"
+    INDEX           { hwDiskInfoIndex }
+    ::= { hwDiskInfoTABLE 1 }
+
+HwDiskIndexENTRY ::= SEQUENCE {
+    hwDiskId       DisplayString,
+    hwDiskStatus   Integer32
+}
+
+hwDiskId OBJECT-TYPE
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS          current
+    DESCRIPTION "Disk identification"
+    ::= { hwDiskInfoENTRY 1 }
 
 hwDiskStatus OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION "boolean status of Disks"
-    ::= { hwDisk 4 }
+    SYNTAX      DisplayString
+    MAX-ACCESS  read-only
+    STATUS          current
+    DESCRIPTION "Disk status"
+    ::= { hwDiskInfoENTRY 2 }
+
 
 --
 --  Hardware: Power Supply

CVSTrac 2.0.1