add persistent odm support to AIX statelite
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@8774 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
0b6c2347ca
commit
28b3352148
@ -1492,6 +1492,7 @@ srvnode.";
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
=head3 chkosimage
|
||||
@ -5882,7 +5883,7 @@ sub update_dd_boot
|
||||
{
|
||||
|
||||
# only update if it has not been done yet
|
||||
my $cmd = "cat $dd_boot_file_mn | grep 'xCAT support'";
|
||||
my $cmd = "cat $dd_boot_file_mn | grep 'xCAT basecust support'";
|
||||
my @result = xCAT::Utils->runcmd("$cmd", -1);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
@ -5893,10 +5894,70 @@ sub update_dd_boot
|
||||
xCAT::MsgUtils->message("I", $rsp, $callback);
|
||||
}
|
||||
|
||||
my $patch =
|
||||
qq~\n\t# xCAT support - 1\n\tif [ -z "\$(odmget -qattribute=syscons CuAt)" ] \n\tthen\n\t \${SHOWLED} 0x911\n\t cp /usr/ODMscript /tmp/ODMscript\n\t [ \$? -eq 0 ] && odmadd /tmp/ODMscript\n\tfi \n\n~;
|
||||
my $odmrestore =qq~\n
|
||||
# xCAT basecust support #1
|
||||
# when using a shared_root we need to see if there is a persistent
|
||||
# /etc/basecust file available. If we have one we need to
|
||||
# restore it. This will restore anything previously
|
||||
# saved in the ODM.
|
||||
if [ -n "\${NIM_SHARED_ROOT}" ]
|
||||
then
|
||||
# Get the name of the server and the name of the persistent
|
||||
# directory to mount
|
||||
# - /mnt is the shared_root dir at this point
|
||||
# - the statelite.table file has entries like:
|
||||
# "compute04|10.2.0.200|/nodedata"
|
||||
if [ -f "/mnt/statelite.table" ]
|
||||
then
|
||||
# make sure we have the commands we need
|
||||
cp /SPOT/usr/bin/cat /usr/bin
|
||||
cp /SPOT/usr/bin/awk /usr/bin
|
||||
cp /SPOT/usr/bin/grep /usr/bin
|
||||
|
||||
my $scripthook = qq~\n\t# xCAT support - 2\n\t# do statelite setup if needed\n\t/aixlitesetup\n\n~;
|
||||
# statelite entry for this node
|
||||
SLLINE=`/usr/bin/cat /mnt/statelite.table | /usr/bin/grep \${NIM_NAME}`
|
||||
# the statelite server
|
||||
SLSERV=`echo \$SLLINE | /usr/bin/awk -F'|' '{print \$2}'`
|
||||
|
||||
# statelite directory to mount
|
||||
SLDIR=`echo \$SLLINE | /usr/bin/awk -F'|' '{print \$3}'`
|
||||
|
||||
mount \${SLSERV}:\${SLDIR} /tmp
|
||||
|
||||
# - get the persistent version of basecust from the server
|
||||
if [ -f /tmp/\${NIM_NAME}/etc/basecust ]; then
|
||||
cp -p /tmp/\${NIM_NAME}/etc/basecust /etc
|
||||
cp /SPOT/usr/lib/boot/restbase /usr/sbin
|
||||
cp /SPOT/usr/bin/uncompress /usr/bin
|
||||
fi
|
||||
umount /tmp
|
||||
fi
|
||||
fi
|
||||
\n\n~;
|
||||
|
||||
my $mntbase=qq~
|
||||
# xCAT basecust support #2
|
||||
if [ -n "\${NIM_SHARED_ROOT}" ]
|
||||
then
|
||||
# if we found a statelite directory - above
|
||||
if [ -n "\${SLDIR}" ]
|
||||
then
|
||||
# need to mount persistent basecust over the one in RAM FS
|
||||
mount -o rw \${SLSERV}:\${SLDIR} /tmp
|
||||
/usr/bin/touch /etc/basecust
|
||||
mount /tmp/\${NIM_NAME}/etc/basecust /etc/basecust
|
||||
fi
|
||||
fi \n\n~;
|
||||
|
||||
my $patch =
|
||||
qq~\n\t# xCAT support #3\n\tif [ -z "\$(odmget -qattribute=syscons CuAt)" ] \n\tthen\n\t \${SHOWLED} 0x911\n\t cp /usr/ODMscript /tmp/ODMscript\n\t [ \$? -eq 0 ] && odmadd /tmp/ODMscript\n\tfi \n\n~;
|
||||
|
||||
my $scripthook = qq~
|
||||
# xCAT support #4
|
||||
# do statelite setup if needed
|
||||
cp /../SPOT/niminfo /etc/niminfo
|
||||
/aixlitesetup
|
||||
\n\n~;
|
||||
|
||||
if (open(DDBOOT, "<$dd_boot_file_mn"))
|
||||
{
|
||||
@ -5936,20 +5997,26 @@ sub update_dd_boot
|
||||
{
|
||||
$dontupdate = 1;
|
||||
}
|
||||
if (($l =~ /network boot phase 1/)) {
|
||||
# add /etc/basecust to restore
|
||||
print DDBOOT $odmrestore;
|
||||
}
|
||||
if (($l =~ /configure paging - local or NFS network/)) {
|
||||
# make basecust persistent
|
||||
print DDBOOT $mntbase;
|
||||
}
|
||||
if (($l =~ /0x620/) && (!$dontupdate))
|
||||
{
|
||||
|
||||
# add the patch
|
||||
# add the patch to set the console
|
||||
print DDBOOT $patch;
|
||||
}
|
||||
if (($l =~ /configure nfso option/) && (!$dontupdate)) {
|
||||
# add the aixlitesetup hook
|
||||
if (($l =~ /Copy the local_domain file to/) && (!$dontupdate)) {
|
||||
# add the aixlitesetup hook for xCAT statelite support
|
||||
print DDBOOT $scripthook;
|
||||
}
|
||||
print DDBOOT $l;
|
||||
}
|
||||
close(DDBOOT);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -6879,6 +6946,10 @@ sub prenimnodeset
|
||||
{
|
||||
|
||||
# must be diskless or dataless so update spot
|
||||
my $rsp;
|
||||
push @{$rsp->{data}}, "Updating the spot named \'$i\'.\n";
|
||||
xCAT::MsgUtils->message("I", $rsp, $callback);
|
||||
|
||||
my $rc = &updatespot($i, \%imghash, \@nodelist, $callback, $subreq);
|
||||
if ($rc != 0)
|
||||
{
|
||||
@ -8079,7 +8150,11 @@ sub mkdsklsnode
|
||||
push @{$rsp->{data}}, "$Sname: Creating NIM node definition.\n";
|
||||
#push @{$rsp->{data}}, "Running: \'$defcmd\'\n";
|
||||
xCAT::MsgUtils->message("I", $rsp, $callback);
|
||||
}
|
||||
} else {
|
||||
my $rsp;
|
||||
push @{$rsp->{data}}, "$Sname: Creating NIM client definition \'$nim_name.\'\n";
|
||||
xCAT::MsgUtils->message("I", $rsp, $callback);
|
||||
}
|
||||
$output = xCAT::Utils->runcmd("$defcmd", -1);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
@ -8208,9 +8283,10 @@ sub mkdsklsnode
|
||||
|
||||
my $time = `date | cut -f5 -d' '`;
|
||||
chomp $time;
|
||||
|
||||
my $rsp;
|
||||
push @{$rsp->{data}},
|
||||
"$Sname: Initializing NIM machine \'$nim_name\'. This could take a while.\n";
|
||||
push @{$rsp->{data}}, "$Sname: Initializing NIM machine \'$nim_name\'. \n";
|
||||
xCAT::MsgUtils->message("I", $rsp, $callback);
|
||||
|
||||
$output = xCAT::Utils->runcmd("$initcmd", -1);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
@ -8855,12 +8931,17 @@ sub make_SN_resource
|
||||
|
||||
my $cmd;
|
||||
|
||||
my $SNname = xCAT::InstUtils->myxCATname();
|
||||
my $SNname = "";
|
||||
$SNname = xCAT::InstUtils->myxCATname();
|
||||
chomp $SNname;
|
||||
|
||||
my $nimprime = xCAT::InstUtils->getnimprime();
|
||||
chomp $nimprime;
|
||||
|
||||
my $rsp;
|
||||
push @{$rsp->{data}}, "Checking NIM resources on $SNname.\n";
|
||||
xCAT::MsgUtils->message("I", $rsp, $callback);
|
||||
|
||||
#
|
||||
# Install/config NIM master if needed
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user