From: Ian Jackson Date: Tue, 27 Oct 2020 11:51:26 +0000 (+0000) Subject: pdu-snmp: Refactor model handling X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=245c9a8a57a9341f69b1c3fee7184d2f6dcce493;p=osstest.git pdu-snmp: Refactor model handling This makes it easier to see waht is going on and to add new model(s). No functional change. Signed-off-by: Ian Jackson --- diff --git a/pdu-snmp b/pdu-snmp index a4918f5..7424414 100755 --- 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;