resolv.conf and statelite fixes

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@10213 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
nott 2011-08-02 17:06:58 +00:00
parent 87a4570d95
commit a56b10e887
2 changed files with 277 additions and 299 deletions

View File

@ -794,6 +794,10 @@ sub dolitesetup
%imghash = %$imagehash;
}
# get name as known by xCAT
my $Sname = xCAT::InstUtils->myxCATname();
chomp $Sname;
my @nodelist;
my @nodel;
my @nl;
@ -842,7 +846,7 @@ sub dolitesetup
}
# get spot inst_root loc
my $spotloc = xCAT::InstUtils->get_nim_attr_val($imghash{$imagename}{spot}, 'location', $callback, "", $subreq);
my $spotloc = xCAT::InstUtils->get_nim_attr_val($imghash{$imagename}{spot}, 'location', $callback, $Sname, $subreq);
my $instrootloc = $spotloc . "/lpp/bos/inst_root";
@ -1286,7 +1290,7 @@ sub dolitesetup
my $nimprime = xCAT::InstUtils->getnimprime();
chomp $nimprime;
# get the location of the shared_root directory
my $SRloc = xCAT::InstUtils->get_nim_attr_val($imghash{$imagename}{shared_root}, 'location', $callback, $nimprime, $subreq);
my $SRloc = xCAT::InstUtils->get_nim_attr_val($imghash{$imagename}{shared_root}, 'location', $callback, $Sname, $subreq);
# copy the statelite table file to the shared root location
# this will not effect any running nodes that are using

View File

