Some enhancement to parse the mypostscript.tmpl
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14012 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
parent
b5edbdcad9
commit
5c1031647a
@ -708,7 +708,12 @@ sub subvars_for_mypostscript {
|
||||
$allattribsfromsitetable = getAllAttribsFromSiteTab();
|
||||
|
||||
my $masterhash = getMasters($nodes);
|
||||
|
||||
|
||||
## os, arch, profile, provemethod
|
||||
my $typehash = getTypeVars($nodes, $callback);
|
||||
if( !defined($typehash)) {
|
||||
return;
|
||||
}
|
||||
|
||||
## nfsserver,installnic,primarynic
|
||||
my $attribsfromnoderes = getNoderes($nodes);
|
||||
@ -811,20 +816,7 @@ sub subvars_for_mypostscript {
|
||||
# for #OSIMAGE_VARS_EXPORT#
|
||||
if (!$nodesetstate) { $nodesetstate = xCAT::Postage::getnodesetstate($node); }
|
||||
|
||||
my $typetab = xCAT::Table->new('nodetype');
|
||||
my $et =
|
||||
$typetab->getNodeAttribs($node, ['os', 'arch', 'profile', 'provmethod'],prefetchcache=>1);
|
||||
if ($^O =~ /^linux/i)
|
||||
{
|
||||
unless ($et and $et->{'os'} and $et->{'arch'})
|
||||
{
|
||||
my $rsp;
|
||||
push @{$rsp->{data}},
|
||||
"No os or arch setting in nodetype table for $node.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $callback);
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
my $et = $typehash->{$node};
|
||||
$provmethod = $et->{'provmethod'};
|
||||
$os = $et->{'os'};
|
||||
$arch = $et->{'arch'};
|
||||
@ -854,8 +846,8 @@ sub subvars_for_mypostscript {
|
||||
|
||||
|
||||
#ok, now do everything else..
|
||||
$inc =~ s/#XCATVAR:([^#]+)#/envvar($1)/eg;
|
||||
$inc =~ s/#ENV:([^#]+)#/envvar($1)/eg;
|
||||
#$inc =~ s/#XCATVAR:([^#]+)#/envvar($1)/eg;
|
||||
#$inc =~ s/#ENV:([^#]+)#/envvar($1)/eg;
|
||||
$inc =~ s/#SITE_TABLE_ALL_ATTRIBS_EXPORT#/$allattribsfromsitetable/eg;
|
||||
$inc =~ s/#TABLE:([^:]+):([^:]+):([^#]+)#/tabdb($1,$2,$3)/eg;
|
||||
$inc =~ s/#ROUTES_VARS_EXPORT#/$route_vars/eg;
|
||||
@ -866,9 +858,12 @@ sub subvars_for_mypostscript {
|
||||
$inc =~ s/#INCLUDE_POSTSCRIPTS_LIST#/$postscripts/eg;
|
||||
$inc =~ s/#INCLUDE_POSTBOOTSCRIPTS_LIST#/$postbootscripts/eg;
|
||||
|
||||
$inc =~ s/#COMMAND:([^#]+)#/command($1)/eg;
|
||||
#$inc =~ s/#COMMAND:([^#]+)#/command($1)/eg;
|
||||
$inc =~ s/#NODE#/$node/eg;
|
||||
$inc =~ s/\$NODE/$node/eg;
|
||||
$inc =~ s/#OSVER#/$os/eg;
|
||||
$inc =~ s/#ARCH#/$arch/eg;
|
||||
$inc =~ s/#PROFILE#/$profile/eg;
|
||||
$inc =~ s/#NTYPE#/$nodetype/eg;
|
||||
$inc =~ s/#NFSSERVER#/$nfsserver/eg;
|
||||
$inc =~ s/#INSTALLNIC#/$installnic/eg;
|
||||
@ -959,11 +954,6 @@ sub getNoderes
|
||||
|
||||
my $noderestab = xCAT::Table->new('noderes');
|
||||
|
||||
## nfsserver,installnic,primarynic
|
||||
my ($nfsserver, $installnic, $primarynic, $route_vars);
|
||||
|
||||
my $noderestab = xCAT::Table->new('noderes');
|
||||
|
||||
my $ethash =
|
||||
$noderestab->getNodesAttribs($nodes,
|
||||
['nfsserver', 'installnic', 'primarynic','routenames'],prefetchcache=>1);
|
||||
@ -982,6 +972,45 @@ sub getNoderes
|
||||
}
|
||||
|
||||
|
||||
sub getTypeVars
|
||||
{
|
||||
my $nodes = shift;
|
||||
my $callback = shift;
|
||||
my %typehash;
|
||||
|
||||
my $typetab = xCAT::Table->new('nodetype');
|
||||
|
||||
my $ethash =
|
||||
$typetab->getNodesAttribs($nodes, ['os', 'arch', 'profile', 'provmethod'],prefetchcache=>1);
|
||||
|
||||
if ($ethash ){
|
||||
foreach my $node (@$nodes) {
|
||||
if( defined( $ethash->{$node}->[0]) ) {
|
||||
$typehash{$node}{os} = $ethash->{$node}->[0]->{os};
|
||||
$typehash{$node}{arch} = $ethash->{$node}->[0]->{arch};
|
||||
|
||||
if ($^O =~ /^linux/i)
|
||||
{
|
||||
unless ($typehash{$node}{'os'} and $typehash{$node}{'arch'})
|
||||
{
|
||||
my $rsp;
|
||||
push @{$rsp->{data}},
|
||||
"No os or arch setting in nodetype table for $node.\n";
|
||||
xCAT::MsgUtils->message("E", $rsp, $callback);
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$typehash{$node}{profile} = $ethash->{$node}->[0]->{profile};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return \%typehash;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user