diff --git a/xCAT-server/lib/perl/xCAT/Template.pm b/xCAT-server/lib/perl/xCAT/Template.pm index 4a0343657..6966970fd 100644 --- a/xCAT-server/lib/perl/xCAT/Template.pm +++ b/xCAT-server/lib/perl/xCAT/Template.pm @@ -218,6 +218,7 @@ sub subvars { $inc =~ s/#INCLUDE:([^#^\n]+)#/includefile($1, 0, 0)/eg; $inc =~ s/#WINTIMEZONE#/xCAT::TZUtils::get_wintimezone()/eg; $inc =~ s/#WINPRODKEY:([^#]+)#/get_win_prodkey($1)/eg; + $inc =~ s/#WINNETCFG#/windows_net_cfg()/eg; $inc =~ s/#WINADJOIN#/windows_join_data()/eg; $inc =~ s/#WINDNSCFG#/windows_dns_cfg()/eg; $inc =~ s/#WINACCOUNTDATA#/windows_account_data()/eg; @@ -334,6 +335,25 @@ sub windows_account_data { $useraccountxml.="\r\n\r\nAdministrators\r\nDomain Admins\r\n\r\n".$domain."\r\n\r\n\r\n"; return $useraccountxml; } +sub windows_net_cfg { + if ($::XCATSITEVALS{managedaddressmode} =~ /static/) { return ""; } + unless ($::XCATSITEVALS{managedaddressmode} =~ /autoula/) { + return ""; #windows default behavior + } + #autoula, + my $hoststab; + my $mactab = xCAT::Table->new('mac',-create=>0); + unless ($mactab) { die "mac table should always exist prior to template processing when doing autoula"; } + my $ent = $mactab->getNodeAttribs($node,['mac'],prefetchcache=>1); + unless ($ent and $ent->{mac}) { die "missing mac data for $node"; } + my $suffix = $ent->{mac}; + my $mac = $suffix; + $suffix = lc($suffix); + unless ($hoststab) { $hoststab = xCAT::Table->new('hosts',-create=>1); } + my $ulaaddr = autoulaaddress($suffix); + $hoststab->setNodeAttribs($node,{ip=>$ulaaddr}); + return ''."\r\n\r\n$mac\r\n\r\n$ulaaddr/64\r\n\r\n\r\n\r\n\r\n"; +} sub windows_dns_cfg { my $domain; my $doment; @@ -495,7 +515,7 @@ sub kickstartnetwork { my $hoststab; my $mactab = xCAT::Table->new('mac',-create=>0); unless ($mactab) { die "mac table should always exist prior to template processing when doing autoula"; } - my $ent = $mactab->getNodeAttribs($node,['mac']); + my $ent = $mactab->getNodeAttribs($node,['mac'],prefetchcache=>1); unless ($ent and $ent->{mac}) { die "missing mac data for $node"; } my $suffix = $ent->{mac}; $suffix = lc($suffix);