Change how to get the bmc for a predefined node

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/branches/2.8@15968 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
daniceexi 2013-04-12 08:12:12 +00:00
parent b7d1915698
commit d8b7c905a6

View File

@ -79,7 +79,7 @@ sub findme {
last;
}
}
unless ($mac) {
xCAT::MsgUtils->message("S", "Discovery Error: Could not find the mac of the $ip.");
return;
@ -127,18 +127,16 @@ sub findme {
if ($hostip->{'ip'}) {
$skiphostip = 1;
}
my $bmcip = $hosttab->getNodeAttribs($node."-bmc", ['ip']);
if ($bmcip->{'ip'}) {
$skipbmcip = 1;
}
my $ipmitab = xCAT::Table->new('ipmi');
unless ($ipmitab) {
xCAT::MsgUtils->message("S", "Discovery Error: Could not open table: ipmi.");
}
my $ipmibmc = $ipmitab->getNodeAttribs($node, ['bmc']);
if ($ipmibmc->{'bmc'}) {
$skipbmcip = 1;
unless ($ipmibmc->{'bmc'} =~ /\d+\.\d+\.\d+\.\d+/) {
push @newhosts, $ipmibmc->{'bmc'};
}
}
# set the host ip and bmc if needed
unless ($skiphostip) {
@ -151,22 +149,19 @@ sub findme {
$hosttab->commit();
}
my $bmcname;
my $bmcname = $node."-bmc";
push @newhosts, $bmcname;
unless ($skipbmcip) {
my $bmcip = getfreeips($param{'bmciprange'}, \@allnodes, "bmc");
unless ($bmcip) {
nodediscoverstop($callback, undef, "bmc ips");
return;
}
$bmcname = $node."-bmc";
$hosttab->setNodeAttribs($bmcname, {ip => $bmcip});
$hosttab->commit();
# set the bmc to the ipmi table
$ipmitab->setNodeAttribs($node, {bmc => $bmcname});
push @newhosts, $bmcname;
}
# set the bmc to the ipmi table
$ipmitab->setNodeAttribs($node, {bmc => $bmcname});
# update the host ip pair to /etc/hosts, it's necessary for discovered and makedhcp commands
if (@newhosts) {
@ -292,7 +287,7 @@ Usage:
Sequential Discovery:
nodediscoverstart noderange=<noderange> [hostiprange=<imageprofile>] [bmciprange=<bmciprange>] [groups=<groups>] [rack=<rack>] [chassis=<chassis>] [height=<height>] [unit=<unit>]
Profile Discovery:
nodediscoverstart networkprofile=<networkprofile> imageprofile=<imageprofile> hostnameformat=<hostnameformat> [hardwareprofile=<hardwareprofile>] [groups=<groups>] [rack=<rack>] [chassis=<chassis>] [height=<height>] [unit=<unit>]";
nodediscoverstart networkprofile=<networkprofile> imageprofile=<imageprofile> hostnameformat=<hostnameformat> [hardwareprofile=<hardwareprofile>] [groups=<groups>] [rack=<rack>] [chassis=<chassis>] [height=<height>] [unit=<unit>] [rank=rank-num]";
$rsp = ();
push @{$rsp->{data}}, $usageinfo;
xCAT::MsgUtils->message("I", $rsp, $cb);
@ -376,7 +371,7 @@ Usage:
my @PCMdiscover = xCAT::TableUtils->get_site_attribute("__PCMDiscover");
if ($PCMdiscover[0]) {
my $rsp;
push @{$rsp->{data}}, "Sequentail Discovery cannot run together with Profile-based discovery";
push @{$rsp->{data}}, "Sequentail Discovery cannot be run together with Profile-based discovery";
xCAT::MsgUtils->message("E", $rsp, $callback, 1);
return;
}
@ -542,6 +537,7 @@ Usage:
my @PCMDiscover = xCAT::TableUtils->get_site_attribute("__PCMDiscover");
if ($PCMDiscover[0]) {
# return directly that profile discover will cover it
return;
} elsif (!$SEQDiscover[0]) {
# Neither of profile nor sequential was running
my $rsp;
@ -782,8 +778,9 @@ Usage:
push @{$rsp->{data}}, " The parameters used for discovery: ".$SEQDiscover[0];
xCAT::MsgUtils->message("I", $rsp, $callback);
} elsif ($PCMDiscover[0]) {
# return directly that Profile discover to cover the output
return;
my $rsp;
push @{$rsp->{data}}, "Node discovery for all nodes using profiles is running";
xCAT::MsgUtils->message("I", $rsp, $callback);
} else {
my $rsp;
push @{$rsp->{data}}, "Sequential Discovery is stopped.";