to support the solcfg enable/disable for cmm/blades

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11478 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
daniceexi 2012-02-05 07:17:54 +00:00
parent 92abb1e766
commit e819282af8

View File

@ -641,6 +641,13 @@ sub mpaconfig {
push @cfgtext,"Unable to get alert configuration (is SNMP enabled?)";
next;
}
} elsif ($parameter =~ /^solcfg/i) {
my $data = $session->get(['.1.3.6.1.4.1.2.3.51.2.4.10.1.1',0]);
if ($data) {
push @cfgtext,"solcfg: enabled on mm";
} else {
push @cfgtext,"solcfg: disabled on mm";
}
} else {
$returncode |= 1;
push(@cfgtext,"Unrecognized argument $parameter");
@ -3986,7 +3993,7 @@ sub telnetcmds {
my @unhandled;
my %handled = ();
my $result;
my @tcmds = qw(snmpcfg sshcfg network swnet pd1 pd2 textid network_reset rscanfsp initnetwork);
my @tcmds = qw(snmpcfg sshcfg network swnet pd1 pd2 textid network_reset rscanfsp initnetwork solcfg);
# most of these commands should be able to be done
# through SNMP, but they produce various errors.
@ -4063,6 +4070,7 @@ sub telnetcmds {
elsif (/^pd1|pd2$/) { $result = pd($t,$_,$handled{$_}); }
elsif (/^textid$/) { $result = mmtextid($t,$mpa,$handled{$_},$mm); }
elsif (/^rscanfsp$/) { $result = rscanfsp($t,$mpa,$handled{$_},$mm); }
elsif (/^solcfg$/) { $result = solcfg($t,$handled{$_},$mm); }
elsif (/^network_reset$/) { $result = network($t,$handled{$_},$mpa,$mm,$node,$nodeid,1); }
push @data, "$_: @$result";
$Rc |= shift(@$result);
@ -4072,6 +4080,52 @@ sub telnetcmds {
return([$Rc,\@unhandled,\@data]);
}
# Enable/Disable the sol against the mm and blades
# The target node is mm, but all the blade servers belongs to this mm will be
# handled implicated
sub solcfg {
my $t = shift;
my $value = shift;
my $mm = shift;
if ($value !~ /^enable|disable$/i) {
return([1,"Invalid argument '$value' (enable|disable)"]);
}
my $setval;
if ($value eq "enable") {
$setval = "enabled";
} else {
$setval = "disabled";
}
my @output;
my $rc = 0;
my @data = $t->cmd("sol -status $setval -T system:$mm");
if (grep (/OK/, @data)) {
push @output, "$value: succeeded on $mm";
} else {
push @output, "$value: failed on $mm";
$rc = 1;
}
# Get the component list
my @data = $t->cmd("list -l 2");
foreach (@data) {
if (/^\s*(blade\[\d+\])\s+/) {
my @ret = $t->cmd("sol -status $setval -T $1");
if (grep (/OK/, @ret)) {
push @output, "$value: succeeded on $1";
} else {
push @output, "$value: failed on $1";
$rc = 1;
}
}
}
return ([$rc, @output]);
}
# Scan the fsp for the NGP ppc nodes
sub rscanfsp {
my $t = shift;