Merge branch 'master' of ssh://git.code.sf.net/p/xcat/xcat-core

This commit is contained in:
jjohnson2 2015-02-11 10:19:44 -05:00
commit 6e4036dafb
9 changed files with 73 additions and 150 deletions

View File

@ -2502,9 +2502,12 @@ sub gen_net_boot_params
} elsif ($installnic =~ /^[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}$/) {
$mac = $installnic;
$net_params->{mac} = $mac;
$net_params->{setmac} = $mac;
} else {
$mac = $macmac;
$nicname = $installnic;
$net_params->{nicname} = $nicname;
$net_params->{mac} = $mac;
}
if ($nicname) {
@ -2512,6 +2515,7 @@ sub gen_net_boot_params
$net_params->{ip} = "ip=$nicname:dhcp";
$net_params->{netdev} = "netdev=$nicname";
$net_params->{netdevice} = "netdevice=$nicname";
$net_params->{ifname} = "ifname=$nodebootif:$mac";
} elsif ($mac) {
$net_params->{ksdevice} = "ksdevice=$mac";
$net_params->{BOOTIF} = "BOOTIF=$mac";

View File

@ -4468,29 +4468,32 @@ sub cleanup_for_powerLE_hardware_discovery {
#This may also be a "|" delimited string of "mac address!hostname" format (such as "01:02:03:04:05:0E!node5|01:02:03:05:0F!node6-eth1").
sub parseMacTabEntry{
my $macString=shift;
if( $macString =~ /xCAT::Utils/)
{
$macString=shift;
my $macString=shift;
if( $macString =~ /xCAT::Utils/) {
$macString=shift;
}
my $HostName=shift;
my $mac_ret;
my @macEntry=split(/\|/,$macString);
foreach my $mac_t (@macEntry){
if($mac_t =~ /!/){
if($mac_t =~ /(.+)!$HostName$/){
$mac_ret=$1;
}
}else{
$mac_ret=$mac_t;
}
}
}
my $HostName=shift;
my $mac_ret;
my @macEntry=split(/\|/,$macString);
foreach my $mac_t (@macEntry){
if($mac_t =~ /!/){
if($mac_t =~ /(.+)!$HostName$/){
$mac_ret=$1;
}
}else{
$mac_ret=$mac_t;
}
}
return $mac_ret;
if ($mac_ret) {
if ($mac_ret !~ /:/) {
$mac_ret =~ s/(..)(..)(..)(..)(..)(..)/$1:$2:$3:$4:$5:$6/;
}
}
return $mac_ret;
}

View File

@ -750,7 +750,7 @@ sub mknetboot
my $primarynic;
my $mac;
if (defined ($reshash->{$node}->[0]) && $reshash->{$node}->[0]->{installnic}) {
$installnic = $reshash->{$node}->[0] and $reshash->{$node}->[0]->{installnic};
$installnic = $reshash->{$node}->[0]->{installnic};
}
if (defined ($reshash->{$node}->[0]) and $reshash->{$node}->[0]->{primarynic}) {
$primarynic = $reshash->{$node}->[0]->{primarynic};
@ -762,8 +762,13 @@ sub mknetboot
my $net_params = xCAT::NetworkUtils->gen_net_boot_params($installnic, $primarynic, $mac, $nodebootif);
if (defined ($net_params->{ifname}) || defined ($net_params->{netdev})) {
$kcmdline .= "$net_params->{ifname} $net_params->{netdev} ";
} elsif (defined ($net_params->{BOOTIF}) && $arch=~ /ppc/) {
if (defined ($net_params->{ifname})) {
$kcmdline .= "$net_params->{ifname} ";
}
if ( defined ($net_params->{netdev})) {
$kcmdline .= "$net_params->{netdev} ";
}
} elsif (defined ($net_params->{BOOTIF}) && ($net_params->{setmac} || $arch=~ /ppc/)) {
$kcmdline .= "$net_params->{BOOTIF} ";
}
@ -1386,11 +1391,11 @@ sub mkinstall
$ent->{installnic} =~ s/eth/vmnic/g;
$ent->{primarynic} =~ s/eth/vmnic/g;
}
my $net_params = xCAT::NetworkUtils->gen_net_boot_params($ent->{installnic}, $ent->{primarynic}, $macent->{mac});
print "ori par: $ent->{installnic}, $ent->{primarynic}, $macent->{mac}\n";
foreach (keys %{$net_params}) {
print "key[$_} = $net_params->{$_}\n";
}
my $mac;
if ($macent->{mac}) {
$mac = xCAT::Utils->parseMacTabEntry($macent->{mac}, $node);
}
my $net_params = xCAT::NetworkUtils->gen_net_boot_params($ent->{installnic}, $ent->{primarynic}, $mac);
my $nicname = $net_params->{nicname};
@ -1863,7 +1868,11 @@ sub mksysclone
my $kcmdline = "ramdisk_size=$ramdisk_size";
# Add kernel parameters to specify the boot network interface
my $net_params = xCAT::NetworkUtils->gen_net_boot_params($ent->{installnic}, $ent->{primarynic}, $macent->{mac});
my $mac;
if ($macent->{mac}) {
$mac = xCAT::Utils->parseMacTabEntry($macent->{mac}, $node);
}
my $net_params = xCAT::NetworkUtils->gen_net_boot_params($ent->{installnic}, $ent->{primarynic}, $mac);
$kcmdline .= " $net_params->{ksdevice} ";
if ($arch =~ /ppc/) {
$kcmdline .= " $net_params->{BOOTIF} ";

View File

@ -506,6 +506,8 @@ sub mkinstall
my $profile;
my $tmplfile;
my $pkgdir;
my $pkgdirval;
my @mirrors;
my $pkglistfile;
my $imagename; # set it if running of 'nodeset osimage=xxx'
my $platform;
@ -580,13 +582,23 @@ sub mkinstall
$arch = $ph->{osarch};
$profile = $ph->{profile};
$platform=xCAT_plugin::debian::getplatform($os);
$tmplfile=$ph->{template};
$pkgdirval=$ph->{pkgdir};
my @pkgdirlist=split(/,/,$pkgdirval);
foreach (@pkgdirlist){
if($_ =~ /^http|ssh/){
push @mirrors,$_;
}else{
$pkgdir=$_;
}
}
$tmplfile=$ph->{template};
$pkgdir=$ph->{pkgdir};
if (!$pkgdir) {
$pkgdir="$installroot/$os/$arch";
}
$pkglistfile=$ph->{pkglist};
$pkglistfile=$ph->{pkglist};
}
else {
$os = $ent->{os};
@ -1452,9 +1464,6 @@ sub mknetboot
if( $machash->{$node}->[0] && $machash->{$node}->[0]->{'mac'}) {
# TODO: currently, only "mac" attribute with classic style is used, the "|" delimited string of "macaddress!hostname" format is not used
$mac = xCAT::Utils->parseMacTabEntry($machash->{$node}->[0]->{'mac'},$node);
if ($mac !~ /:/) {
$mac =~s/(..)(..)(..)(..)(..)(..)/$1:$2:$3:$4:$5:$6/;
}
}
my $net_params = xCAT::NetworkUtils->gen_net_boot_params($installnic, $primarynic, $mac, $nodebootif);
if (defined($net_params->{ifname})) {
@ -1462,7 +1471,7 @@ sub mknetboot
}
if (defined($net_params->{netdev})) {
$kcmdline .= "$net_params->{netdev} ";
} elsif (defined($net_params->{BOOTIF})) {
} elsif (defined($net_params->{BOOTIF}) && ($net_params->{setmac} || $arch=~ /ppc/)) {
$kcmdline .= "$net_params->{BOOTIF} ";
}

View File

@ -583,30 +583,6 @@ sub mknetboot
# add dhcp for ip
$kcmdline .= "ip=dhcp ";
# add the kernel-booting parameter: netdev=<eth0>, or BOOTIF=<mac>
#my $netdev = "";
#my $mac = xCAT::Utils->parseMacTabEntry($machash->{$node}->[0]->{mac},$node);
#if ($reshash->{$node}->[0] and $reshash->{$node}->[0]->{installnic} and ($reshash->{$node}->[0]->{installnic} ne "mac")) {
# $kcmdline .= "netdev=" . $reshash->{$node}->[0]->{installnic} . " ";
#} elsif ($nodebootif) {
# $kcmdline .= "netdev=" . $nodebootif . " ";
#} elsif ($reshash->{$node}->[0] and $reshash->{$node}->[0]->{primarynic} and ($reshash->{$node}->[0]->{primarynic} ne "mac")) {
# $kcmdline .= "netdev=" . $reshash->{$node}->[0]->{primarynic} . " ";
#} else {
# if ($arch =~ /x86/) {
# #do nothing, we'll let pxe/xnba work their magic
# } elsif ($mac) {
# $kcmdline .= "BOOTIF=" . $mac . " ";
# } else {
# $callback->({
# error=>[qq{"cannot get the mac address for $node in mac table"}],
# errorcode=>[1]
# });
# }
#}
# add the kernel-booting parameter: netdev=<eth0>, or BOOTIF=<mac>
my $mac;
my $installnic;
my $primarynic;
@ -627,7 +603,7 @@ sub mknetboot
if (defined ($net_params->{ifname}) || defined ($net_params->{netdev})) {
$kcmdline .= " $net_params->{ifname} $net_params->{netdev} ";
} elsif (defined ($net_params->{BOOTIF}) && $arch=~ /ppc/) {
} elsif (defined ($net_params->{BOOTIF}) && ($net_params->{setmac} || $arch=~ /ppc/)) {
$kcmdline .= " $net_params->{BOOTIF} ";
}
@ -1142,50 +1118,6 @@ sub mkinstall
. $netserver . ":" . $httpport
. "$httpprefix/1";
#my $netdev = "";
#if ($ent->{installnic})
#{
# if ($ent->{installnic} eq "mac")
# {
# my $mactab = xCAT::Table->new("mac");
# my $macref = $mactab->getNodeAttribs($node, ['mac']);
# $netdev = xCAT::Utils->parseMacTabEntry($macref->{mac},$node);
# }
# else
# {
# $netdev = $ent->{installnic};
# }
#}
#elsif ($ent->{primarynic})
#{
# if ($ent->{primarynic} eq "mac")
# {
# my $mactab = xCAT::Table->new("mac");
# my $macref = $mactab->getNodeAttribs($node, ['mac']);
# $netdev = xCAT::Utils->parseMacTabEntry($macref->{mac},$node);
# }
# else
# {
# $netdev = $ent->{primarynic};
# }
#}
#else
#{
# $netdev = "bootif";
#}
#if ($netdev eq "") #why it is blank, no mac defined?
#{
# $callback->(
# {
# error => ["No mac.mac for $node defined"],
# errorcode => [1]
# }
# );
#}
#unless ($netdev eq "bootif") { #if going by bootif, BOOTIF will suffice
# $kcmdline .= " netdevice=" . $netdev;
#}
my $installnic;
my $primarynic;
my $mac;
@ -1518,30 +1450,6 @@ sub mksysclone
my $sent = $hents{$node}->[0];
my $kcmdline = "ramdisk_size=$ramdisk_size";
#my $ksdev = "";
#if ($ent->{installnic})
#{
# $ksdev = $ent->{installnic};
#}
#elsif ($ent->{primarynic})
#{
# $ksdev = $ent->{primarynic};
#}
#else
#{
# $ksdev = "bootif"; #if not specified, fall back to bootif
#}
#if ($ksdev eq "mac")
#{
# my $mactab = xCAT::Table->new("mac");
# my $macref = $mactab->getNodeAttribs($node, ['mac']);
# $ksdev = xCAT::Utils->parseMacTabEntry($macref->{mac},$node);
#}
#unless ( $ksdev eq "bootif" ) {
# $kcmdline .= " netdevice=" . $ksdev;
#}
my $installnic;
my $primarynic;
@ -1565,6 +1473,7 @@ sub mksysclone
if ($arch =~ /ppc/) {
$kcmdline .= " dhcptimeout=150";
$kcmdline .= " $net_params->{BOOTIF} ";
}
if (defined($sent->{serialport}))
@ -1586,18 +1495,6 @@ sub mksysclone
}
$kcmdline .= " XCAT=$xcatmaster:$xcatdport xcatd=$xcatmaster:$xcatdport SCRIPTNAME=$imagename";
#my $nodetab = xCAT::Table->new('nodetype');
#my $archref = $nodetab->getNodeAttribs($node, ['arch']);
#if ($archref->{arch} eq "ppc64"){
# my $mactab = xCAT::Table->new('mac');
# my $macref = $mactab->getNodeAttribs($node, ['mac']);
# my $formatmac = xCAT::Utils->parseMacTabEntry($macref->{mac},$node);
# $formatmac =~ s/:/-/g;
# $formatmac = "01-".$formatmac;
# $kcmdline .= " BOOTIF=$formatmac ";
#}
$kcmdline .= " $net_params->{BOOTIF} ";
my $i = "xcat/genesis.fs.$arch.gz";
if ( -r "$tftpdir/xcat/genesis.fs.$arch.lzma" ){
$i = "xcat/genesis.fs.$arch.lzma";

View File

@ -32,7 +32,7 @@ done >>/etc/resolv.conf
ln -sf /bin/bash /bin/sh
#
#delete the useless apt repo
sed -i 's/^deb.*updates.*$/#&/g' /etc/apt/sources.list
#sed -i 's/^deb.*updates.*$/#&/g' /etc/apt/sources.list
# Run xCAT post install
#
export MASTER_IP="#XCATVAR:XCATMASTER#"
@ -230,9 +230,9 @@ script
end script
EOF
fi
sed -i 's/\(deb.*security.*\)/#\1/' /etc/apt/sources.list
#sed -i 's/\(deb.*security.*\)/#\1/' /etc/apt/sources.list
#iso does not contains source deb packages
sed -i 's/^\(\s*deb-src.*install.*\)$/#\1/g' /etc/apt/sources.list
#sed -i 's/^\(\s*deb-src.*install.*\)$/#\1/g' /etc/apt/sources.list
#delete the 127.0.1.1 line from /etc/hosts
sed -i '/127.0.1.1/d' /etc/hosts
updateflag.awk $MASTER 3002

View File

@ -100,7 +100,7 @@ tasksel tasksel/first multiselect standard
d-i pkgsel/include string #INCLUDE_DEFAULT_PKGLIST_PRESEED#
d-i debian-installer/allow_unauthenticated string true
d-i debian-installer/allow_unauthenticated boolean true
d-i pkgsel/update-policy select none
d-i pkgsel/updatedb boolean false

View File

@ -100,7 +100,7 @@ tasksel tasksel/first multiselect standard
d-i pkgsel/include string #INCLUDE_DEFAULT_PKGLIST_PRESEED#
d-i debian-installer/allow_unauthenticated string true
d-i debian-installer/allow_unauthenticated boolean true
d-i pkgsel/update-policy select none
d-i pkgsel/updatedb boolean false

View File

@ -449,7 +449,7 @@ unless ($onlyinitrd) {
my %extrapkgnames;
if (keys(%extra_hash) > 0) {
open ($aptconfig,">>","$rootimg_dir/etc/apt/sources.list.d/genimage.apt.list");
open ($aptconfig,">","$rootimg_dir/etc/apt/sources.list.d/genimage1.apt.list");
my $index=1;
foreach $pass (sort {$a <=> $b} (keys(%extra_hash))) {
foreach (keys(%{$extra_hash{$pass}})) {
@ -558,8 +558,9 @@ unless ($onlyinitrd) {
# Add the local repo from MN
my $master = xCAT::TableUtils->get_site_Master();
open($aptconfig,">","$rootimg_dir/etc/apt/sources.list");
print $aptconfig "deb http://$master$installroot/$osver/$arch/ $dist main\n";
print $aptconfig "deb http://$master$srcdir $dist main\n";
close($aptconfig);
`rm -fr $rootimg_dir/etc/apt/sources.list.d/genimage1.apt.list`;
#recover the /etc/hosts & /etc/reslov.conf
`cd $rootimg_dir/etc/;mv -f hosts.bak hosts;mv -f resolv.conf.bak resolv.conf`;