Merge branch 'master' of ssh://cxhong@216.34.181.155/p/xcat/xcat-core

This commit is contained in:
Casandra Qiu 2014-11-22 21:25:30 -05:00
commit c21a1d35a2
15 changed files with 187 additions and 33 deletions

View File

@ -194,7 +194,8 @@ then
if [ ! -d ../../$package_dir_name ];then
mkdir -p "../../$package_dir_name"
fi
packages="xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT-UI xCAT xCATsn xCAT-test xCAT-OpenStack xCAT-OpenStack-baremetal xCAT-buildkit"
#packages="xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT-UI xCAT xCATsn xCAT-test xCAT-OpenStack xCAT-OpenStack-baremetal xCAT-buildkit"
packages="xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT xCATsn xCAT-test xCAT-buildkit"
target_archs=(amd64 ppc64el)
for file in `echo $packages`
do

View File

@ -41,7 +41,8 @@ UPLOADUSER=bp-sawyers
FRS=/home/frs/project/x/xc/xcat
# These are the rpms that should be built for each kind of xcat build
ALLBUILD="perl-xCAT xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test xCAT-buildkit xCAT xCATsn xCAT-genesis-scripts xCAT-OpenStack xCAT-SoftLayer xCAT-OpenStack-baremetal"
#ALLBUILD="perl-xCAT xCAT-client xCAT-server xCAT-IBMhpc xCAT-rmc xCAT-UI xCAT-test xCAT-buildkit xCAT xCATsn xCAT-genesis-scripts xCAT-OpenStack xCAT-SoftLayer xCAT-OpenStack-baremetal"
ALLBUILD="perl-xCAT xCAT-client xCAT-server xCAT-test xCAT-buildkit xCAT xCATsn xCAT-genesis-scripts xCAT-SoftLayer"
ZVMBUILD="perl-xCAT xCAT-server xCAT-UI"
ZVMLINK="xCAT-client xCAT xCATsn"
# xCAT and xCATsn have PCM specific configuration - conserver-xcat, syslinux-xcat

View File

