Send telent commands (if any) before we open SNMP session

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@1785 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
sakolish 2008-06-26 17:57:40 +00:00
parent 1b956e68d6
commit f21c59a272

View File

@ -169,6 +169,8 @@ my %mpahash;
my $mpa;
my $allinchassis=0;
my $curn;
my @cfgtext;
sub fillresps {
my $response = shift;
@ -418,11 +420,6 @@ sub enabledefaultalerts {
}
my @cfgtext;
sub mpaconfig {
#OIDs of interest:
#1.3.6.1.4.1.2.3.51.2.4.9.3.1.4.1.1.4 snmpCommunityEntryCommunityIpAddress2
@ -444,11 +441,7 @@ sub mpaconfig {
if ($didchassis) { return 0, @cfgtext } #"Chassis already configured for this command" }
@cfgtext=();
my $result = telnetcmds($mpa,$user,$pass,$nodeid,@_);
$returncode |= @$result[0];
my $args = @$result[1];
foreach $parameter (@$args) {
foreach $parameter (@_) {
$assignment = 0;
$value = undef;
if ($parameter =~ /=/) {
@ -1167,7 +1160,6 @@ sub bladecmd {
my @args = @_;
my $error;
if ($slot > 0) {
my $tmp = $session->get([$bladexistsoid.".$slot"]);
if ($session->{ErrorStr}) { return (1,$session->{ErrorStr}); }
@ -1878,7 +1870,7 @@ sub snmpcfg {
}
$user =~ /^(\d+)./;
my $id = $1;
my $pp = ($value =~ /^enable$/i) ? "des" : "none";
my $pp = ($value =~ /^enable$/i) ? "des" : "none";
my $cmd= "users -$id -ap sha -at write -ppw $pass -pp $pp -T system:mm[1]";
my @data = $t->cmd($cmd);
@ -2082,6 +2074,49 @@ sub dompa {
my %namedargs=@_;
my @exargs=@{$namedargs{-args}};
my $node;
my $args = \@exargs;
# Handle telnet commands before SNMP
if ($command eq "rspconfig") {
foreach $node (sort (keys %{$mpahash->{$mpa}->{nodes}})) {
@cfgtext=();
my $slot = $mpahash->{$mpa}->{nodes}->{$node};
my $user = $mpahash->{$mpa}->{username};
my $pass = $mpahash->{$mpa}->{password};
my $result = telnetcmds($mpa,$user,$pass,$slot,@exargs);
my $rc |= @$result[0];
$args = @$result[1];
foreach(@cfgtext) {
my %output;
(my $desc,my $text) = split (/:/,$_,2);
unless ($text) {
$text=$desc;
} else {
$desc =~ s/^\s+//;
$desc =~ s/\s+$//;
if ($desc) {
$output{node}->[0]->{data}->[0]->{desc}->[0]=$desc;
}
}
$text =~ s/^\s+//;
$text =~ s/\s+$//;
$output{node}->[0]->{errorcode} = $rc;
$output{node}->[0]->{name}->[0]=$node;
$output{node}->[0]->{data}->[0]->{contents}->[0]=$text;
print $out freeze([\%output]);
print $out "\nENDOFFREEZE6sK4ci\n";
}
}
}
# Only telnet commands
unless ( @$args ) {
return;
}
$session = new SNMP::Session(
DestHost => $mpa,
Version => '3',
@ -2116,9 +2151,8 @@ sub dompa {
}
foreach $node (sort (keys %{$mpahash->{$mpa}->{nodes}})) {
$curn = $node;
my ($rc,@output) = bladecmd($mpa,$node,$mpahash->{$mpa}->{nodes}->{$node},$mpahash->{$mpa}->{username},$mpahash->{$mpa}->{password},$command,@exargs);
my ($rc,@output) = bladecmd($mpa,$node,$mpahash->{$mpa}->{nodes}->{$node},$mpahash->{$mpa}->{username},$mpahash->{$mpa}->{password},$command,@$args);
my @output_hashes;
foreach(@output) {
my %output;
@ -2169,3 +2203,4 @@ sub dompa {