2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-22 03:32:04 +00:00

Add ondiscover support for chain table (#4903)

* Add ondiscover support for chain table

* For ondiscover, run nextdestiny after the current operation is done

* Don't set OpenPower server boot from network if boot
This commit is contained in:
cxhong 2018-03-29 05:50:04 -04:00 committed by yangsong
parent 025a6455d1
commit 8f61ee5ace
2 changed files with 33 additions and 6 deletions

View File

@ -359,17 +359,17 @@ while :; do
logger -s -t $log_label -p local4.info "Running nextdestiny $XCATMASTER:$XCATPORT..."
destiny=`/bin/nextdestiny $XCATMASTER:$XCATPORT`
logger -s -t $log_label -p local4.info "nextdestiny - Complete."
elif [ "$dest" = ondiscover ]; then
logger -s -t $log_label -p local4.info "Running nextdestiny (ondiscover) $XCATMASTER:$XCATPORT..."
destiny=`/bin/nextdestiny $XCATMASTER:$XCATPORT`
logger -s -t $log_label -p local4.info "nextdestiny (ondiscover) - Complete."
elif [ "$dest" = runcmd ]; then
$destparameter
logger -s -t $log_label -p local4.info "Running nextdestiny $XCATMASTER:$XCATPORT..."
destiny=`/bin/nextdestiny $XCATMASTER:$XCATPORT`
dest=`echo $destiny|awk -F= '{print $1}'`
$destparameter
logger -s -t $log_label -p local4.info "nextdestiny - Complete."
elif [ "$dest" = runimage ]; then
logger -s -t $log_label -p local4.info "Running nextdestiny $XCATMASTER:$XCATPORT..."
destiny=`/bin/nextdestiny $XCATMASTER:$XCATPORT`
dest=`echo $destiny|awk -F= '{print $1}'`
logger -s -t $log_label -p local4.info "nextdestiny - Complete."
mkdir /tmp/`basename $destparameter`
cd /tmp/`basename $destparameter`
eval destparameter=$destparameter
@ -389,12 +389,20 @@ while :; do
tar xvf `basename $destparameter`
./runme.sh
cd -
logger -s -t $log_label -p local4.info "Running nextdestiny $XCATMASTER:$XCATPORT..."
destiny=`/bin/nextdestiny $XCATMASTER:$XCATPORT`
dest=`echo $destiny|awk -F= '{print $1}'`
logger -s -t $log_label -p local4.info "nextdestiny - Complete."
elif [ "$dest" = "reboot" -o "$dest" = "boot" ]; then
logger -s -t $log_label -p local4.info "Running nextdestiny $XCATMASTER:$XCATPORT..."
/bin/nextdestiny $XCATMASTER:$XCATPORT
logger -s -t $log_label -p local4.info "nextdestiny - Complete."
if [ $IPMI_SUPPORT -ne 0 ]; then
ipmitool chassis bootdev pxe
# Set boot from network will cause OpenPOWER server wait at petitboot menu, so do nothing here
if uname -m | grep x86_64; then
ipmitool chassis bootdev pxe
fi
fi
reboot -f
elif [ "$dest" = "install" -o "$dest" = "netboot" ]; then

View File

@ -226,6 +226,25 @@ sub setdestiny {
if ($ient->{initrd}) { $bphash->{initrd} = $ient->{initrd} }
if ($ient->{kcmdline}) { $bphash->{kcmdline} = $ient->{kcmdline} }
}
} elsif ($state =~ /ondiscover/) {
my $target;
if ($state =~ /=/) {
($state, $target) = split '=', $state, 2;
}
if(!$target){
$callback->({ error => "invalid argument: \"$state\"", errorcode => [1] });
return;
}
my @cmds = split '\|', $target;
foreach my $tmpnode (@{ $req->{node} }) {
foreach my $cmd (@cmds) {
my $action;
($cmd, $action) = split ':', $cmd;
my $runcmd = "$cmd $tmpnode $action";
xCAT::Utils->runcmd($runcmd, 0);
xCAT::MsgUtils->trace($verbose, "d", "run ondiscover command: $runcmd");
}
}
} elsif ($state =~ /^install[=\$]/ or $state eq 'install' or $state =~ /^netboot[=\$]/ or $state eq 'netboot' or $state eq "image" or $state eq "winshell" or $state =~ /^osimage/ or $state =~ /^statelite/) {
my $target;
my $action;