@ -311,9 +311,6 @@ sub notify {
my ($modname, $path, $suffix) = fileparse($_, ".pm");
# print "modname=$modname, path=$path, suffix=$suffix\n";
if ($suffix =~ /.pm/) { #it is a perl module
my $pid;
if ($pid=xCAT::Utils->xfork()) { }
elsif (defined($pid)) {
my $fname;
if (($path eq "") || ($path eq ".\/")) {
#default path is /opt/xcat/lib/perl/xCAT_monitoring/ if there is no path specified
@ -328,8 +325,7 @@ sub notify {
else {
${"xCAT_monitoring::".$modname."::"}{processTableChanges}->($action, $tablename, $old_data, $new_data);
}
exit 0;
}
return 0;
}
else { #it is a command
my $pid;

View File

@ -3837,7 +3837,7 @@ sub writeAllEntries
}
my $filename = shift;
my $fh;
my $rc;
my $rc = 0;
# open the file for write
unless (open($fh," > $filename")) {
my $msg="Unable to open $filename for write \n.";

View File

@ -2162,7 +2162,72 @@ sub osver
my $line = '';
my @lines;
my $relfile;
if (-f "/etc/redhat-release")
if (-f "/etc/os-release"){
my $version;
my $version_id;
my $id;
my $id_like;
my $name;
my $prettyname;
my $verrel;
if (open($relfile,"<","/etc/os-release")) {
my @text = <$relfile>;
close($relfile);
chomp(@text);
#print Dumper(\@text);
foreach my $line (@text){
if($line =~ /^\s*VERSION=\"?([0-9\.]+).*/){
$version=$1;
}
if($line =~ /^\s*VERSION_ID=\"?([0-9\.]+).*/){
$version_id=$1;
}
if($line =~ /^\s*ID=\"?([0-9a-z\_\-\.]+).*/){
$id=$1;
}
if($line =~ /^\s*ID_LIKE=\"?([0-9a-z\_\-\.]+).*/){
$id_like=$1;
}
if($line =~ /^\s*NAME=\"?(.*)/){
$name=$1;
}
if($line =~ /^\s*PRETTY_NAME=\"?(.*)/){
$prettyname=$1;
}
}
}
$os=$id;
if (!$os and $id_like) {
$os=$id_like;
}
$verrel=$version;
if (!$verrel and $version_id) {
$verrel=$version_id;
}
if(!$name and $prettyname){
$name=$prettyname;
}
if($os =~ /rhel/ and $name =~ /Server/i){
$os="rhels";
}
if($verrel =~ /([0-9]+)\.?(.*)/) {
$ver=$1;
$rel=$2;
}
# print "$ver -- $rel";
}
elsif (-f "/etc/redhat-release")
{
open($relfile,"<","/etc/redhat-release");
$line = <$relfile>;
@ -2269,8 +2334,10 @@ sub osver
close($relfile);
}
}
#print "xxxx $type === $rel \n";
if ( $type and $type =~ /all/ ) {
if ( $rel ) {
if ( $rel ne "") {
# print "xxx $os-$ver-$rel \n";
return( "$os" . "," . "$ver" . ".$rel" );
} else {
return( "$os" . "," . "$ver" );

View File

@ -192,6 +192,14 @@ sub parse_attr_for_osimage{
return -1;
}
my ($tmp_imagetype, $tmp_arch, $tmp_osname,$tmp_ostype,$tmp_osvers);
if (!exists($attr_hash->{osvers})) {
$tmp_osvers = xCAT::Utils->osver("all");
$tmp_osvers =~ s/,//;
$attr_hash->{osvers} = $tmp_osvers;
} else {
$tmp_osvers =$attr_hash->{osvers};
}
if (!exists($attr_hash->{osarch})) {
$tmp_arch = `uname -m`;
chomp($tmp_arch);
@ -200,13 +208,13 @@ sub parse_attr_for_osimage{
} else {
$tmp_arch = $attr_hash->{osarch};
}
if (!exists($attr_hash->{osvers})) {
$tmp_osvers = xCAT::Utils->osver("all");
$tmp_osvers =~ s/,//;
$attr_hash->{osvers} = $tmp_osvers;
} else {
$tmp_osvers =$attr_hash->{osvers};
}
#for ubuntu,the the arch attribute "ppc64le" should be modified to "ppc64el"
if(($tmp_osvers =~ /^ubuntu/i) && ($tmp_arch =~ /^ppc64le/i)){
$tmp_arch="ppc64el";
$attr_hash->{osarch} = "ppc64el";
}
$tmp_osname = $tmp_osvers;
$tmp_ostype="Linux"; #like Linux, Windows
$tmp_imagetype="linux";

View File

@ -740,7 +740,7 @@ sub tabdump
output_table($table,$cb,$tabh,$recs);
} else { # dump to file
my $rc1;
my $rc1 = 0;
my $fh;
# check to see if you can open the file
unless (open($fh," > $FILENAME")) {

View File

@ -2157,7 +2157,7 @@ sub get_request {
my $encode = shift;
my $request = shift;
if ($encode eq "xml") {
my $line = "";
my $line = $request;
while ((!$request) || ($request !~ m/<\/xcatrequest>/)) {
my $flags=fcntl($sock,F_GETFL,0);
$flags |= O_NONBLOCK; #we want sysread to bail on us, select seems to be evil to us still..
@ -2171,7 +2171,7 @@ sub get_request {
$flags=fcntl($sock,F_GETFL,0);
$flags &= ~O_NONBLOCK; #now we want *print* to be blocking IO
fcntl($sock,F_SETFL,$flags);
$request .= $line;
$request = $line;
}
return eval { XMLin($request, SuppressEmpty=>undef,ForceArray=>1) };
} elsif ($encode eq "storable") {

View File

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/sh
#
#
# Sample script to customize options for Mellonax OFED IB support
@ -143,8 +143,8 @@ deb http://91.189.88.140/ubuntu-ports/ trusty-updates universe" >> /etc/apt/sour
cat /etc/os-release|grep NAME|grep Ubuntu>/dev/null &&
uname -m |grep ppc64 >/dev/null
then
echo "ARCH=powerpc perl -x mlnxofedinstall $mlnxofed_options"
ARCH=powerpc perl -x mlnxofedinstall --without-fw-update $mlnxofed_options
echo "ARCH=powerpc perl -x mlnxofedinstall --without-fw-update $mlnxofed_options"
ARCH=powerpc perl -x mlnxofedinstall --without-fw-update $mlnxofed_options
sleep 1
service openibd restart
else
@ -211,10 +211,50 @@ deb http://91.189.88.140/ubuntu-ports/ trusty-updates universe" >> $sourceslist
mount --bind /dev $installroot/dev/
mount --bind /proc $installroot/proc/
mount --bind /sys $installroot/sys/
chroot $installroot apt-get install -y linux-headers-$(uname -r)
echo "perl -x mlnxofedinstall $mlnxofed_options"
mv "${installroot}/bin/uname" "${installroot}/bin/uname.nouse"
# cat <<-EOF >"${installroot}/bin/uname"
# #!/bin/sh
# [ "\$1" = "-r" ] && cd /lib/modules && for d in *; do :; done && echo \$d
# [ "\$1" = "-m" ] && if [ -d "/proc/powerpc" ];then echo ppc64le;else echo x86_64;fi
# [ "\$1" = "-s" ] && echo Linux
# exit 0
# EOF
cat <<-EOF >"${installroot}/bin/uname"
#!/bin/sh
case "\$1" in
"-m")
ARCH="\$(dpkg --print-architecture || rpm -q kernel-\$("\$0" -r) --qf '%{arch}')"
case "\$ARCH" in
"amd64")
ARCH="x86_64"
;;
"ppc64el")
ARCH="ppc64le"
;;
esac
echo "\$ARCH"
;;
"-r")
cd /lib/modules && for d in * ; do : ; done && echo \$d
;;
"-s"|"")
echo "Linux"
;;
esac
exit 0
EOF
# head -n 999 "${installroot}/bin/uname"
chmod 0755 "${installroot}/bin/uname"
chroot $installroot sh -c 'apt-get install -y linux-headers-$(uname -r)'
echo "perl -x /tmp/ofed_install/ofed/mlnxofedinstall --without-fw-update $mlnxofed_options"
chroot $installroot perl -x /tmp/ofed_install/ofed/mlnxofedinstall --without-fw-update $mlnxofed_options
mv "${installroot}/bin/uname.nouse" "${installroot}/bin/uname"
rm -rf $installroot/tmp/ofed_install
umount $installroot/dev/
umount $installroot/proc/

View File

@ -53,7 +53,7 @@ d-i partman/early_command string \
rm /tmp/devs-with-boot 2>/dev/null || true; \
else \
DEV=`ls /dev/disk/by-path/* -l | egrep -o '/dev.*sd[^0-9]$' | sort -t : -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -g | head -n1 | egrep -o 'sd.*$'`; \
if [[ $DEV == "" ]]; then DEV="sda"; fi; \
if [[ "$DEV" == "" ]]; then DEV="sda"; fi; \
echo "/dev/$DEV" > /tmp/boot_disk; \
fi; \
debconf-set partman-auto/disk "$(cat /tmp/boot_disk)"

View File

@ -18,7 +18,7 @@ d-i netcfg/dhcp_timeout string 120
d-i mirror/country string manual
d-i mirror/protocol string http
d-i mirror/http/directory string /install/#TABLE:nodetype:$NODE:os#/#TABLE:nodetype:$NODE:arch#
d-i mirror/http/directory string #INCLUDE_OSIMAGE_PKGDIR#
d-i mirror/http/proxy string
# Suite to install.
@ -37,7 +37,26 @@ d-i partman-md/device_remove_md boolean true
#create the /tmp/partitioning based on the uefi or legacy bios
d-i partman/early_command string \
debconf-set partman-auto/disk "$(list-devices disk | head -n1)"
set -x; \
rm /tmp/devs-with-boot 2>/dev/null || true; \
for d in $(list-devices partition); do \
mkdir -p /tmp/mymount; \
rc=0; \
mount $d /tmp/mymount || rc=$?; \
if [[ $rc -eq 0 ]]; then \
[[ -d /tmp/mymount/boot ]] && echo $d >>/tmp/devs-with-boot; \
umount /tmp/mymount; \
fi \
done; \
if [[ -e /tmp/devs-with-boot ]]; then \
head -n1 /tmp/devs-with-boot | egrep -o '\S+[^0-9]' > /tmp/boot_disk; \
rm /tmp/devs-with-boot 2>/dev/null || true; \
else \
DEV=`ls /dev/disk/by-path/* -l | egrep -o '/dev.*sd[^0-9]$' | sort -t : -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -g | head -n1 | egrep -o 'sd.*$'`; \
if [[ "$DEV" == "" ]]; then DEV="sda"; fi; \
echo "/dev/$DEV" > /tmp/boot_disk; \
fi; \
debconf-set partman-auto/disk "$(cat /tmp/boot_disk)"
d-i partman-auto/expert_recipe_file string /tmp/partitioning
# This makes partman automatically partition without confirmation, provided

View File

@ -2,7 +2,7 @@ bash
nfs-common
openssl
isc-dhcp-client
linux-image-server
linux-image-generic
openssh-server
openssh-client
wget

View File

@ -64,6 +64,7 @@ my $permission; # the permission works only for statelite mode currently
my $tempfile;
my $prompt;
my $noupdate;
my $kernelimage;
sub xdie {
@ -211,7 +212,7 @@ unless ($onlyinitrd) {
if ($kernelver) {
find(\&isaptdir, <$kerneldir/>);
if (!grep /$kerneldir/, @aptdirs) {
print "The repository for $kerneldir should be created before running the geniamge. Try to run [createrepo $kerneldir].\n";
print "The repository for $kerneldir should be created before running the genimage.\n";
}
}
unless (scalar(@aptdirs)) {
@ -315,6 +316,9 @@ unless ($onlyinitrd) {
}
push @npa, $kernelname;
}
elsif ($p =~ /linux-image-generic/) {
$kernelimage = "linux-image-generic";
}
elsif ($p =~ /^@/) {
push @npa, "\"$p\"";
}
@ -471,6 +475,13 @@ unless ($onlyinitrd) {
#my $aptgetcmd_update = $yumcmd_base . " upgrade ";
my $aptgetcmd_update = $aptgetcmd . "&&". $aptgetcmdby . " upgrade ";
$rc = system("$aptgetcmd_update");
if ($kernelimage) {
if ($kernelver) {
$kernelimage = "linux-image-".$kernelver;
}
my $aptgetcmd_install = $aptgetcmd . "&&". $aptgetcmdby. " install --no-install-recommends ".$kernelimage;
$rc = system("$aptgetcmd_install");
}
print("Umount /proc, /dev, /sys, pkgdir and otherpkgdir to the rootimg.\n");
umount_chroot($rootimg_dir);
# ignore any return code

View File

@ -86,7 +86,7 @@ sub usage
-U: when -U is specified, only code updates can trigger the regression.\n
-V: log and message in verbose mode.\n
-e: <email_addr> send the test result to email_addr\n";
print " xCATreg [-?|-h]\n";
print " xCATreg [--help|-h]\n";
print " xCATreg [-f configure file] [-b branch] [-m mangement node][-V][-e] install mn \n";
print " xCATreg [-f configure file] [-b branch] [-m mangement node ] [-U][-V][-e] if code updates there will be regression.\n";
print "\n";
@ -1530,7 +1530,7 @@ send_msg(2,"........................");
#######################################
send_msg(2, "step 0, initializing...............");
if (
!GetOptions("h|?" => \$needhelp,
!GetOptions("h|help" => \$needhelp,
"f=s" => \$configfile,
"b=s" => \$branch,
"m=s" => \$management_node,

View File

@ -2,4 +2,15 @@
#modify the grub.cfg to prevent nic consistent network renameing
grep -E -q "net.ifnames=0" /etc/sysconfig/grub || sed -i '/^GRUB_CMDLINE_LINUX=.*/{s/"$/ net.ifnames=0"/}' /etc/sysconfig/grub
grep -E -q "net.ifnames=0" /etc/default/grub || sed -i '/^GRUB_CMDLINE_LINUX=.*/{s/"$/ net.ifnames=0"/}' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
if [ -f "/boot/efi/EFI/redhat/grub.cfg" ];then
GRUB_CFG_FILE="/boot/efi/EFI/redhat/grub.cfg"
#elif [ -f "/boot/efi/efi/SuSE/elilo.efi" ];then
elif [ -f "/boot/grub2/grub.cfg" ];then
GRUB_CFG_FILE="/boot/grub2/grub.cfg"
elif [ -f "/boot/grub/grub.cfg" ];then
GRUB_CFG_FILE="/boot/grub/grub.cfg"
fi
grub2-mkconfig -o "$GRUB_CFG_FILE"