@ -735,6 +735,18 @@ sub nimnodeset
\%imagehash, \%lochash, \%nethash);
}
#
# See if we need to create a resolv_conf resource
#
my $RChash;
$RChash = &chk_resolv_conf($callback, \%objhash, \@nodelist, \%nethash, \%imagehash, \%attrs, \%nodeosi, $subreq);
if ( !defined($RChash) ){
my $rsp;
push @{$rsp->{data}}, "Could not check NIM resolv_conf resource.\n";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
my %resolv_conf_hash = %{$RChash};
$error = 0;
foreach my $node (@nodelist)
{
@ -978,6 +990,15 @@ sub nimnodeset
$arg_string .= "$bnd_string";
}
# see if we have a resolv_conf resource
if ($imagehash{$image_name}{resolv_conf})
{
# could be from the osimage
} elsif ($resolv_conf_hash{$node}) {
# or could be specific resolv_conf res created locally
$arg_string .= "-a resolv_conf=$resolv_conf_hash{$node}" ;
}
my $initcmd;
$initcmd = "/usr/sbin/nim -o bos_inst $arg_string $nim_name 2>&1";
@ -2194,12 +2215,6 @@ sub mknimimage
#nim_master_setup does not support IPv6, needs to use separate nim commands
#1. start ndpd-host service for IPv6
my $nimcmd = qq~lssrc -s ndpd-host~;
if ($::VERBOSE)
{
my $rsp;
push @{$rsp->{data}}, "Running: \'$nimcmd\'\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
my $nimout =
xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $nimcmd,
0);
@ -2235,12 +2250,6 @@ sub mknimimage
return 1;
}
$nimcmd = qq~chnfsdom $domain~;
if ($::VERBOSE)
{
my $rsp;
push @{$rsp->{data}}, "Running: \'$nimcmd\'\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
$nimout =
xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $nimcmd,
0);
@ -2267,12 +2276,6 @@ sub mknimimage
#3. install bos.sysmgt.nim.master bos.sysmgt.nim.spot
$nimcmd = qq~installp -aXYd $::opt_s bos.sysmgt.nim.master bos.sysmgt.nim.spot~;
if ($::VERBOSE)
{
my $rsp;
push @{$rsp->{data}}, "Running: \'$nimcmd\'\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
$nimout =
xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $nimcmd,
0);
@ -4217,13 +4220,13 @@ sub mk_resolv_conf_file
See if new NIM resolv_conf resource is needed.
Create if needed.
Create if needed. Created on local server.
Called by: prenimnodeset()
Called by: nimnodeset() and mkdsklsnode()
Returns:
0 - ok
1 - error
0 - undef
1 - ptr to hash of resolv_conf resource names
=cut
#-----------------------------------------------------------------------------
@ -4263,6 +4266,13 @@ sub chk_resolv_conf
%nodeosi = %{$nosi};
}
# get name as known by xCAT
my $Sname = xCAT::InstUtils->myxCATname();
chomp $Sname;
my %resolv_conf_hash;
my $resolv_conf_name;
my $nimprime = xCAT::InstUtils->getnimprime();
chomp $nimprime;
@ -4270,19 +4280,9 @@ sub chk_resolv_conf
my $sitetab = xCAT::Table->new('site');
my ($tmp) = $sitetab->getAttribs({'key' => 'domain'}, 'value');
my $site_domain = $tmp->{value};
my ($tmp2) = $sitetab->getAttribs({'key' => 'nameservers'}, 'value');
# convert <xcatmaster> to nameserver IP
my $site_nameservers;
if ($tmp2->{value} eq '<xcatmaster>')
{
$site_nameservers = xCAT::InstUtils->convert_xcatmaster();
}
else
{
$site_nameservers = $tmp2->{value};
}
my $site_nameservers = $tmp2->{value};
$sitetab->close;
# Get a list of the all NIM resources
@ -4290,7 +4290,7 @@ sub chk_resolv_conf
my $cmd =
qq~/usr/sbin/lsnim -c resources | /usr/bin/cut -f1 -d' ' 2>/dev/null~;
my @nimresources =
xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $cmd, 1);
xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $Sname, $cmd, 1);
if ($::RUNCMD_RC != 0)
{
my $rsp;
@ -4301,154 +4301,207 @@ sub chk_resolv_conf
foreach my $node (@nodelist) {
my $domain;
my $create_res=0;
my $nameservers;
my @nservers;
my $ns;
my $image_name = $nodeosi{$node};
chomp $image_name;
#
# if not provided in osimage def then see if we can create one
# if provided in osimage def then use that
# - this would have been provided by the user and should
# take precedence
#
if ( !$imghash{$image_name}{resolv_conf} ) {
# otherwise see if we can create a new resolv_conf resource
#
if ( $imghash{$image_name}{resolv_conf} ) {
my $create_res=0;
my $nameservers;
my $domain;
my $ns;
my $junk;
if ( $nethash{$node}{nameservers} && $nethash{$node}{domain} ){
# then create resolv_conf using these values
$domain=$nethash{$node}{domain};
if ( $nethash{$node}{nameservers} =~ /xcatmaster/ ) {
# first priority - osimage oriented
# don't need to create new resolv_conf
# then use xcatmaster value of node def
if ($nodehash{$node}{xcatmaster}) {
($ns, $junk) = split /,/, $nodehash{$node}{xcatmaster};
} else {
$ns=$nimprime;
}
$nameservers = xCAT::NetworkUtils->getipaddr($ns);
chomp $nameservers;
# keep track of what resource should be used for each node
$resolv_conf_hash{$node} = $imghash{$image_name}{resolv_conf};
} else {
# use actual value of nameservers
($ns, $junk) = split /,/, $nethash{$node}{nameservers};
$nameservers = xCAT::NetworkUtils->getipaddr($ns);
chomp $nameservers;
}
$create_res++;
} elsif ( ($nethash{$node}{nameservers} && $nethash{$node}{domain}) ){
} elsif ( $site_nameservers && $site_domain ) {
$domain=$site_domain;
# second priority - from network def
#
# if the network def corresponding to the node has a domain AND
# nameservers value
#
if ( $site_nameservers =~ /xcatmaster/ ) {
# then use xcatmaster value of node def
if ($nodehash{$node}{xcatmaster}) {
($ns, $junk) = split /,/, $nodehash{$node}{xcatmaster};
} else {
$ns=$nimprime;
}
$nameservers = xCAT::NetworkUtils->getipaddr($ns);
chomp $nameservers;
# use convention for res name "<netname>_resolv_conf"
$resolv_conf_name = $nethash{$node}{netname} . "_resolv_conf";
$resolv_conf_hash{$node} = $resolv_conf_name;
# then create resolv_conf using these values
$domain=$nethash{$node}{domain};
if ( $nethash{$node}{nameservers} =~ /xcatmaster/ ) {
# - service node/network oriented
# then use xcatmaster value of node def
my $server;
if ($nodehash{$node}{xcatmaster}) {
$server=$nodehash{$node}{xcatmaster};
} else {
# use actual value of nameservers
($ns, $junk) = split /,/, $site_nameservers;
$nameservers = xCAT::NetworkUtils->getipaddr($ns);
chomp $nameservers;
$server=$nimprime;
}
my $n = xCAT::NetworkUtils->getipaddr($server);
chomp $n;
push(@nservers, $n);
} else {
# - network oriented
# use actual value of nameservers
my @tmp = split /,/, $nethash{$node}{nameservers};
foreach my $s (@tmp) {
my $n = xCAT::NetworkUtils->getipaddr($s);
chomp $n;
push(@nservers, $n);
}
$create_res++;
}
# create a new NIM resolv_conf resource
my $resolv_conf_name;
my $createdres=0;
if ($create_res) {
my $fileloc;
my $loc;
my @validattrs = ("nfs_vers", "nfs_sec");
$create_res++;
$resolv_conf_name = $nodehash{$node}{provmethod} . "_resolv_conf";
} elsif ( $site_nameservers && $site_domain ) {
# see if this resource is already defined!!
if (grep(/^$resolv_conf_name$/, @nimresources))
{
next;
# third priority - from site table
$domain=$site_domain;
if ( $site_nameservers =~ /xcatmaster/ ) {
# service node oriented
# then use xcatmaster value of node def
my $server;
if ($nodehash{$node}{xcatmaster}) {
$server=$nodehash{$node}{xcatmaster};
} else {
$server=$nimprime;
}
my $install_dir = xCAT::Utils->getInstallDir();
if ($::opt_l)
{
$loc = "$::opt_l/resolv_conf/$resolv_conf_name";
}
else
{
$loc = "$install_dir/nim/resolv_conf/$resolv_conf_name";
my $n = xCAT::NetworkUtils->getipaddr($server);
chomp $n;
push(@nservers, $n);
# use convention for res name "<SN>_resolv_conf"
$resolv_conf_name = $server . "_resolv_conf";
$resolv_conf_hash{$node} = $resolv_conf_name;
} else {
# - cluster oriented
# use actual value of nameservers
my @tmp = split /,/, $site_nameservers;
foreach my $s (@tmp) {
my $n = xCAT::NetworkUtils->getipaddr($s);
chomp $n;
push(@nservers, $n);
}
my $filename = "$loc/resolv.conf";
# use convention for res name
$resolv_conf_name = "site_resolv_conf";
$resolv_conf_hash{$node} = $resolv_conf_name;
}
$create_res++;
}
# remove any existing file -
if ( -e $filename ) {
my $cmd = qq~/bin/rm $filename 2>/dev/null~;
xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}}, "Could not remove \'$resolv_conf_name\'";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
}
#
# create a new NIM resolv_conf resource - if needed
#
if ($create_res) {
# create the resolv.conf file
my $mkcmd = qq~/usr/bin/mkdir -p $loc~;
my $output = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $mkcmd, 0);
my $fileloc;
my $loc;
my @validattrs = ("nfs_vers", "nfs_sec");
my $install_dir = xCAT::Utils->getInstallDir();
if ($::opt_l)
{
$loc = "$::opt_l/resolv_conf/$resolv_conf_name";
}
else
{
$loc = "$install_dir/nim/resolv_conf/$resolv_conf_name";
}
my $filename = "$loc/resolv.conf";
# remove any existing file -
if ( -e $filename ) {
my $cmd = qq~/bin/rm $filename 2>/dev/null~;
xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $Sname, $cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}}, "Could not create $loc.\n";
if ($::VERBOSE)
{
push @{$rsp->{data}}, "$output\n";
}
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
push @{$rsp->{data}}, "Could not remove \'$resolv_conf_name\'";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
}
#
# create file
#
# add the domain
$cmd = qq~echo search $domain > $filename~;
$output = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}}, "Could not add domain into $filename";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
# add nameservers
my $nameserverstr;
foreach (split /,/, $nameservers)
{
$nameserverstr = "nameserver $_";
chomp($nameserverstr);
$cmd = qq~echo $nameserverstr >> $filename~;
$output = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}}, "Could not add nameservers into $filename";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
# create the resolv.conf file
my $mkcmd = qq~/usr/bin/mkdir -p $loc~;
my $output = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $Sname, $mkcmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}}, "Could not create $loc.\n";
if ($::VERBOSE)
{
push @{$rsp->{data}}, "$output\n";
}
xCAT::MsgUtils->message("E", $rsp, $callback);
return undef;
}
#
# define the new resolv_conf resource
#
$cmd = "/usr/sbin/nim -o define -t resolv_conf -a server=master ";
#
# add domain
#
# add the domain
$cmd = qq~echo "search $domain" > $filename~;
$output = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $Sname, $cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}}, "Could not add domain to $filename";
xCAT::MsgUtils->message("E", $rsp, $callback);
return undef;
}
# add nameservers entries
my $nameserverstr;
foreach my $s (@nservers)
{
$nameserverstr = "nameserver $s";
chomp($nameserverstr);
$cmd = qq~echo $nameserverstr >> $filename~;
$output = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $Sname, $cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}}, "Could not add nameservers to $filename";
xCAT::MsgUtils->message("E", $rsp, $callback);
return undef;
}
}
#
# define the new resolv_conf resource
#
if (!grep(/^$resolv_conf_name$/, @nimresources))
{
$cmd = "/usr/sbin/nim -o define -t resolv_conf -a server=master ";
# check for relevant cmd line attrs
my %cmdattrs;
if ( ($::NFSV4) && (!$attrres{nfs_vers}) )
@ -4470,49 +4523,27 @@ sub chk_resolv_conf
}
}
$cmd .= "-a location=$filename ";
$cmd .= "$resolv_conf_name 2>&1";
$cmd .= "-a location=$filename ";
$cmd .= "$resolv_conf_name 2>&1";
$output = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh",
$nimprime, $cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}},
"Could not create a NIM definition for \'$resolv_conf_name\'.\n";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
$createdres++;
$imghash{$image_name}{resolv_conf}=$resolv_conf_name;
$output = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $Sname, $cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}},
"Could not create a NIM definition for \'$resolv_conf_name\'.\n";
xCAT::MsgUtils->message("E", $rsp, $callback);
return undef;
}
my $rsp;
push @{$rsp->{data}}, "Created a new resolv_conf resour ce called \'$resolv_conf_name\'.\n";
push @{$rsp->{data}}, "Created a new resolv_conf resource called \'$resolv_conf_name\'.\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
#
# update the osimage def
#
if ($createdres) {
my %osattrs;
$osattrs{$image_name}{objtype}="osimage";
$osattrs{$image_name}{resolv_conf}=$resolv_conf_name;
if (xCAT::DBobjUtils->setobjdefs(\%osattrs) != 0)
{
my $rsp;
push @{$rsp->{data}}, "Could not update the \"$image_name\" osimage definition.\n";
xCAT::MsgUtils->message("E", $rsp, $::callback);
}
my $rsp;
push @{$rsp->{data}}, "Updated the xCAT osimage definition named \'$image_name\'.\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
}
} # end foreach node
return 0;
return \%resolv_conf_hash;
}
#----------------------------------------------------------------------------
@ -6039,46 +6070,6 @@ sub updatespot
my $nimprime = xCAT::InstUtils->getnimprime();
chomp $nimprime;
# This code block is no longer needed
if (0) {
#
# add rpm.rte to the SPOT
# - it contains gunzip which is needed on the nodes
# - also needed if user wants to install RPMs
# - assume the source for the spot also has the rpm.rte fileset
#
my $cmd = "/usr/sbin/nim -o showres $spot_name | grep rpm.rte";
my $output =
xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $cmd, 0);
if ($::RUNCMD_RC != 0)
{
# it's not already installed - so install it
if ($::VERBOSE)
{
my $rsp;
push @{$rsp->{data}}, "Installing rpm.rte in the image.\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
my $cmd = "/usr/sbin/chcosi -i -s $lppsrcname -f rpm.rte $spot_name";
#my $output = xCAT::Utils->runcmd("$cmd", -1);
my $output =
xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $cmd, 0);
if ($::RUNCMD_RC != 0)
{
my $rsp;
push @{$rsp->{data}},
"Could not run command \'$cmd\'. (rc = $::RUNCMD_RC)\n";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
} # end - install rpm.rte
} # end - not needed
#
# Get the SPOT location ( path to ../usr)
#
@ -6166,6 +6157,7 @@ if (0) {
if ($rc eq 1) { # error
my $rsp;
push @{$rsp->{data}}, qq{Could not complete the statelite setup.};
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
@ -7301,16 +7293,6 @@ sub prenimnodeset
# $lochash{'xcataixpost'} = "/install/nim/scripts/xcataixpost";
}
#
# See if we need to create a resolv_conf resource
#
if (&chk_resolv_conf($callback, \%objhash, \@nodelist, \%nethash, \%imghash, \%attrs, \%nodeosi, $subreq)) {
my $rsp;
push @{$rsp->{data}}, "Could not create NIM resolv_conf resource.\n";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
#
# create a hash containing the locations of the NIM resources
# that are used for each osimage
@ -7698,6 +7680,7 @@ sub copyres
# xCAT::MsgUtils->message("I", $rsp, $callback);
# }
# do copy from NIM primary
my $cpcmd;
if (!xCAT::InstUtils->is_me($nimprime))
@ -7882,13 +7865,6 @@ sub doSNcopy
# running on the management node so
# copy the /etc/hosts file to the SN
if ($::VERBOSE)
{
my $rsp;
push @{$rsp->{data}},
"Running: \'$::XCATROOT/bin/xdcp $snkey /etc/hosts /etc\'\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
my $rcpcmd = "$::XCATROOT/bin/xdcp $snkey /etc/hosts /etc ";
my $output = xCAT::Utils->runcmd("$rcpcmd", -1);
@ -7908,14 +7884,6 @@ sub doSNcopy
# if the dir exists then we can update it
my $cpcmd =
"$::XCATROOT/bin/xdcp $snkey -p -R $install_dir/postscripts/* $install_dir/postscripts ";
if ($::VERBOSE)
{
my $rsp;
push @{$rsp->{data}}, "Running: \'$cpcmd\'\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
$cpcmd =
"$::XCATROOT/bin/xdcp $snkey -p -R $install_dir/postscripts/* $install_dir/postscripts ";
$output = xCAT::Utils->runcmd("$cpcmd", -1);
if ($::RUNCMD_RC != 0)
{
@ -8303,6 +8271,40 @@ sub mkdsklsnode
}
} # end re-sync shared_root
#
# check/do statelite setup
#
# already did this on the primary
if (!xCAT::InstUtils->is_me($nimprime)) {
my $statelite=0;
foreach my $image (@image_names){
if ($imagehash{$image}{shared_root}) {
# if this has a shared_root resource then
# it might need statelite setup
my $rc=xCAT::InstUtils->dolitesetup($image, \%imagehash, \@nodelist, $callback, $subreq);
if ($rc eq 1) { # error
my $rsp;
push @{$rsp->{data}}, qq{Could not complete the statelite setup.};
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
}
}
#
# See if we need to create a resolv_conf resource
#
my $RChash;
$RChash = &chk_resolv_conf($callback, \%objhash, \@nodelist, \%nethash, \%imagehash, \%attrs, \%nodeosi, $subreq);
if ( !defined($RChash) ){
my $rsp;
push @{$rsp->{data}}, "Could not check NIM resolv_conf resource.\n";
xCAT::MsgUtils->message("E", $rsp, $callback);
}
my %resolv_conf_hash = %{$RChash};
#
# define and initialize the diskless/dataless nodes
#
@ -8595,7 +8597,6 @@ sub mkdsklsnode
{
my $rsp;
push @{$rsp->{data}}, "$Sname: Creating NIM node definition.\n";
#push @{$rsp->{data}}, "Running: \'$defcmd\'\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
} else {
my $rsp;
@ -8667,11 +8668,18 @@ sub mkdsklsnode
$arg_string .= "-a sparse_paging=$attrs{sparse_paging} ";
}
}
if ($imagehash{$image_name}{resolv_conf})
# see if we have a resolv_conf resource
if ($imagehash{$image_name}{resolv_conf})
{
$arg_string .=
"-a resolv_conf=$imagehash{$image_name}{resolv_conf} ";
}
# could be from the osimage
# $arg_string .=
# "-a resolv_conf=$imagehash{$image_name}{resolv_conf} ";
} elsif ($resolv_conf_hash{$node}) {
# or could be specific resolv_conf res created locally
$arg_string .= " -a resolv_conf=$resolv_conf_hash{$node} " ;
}
if ($imagehash{$image_name}{dump})
{
$arg_string .= "-a dump=$imagehash{$image_name}{dump} ";
@ -8696,28 +8704,6 @@ sub mkdsklsnode
"-a shared_home=$imagehash{$image_name}{shared_home} ";
}
#
# make sure we have enough space for the new node root dir
#
# TODO - test FS resize
if (0)
{
if (
&enoughspace(
$imagehash{$image_name}{spot},
$imagehash{$image_name}{root},
$psize,
$callback
) != 0
)
{
my $rsp;
push @{$rsp->{data}}, "Could not initialize node \'$node\'\n";
xCAT::MsgUtils->message("E", $rsp, $callback);
return 1;
}
}
my $initcmd;
if ($type eq "diskless")
{
@ -8733,7 +8719,7 @@ sub mkdsklsnode
my $rsp;
push @{$rsp->{data}}, "$Sname: Initializing NIM machine \'$nim_name\'. \n";
xCAT::MsgUtils->message("I", $rsp, $callback);
xCAT::MsgUtils->message("I", $rsp, $callback);
$output = xCAT::Utils->runcmd("$initcmd", -1);
if ($::RUNCMD_RC != 0)
@ -8928,7 +8914,7 @@ sub mkdsklsnode
}
#Update etc/hosts file in the shared_root or root
# Update /etc/hosts file in the shared_root or root
my $line = "$nfsip $nfshost";
my $cmd = "echo $line >> $hostfile";
xCAT::Utils->runcmd($cmd, 0);
@ -8980,11 +8966,11 @@ sub mkdsklsnode
next;
}
} #end if(!xCAT::InstUtils->is_me...
}
}
}
#
# update the node definitions with the new osimage - if provided
#
@ -9443,12 +9429,6 @@ sub make_SN_resource
# NIM filesets should already be installed on the service node
my $nimcmd = "nim_master_setup -a mk_resource=no";
if ($::VERBOSE)
{
my $rsp;
push @{$rsp->{data}}, "Running: \'$nimcmd\'\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
my $nimout = xCAT::Utils->runcmd("$nimcmd", -1);
if ($::RUNCMD_RC != 0)
{
@ -9971,12 +9951,6 @@ sub make_SN_resource
}
$spotcmd .= " $imghash{$image}{$restype}";
if ($::VERBOSE)
{
my $rsp;
push @{$rsp->{data}}, "Running: \'$spotcmd\'\n";
xCAT::MsgUtils->message("I", $rsp, $callback);
}
$output = xCAT::Utils->runcmd("$spotcmd", -1);
if ($::RUNCMD_RC != 0)