NFSv4: mknimimage -u imagename nfs_vers=4 support
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@10902 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
77ce61b612
commit
944458879a
@ -2710,7 +2710,7 @@ sub mknimimage
|
||||
}
|
||||
|
||||
|
||||
if ($::NFSv4)
|
||||
if ($::NFSv4 || ($::UPDATE && ($::attrres{'nfs_vers'} == 4)))
|
||||
{
|
||||
my $nimcmd = qq~chnfsdom~;
|
||||
my $nimout = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $nimcmd,0);
|
||||
@ -2824,6 +2824,77 @@ sub mknimimage
|
||||
# return 1;
|
||||
# }
|
||||
|
||||
|
||||
# mknimimage -u imagename nfs_vers=4 to update the osimage to be NFSv4 capable
|
||||
if(($::attrres{'nfs_vers'} == 4) && $is_defined)
|
||||
{
|
||||
# Check site.useNFSv4onAIX
|
||||
if(!$::NFSv4)
|
||||
{
|
||||
my $rsp;
|
||||
push @{$rsp->{data}},
|
||||
"Setting site.useNFSv4onAIX to yes.\n";
|
||||
xCAT::MsgUtils->message("I", $rsp, $callback);
|
||||
my $cmd = "$::XCATROOT/sbin/chtab key=useNFSv4onAIX site.value=yes";
|
||||
my $out = xCAT::Utils->runcmd("$cmd", -1);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
my $rsp;
|
||||
push @{$rsp->{data}}, "Unable to set site.useNFSv4onAIX.";
|
||||
push @{$rsp->{data}}, "$out\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $callback);
|
||||
}
|
||||
$::NFSv4 = 1;
|
||||
}
|
||||
# For standalone image:
|
||||
# lpp_source, spot
|
||||
# For non-shared_root image:
|
||||
# lpp_source, spot
|
||||
# For shared_root image:
|
||||
# lpp_source, spot
|
||||
my @nimrestoupdate = ();
|
||||
my @nimresupdated = ();
|
||||
if ($imagedef{$::image_name}{nimtype} eq "standalone")
|
||||
{
|
||||
@nimrestoupdate = ("lpp_source", "spot", "bosinst_data", "installp_bundle");
|
||||
}
|
||||
if (($imagedef{$::image_name}{nimtype} eq "diskless") && $imagedef{$::image_name}{root})
|
||||
{
|
||||
@nimrestoupdate = ("lpp_source", "spot", "installp_bundle", "root", "paging");
|
||||
}
|
||||
if (($imagedef{$::image_name}{nimtype} eq "diskless") && $imagedef{$::image_name}{shared_root})
|
||||
{
|
||||
@nimrestoupdate = ("lpp_source", "spot", "installp_bundle", "shared_root", "paging");
|
||||
}
|
||||
|
||||
foreach my $nimres (@nimrestoupdate)
|
||||
{
|
||||
my $ninresname = $imagedef{$::image_name}{$nimres};
|
||||
push @nimresupdated, $ninresname;
|
||||
my $nimcmd = qq~nim -o change -a nfs_vers=4 $ninresname~;
|
||||
my $nimout = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $nimcmd,0);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
my $rsp;
|
||||
push @{$rsp->{data}}, "Could not set nfs_vers=4 for resource $ninresname.\n";
|
||||
if ($::VERBOSE)
|
||||
{
|
||||
push @{$rsp->{data}}, "$nimout";
|
||||
}
|
||||
xCAT::MsgUtils->message("E", $rsp, $callback);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if ($::VERBOSE)
|
||||
{
|
||||
my $strnimresupdated = join(',', @nimresupdated);
|
||||
my $rsp;
|
||||
push @{$rsp->{data}},
|
||||
"Updated the NIM resources $strnimresupdated with nfs_vers=4.\n";
|
||||
xCAT::MsgUtils->message("I", $rsp, $callback);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
# if it doesn't exist we can't update it!
|
||||
if (!$is_defined)
|
||||
{
|
||||
@ -4873,8 +4944,51 @@ sub chk_resolv_conf
|
||||
my $rsp;
|
||||
push @{$rsp->{data}}, "Created a new resolv_conf resource called \'$resolv_conf_name\'.\n";
|
||||
xCAT::MsgUtils->message("I", $rsp, $callback);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ($::NFSv4) {
|
||||
my $cmd = qq~/usr/sbin/lsnim -Z -a nfs_vers $resolv_conf_name 2>/dev/null~;
|
||||
my @result = xCAT::Utils->runcmd("$cmd", -1);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
my $rsp;
|
||||
push @{$rsp->{data}}, "Could not run lsnim command: \'$cmd\'.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $callback);
|
||||
return 1;
|
||||
}
|
||||
my $nfsvers;
|
||||
my $nimname;
|
||||
foreach my $l (@result)
|
||||
{
|
||||
|
||||
# skip comment lines
|
||||
next if ($l =~ /^\s*#/);
|
||||
|
||||
($nimname, $nfsvers) = split(':', $l);
|
||||
if ($nfsvers) {
|
||||
last;
|
||||
}
|
||||
}
|
||||
if (!$nfsvers || ($nfsvers eq 3))
|
||||
{
|
||||
my $ecmd = qq~/usr/sbin/rmnfsexp -d $install_dir/nim/resolv_conf/$resolv_conf_name/resolv.conf -B 2>/dev/null~;
|
||||
xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $ecmd,0);
|
||||
my $nimcmd = qq~nim -o change -a nfs_vers=4 $resolv_conf_name~;
|
||||
my $nimout = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $nimcmd,0);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
my $rsp;
|
||||
push @{$rsp->{data}}, "Could not set nfs_vers=4 for resource $resolv_conf_name.\n";
|
||||
if ($::VERBOSE)
|
||||
{
|
||||
push @{$rsp->{data}}, "$nimout";
|
||||
}
|
||||
xCAT::MsgUtils->message("E", $rsp, $callback);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
} #end if $::NFSv4
|
||||
} # end else
|
||||
} # end if $create_res
|
||||
} # end foreach node
|
||||
|
||||
return \%resolv_conf_hash;
|
||||
@ -7641,6 +7755,51 @@ sub prenimnodeset
|
||||
xCAT::MsgUtils->message("E", $rsp, $callback);
|
||||
return (1);
|
||||
}
|
||||
} else {
|
||||
if ($::NFSv4) {
|
||||
my $cmd = qq~/usr/sbin/lsnim -Z -a nfs_vers xcataixscript 2>/dev/null~;
|
||||
my @result = xCAT::Utils->runcmd("$cmd", -1);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
my $rsp;
|
||||
push @{$rsp->{data}}, "Could not run lsnim command: \'$cmd\'.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $callback);
|
||||
return 1;
|
||||
}
|
||||
my $nfsvers;
|
||||
my $nimname;
|
||||
foreach my $l (@result)
|
||||
{
|
||||
|
||||
# skip comment lines
|
||||
next if ($l =~ /^\s*#/);
|
||||
|
||||
($nimname, $nfsvers) = split(':', $l);
|
||||
if ($nfsvers) {
|
||||
last;
|
||||
}
|
||||
}
|
||||
if (!$nfsvers || ($nfsvers eq 3))
|
||||
{
|
||||
# make sure we clean up the /etc/exports file of NFSv3 exports
|
||||
my $ecmd = qq~/usr/sbin/rmnfsexp -d $install_dir/nim/scripts/xcataixscript -B 2>/dev/null~;
|
||||
xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $ecmd,0);
|
||||
my $nimcmd = qq~nim -o change -a nfs_vers=4 xcataixscript~;
|
||||
my $nimout = xCAT::InstUtils->xcmd($callback, $subreq, "xdsh", $nimprime, $nimcmd,0);
|
||||
if ($::RUNCMD_RC != 0)
|
||||
{
|
||||
my $rsp;
|
||||
push @{$rsp->{data}}, "Could not set nfs_vers=4 for resource xcataixscript.\n";
|
||||
if ($::VERBOSE)
|
||||
{
|
||||
push @{$rsp->{data}}, "$nimout";
|
||||
}
|
||||
xCAT::MsgUtils->message("E", $rsp, $callback);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
} #end if $::NFSv4
|
||||
|
||||
}
|
||||
|
||||
# make sure we clean up the /etc/exports file of old post script
|
||||
|
Loading…
Reference in New Issue
Block a user