]> xenbits.xensource.com Git - osstest.git/commitdiff
pdu-snmp: Refactor model handling
authorIan Jackson <iwj@xenproject.org>
Tue, 27 Oct 2020 11:51:26 +0000 (11:51 +0000)
committerIan Jackson <iwj@xenproject.org>
Tue, 27 Oct 2020 13:39:51 +0000 (13:39 +0000)
This makes it easier to see waht is going on and to add new model(s).

No functional change.

Signed-off-by: Ian Jackson <iwj@xenproject.org>
pdu-snmp

index a4918f53a0311debddbdb56e3069c0c244fa0c99..7424414525814ae71b7e1ca57b2a007fbe0702e1 100755 (executable)
--- a/pdu-snmp
+++ b/pdu-snmp
@@ -28,15 +28,28 @@ use Data::Dumper;
 
 my $community= 'private';
 
-my $baseoid= '.1.3.6.1.4.1.318.1.1.4.4.2.1';
-my $baseoid_write= "$baseoid.3";
-my $baseoid_name= "$baseoid.4";
-my $baseoid_read= "$baseoid.3";
+our ($baseoid, $baseoid_write, $baseoid_name, $baseoid_read);
+
+sub model_msw () {
+    # APC MasterSwitch
+    $baseoid= '.1.3.6.1.4.1.318.1.1.4.4.2.1';
+    $baseoid_name= "$baseoid.4";
+    $baseoid_read= "$baseoid.3";
+    $baseoid_write= "$baseoid.3";
+}
+
+sub model_apc6 () {
+    # APC MasterSwitch protocol version 6 (?)
+    model_msw();
+    $baseoid_write= '.1.3.6.1.4.1.318.1.1.12.3.3.1.1.4';
+}
+
+my $model_name = 'msw';
 
 while (@ARGV && $ARGV[0] =~ m/^-/) {
     $_ = shift @ARGV;
-    if (m/^--apc6$/) {
-       $baseoid_write= '.1.3.6.1.4.1.318.1.1.12.3.3.1.1.4';
+    if (m/^--(\w+)$/ && ${*::}{"model_$1"}) {
+       $model_name= $1;
     } else {
        die "$_ ?";
     }
@@ -44,6 +57,8 @@ while (@ARGV && $ARGV[0] =~ m/^-/) {
 
 if (@ARGV<2 || @ARGV>3 || $ARGV[0] =~ m/^-/) { die "bad usage\n$usagemsg"; }
 
+${*::}{"model_$model_name"}->();
+
 our ($max_retries) = 16; # timeout = 0.05 * max_retries^2
 our ($dnsname,$outlet,$action) = @ARGV;