Added "rspconfig textid=*"

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@1453 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
sakolish 2008-05-20 14:19:23 +00:00
parent 443c57ddff
commit 4f94fb1714

View File

@ -418,15 +418,17 @@ sub mpaconfig {
my $mpa=shift;
my $user=shift;
my $pass=shift;
my $node=shift;
my $nodeid=shift;
my $parameter;
my $value;
my $assignment;
my $returncode=0;
my $textid=0;
if ($didchassis) { return 0, @cfgtext } #"Chassis already configured for this command" }
@cfgtext=();
my $result = telnetcmds($mpa,$user,$pass,@_);
my $result = telnetcmds($mpa,$user,$pass,$nodeid,@_);
$returncode |= @$result[0];
my $args = @$result[1];
@ -461,11 +463,18 @@ sub mpaconfig {
}
if ($parameter eq "textid") {
if ($assignment) {
setoid("1.3.6.1.4.1.2.3.51.2.22.1.7.1.1.5",$nodeid,$value,'OCTET');
my $txtid = ($value =~ /^\*/) ? $node : $value;
setoid("1.3.6.1.4.1.2.3.51.2.22.1.7.1.1.5",$nodeid,$txtid,'OCTET');
}
my $data = $session->get([$bladeoname,$nodeid]);
my $data;
if ($slot > 0) {
$data = $session->get([$bladeoname,$nodeid]);
}
else {
$data = $session->get([$mmoname,0]);
}
$textid = 1;
push @cfgtext,"textid: $data";
return $returncode,@cfgtext;
}
if ($parameter =~ /^snmpcfg$/i) {
my $data = $session->get(['1.3.6.1.4.1.2.3.51.2.4.9.3.1.6',0]);
@ -536,7 +545,9 @@ sub mpaconfig {
}
}
}
$didchassis=1;
unless ($textid) {
$didchassis=1;
}
return $returncode,@cfgtext;
}
@ -1093,6 +1104,7 @@ sub beacon {
sub bladecmd {
$mpa = shift;
my $node = shift;
$slot = shift;
my $user = shift;
my $pass = shift;
@ -1115,7 +1127,7 @@ sub bladecmd {
} elsif ($command =~ /r[ms]preset/) {
return resetmp(@args);
} elsif ($command eq "rspconfig") {
return mpaconfig($mpa,$user,$pass,$slot,@args);
return mpaconfig($mpa,$user,$pass,$node,$slot,@args);
} elsif ($command eq "rbootseq") {
return bootseq(@args);
} elsif ($command eq "switchblade") {
@ -1437,7 +1449,7 @@ sub process_request {
if (!defined($level)) {
my $dep = build_depend($noderange,\@exargs);
if ( ref($dep) ne 'ARRAY' ) {
$callback->({data=>[$dep]});
$callback->({data=>[$dep],errorcode=>1});
return;
}
if (scalar(%{@$dep[0]})) {
@ -1447,6 +1459,14 @@ sub process_request {
}
}
}
# only 1 node when changing textid to something other than '*'
if ($command eq "rspconfig" and grep(/^textid=[^*]/,@exargs)) {
if ( @$noderange > 1 ) {
$callback->({data=>["Single node required when changing textid"],
errorcode=>1});
return;
}
}
my $bladeuser = 'USERID';
my $bladepass = 'PASSW0RD';
my $blademaxp = 64;
@ -1579,14 +1599,21 @@ sub telnetcmds {
my $mpa=shift;
my $user=shift;
my $pass=shift;
my $nodeid=shift;
my $value;
my @unhandled;
my %handled = ();
my $result;
my @tcmds = qw(snmpcfg sshcfg network swnet pd1 pd2);
my @tcmds = qw(snmpcfg sshcfg network swnet pd1 pd2 textid);
# most of these commands should be able to be done
# through SNMP, but they produce various errors.
foreach my $cmd (@_) {
if ($cmd =~ /^swnet|pd1|pd2|=/) {
if (($cmd =~ /^textid/) and ($nodeid > 0)) {
push @unhandled,$cmd;
next;
}
my ($command,$value) = split /=/,$cmd;
if (grep(/^$command$/,@tcmds)) {
$handled{$command} = $value;
@ -1595,7 +1622,6 @@ sub telnetcmds {
}
push @unhandled,$cmd;
}
if (!defined(%handled)) {
return([0,\@unhandled]);
}
@ -1620,6 +1646,7 @@ sub telnetcmds {
elsif (/^network$/) { $result = network($t,$handled{$_},$mpa); }
elsif (/^swnet$/) { $result = swnet($t,$handled{$_}); }
elsif (/^pd1|pd2$/) { $result = pd($t,$_,$handled{$_}); }
elsif (/^textid$/) { $result = mmtextid($t,$mpa,$handled{$_}); }
$Rc |= shift(@$result);
push @cfgtext,@$result;
}
@ -1628,6 +1655,21 @@ sub telnetcmds {
}
sub mmtextid {
my $t = shift;
my $mpa = shift;
my $value = shift;
$value = ($value =~ /^\*/) ? $mpa : $value;
my @data = $t->cmd("config -name $value -T system:mm[1]");
if (!grep(/OK/i,@data)) {
return([1,@data]);
}
return([0,"textid: $value"]);
}
sub pd {
my $t = shift;
@ -2011,7 +2053,7 @@ sub dompa {
}
foreach $node (sort (keys %{$mpahash->{$mpa}->{nodes}})) {
$curn = $node;
my ($rc,@output) = bladecmd($mpa,$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,@exargs);
my @output_hashes;
foreach(@output) {
@ -2062,3 +2104,4 @@ sub dompa {