From 638f0d75c4b2fda2d85d21b87c5cc217c597f48f Mon Sep 17 00:00:00 2001 From: Daniel Hilst <392820+dhilst@users.noreply.github.com> Date: Sat, 20 Jun 2026 18:48:14 -0300 Subject: [PATCH] Fix xCAT 2.18 EL10 x86_64 package build issues Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com> --- build-ubunturepo | 64 +- buildrpms.pl | 161 +++- .../restapi/restapi_setup/restapi_setup.rst | 8 +- perl-xCAT/debian/rules | 2 +- perl-xCAT/modifyUtils | 11 +- perl-xCAT/perl-xCAT.spec | 2 - perl-xCAT/xCAT/DHCP/Backend/Kea.pm | 18 +- perl-xCAT/xCAT/DSHCLI.pm | 10 +- perl-xCAT/xCAT/SINV.pm | 2 +- xCAT-client/bin/rcons | 4 +- xCAT-client/bin/xdsh | 8 +- xCAT-genesis-builder/builddeb-genesis-base | 166 ++++ xCAT-genesis-builder/debian/compat | 1 - xCAT-genesis-builder/debian/control | 12 +- xCAT-genesis-builder/debian/preinst | 23 +- xCAT-genesis-builder/debian/rules | 42 +- xCAT-genesis-builder/debian/source/format | 2 +- .../debuild-xcat-genesis-base | 5 +- xCAT-genesis-builder/dracut_105/README | 22 +- .../dracut_105/el/module-setup.sh | 2 +- .../dracut_105/el/xcat-cmdline.sh | 6 +- xCAT-genesis-builder/dracut_105/ubuntu | 1 - .../dracut_105/ubuntu/dhclient-script | 60 ++ .../dracut_105/ubuntu/dhclient.conf | 2 + .../dracut_105/ubuntu/module-setup.sh | 670 +++++++++++++++ .../dracut_105/ubuntu/rsyslog.conf | 4 + .../dracut_105/ubuntu/xcat-cmdline.sh | 90 ++ .../dracut_105/ubuntu/xcatroot | 8 + xCAT-genesis-builder/install.ubuntu | 1 + xCAT-genesis-builder/xCAT-genesis-base.spec | 3 +- xCAT-openbmc-py/xCAT-openbmc-py.spec | 2 +- xCAT-server/lib/xcat/plugins/ddns.pm | 7 + xCAT-server/lib/xcat/plugins/dhcp.pm | 84 +- xCAT-server/lib/xcat/plugins/kvm.pm | 21 +- xCAT-server/lib/xcat/plugins/xdsh.pm | 8 +- xCAT-server/sbin/xcatconfig | 6 +- .../xcat/install/alma/compute.alma10.pkglist | 1 + .../xcat/install/alma/compute.alma10.tmpl | 1 + .../xcat/install/alma/service.alma10.pkglist | 1 + .../xcat/install/alma/service.alma10.tmpl | 1 + .../service.alma10.x86_64.otherpkgs.pkglist | 1 + .../xcat/install/rh/service.rhels10.pkglist | 19 + .../xcat/install/rh/service.rhels10.tmpl | 1 + .../service.rhels10.x86_64.otherpkgs.pkglist | 2 + .../autotest/bundle/alma10_x86_daily.bundle | 3 + xCAT-test/autotest/testcase/HA/case0 | 2 +- .../autotest/testcase/commoncmd/nic_cfg.sh | 192 +++++ .../autotest/testcase/confignetwork/cases0 | 177 ++-- .../autotest/testcase/confignetwork/cases1 | 12 +- xCAT-test/autotest/testcase/confignics/cases0 | 66 +- .../testcase/discovery/discovery_test | 6 +- .../get_install_disk/fresh_install_disk | 2 +- .../testcase/get_install_disk/reinstall_disk | 2 +- xCAT-test/autotest/testcase/infiniband/cases0 | 8 +- .../installation/SN_diskless_setup_case | 4 +- .../testcase/installation/SN_setup_case | 4 +- .../reg_linux_diskfull_installation_flat | 2 +- .../reg_linux_diskfull_installation_hierarchy | 2 +- .../reg_linux_diskless_installation_flat | 4 +- .../reg_linux_diskless_installation_hierarchy | 8 +- .../reg_linux_statelite_installation_flat | 8 +- ...ux_statelite_installation_hierarchy_by_nfs | 6 +- ...tatelite_installation_hierarchy_by_ramdisk | 6 +- xCAT-test/autotest/testcase/makedhcp/cases0 | 35 +- xCAT-test/autotest/testcase/makehosts/cases0 | 10 +- .../testcase/migration/redhat_migration | 8 +- .../testcase/migration/sles_migration | 8 +- xCAT-test/autotest/testcase/nodeset/cases0 | 2 +- xCAT-test/autotest/testcase/noop/cases0 | 7 + xCAT-test/autotest/testcase/performance/case0 | 2 +- xCAT-test/autotest/testcase/restapi/cases0 | 10 +- .../cfg_wrong_cn_in_sn_pool_tftp_sync_mode | 12 +- ..._set_xcatmaster_in_sn_pool_tftp_mount_mode | 12 +- ...ter_in_sn_pool_tftp_mount_mode_checkresult | 6 +- ...t_set_xcatmaster_in_sn_pool_tftp_sync_mode | 12 +- .../set_xcatmaster_in_sn_pool_tftp_mount_mode | 12 +- ...ter_in_sn_pool_tftp_mount_mode_checkresult | 6 +- .../set_xcatmaster_in_sn_pool_tftp_sync_mode | 12 +- .../snpool/setup_sn_pool_tftp_mount_mode | 6 +- .../snpool/setup_sn_pool_tftp_sync_mode | 6 +- .../testcase/xcat_inventory/cases.environment | 2 +- .../xcatdebugmode/rhels_xcatdebugmode_diskful | 6 +- .../xcatdebugmode/sles_xcatdebugmode_diskful | 4 +- xCAT-test/unit/dhcp_kea_plugin_intent.t | 102 +++ xCAT/postscripts/bmcsetup | 770 ++++++++++++++++++ xCAT/postscripts/configeth | 50 +- xCAT/postscripts/getipmi | 66 ++ xCAT/postscripts/remoteshell | 6 +- xCAT/postscripts/servicenode | 11 + xCAT/xCAT.spec | 6 - xCATsn/xCATsn.spec | 15 + 91 files changed, 2852 insertions(+), 431 deletions(-) create mode 100755 xCAT-genesis-builder/builddeb-genesis-base delete mode 100644 xCAT-genesis-builder/debian/compat delete mode 120000 xCAT-genesis-builder/dracut_105/ubuntu create mode 100755 xCAT-genesis-builder/dracut_105/ubuntu/dhclient-script create mode 100644 xCAT-genesis-builder/dracut_105/ubuntu/dhclient.conf create mode 100755 xCAT-genesis-builder/dracut_105/ubuntu/module-setup.sh create mode 100644 xCAT-genesis-builder/dracut_105/ubuntu/rsyslog.conf create mode 100755 xCAT-genesis-builder/dracut_105/ubuntu/xcat-cmdline.sh create mode 100755 xCAT-genesis-builder/dracut_105/ubuntu/xcatroot create mode 120000 xCAT-server/share/xcat/install/alma/compute.alma10.pkglist create mode 120000 xCAT-server/share/xcat/install/alma/compute.alma10.tmpl create mode 120000 xCAT-server/share/xcat/install/alma/service.alma10.pkglist create mode 120000 xCAT-server/share/xcat/install/alma/service.alma10.tmpl create mode 120000 xCAT-server/share/xcat/install/alma/service.alma10.x86_64.otherpkgs.pkglist create mode 100644 xCAT-server/share/xcat/install/rh/service.rhels10.pkglist create mode 120000 xCAT-server/share/xcat/install/rh/service.rhels10.tmpl create mode 100644 xCAT-server/share/xcat/install/rh/service.rhels10.x86_64.otherpkgs.pkglist create mode 100644 xCAT-test/autotest/bundle/alma10_x86_daily.bundle create mode 100755 xCAT-test/autotest/testcase/commoncmd/nic_cfg.sh create mode 100644 xCAT-test/autotest/testcase/noop/cases0 create mode 100755 xCAT/postscripts/bmcsetup create mode 100755 xCAT/postscripts/getipmi diff --git a/build-ubunturepo b/build-ubunturepo index 35305e11a..ae516d722 100755 --- a/build-ubunturepo +++ b/build-ubunturepo @@ -26,6 +26,9 @@ # # LOCAL_KEY=1 Use local keys to sign repo instead of WGET from GSA. By default use GSA. # +# GPG_HOME= - Use the specified directory as GNUPGHOME for signing (no passphrase assumed). +# Bypasses GSA download and LOCAL_KEY. +# # SETUP=1 Setup environment for build. By default do not setup environment. # # LOG= - provide an LOG file option to redirect some output into log file @@ -177,6 +180,9 @@ fi if [ "$GPGSIGN" = "0" ];then echo "GPGSIGN=$GPGSIGN specified, skip gnupg key downloading" +elif [ -n "$GPG_HOME" ];then + echo "GPG_HOME=$GPG_HOME specified, using provided GNUPGHOME" + export GNUPGHOME="$GPG_HOME" else #sync the gpg key to the build machine local gsa_url=http://pokgsa.ibm.com/projects/x/xcat/build/linux @@ -235,10 +241,18 @@ then ver=`cat Version` short_ver=`cat Version|cut -d. -f 1,2` short_short_ver=`cat Version|cut -d. -f 1` - build_time=`date` - build_machine=`hostname` commit_id_long=`git rev-parse HEAD` commit_id="${commit_id_long:0:7}" + if [ -f Gitepoch ]; then + source_date_epoch=$(cat Gitepoch) + else + source_date_epoch=$(git log -1 --format=%ct HEAD 2>/dev/null || date +%s) + fi + export SOURCE_DATE_EPOCH="$source_date_epoch" + export DEBEMAIL="xcat-build@xcat.org" + export DEBFULLNAME="xCAT Build" + build_time=$(date -d "@$source_date_epoch" --utc '+%Y-%m-%dT%H:%M:%SZ' 2>/dev/null || date -u) + build_machine=`hostname` if [ $code_change == 0 -a "$UP" != 1 -a "$BUILDALL" != 1 ]; then echo "Nothing new detected. Exiting...." @@ -252,10 +266,30 @@ then #the package type: local | snap | alpha #the build introduce string build_string="Snap_Build" - xcat_release="snap$(date '+%Y%m%d%H%M')" + if [ -f Release ]; then + xcat_release=$(cat Release) + else + xcat_release="snap$(date -d "@$source_date_epoch" --utc '+%Y%m%d%H%M')" + fi pkg_version="${ver}-${xcat_release}" packages="xCAT-client xCAT-genesis-scripts perl-xCAT xCAT-server xCAT xCATsn xCAT-test xCAT-buildkit xCAT-vlan xCAT-confluent xCAT-probe" + if [ -n "$PACKAGE" ]; then + match="" + for p in $packages; do + p_low=$(echo "$p" | tr '[A-Z]' '[a-z]') + pkg_low=$(echo "$PACKAGE" | tr '[A-Z]' '[a-z]') + if [ "$p_low" = "$pkg_low" ]; then + match="$p" + break + fi + done + if [ -z "$match" ]; then + echo "ERROR: Package '$PACKAGE' not found. Valid packages: $packages" + exit 1 + fi + packages="$match" + fi target_archs=(amd64 ppc64el) for file in $packages do @@ -278,7 +312,9 @@ then CURDIR=$(pwd) find . -name '*.dch' -delete - dch -v $pkg_version -b -c debian/changelog $build_string + deterministic_date=$(date -R -d "@$SOURCE_DATE_EPOCH" --utc 2>/dev/null || date -R --utc) + sed -i "1s/(.*)/(${pkg_version})/" debian/changelog + sed -i "s/^ -- .*/ -- $DEBFULLNAME <$DEBEMAIL> $deterministic_date/" debian/changelog if [ "$target_arch" = "all" ]; then #xcat probe use some functions shipped by xCAT, for below reasons we need to copy files to xCAT-probe directory #1 make xcat probe code to be self-contained @@ -337,7 +373,7 @@ then done done - find $PKGDIR/* ! -name *.deb | xargs rm -f + find $PKGDIR/* ! -name '*.deb' | xargs rm -f fi if [ "$PROMOTE" = 1 ]; then @@ -386,11 +422,18 @@ __EOF__ fi done - cat << __EOF__ > conf/options + if [ -n "$GPG_HOME" ]; then + cat << __EOF__ > conf/options +verbose +basedir . +__EOF__ + else + cat << __EOF__ > conf/options verbose ask-passphrase basedir . __EOF__ + fi #import the deb packages into the repo amd_files=`ls ../$package_dir_name/*.deb | grep -v "ppc64el"` @@ -531,11 +574,18 @@ __EOF__ - cat << __EOF__ > conf/options + if [ -n "$GPG_HOME" ]; then + cat << __EOF__ > conf/options +verbose +basedir . +__EOF__ + else + cat << __EOF__ > conf/options verbose ask-passphrase basedir . __EOF__ + fi #import the deb packages into the repo amd_files=`ls ../debs/*.deb | grep -v "ppc64el"` diff --git a/buildrpms.pl b/buildrpms.pl index 590b81ae0..6054b4a68 100755 --- a/buildrpms.pl +++ b/buildrpms.pl @@ -19,7 +19,7 @@ sub install_deps { esac dnf install -y perl-generators https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm dnf install -y \$(/usr/lib/rpm/perl.req $0) - dnf install -y tar mock nginx createrepo podman rpmdevtools + dnf install -y tar mock nginx createrepo podman rpmdevtools rpm-sign systemctl enable --now nginx @@ -42,6 +42,7 @@ use File::Path qw(make_path remove_tree); use File::Slurper qw(read_text write_text); use FindBin qw($Bin); use Getopt::Long qw(GetOptions); +use POSIX qw(strftime); use Parallel::ForkManager; use Pod::Usage qw(pod2usage); @@ -50,13 +51,27 @@ use autodie qw(cp); my $SOURCES = "$ENV{HOME}/rpmbuild/SOURCES"; my $VERSION = read_text("Version"); -my $RELEASE = read_text("Release"); -my $GITINFO = read_text("Gitinfo"); my $PWD = Cwd::cwd(); chomp($VERSION); -chomp($RELEASE); + +# Gitinfo is regenerated at each run with the current git revision. +my $GITINFO = `git rev-parse HEAD 2>/dev/null`; chomp($GITINFO); +$GITINFO = "unknown" unless $GITINFO; +write_text("Gitinfo", "$GITINFO\n"); + +my $SOURCE_DATE_EPOCH; +if (-f "Gitepoch") { + $SOURCE_DATE_EPOCH = read_text("Gitepoch"); + chomp($SOURCE_DATE_EPOCH); +} +unless ($SOURCE_DATE_EPOCH && $SOURCE_DATE_EPOCH =~ /^\d+$/) { + $SOURCE_DATE_EPOCH = `git log -1 --format=%ct HEAD 2>/dev/null`; + chomp($SOURCE_DATE_EPOCH); +} +$SOURCE_DATE_EPOCH = time() unless $SOURCE_DATE_EPOCH =~ /^\d+$/; +$ENV{SOURCE_DATE_EPOCH} = $SOURCE_DATE_EPOCH; sub os_release { my %os; @@ -82,10 +97,14 @@ sub arch { my $ARCH = arch(); my %OS = os_release(); my $DISTRO = $OS{ID}; +# mock's EPEL-enabled AlmaLinux templates are named alma+epel-*, there is no +# almalinux+epel-* config, so translate the os-release ID accordingly. +$DISTRO = "alma" if $DISTRO eq "almalinux"; my @PACKAGES = qw( perl-xCAT xCAT + xCATsn xCAT-buildkit xCAT-client xCAT-confluent @@ -109,10 +128,15 @@ my @TARGETS = ( my %opts = ( configure_nginx => 0, force => 0, + gpg_home => "", + gpg_key_name => "xCAT Automatic Signing Key", + gpg_sign => 0, help => 0, + mock_uniqueext => "", nginx_port => 8080, nproc => int(`nproc --all`), packages => \@PACKAGES, + release => "", repo_mode => "file", targets => \@TARGETS, verbose => 0, @@ -122,10 +146,15 @@ my %opts = ( GetOptions( "configure_nginx" => \$opts{configure_nginx}, "force" => \$opts{force}, + "gpg-home=s" => \$opts{gpg_home}, + "gpg-key-name=s" => \$opts{gpg_key_name}, + "gpg-sign" => \$opts{gpg_sign}, "help" => \$opts{help}, + "mock-uniqueext=s" => \$opts{mock_uniqueext}, "nginx_port" => \$opts{nginx_port}, "nproc=i" => \$opts{nproc}, "package=s@" => \$opts{packages}, + "release=s" => \$opts{release}, "repo-mode=s" => \$opts{repo_mode}, "target=s@" => \$opts{targets}, "verbose" => \$opts{verbose}, @@ -133,6 +162,12 @@ GetOptions( "setup_local_repos" => \$opts{setup_local_repos}, ) or usage(); +# Release is regenerated at each run so every build gets a fresh snapshot +# release, unless pinned with --release (e.g. to rebuild a single package +# matching the release the rest of the repo was built with). +my $RELEASE = $opts{release} || strftime("snap%Y%m%d%H%M", localtime); +write_text("Release", "$RELEASE\n"); + sub usage { my (%args) = @_; my $verbose = $args{verbose} // 1; @@ -219,7 +254,8 @@ EOF sub createmockconfig { my ($pkg, $target) = @_; - my $chroot = "$pkg-$target"; + my $ext = $opts{mock_uniqueext} ? "-$opts{mock_uniqueext}" : ""; + my $chroot = "$pkg-$target$ext"; my $cfgfile = "/etc/mock/$chroot.cfg"; return if -f $cfgfile && ! $opts{force}; cp "/etc/mock/$target.cfg", $cfgfile; @@ -230,6 +266,7 @@ sub createmockconfig { # exported by the RPM $contents .= "config_opts['chroot_additional_packages'] = 'perl-generators'\n"; } + $contents .= "config_opts['environment']['SOURCE_DATE_EPOCH'] = '$SOURCE_DATE_EPOCH'\n"; write_text($cfgfile, $contents); } @@ -251,7 +288,7 @@ sub buildsources_genesis_base($) { "$staging_root/80-net-name-slot.rules"; unlink $support_tarball if -f $support_tarball; - sh(qq(tar -cjf "$support_tarball" -C "$staging_parent" xCAT-genesis-base-build-support)) + sh(qq(tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -cjf "$support_tarball" -C "$staging_parent" xCAT-genesis-base-build-support)) and die "Error creating $support_tarball"; remove_tree($staging_parent); @@ -268,39 +305,40 @@ sub buildsources { } sh(<<"EOF"); cd xCAT - tar --exclude upflag -czf $SOURCES/postscripts.tar.gz postscripts LICENSE.html - tar -czf $SOURCES/prescripts.tar.gz prescripts - tar -czf $SOURCES/templates.tar.gz templates - tar -czf $SOURCES/winpostscripts.tar.gz winpostscripts - tar -czf $SOURCES/etc.tar.gz etc + tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" --exclude upflag -czf $SOURCES/postscripts.tar.gz postscripts LICENSE.html + tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -czf $SOURCES/prescripts.tar.gz prescripts + tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -czf $SOURCES/templates.tar.gz templates + tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -czf $SOURCES/winpostscripts.tar.gz winpostscripts + tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -czf $SOURCES/etc.tar.gz etc cp xcat.conf $SOURCES cp xcat.conf.apach24 $SOURCES cp xCATMN $SOURCES EOF } elsif ($pkg eq "xCAT-genesis-scripts") { - sh qq(tar -cjf "$SOURCES/$pkg.tar.bz2" $pkg); + sh qq(tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -cjf "$SOURCES/$pkg.tar.bz2" $pkg); } elsif ($pkg eq "xCAT-genesis-base") { buildsources_genesis_base($target); } elsif ($pkg eq "xCATsn") { sh(<<"EOF"); - tar -czf "$SOURCES/$pkg-$VERSION.tar.gz" $pkg - tar -czf "$SOURCES/license.tar.gz" -C $pkg LICENSE.html - tar -czf "$SOURCES/etc.tar.gz" -C xCAT etc + tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -czf "$SOURCES/$pkg-$VERSION.tar.gz" $pkg + tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -czf "$SOURCES/license.tar.gz" -C $pkg LICENSE.html + tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -czf "$SOURCES/etc.tar.gz" -C xCAT etc cp $pkg/xcat.conf $SOURCES cp $pkg/xcat.conf.apach24 $SOURCES cp $pkg/xCATSN $SOURCES EOF # xCATsn.spec consumes templates from xCAT shared templates payload. - sh qq(tar -czf "$SOURCES/templates.tar.gz" xCAT/templates) unless -f "$SOURCES/templates.tar.gz"; + sh qq(tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -czf "$SOURCES/templates.tar.gz" xCAT/templates) unless -f "$SOURCES/templates.tar.gz"; } else { - sh qq(tar -czf "$SOURCES/$pkg-$VERSION.tar.gz" $pkg); + sh qq(tar --sort=name --owner=0 --group=0 --mtime="\@$SOURCE_DATE_EPOCH" -czf "$SOURCES/$pkg-$VERSION.tar.gz" $pkg); } } sub buildspkgs { my ($pkg, $target) = @_; - my $chroot = "$pkg-$target"; + my $ext = $opts{mock_uniqueext} ? "-$opts{mock_uniqueext}" : ""; + my $chroot = "$pkg-$target$ext"; my $targetarch = targetarch_from_target($target); my $genesis_tarch = genesis_tarch_from_targetarch($targetarch); @@ -319,6 +357,7 @@ sub buildspkgs { my @opts; push @opts, "--quiet" unless $opts{verbose}; + say "Building $diskcache"; sh(<<"EOF"); @@ -328,6 +367,9 @@ mock -r $chroot \\ --define "version $VERSION" \\ --define "release $RELEASE" \\ --define "gitinfo $GITINFO" \\ + --define "use_source_date_epoch_as_buildtime 1" \\ + --define "clamp_mtime_to_source_date_epoch 1" \\ + --define "_buildhost xcat-build" \\ --buildsrpm \\ --spec $dir/$pkg.spec \\ --sources $SOURCES \\ @@ -338,14 +380,15 @@ EOF sub buildpkgs { my ($pkg, $target) = @_; my $optsref = \%opts; - my $chroot = "$pkg-$target"; + my $ext = $opts{mock_uniqueext} ? "-$opts{mock_uniqueext}" : ""; + my $chroot = "$pkg-$target$ext"; my @native_pkgs = qw( xCAT xCAT-genesis-scripts ); - # get x86_64 from rhel+epel-9-x86_64 + # get x86_64 from alma+epel-9-x86_64 my $targetarch = targetarch_from_target($target); # xCAT genesis packages include the translated target arch in their file names. @@ -361,6 +404,7 @@ sub buildpkgs { my @opts; push @opts, "--quiet" unless $opts{verbose}; + my $spkgname = sub { return "${pkg}-${genesis_tarch}-${VERSION}-${RELEASE}.src.rpm" if $pkg eq 'xCAT-genesis-scripts'; @@ -379,6 +423,9 @@ mock -r $chroot \\ --define "version $VERSION" \\ --define "release $RELEASE" \\ --define "gitinfo $GITINFO" \\ + --define "use_source_date_epoch_as_buildtime 1" \\ + --define "clamp_mtime_to_source_date_epoch 1" \\ + --define "_buildhost xcat-build" \\ --resultdir "dist/$target/rpms/" \\ --rebuild dist/$target/srpms/$spkgname EOF @@ -476,9 +523,13 @@ sub setup_local_repos { ? "file://$PWD/dist/$target/rpms" : "http://127.0.0.1:$opts{nginx_port}/$target" ); + my $gpgkey = $opts{gpg_sign} + ? "file://$PWD/dist/$target/rpms/repodata/repomd.xml.key" + : undef; my $exit = setup_repo -id => "xcat-core-local", - -baseurl => $core_baseurl; + -baseurl => $core_baseurl, + -gpgkey => $gpgkey; return $exit if $exit; my %os = os_release(); my $version = int $os{VERSION_ID}; @@ -502,6 +553,34 @@ sub update_repo { `createrepo --update dist/$target/rpms`; } +sub sign_rpms { + my ($target) = @_; + my $key_name = $opts{gpg_key_name}; + my $repodir = "dist/$target/rpms"; + + say "Signing RPMs in $repodir"; + my @rpms = glob("$repodir/*.rpm"); + if (@rpms) { + my $rpm_list = join " ", map { qq("$_") } @rpms; + sh(qq(rpmsign --define "%_gpg_name $key_name" --addsign $rpm_list)) + and die "Failed to sign RPMs in $repodir"; + } + + # rpmsign --addsign rewrites the rpm files, so the checksums recorded by the + # earlier createrepo no longer match and dnf rejects them. Regenerate the repo + # metadata now (after signing, before signing repomd.xml) so it stays consistent. + say "Regenerating repo metadata after signing $repodir"; + sh(qq(createrepo --update "$repodir")) + and die "Failed to regenerate repo metadata after signing"; + + say "Signing repomd.xml for $target"; + my $repomd = "$repodir/repodata/repomd.xml"; + unlink "$repomd.asc" if -f "$repomd.asc"; + sh(qq(gpg -a --detach-sign --default-key "$key_name" "$repomd")) + and die "Failed to sign $repomd"; + sh(qq(gpg -a --export "$key_name" > "$repomd.key")) + and die "Failed to export public key"; +} sub main { usage(verbose => 2, exitval => 0) if $opts{help}; @@ -535,8 +614,13 @@ sub main { } $pm->wait_all_children; - # Default run builds artifacts only. - # Repo setup/nginx configuration are explicit actions. + if ($opts{gpg_sign}) { + $ENV{GNUPGHOME} = $opts{gpg_home} if $opts{gpg_home}; + for my $target ($opts{targets}->@*) { + sign_rpms($target); + } + } + exit(0); } @@ -590,6 +674,17 @@ Default: all host CPUs. Rebuild artifacts even if output files already exist. +=item B<--release>=I + +Override the auto-generated C release string. xCAT packages +inter-depend on the exact C, so use this to rebuild a single +package that installs alongside an already-built repo: + + ./buildrpms.pl --package xCAT-client --release snap202606060850 --force + +C<--force> is usually required: with a pinned release the existing RPM under +C matches the disk-cache check and the build would be skipped. + =item B<--verbose> Print executed shell commands. @@ -627,6 +722,22 @@ Write C and C for the selected mode. This is an explicit action and does not run during the default build flow. +=item B<--gpg-sign> + +Sign RPMs and repository metadata after build. Requires a GPG key +in the active keyring (default C<~/.gnupg> or the directory set by +C<--gpg-home>). + +=item B<--gpg-home>=I + +Path to GNUPGHOME directory containing the signing key. +If not specified, uses the default GPG keyring. + +=item B<--gpg-key-name>=I + +Name of the GPG key to use for signing. +Default: C. + =back =head1 DEFAULT FLOW @@ -645,6 +756,10 @@ Runs C for each selected target under C. =item 3. +If C<--gpg-sign> is set, signs RPMs and C for each target. + +=item 4. + Exits without modifying nginx or yum repo files. =back diff --git a/docs/source/advanced/restapi/restapi_setup/restapi_setup.rst b/docs/source/advanced/restapi/restapi_setup/restapi_setup.rst index 5b9470bf2..1704c4d91 100644 --- a/docs/source/advanced/restapi/restapi_setup/restapi_setup.rst +++ b/docs/source/advanced/restapi/restapi_setup/restapi_setup.rst @@ -6,7 +6,7 @@ To improve the security between the REST API clients and server, enabling the se * **[RHEL6/7/8 (x86_64/ppc64/ppc64le) and RHEL5 (x86_64)]** :: yum install mod_ssl - service httpd restart + systemctl restart httpd yum install perl-JSON * **[RHEL5 (ppc64)]** @@ -30,7 +30,7 @@ To improve the security between the REST API clients and server, enabling the se sudo a2enmod ssl ln -s ../sites-available/default-ssl.conf /etc/apache2/sites-enabled/ssl.conf - sudo service apache2 restart + sudo systemctl restart apache2 # verify it is loaded: @@ -67,8 +67,8 @@ The steps to configure the certificate for https server: :: sed -i 's/^\(\s*\)SSLCertificateFile.*$/\1SSLCertificateFile \/etc\/xcat\/cert\/server-cred.pem/' $sslcfgfile sed -i 's/^\(\s*SSLCertificateKeyFile.*\)$/#\1/' $sslcfgfile - service httpd restart # rhel - service apache2 restart # sles/ubuntu + systemctl restart httpd # rhel + systemctl restart apache2 # sles/ubuntu The REST API client needs to download the xCAT certificate CA from the xCAT http server to authenticate the certificate of the server. :: diff --git a/perl-xCAT/debian/rules b/perl-xCAT/debian/rules index 548cd424e..7a0450ef4 100755 --- a/perl-xCAT/debian/rules +++ b/perl-xCAT/debian/rules @@ -44,7 +44,7 @@ binary-arch: build install chmod 644 `pwd`/debian/perl-xcat/opt/xcat/share/doc/man5/* chmod 644 `pwd`/debian/perl-xcat/opt/xcat/share/man/man7/* chmod 644 `pwd`/debian/perl-xcat/opt/xcat/share/doc/man7/* - ./modifyUtils `cat ../Version` `git log -n 1 | head -n 1 | cut -f 2 -d ' '` + ./modifyUtils `cat ../Version` `if [ -f ../Gitinfo ]; then cat ../Gitinfo; else git log -n 1 | head -n 1 | cut -f 2 -d ' '; fi` # dh_installmenu # dh_installdebconf # dh_installlogrotate diff --git a/perl-xCAT/modifyUtils b/perl-xCAT/modifyUtils index bbad27bdb..1d7128265 100755 --- a/perl-xCAT/modifyUtils +++ b/perl-xCAT/modifyUtils @@ -1,5 +1,5 @@ #!/bin/sh -# Put the version, svn revision #, and build date into the Version function in Version.pm +# Put the version and git commit into the Version function in Version.pm if [ -z "$2" ] then @@ -8,14 +8,11 @@ if [ -z "$2" ] fi VER=$1 -GITREF="git commit $2, " - -BUILDDATE=`date` -#echo ". '(built $BUILDDATE)'" +GITREF="git commit $2" if [ "$(uname)" = "AIX" ] then - sed -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (${GITREF}built $BUILDDATE)'"/ xCAT/Version.pm >xCAT/Version.pm.new + sed -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' ($GITREF)'"/ xCAT/Version.pm >xCAT/Version.pm.new mv xCAT/Version.pm.new xCAT/Version.pm else if [ -f "/etc/debian_version" ];then @@ -23,5 +20,5 @@ else else FILENAME="xCAT/Version.pm" fi - sed -i -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' (${GITREF}built $BUILDDATE)'"/ $FILENAME + sed -i -e s/"#XCATVERSIONSUBHERE"/". '$VER'"/ -e s/"#XCATSVNBUILDSUBHERE"/". ' ($GITREF)'"/ $FILENAME fi diff --git a/perl-xCAT/perl-xCAT.spec b/perl-xCAT/perl-xCAT.spec index 9d9597225..59aa744c2 100644 --- a/perl-xCAT/perl-xCAT.spec +++ b/perl-xCAT/perl-xCAT.spec @@ -26,8 +26,6 @@ Includes xCAT::Table, xCAT::NodeRange, among others. %define zvm %(if [ "$zvm" = "1" ];then echo 1; else echo 0; fi) %define fsm %(if [ "$fsm" = "1" ];then echo 1; else echo 0; fi) - -%define builddate %(date) %prep %setup -q -n perl-xCAT %build diff --git a/perl-xCAT/xCAT/DHCP/Backend/Kea.pm b/perl-xCAT/xCAT/DHCP/Backend/Kea.pm index b89c8cd84..e83c55673 100644 --- a/perl-xCAT/xCAT/DHCP/Backend/Kea.pm +++ b/perl-xCAT/xCAT/DHCP/Backend/Kea.pm @@ -513,7 +513,23 @@ sub restart_services { my $enable_ret = xCAT::Utils->enableservice($unit); return { error => "Failed to enable $unit." } if $enable_ret != 0; } - my $ret = xCAT::Utils->restartservice($unit); + my $ret; + if ( xCAT::Utils->checkservicestatus($unit) == 0 ) { + # Already running: reload the config (SIGHUP) instead of a full restart. + # Kea reconfigures from the regenerated config file on SIGHUP, and -- unlike + # restart -- this does not count against systemd's start-rate limit + # (StartLimitBurst=5/10s on EL). A burst of makedhcp calls (e.g. the + # makedhcp_remote_network test loop, or rapid provisioning) would otherwise + # trip that limit and fail with "Failed to restart kea-dhcp4". + xCAT::Utils->runcmd("systemctl reload $unit", -1); + $ret = $::RUNCMD_RC; + } + if ( !defined($ret) || $ret != 0 ) { + # Not running (first start) or reload failed: clear any start-limit latch, + # then do a full restart. + xCAT::Utils->runcmd("systemctl reset-failed $unit", -1); + $ret = xCAT::Utils->restartservice($unit); + } return { error => "Failed to restart $unit." } if $ret != 0; } diff --git a/perl-xCAT/xCAT/DSHCLI.pm b/perl-xCAT/xCAT/DSHCLI.pm index d4a59edda..e697809ab 100644 --- a/perl-xCAT/xCAT/DSHCLI.pm +++ b/perl-xCAT/xCAT/DSHCLI.pm @@ -4039,9 +4039,9 @@ sub parse_and_run_dsh 'T|trace' => \$options{'trace'}, 'V|version' => \$options{'version'}, - 'devicetype|devicetype=s' => \$options{'devicetype'}, - 'nodestatus|nodestatus' => \$options{'nodestatus'}, - 'sudo|sudo' => \$options{'sudo'}, + 'devicetype=s' => \$options{'devicetype'}, + 'nodestatus' => \$options{'nodestatus'}, + 'sudo' => \$options{'sudo'}, 'command-name|commandName=s' => \$options{'command-name'}, 'command-description|commandDescription=s' => \$options{'command-description'}, @@ -4504,8 +4504,8 @@ sub parse_and_run_dcp 'T|trace' => \$options{'trace'}, 'V|version' => \$options{'version'}, 'devicetype=s' => \$options{'devicetype'}, - 'nodestatus|nodestatus' => \$options{'nodestatus'}, - 'sudo|sudo' => \$options{'sudo'}, + 'nodestatus' => \$options{'nodestatus'}, + 'sudo' => \$options{'sudo'}, 'X:s' => \$options{'ignore_env'} ) ) diff --git a/perl-xCAT/xCAT/SINV.pm b/perl-xCAT/xCAT/SINV.pm index 6a8606ea6..758411984 100644 --- a/perl-xCAT/xCAT/SINV.pm +++ b/perl-xCAT/xCAT/SINV.pm @@ -114,7 +114,7 @@ sub parse_and_run_sinv 'e|exactmatch' => \$options{'exactmatch'}, 'i|ignorefirst' => \$options{'ignorefirst'}, 'l|user=s' => \$options{'user'}, - 'devicetype|devicetype=s' => \$options{'devicetype'}, + 'devicetype=s' => \$options{'devicetype'}, 'c|cmd=s' => \$options{'sinv_cmd'}, 'f|file=s' => \$options{'sinv_cmd_file'}, 'v|version' => \$options{'version'}, diff --git a/xCAT-client/bin/rcons b/xCAT-client/bin/rcons index 1fc8418b5..0cb077cde 100755 --- a/xCAT-client/bin/rcons +++ b/xCAT-client/bin/rcons @@ -81,7 +81,7 @@ if [ "$CONSOLE_SERVICE_KEYWORD" == "consoleservice" ]; then fi if [ $USE_CONFLUENT != "1" ] && [ -f "/usr/bin/congo" ] && [ -f "/usr/bin/goconserver" ]; then - GOCONSERVER_RC=`service goconserver status >& /dev/null; echo $?` + GOCONSERVER_RC=`systemctl is-active goconserver >& /dev/null; echo $?` if [[ ${GOCONSERVER_RC} == 0 ]]; then USE_GOCONSERVER=1 fi @@ -101,7 +101,7 @@ if [ $USE_CONFLUENT == "1" ] && ([ -x "/opt/confluent/bin/confetty" ] || [ -x "/ echo "Error: consoleservice is set to 'confluent' but conserver is running. Stop conserver, run makeconfluentcfg, and retry..." exit 1 fi - GOCONSERVER_RC=`service goconserver status >& /dev/null; echo $?` + GOCONSERVER_RC=`systemctl is-active goconserver >& /dev/null; echo $?` if [[ ${GOCONSERVER_RC} == 0 ]]; then echo "Error: consoleservice is set to 'confluent' but goconserver is running. Stop goconserver, run makeconfluentcfg, and retry..." exit 1 diff --git a/xCAT-client/bin/xdsh b/xCAT-client/bin/xdsh index 666f51d97..e237f465e 100644 --- a/xCAT-client/bin/xdsh +++ b/xCAT-client/bin/xdsh @@ -260,8 +260,8 @@ sub parse_args_xdsh 'V|version' => \$options{'version'}, 'devicetype=s' => \$options{'devicetype'}, - 'nodestatus|nodestatus' => \$options{'nodestatus'}, - 'sudo|sudo' => \$options{'sudo'}, + 'nodestatus' => \$options{'nodestatus'}, + 'sudo' => \$options{'sudo'}, 'command-name|commandName=s' => \$options{'command-name'}, 'command-description|commandDescription=s' => \$options{'command-description'}, @@ -602,8 +602,8 @@ sub parse_args_xdcp 'R|recursive' => \$options{'recursive'}, 'T|trace' => \$options{'trace'}, 'V|version' => \$options{'version'}, - 'nodestatus|nodestatus' => \$options{'nodestatus'}, - 'sudo|sudo' => \$options{'sudo'}, + 'nodestatus' => \$options{'nodestatus'}, + 'sudo' => \$options{'sudo'}, 'X:s' => \$options{'ignore_env'} ) ) diff --git a/xCAT-genesis-builder/builddeb-genesis-base b/xCAT-genesis-builder/builddeb-genesis-base new file mode 100755 index 000000000..8a687a60a --- /dev/null +++ b/xCAT-genesis-builder/builddeb-genesis-base @@ -0,0 +1,166 @@ +#!/bin/bash +# Build xcat-genesis-base .deb package natively on Ubuntu. +# Must run as root on an Ubuntu system (22.04, 24.04, or 26.04). +# Parallel to buildrpm for EL targets. + +set -euo pipefail + +DIR=$(readlink -f "$(dirname "$0")") +BUILDARCH=$(dpkg --print-architecture) +TRIPLET=$(dpkg-architecture -qDEB_HOST_MULTIARCH) + +case "$BUILDARCH" in + amd64) TARCH=x86_64 ;; + ppc64el) TARCH=ppc64 ;; + *) echo "ERROR: unsupported architecture: $BUILDARCH" >&2; exit 1 ;; +esac + +VERSION=$(cat "$DIR/../Version" 2>/dev/null || echo "2.18.0") +RELEASE=$(cat "$DIR/../Release" 2>/dev/null || echo "snap$(date +%Y%m%d%H%M)") +CODENAME=$(. /etc/os-release && echo "$VERSION_CODENAME") + +echo "Building xcat-genesis-base for $BUILDARCH ($TARCH) on Ubuntu $CODENAME" + +export DEBIAN_FRONTEND=noninteractive + +REQUIRED_PACKAGES=" + dracut linux-image-generic + ipmitool lldpad ethtool iproute2 kexec-tools screen + openssh-server openssh-client rsyslog chrony + nfs-common rpcbind pciutils usbutils parted + dosfstools e2fsprogs lvm2 mdadm net-tools + bc psmisc rsync wget cpio + dpkg-dev debhelper fakeroot devscripts vim-tiny +" +if [ "$BUILDARCH" = "amd64" ]; then + REQUIRED_PACKAGES="$REQUIRED_PACKAGES dmidecode efibootmgr" +fi + +echo "Installing build dependencies..." +apt-get update -qq +apt-get install -y --no-install-recommends $REQUIRED_PACKAGES + +# Set up dracut module +if [ -d /usr/lib/dracut/modules.d ]; then + DRACUT_PARENT=/usr/lib/dracut/modules.d +elif [ -d /usr/share/dracut/modules.d ]; then + DRACUT_PARENT=/usr/share/dracut/modules.d +else + echo "ERROR: cannot find dracut modules directory" >&2 + exit 1 +fi + +DRACUTMODDIR=$DRACUT_PARENT/97xcat + +GENESIS_TMPDIR=$(mktemp -d /tmp/xcat-genesis-deb.XXXXXX) +GENESIS_ROOT=$GENESIS_TMPDIR/opt/xcat/share/xcat/netboot/genesis/$TARCH +GENESIS_FS=$GENESIS_ROOT/fs +DRACUT_IMAGE=$GENESIS_TMPDIR/genesis.rfs + +cleanup() { + rm -rf "$GENESIS_TMPDIR" "$DRACUTMODDIR" +} +trap cleanup EXIT + +rm -rf "$DRACUTMODDIR" +mkdir -p "$DRACUTMODDIR" +cp -a "$DIR/dracut_105/ubuntu/." "$DRACUTMODDIR/" +chmod 0755 "$DRACUTMODDIR/module-setup.sh" "$DRACUTMODDIR/xcatroot" "$DRACUTMODDIR/dhclient-script" + +if [ "$BUILDARCH" != "amd64" ]; then + sed -i '/efibootmgr dmidecode/d' "$DRACUTMODDIR/module-setup.sh" +fi + +KERNELVERSION=$(ls -1 /lib/modules | sort -V | tail -n 1) +if [ -z "$KERNELVERSION" ]; then + echo "ERROR: no kernel modules found in /lib/modules" >&2 + exit 1 +fi + +echo "Using kernel $KERNELVERSION" + +mkdir -p "$GENESIS_FS/etc/ssh" +mkdir -p /run/rpcbind + +echo "Running dracut..." +dracut --compress gzip -m "xcat base" --no-early-microcode -N -f "$DRACUT_IMAGE" "$KERNELVERSION" + +echo "Extracting initramfs..." +(cd "$GENESIS_FS" && zcat "$DRACUT_IMAGE" | cpio -dumi) + +for script in \ + "$GENESIS_FS/sbin/dhclient-script" \ + "$GENESIS_FS/usr/sbin/dhclient-script" \ + "$GENESIS_FS/sbin/xcatroot" +do + [ -f "$script" ] && chmod 0755 "$script" +done + +for perl_dir in \ + /usr/share/perl5 \ + "/usr/lib/$TRIPLET/perl5" \ + /usr/local/share/perl5 \ + "/usr/local/lib/$TRIPLET/perl5" +do + if [ -d "$perl_dir" ]; then + echo "Adding perl library $perl_dir" + mkdir -p "$GENESIS_FS$perl_dir" + cp -a "$perl_dir/." "$GENESIS_FS$perl_dir/" + fi +done + +mkdir -p "$GENESIS_FS/lib/udev/rules.d" +if [ -e /usr/lib/udev/rules.d/80-net-name-slot.rules ]; then + cp /usr/lib/udev/rules.d/80-net-name-slot.rules "$GENESIS_FS/lib/udev/rules.d/" +elif [ -e /lib/udev/rules.d/80-net-name-slot.rules ]; then + cp /lib/udev/rules.d/80-net-name-slot.rules "$GENESIS_FS/lib/udev/rules.d/" +elif [ -e "$DIR/80-net-name-slot.rules" ]; then + cp "$DIR/80-net-name-slot.rules" "$GENESIS_FS/lib/udev/rules.d/" +fi + +KERNEL_IMAGE=/boot/vmlinuz-$KERNELVERSION +if [ ! -e "$KERNEL_IMAGE" ]; then + for candidate in \ + "/boot/vmlinux-$KERNELVERSION" \ + "/usr/lib/modules/$KERNELVERSION/vmlinuz" \ + "/lib/modules/$KERNELVERSION/vmlinuz" \ + "$(find /usr/lib/modules/"$KERNELVERSION" -maxdepth 2 -name 'vmlinuz*' -o -name 'vmlinux*' 2>/dev/null | head -n 1)" \ + "$(find /lib/modules/"$KERNELVERSION" -maxdepth 2 -name 'vmlinuz*' -o -name 'vmlinux*' 2>/dev/null | head -n 1)" \ + "$(ls -1 /boot/vmlinuz-* /boot/vmlinux-* 2>/dev/null | sort -V | tail -n 1)" + do + if [ -n "$candidate" ] && [ -e "$candidate" ]; then + KERNEL_IMAGE="$candidate" + break + fi + done +fi +if [ ! -e "$KERNEL_IMAGE" ]; then + echo "ERROR: cannot find kernel image" >&2 + exit 1 +fi +echo "Adding kernel $KERNEL_IMAGE" +cp "$KERNEL_IMAGE" "$GENESIS_ROOT/kernel" + +find "$GENESIS_TMPDIR" -type c -delete + +# Stage for dpkg-buildpackage +rm -rf "$DIR/opt" +cp -a "$GENESIS_TMPDIR/opt" "$DIR/" + +# Adjust control file for target arch +sed -i "s/xcat-genesis-base-amd64/xcat-genesis-base-$BUILDARCH/g" "$DIR/debian/control" +sed -i "s/xcat-genesis-scripts-amd64/xcat-genesis-scripts-$BUILDARCH/g" "$DIR/debian/control" + +PKG_VERSION="${VERSION}-${RELEASE}~${CODENAME}" +rm -f "$DIR/debian/changelog" +dch --create --package "xcat-genesis-base-$BUILDARCH" \ + --newversion "$PKG_VERSION" --distribution "$CODENAME" \ + --controlmaint -c "$DIR/debian/changelog" \ + "Native Ubuntu build on $CODENAME $BUILDARCH" + +echo "Building .deb package..." +cd "$DIR" +dpkg-buildpackage -rfakeroot -uc -us -b + +echo "Build complete. .deb files:" +ls -la "$DIR/../"xcat-genesis-base*.deb 2>/dev/null || echo "Check parent directory for .deb files" diff --git a/xCAT-genesis-builder/debian/compat b/xCAT-genesis-builder/debian/compat deleted file mode 100644 index ec635144f..000000000 --- a/xCAT-genesis-builder/debian/compat +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/xCAT-genesis-builder/debian/control b/xCAT-genesis-builder/debian/control index ebb738dcf..c958f162c 100644 --- a/xCAT-genesis-builder/debian/control +++ b/xCAT-genesis-builder/debian/control @@ -1,16 +1,18 @@ Source: xcat-genesis-base-amd64 Section: admin -Priority: extra +Priority: optional Maintainer: xCAT -Build-Depends: debhelper (>= 9) -Standards-Version: 3.9.4 +Build-Depends: debhelper-compat (= 13) +Standards-Version: 4.6.0 Package: xcat-genesis-base-amd64 Architecture: all -Depends: +Depends: ${misc:Depends} Replaces: xcat-genesis-amd64 -Breaks: xcat-genesis-amd64 +Breaks: xcat-genesis-amd64, xcat-genesis-scripts-amd64 (<< 2.13.10) Description: xCAT Genesis netboot image xCAT genesis (Genesis Enhanced Netboot Environment for System Information and Servicing) is a small, embedded-like environment for xCAT's use in discovery and management actions when interaction with an OS is infeasible. + This package comprises the base platform with most of the xCAT specific + behavior left to the xcat-genesis-scripts package. diff --git a/xCAT-genesis-builder/debian/preinst b/xCAT-genesis-builder/debian/preinst index 56a8ac27e..45c333f35 100644 --- a/xCAT-genesis-builder/debian/preinst +++ b/xCAT-genesis-builder/debian/preinst @@ -1,21 +1,13 @@ -#!/bin/sh -# preinst script for xcat-genesis-base -# -# see: dh_installdeb(1) - +#!/bin/bash set -e -# summary of how this script can be called: -# * `install' -# * `install' -# * `upgrade' -# * `abort-upgrade' -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - - case "$1" in install|upgrade) + TARCH=$(uname -m) + GENESIS_FS="/opt/xcat/share/xcat/netboot/genesis/$TARCH/fs" + for d in bin sbin lib lib64 var/run; do + [ -d "$GENESIS_FS/$d" ] && rm -rf "$GENESIS_FS/$d" + done ;; abort-upgrade) @@ -27,9 +19,6 @@ case "$1" in ;; esac -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - #DEBHELPER# exit 0 diff --git a/xCAT-genesis-builder/debian/rules b/xCAT-genesis-builder/debian/rules index 650dfad88..c5dec8096 100755 --- a/xCAT-genesis-builder/debian/rules +++ b/xCAT-genesis-builder/debian/rules @@ -1,39 +1,13 @@ #!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 +%: + dh $@ -build: - pwd +override_dh_auto_build: + @true -clean: - dh_testdir - dh_testroot - dh_clean -d +override_dh_auto_test: + @true -install: - pwd - dh_testdir - dh_testroot - dh_installdirs - dh_install - dh_compress - dh_installdeb - dh_gencontrol - dh_md5sums - dh_builddeb - -# Build architecture-independent files here. -binary-indep: build install - -binary-arch: - pwd - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure +override_dh_auto_install: + @true diff --git a/xCAT-genesis-builder/debian/source/format b/xCAT-genesis-builder/debian/source/format index d3827e75a..89ae9db8f 100644 --- a/xCAT-genesis-builder/debian/source/format +++ b/xCAT-genesis-builder/debian/source/format @@ -1 +1 @@ -1.0 +3.0 (native) diff --git a/xCAT-genesis-builder/debuild-xcat-genesis-base b/xCAT-genesis-builder/debuild-xcat-genesis-base index 7ec4109d0..39ed5d4e8 100755 --- a/xCAT-genesis-builder/debuild-xcat-genesis-base +++ b/xCAT-genesis-builder/debuild-xcat-genesis-base @@ -1,7 +1,8 @@ #!/bin/bash # -# This is a dirty script for convert an xCAT-genesis-base rpm package to -# a debian package. +# DEPRECATED: Use builddeb-genesis-base for native Ubuntu builds. +# This script converts an EL-built RPM to .deb via alien. +# Kept for backward compatibility only. # # xCAT-genesis-base-x86_64-2.13.10-snap201801090246.noarch.rpm diff --git a/xCAT-genesis-builder/dracut_105/README b/xCAT-genesis-builder/dracut_105/README index 24d5433e7..5971eee60 100644 --- a/xCAT-genesis-builder/dracut_105/README +++ b/xCAT-genesis-builder/dracut_105/README @@ -1,9 +1,19 @@ -Dracut modules for EL10 +Dracut modules for xCAT Genesis +Subdirectories: -Notes: +* `el/` — EL (RHEL/Rocky/Alma) dracut module +* `ubuntu/` — Ubuntu dracut module (adapted library paths, dpkg instead of rpm) -* For now `ubuntu` is just a symlink to EL module, we - may or may not need to diverge later. -* These files were copied from ../ so we can adapt they - without breaking old behavior +Both modules share the same xcat-cmdline.sh, dhclient.conf, dhclient-script, +rsyslog.conf, and xcatroot files (copied, not symlinked, to avoid issues +when cp -a copies the module into the dracut modules directory). + +Key differences in ubuntu/module-setup.sh vs el/module-setup.sh: +* Uses dpkg instead of rpm +* Uses /etc/os-release instead of /etc/redhat-release +* rsyslog modules from /usr/lib//rsyslog/ instead of /lib64/rsyslog/ +* libnss_dns from /lib// instead of /lib64/ +* udev rules from /usr/lib/udev/rules.d/ instead of /lib/udev/rules.d/ +* mkfs.btrfs instead of mkfs.xfs +* chrony config checked at both /etc/chrony.conf and /etc/chrony/chrony.conf diff --git a/xCAT-genesis-builder/dracut_105/el/module-setup.sh b/xCAT-genesis-builder/dracut_105/el/module-setup.sh index 81f2c052e..e2bb98250 100755 --- a/xCAT-genesis-builder/dracut_105/el/module-setup.sh +++ b/xCAT-genesis-builder/dracut_105/el/module-setup.sh @@ -44,7 +44,7 @@ install() { dracut_install netstat # broadcom update requires dracut_install uniq # mellanox update requires dracut_install grep ip hostname /usr/bin/awk egrep grep dirname expr - dracut_install mount.nfs sshd vi reboot lspci parted screen mkfs mkfs.ext4 mkfs.xfs xfs_db + dracut_install mount.nfs sshd vi reboot lspci parted tmux mkfs mkfs.ext4 mkfs.xfs xfs_db #dracut_install libvirtd /usr/share/libvirt/cpu_map.xml /usr/bin/qemu-img /usr/libexec/qemu-kvm dracut_install mkswap df ifenslave ssh-keygen scp clear dracut_install dhclient lldpad diff --git a/xCAT-genesis-builder/dracut_105/el/xcat-cmdline.sh b/xCAT-genesis-builder/dracut_105/el/xcat-cmdline.sh index c479f9e91..cfe13783d 100755 --- a/xCAT-genesis-builder/dracut_105/el/xcat-cmdline.sh +++ b/xCAT-genesis-builder/dracut_105/el/xcat-cmdline.sh @@ -40,9 +40,9 @@ mkdir -p /var/log ip link set lo up echo '127.0.0.1 localhost' >> /etc/hosts if grep -q console=ttyS /proc/cmdline; then - while :; do sleep 1; screen -S console -ln screen -x doxcat /dev/tty1; clear &>/dev/tty1 ; done & + while :; do sleep 1; tmux attach-session -t doxcat /dev/tty1; clear &>/dev/tty1 ; done & fi -while :; do screen -ln < /dev/tty2 &> /dev/tty2 ; done & +while :; do tmux new-session < /dev/tty2 &> /dev/tty2 ; done & # The section below is just for System P LE hardware discovery @@ -87,4 +87,4 @@ elif [[ ${ARCH} =~ x86_64 ]]; then done fi -while :; do screen -dr doxcat || screen -S doxcat -L -ln doxcat; done +while :; do tmux attach-session -t doxcat || tmux new-session -s doxcat doxcat; done diff --git a/xCAT-genesis-builder/dracut_105/ubuntu b/xCAT-genesis-builder/dracut_105/ubuntu deleted file mode 120000 index 234126bdd..000000000 --- a/xCAT-genesis-builder/dracut_105/ubuntu +++ /dev/null @@ -1 +0,0 @@ -el \ No newline at end of file diff --git a/xCAT-genesis-builder/dracut_105/ubuntu/dhclient-script b/xCAT-genesis-builder/dracut_105/ubuntu/dhclient-script new file mode 100755 index 000000000..a1987fc1c --- /dev/null +++ b/xCAT-genesis-builder/dracut_105/ubuntu/dhclient-script @@ -0,0 +1,60 @@ +#!/bin/sh +PATH=/bin:/sbin:/usr/bin:/usr/sbin +if [ $reason = "PREINIT" -o $reason = "PREINIT6" ]; then + ip link set $interface up + tries=50 + while ! (ip link show $interface|grep LOWER_UP > /dev/null 2>&1); do + sleep 0.1 + if [ $tries = 0 ]; then + break + fi + tries=$((tries-1)) + done +elif [ $reason = "BOUND" ]; then + if [ ! -z "$old_ip_address" ]; then + ip addr del dev $interface $old_ip_address/$old_subnet_mask + fi + for oldip in `ip -o addr show dev $interface|awk '{print $4}'`; do + ip addr del dev $interface $oldip + done + if [ ! -z "$new_ip_address" -a ! -z "$new_subnet_mask" ]; then + ip addr add dev $interface $new_ip_address/$new_subnet_mask + fi + if [ ! -z "$new_host_name" ]; then + hostname $new_host_name + lldptool -T -i $interface -V 5 enableTx=yes >& /dev/null + fi + if [ ! -z "$new_domain_name" ]; then + echo search $new_domain_name >> /etc/resolv.conf + fi + for ns in $new_domain_name_servers; do + echo nameserver $ns >> /etc/resolv.conf + done + for ntp in $new_ntp_servers; do + echo server $ntp iburst >> /etc/ntp.conf + done + for gw in $new_routers; do + ip route add default via $gw + done + + if [ ! -z "$new_tcode" -a -r "/usr/share/zoneinfo/posix/$new_tcode" ]; then + cp "/usr/share/zoneinfo/posix/$new_tcode" /etc/localtime + rm -rf /usr/share/zoneinfo #free up ramdisk + fi +elif [ $reason = "BOUND6" ]; then + if [ ! -z "$old_ip6_address" ]; then + ip addr del dev $interface $old_ip6_address/$old_ip6_prefixlen + fi + if [ ! -z "$new_ip6_address" ]; then + ip addr add dev $interface $new_ip6_address/$new_ip6_prefixlen + fi +elif [ $reason = "RELEASE" ]; then + if [ ! -z "$old_ip_address" ]; then + ip addr del dev $interface $old_ip_address/$old_subnet_mask + fi +elif [ $reason = "RELEASE6" ]; then + if [ ! -z "$old_ip6_address" ]; then + ip addr del dev $interface $old_ip6_address/$old_ip6_prefixlen + fi +fi +exit 0 diff --git a/xCAT-genesis-builder/dracut_105/ubuntu/dhclient.conf b/xCAT-genesis-builder/dracut_105/ubuntu/dhclient.conf new file mode 100644 index 000000000..53e8b1a74 --- /dev/null +++ b/xCAT-genesis-builder/dracut_105/ubuntu/dhclient.conf @@ -0,0 +1,2 @@ +option tcode code 101 = text; +request subnet-mask, routers, domain-name, domain-search, domain-name-servers, host-name, ntp-servers, interface-mtu, tcode, log-servers; diff --git a/xCAT-genesis-builder/dracut_105/ubuntu/module-setup.sh b/xCAT-genesis-builder/dracut_105/ubuntu/module-setup.sh new file mode 100755 index 000000000..e4b8b0e3d --- /dev/null +++ b/xCAT-genesis-builder/dracut_105/ubuntu/module-setup.sh @@ -0,0 +1,670 @@ +#!/bin/bash + +check() { + return 0; +} + +depends() { + echo "" +} + +installkernel() { + local modules_dep modfile modname + + if [[ -n "${kernel:-}" && -r "/lib/modules/$kernel/modules.dep" ]]; then + modules_dep="/lib/modules/$kernel/modules.dep" + elif [[ -n "${KERNELVERSION:-}" && -r "/lib/modules/$KERNELVERSION/modules.dep" ]]; then + modules_dep="/lib/modules/$KERNELVERSION/modules.dep" + else + modules_dep=$(ls -1 /lib/modules/*/modules.dep 2>/dev/null | head -n 1) + fi + + [[ -r "$modules_dep" ]] || return 0 + + while IFS= read -r modfile; do + modfile=${modfile%%:*} + modname=${modfile##*/} + modname=${modname%.ko*} + instmods "$modname" + done < "$modules_dep" +} + +_dracut_install_opt() { + local src="$1" + local dst=$2; + if [[ -z "$dst" ]]; then + test -e "$src" && dracut_install "$src" + else + test -e "$src" && dracut_install "$src" "$dst" + fi +} + +install() { + # Ubuntu multiarch triplet for architecture-specific library paths + local TRIPLET + TRIPLET=$(dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null || echo x86_64-linux-gnu) + + dracut_install wget openssl tar ipmitool cpio gzip lsmod ethtool modprobe touch echo cut wc bash + _dracut_install_opt mstflint + dracut_install netstat # broadcom update requires + dracut_install uniq # mellanox update requires + dracut_install grep ip hostname /usr/bin/awk egrep grep dirname expr + dracut_install mount.nfs sshd vi reboot lspci parted screen mkfs mkfs.ext4 mkfs.btrfs + #dracut_install libvirtd /usr/share/libvirt/cpu_map.xml /usr/bin/qemu-img /usr/libexec/qemu-kvm + dracut_install mkswap df ifenslave ssh-keygen scp clear + dracut_install dhclient lldpad + _dracut_install_opt "/lib/$TRIPLET/libnss_dns.so.2" + dracut_install poweroff hwclock date /usr/share/terminfo/x/xterm /usr/share/terminfo/s/screen /etc/nsswitch.conf /etc/services + dracut_install /usr/sbin/rsyslogd /etc/protocols umount /usr/bin/dpkg + #dracut_install chmod /sbin/route /sbin/ifconfig /usr/bin/whoami /usr/bin/head /usr/bin/tail basename /etc/redhat-release ping tr lsusb /usr/share/hwdata/usb.ids #ibm fw wrapper requirements + dracut_install chmod ip /usr/bin/whoami /usr/bin/head /usr/bin/tail basename ping tr lsusb /usr/share/hwdata/usb.ids + _dracut_install_opt /etc/os-release + _dracut_install_opt /etc/lsb-release + _dracut_install_opt efibootmgr + _dracut_install_opt dmidecode + dracut_install lldptool + dracut_install /usr/share/zoneinfo/Zulu + dracut_install /usr/share/zoneinfo/GMT-0 + dracut_install /usr/share/zoneinfo/Europe/Istanbul + dracut_install /usr/share/zoneinfo/Europe/San_Marino + dracut_install /usr/share/zoneinfo/Europe/Jersey + dracut_install /usr/share/zoneinfo/Europe/Bucharest + dracut_install /usr/share/zoneinfo/Europe/Gibraltar + dracut_install /usr/share/zoneinfo/Europe/Uzhgorod + dracut_install /usr/share/zoneinfo/Europe/Moscow + dracut_install /usr/share/zoneinfo/Europe/Brussels + dracut_install /usr/share/zoneinfo/Europe/Nicosia + dracut_install /usr/share/zoneinfo/Europe/Zurich + dracut_install /usr/share/zoneinfo/Europe/Berlin + dracut_install /usr/share/zoneinfo/Europe/Guernsey + dracut_install /usr/share/zoneinfo/Europe/Budapest + dracut_install /usr/share/zoneinfo/Europe/Kiev + dracut_install /usr/share/zoneinfo/Europe/Podgorica + dracut_install /usr/share/zoneinfo/Europe/Isle_of_Man + dracut_install /usr/share/zoneinfo/Europe/Mariehamn + dracut_install /usr/share/zoneinfo/Europe/Belgrade + dracut_install /usr/share/zoneinfo/Europe/Belfast + dracut_install /usr/share/zoneinfo/Europe/Ljubljana + dracut_install /usr/share/zoneinfo/Europe/Chisinau + dracut_install /usr/share/zoneinfo/Europe/Andorra + dracut_install /usr/share/zoneinfo/Europe/Athens + dracut_install /usr/share/zoneinfo/Europe/Stockholm + dracut_install /usr/share/zoneinfo/Europe/Vienna + dracut_install /usr/share/zoneinfo/Europe/Lisbon + dracut_install /usr/share/zoneinfo/Europe/London + dracut_install /usr/share/zoneinfo/Europe/Paris + dracut_install /usr/share/zoneinfo/Europe/Oslo + dracut_install /usr/share/zoneinfo/Europe/Zagreb + dracut_install /usr/share/zoneinfo/Europe/Helsinki + dracut_install /usr/share/zoneinfo/Europe/Warsaw + dracut_install /usr/share/zoneinfo/Europe/Copenhagen + dracut_install /usr/share/zoneinfo/Europe/Riga + dracut_install /usr/share/zoneinfo/Europe/Vaduz + dracut_install /usr/share/zoneinfo/Europe/Vilnius + dracut_install /usr/share/zoneinfo/Europe/Volgograd + dracut_install /usr/share/zoneinfo/Europe/Amsterdam + dracut_install /usr/share/zoneinfo/Europe/Tiraspol + dracut_install /usr/share/zoneinfo/Europe/Tallinn + dracut_install /usr/share/zoneinfo/Europe/Kaliningrad + dracut_install /usr/share/zoneinfo/Europe/Malta + dracut_install /usr/share/zoneinfo/Europe/Sarajevo + dracut_install /usr/share/zoneinfo/Europe/Madrid + dracut_install /usr/share/zoneinfo/Europe/Zaporozhye + dracut_install /usr/share/zoneinfo/Europe/Simferopol + dracut_install /usr/share/zoneinfo/Europe/Sofia + dracut_install /usr/share/zoneinfo/Europe/Skopje + dracut_install /usr/share/zoneinfo/Europe/Monaco + dracut_install /usr/share/zoneinfo/Europe/Rome + dracut_install /usr/share/zoneinfo/Europe/Prague + dracut_install /usr/share/zoneinfo/Europe/Luxembourg + dracut_install /usr/share/zoneinfo/Europe/Minsk + dracut_install /usr/share/zoneinfo/Europe/Vatican + dracut_install /usr/share/zoneinfo/Europe/Dublin + dracut_install /usr/share/zoneinfo/Europe/Samara + dracut_install /usr/share/zoneinfo/Europe/Tirane + dracut_install /usr/share/zoneinfo/Europe/Bratislava + dracut_install /usr/share/zoneinfo/Greenwich + dracut_install /usr/share/zoneinfo/US/Indiana-Starke + dracut_install /usr/share/zoneinfo/US/Alaska + dracut_install /usr/share/zoneinfo/US/Michigan + dracut_install /usr/share/zoneinfo/US/Aleutian + dracut_install /usr/share/zoneinfo/US/Hawaii + dracut_install /usr/share/zoneinfo/US/Central + dracut_install /usr/share/zoneinfo/US/Eastern + dracut_install /usr/share/zoneinfo/US/Pacific + dracut_install /usr/share/zoneinfo/US/Samoa + dracut_install /usr/share/zoneinfo/US/Mountain + dracut_install /usr/share/zoneinfo/US/Arizona + dracut_install /usr/share/zoneinfo/US/East-Indiana + dracut_install /usr/share/zoneinfo/EST + dracut_install /usr/share/zoneinfo/HST + dracut_install /usr/share/zoneinfo/Eire + dracut_install /usr/share/zoneinfo/America/Cancun + dracut_install /usr/share/zoneinfo/America/Santo_Domingo + dracut_install /usr/share/zoneinfo/America/Jujuy + dracut_install /usr/share/zoneinfo/America/Guatemala + dracut_install /usr/share/zoneinfo/America/Monterrey + dracut_install /usr/share/zoneinfo/America/Ensenada + dracut_install /usr/share/zoneinfo/America/Dawson_Creek + dracut_install /usr/share/zoneinfo/America/Mendoza + dracut_install /usr/share/zoneinfo/America/Coral_Harbour + dracut_install /usr/share/zoneinfo/America/Martinique + dracut_install /usr/share/zoneinfo/America/Cordoba + dracut_install /usr/share/zoneinfo/America/Recife + dracut_install /usr/share/zoneinfo/America/Cayman + dracut_install /usr/share/zoneinfo/America/Shiprock + dracut_install /usr/share/zoneinfo/America/Tortola + dracut_install /usr/share/zoneinfo/America/Lima + dracut_install /usr/share/zoneinfo/America/Antigua + dracut_install /usr/share/zoneinfo/America/Blanc-Sablon + dracut_install /usr/share/zoneinfo/America/Nipigon + dracut_install /usr/share/zoneinfo/America/Nome + dracut_install /usr/share/zoneinfo/America/Montserrat + dracut_install /usr/share/zoneinfo/America/Atka + dracut_install /usr/share/zoneinfo/America/St_Thomas + dracut_install /usr/share/zoneinfo/America/Halifax + dracut_install /usr/share/zoneinfo/America/Montreal + dracut_install /usr/share/zoneinfo/America/Curacao + dracut_install /usr/share/zoneinfo/America/Cuiaba + dracut_install /usr/share/zoneinfo/America/Winnipeg + dracut_install /usr/share/zoneinfo/America/North_Dakota/New_Salem + dracut_install /usr/share/zoneinfo/America/North_Dakota/Center + dracut_install /usr/share/zoneinfo/America/Panama + dracut_install /usr/share/zoneinfo/America/Rosario + dracut_install /usr/share/zoneinfo/America/Anguilla + dracut_install /usr/share/zoneinfo/America/Ojinaga + dracut_install /usr/share/zoneinfo/America/Guyana + dracut_install /usr/share/zoneinfo/America/Eirunepe + dracut_install /usr/share/zoneinfo/America/Grand_Turk + dracut_install /usr/share/zoneinfo/America/Rio_Branco + dracut_install /usr/share/zoneinfo/America/Santa_Isabel + dracut_install /usr/share/zoneinfo/America/Scoresbysund + dracut_install /usr/share/zoneinfo/America/Adak + dracut_install /usr/share/zoneinfo/America/Menominee + dracut_install /usr/share/zoneinfo/America/Resolute + dracut_install /usr/share/zoneinfo/America/Guadeloupe + dracut_install /usr/share/zoneinfo/America/Indianapolis + dracut_install /usr/share/zoneinfo/America/Vancouver + dracut_install /usr/share/zoneinfo/America/Glace_Bay + dracut_install /usr/share/zoneinfo/America/Buenos_Aires + dracut_install /usr/share/zoneinfo/America/Virgin + dracut_install /usr/share/zoneinfo/America/Belem + dracut_install /usr/share/zoneinfo/America/Catamarca + dracut_install /usr/share/zoneinfo/America/Bahia + dracut_install /usr/share/zoneinfo/America/Fort_Wayne + dracut_install /usr/share/zoneinfo/America/Hermosillo + dracut_install /usr/share/zoneinfo/America/Rankin_Inlet + dracut_install /usr/share/zoneinfo/America/Mexico_City + dracut_install /usr/share/zoneinfo/America/Belize + dracut_install /usr/share/zoneinfo/America/Maceio + dracut_install /usr/share/zoneinfo/America/Dominica + dracut_install /usr/share/zoneinfo/America/Swift_Current + dracut_install /usr/share/zoneinfo/America/St_Johns + dracut_install /usr/share/zoneinfo/America/St_Barthelemy + dracut_install /usr/share/zoneinfo/America/Yellowknife + dracut_install /usr/share/zoneinfo/America/Costa_Rica + dracut_install /usr/share/zoneinfo/America/Pangnirtung + dracut_install /usr/share/zoneinfo/America/Bogota + dracut_install /usr/share/zoneinfo/America/Port-au-Prince + dracut_install /usr/share/zoneinfo/America/Phoenix + dracut_install /usr/share/zoneinfo/America/Port_of_Spain + dracut_install /usr/share/zoneinfo/America/Matamoros + dracut_install /usr/share/zoneinfo/America/Puerto_Rico + dracut_install /usr/share/zoneinfo/America/Detroit + dracut_install /usr/share/zoneinfo/America/Edmonton + dracut_install /usr/share/zoneinfo/America/Toronto + dracut_install /usr/share/zoneinfo/America/Cambridge_Bay + dracut_install /usr/share/zoneinfo/America/Godthab + dracut_install /usr/share/zoneinfo/America/Atikokan + dracut_install /usr/share/zoneinfo/America/Juneau + dracut_install /usr/share/zoneinfo/America/Managua + dracut_install /usr/share/zoneinfo/America/Anchorage + dracut_install /usr/share/zoneinfo/America/Merida + dracut_install /usr/share/zoneinfo/America/Thunder_Bay + dracut_install /usr/share/zoneinfo/America/Porto_Velho + dracut_install /usr/share/zoneinfo/America/Argentina/Jujuy + dracut_install /usr/share/zoneinfo/America/Argentina/La_Rioja + dracut_install /usr/share/zoneinfo/America/Argentina/Mendoza + dracut_install /usr/share/zoneinfo/America/Argentina/Cordoba + dracut_install /usr/share/zoneinfo/America/Argentina/Ushuaia + dracut_install /usr/share/zoneinfo/America/Argentina/Rio_Gallegos + dracut_install /usr/share/zoneinfo/America/Argentina/Buenos_Aires + dracut_install /usr/share/zoneinfo/America/Argentina/San_Juan + dracut_install /usr/share/zoneinfo/America/Argentina/Catamarca + dracut_install /usr/share/zoneinfo/America/Argentina/San_Luis + dracut_install /usr/share/zoneinfo/America/Argentina/ComodRivadavia + dracut_install /usr/share/zoneinfo/America/Argentina/Salta + dracut_install /usr/share/zoneinfo/America/Argentina/Tucuman + dracut_install /usr/share/zoneinfo/America/Iqaluit + dracut_install /usr/share/zoneinfo/America/Chicago + dracut_install /usr/share/zoneinfo/America/Miquelon + dracut_install /usr/share/zoneinfo/America/Havana + dracut_install /usr/share/zoneinfo/America/Guayaquil + dracut_install /usr/share/zoneinfo/America/St_Vincent + dracut_install /usr/share/zoneinfo/America/St_Lucia + dracut_install /usr/share/zoneinfo/America/Boise + dracut_install /usr/share/zoneinfo/America/Yakutat + dracut_install /usr/share/zoneinfo/America/Santarem + dracut_install /usr/share/zoneinfo/America/Campo_Grande + dracut_install /usr/share/zoneinfo/America/Santiago + dracut_install /usr/share/zoneinfo/America/Porto_Acre + dracut_install /usr/share/zoneinfo/America/Sao_Paulo + dracut_install /usr/share/zoneinfo/America/Thule + dracut_install /usr/share/zoneinfo/America/New_York + dracut_install /usr/share/zoneinfo/America/Nassau + dracut_install /usr/share/zoneinfo/America/Dawson + dracut_install /usr/share/zoneinfo/America/Louisville + dracut_install /usr/share/zoneinfo/America/Asuncion + dracut_install /usr/share/zoneinfo/America/Inuvik + dracut_install /usr/share/zoneinfo/America/Paramaribo + dracut_install /usr/share/zoneinfo/America/Chihuahua + dracut_install /usr/share/zoneinfo/America/Mazatlan + dracut_install /usr/share/zoneinfo/America/Grenada + dracut_install /usr/share/zoneinfo/America/Denver + dracut_install /usr/share/zoneinfo/America/Los_Angeles + dracut_install /usr/share/zoneinfo/America/Marigot + dracut_install /usr/share/zoneinfo/America/Manaus + dracut_install /usr/share/zoneinfo/America/Regina + dracut_install /usr/share/zoneinfo/America/Barbados + dracut_install /usr/share/zoneinfo/America/Noronha + dracut_install /usr/share/zoneinfo/America/Montevideo + dracut_install /usr/share/zoneinfo/America/Caracas + dracut_install /usr/share/zoneinfo/America/Rainy_River + dracut_install /usr/share/zoneinfo/America/La_Paz + dracut_install /usr/share/zoneinfo/America/Jamaica + dracut_install /usr/share/zoneinfo/America/Moncton + dracut_install /usr/share/zoneinfo/America/Whitehorse + dracut_install /usr/share/zoneinfo/America/Fortaleza + dracut_install /usr/share/zoneinfo/America/Kentucky/Monticello + dracut_install /usr/share/zoneinfo/America/Kentucky/Louisville + dracut_install /usr/share/zoneinfo/America/Indiana/Marengo + dracut_install /usr/share/zoneinfo/America/Indiana/Indianapolis + dracut_install /usr/share/zoneinfo/America/Indiana/Knox + dracut_install /usr/share/zoneinfo/America/Indiana/Tell_City + dracut_install /usr/share/zoneinfo/America/Indiana/Petersburg + dracut_install /usr/share/zoneinfo/America/Indiana/Winamac + dracut_install /usr/share/zoneinfo/America/Indiana/Vincennes + dracut_install /usr/share/zoneinfo/America/Indiana/Vevay + dracut_install /usr/share/zoneinfo/America/Danmarkshavn + dracut_install /usr/share/zoneinfo/America/St_Kitts + dracut_install /usr/share/zoneinfo/America/Aruba + dracut_install /usr/share/zoneinfo/America/Boa_Vista + dracut_install /usr/share/zoneinfo/America/Bahia_Banderas + dracut_install /usr/share/zoneinfo/America/Tegucigalpa + dracut_install /usr/share/zoneinfo/America/Araguaina + dracut_install /usr/share/zoneinfo/America/El_Salvador + dracut_install /usr/share/zoneinfo/America/Cayenne + dracut_install /usr/share/zoneinfo/America/Tijuana + dracut_install /usr/share/zoneinfo/America/Knox_IN + dracut_install /usr/share/zoneinfo/America/Goose_Bay + dracut_install /usr/share/zoneinfo/EET + dracut_install /usr/share/zoneinfo/EST5EDT + dracut_install /usr/share/zoneinfo/MST + dracut_install /usr/share/zoneinfo/Iceland + dracut_install /usr/share/zoneinfo/Atlantic/Faeroe + dracut_install /usr/share/zoneinfo/Atlantic/Stanley + dracut_install /usr/share/zoneinfo/Atlantic/Reykjavik + dracut_install /usr/share/zoneinfo/Atlantic/St_Helena + dracut_install /usr/share/zoneinfo/Atlantic/Faroe + dracut_install /usr/share/zoneinfo/Atlantic/South_Georgia + dracut_install /usr/share/zoneinfo/Atlantic/Jan_Mayen + dracut_install /usr/share/zoneinfo/Atlantic/Azores + dracut_install /usr/share/zoneinfo/Atlantic/Cape_Verde + dracut_install /usr/share/zoneinfo/Atlantic/Madeira + dracut_install /usr/share/zoneinfo/Atlantic/Bermuda + dracut_install /usr/share/zoneinfo/Atlantic/Canary + dracut_install /usr/share/zoneinfo/GMT0 + dracut_install /usr/share/zoneinfo/Poland + dracut_install /usr/share/zoneinfo/Indian/Chagos + dracut_install /usr/share/zoneinfo/Indian/Maldives + dracut_install /usr/share/zoneinfo/Indian/Comoro + dracut_install /usr/share/zoneinfo/Indian/Mauritius + dracut_install /usr/share/zoneinfo/Indian/Mayotte + dracut_install /usr/share/zoneinfo/Indian/Christmas + dracut_install /usr/share/zoneinfo/Indian/Antananarivo + dracut_install /usr/share/zoneinfo/Indian/Kerguelen + dracut_install /usr/share/zoneinfo/Indian/Mahe + dracut_install /usr/share/zoneinfo/Indian/Cocos + dracut_install /usr/share/zoneinfo/Indian/Reunion + dracut_install /usr/share/zoneinfo/Mexico/BajaNorte + dracut_install /usr/share/zoneinfo/Mexico/BajaSur + dracut_install /usr/share/zoneinfo/Mexico/General + dracut_install /usr/share/zoneinfo/Turkey + dracut_install /usr/share/zoneinfo/Egypt + dracut_install /usr/share/zoneinfo/Hongkong + dracut_install /usr/share/zoneinfo/GB + dracut_install /usr/share/zoneinfo/GMT+0 + dracut_install /usr/share/zoneinfo/ROK + dracut_install /usr/share/zoneinfo/Antarctica/Mawson + dracut_install /usr/share/zoneinfo/Antarctica/Macquarie + dracut_install /usr/share/zoneinfo/Antarctica/South_Pole + dracut_install /usr/share/zoneinfo/Antarctica/Rothera + dracut_install /usr/share/zoneinfo/Antarctica/Davis + dracut_install /usr/share/zoneinfo/Antarctica/DumontDUrville + dracut_install /usr/share/zoneinfo/Antarctica/McMurdo + dracut_install /usr/share/zoneinfo/Antarctica/Casey + dracut_install /usr/share/zoneinfo/Antarctica/Vostok + dracut_install /usr/share/zoneinfo/Antarctica/Palmer + dracut_install /usr/share/zoneinfo/Antarctica/Syowa + dracut_install /usr/share/zoneinfo/Universal + dracut_install /usr/share/zoneinfo/CET + dracut_install /usr/share/zoneinfo/WET + dracut_install /usr/share/zoneinfo/Navajo + dracut_install /usr/share/zoneinfo/UTC + dracut_install /usr/share/zoneinfo/Pacific/Enderbury + dracut_install /usr/share/zoneinfo/Pacific/Johnston + dracut_install /usr/share/zoneinfo/Pacific/Pago_Pago + dracut_install /usr/share/zoneinfo/Pacific/Saipan + dracut_install /usr/share/zoneinfo/Pacific/Norfolk + dracut_install /usr/share/zoneinfo/Pacific/Chuuk + dracut_install /usr/share/zoneinfo/Pacific/Galapagos + dracut_install /usr/share/zoneinfo/Pacific/Palau + dracut_install /usr/share/zoneinfo/Pacific/Tarawa + dracut_install /usr/share/zoneinfo/Pacific/Fakaofo + dracut_install /usr/share/zoneinfo/Pacific/Rarotonga + dracut_install /usr/share/zoneinfo/Pacific/Wake + dracut_install /usr/share/zoneinfo/Pacific/Kosrae + dracut_install /usr/share/zoneinfo/Pacific/Tahiti + dracut_install /usr/share/zoneinfo/Pacific/Fiji + dracut_install /usr/share/zoneinfo/Pacific/Ponape + dracut_install /usr/share/zoneinfo/Pacific/Tongatapu + dracut_install /usr/share/zoneinfo/Pacific/Efate + dracut_install /usr/share/zoneinfo/Pacific/Honolulu + dracut_install /usr/share/zoneinfo/Pacific/Niue + dracut_install /usr/share/zoneinfo/Pacific/Kwajalein + dracut_install /usr/share/zoneinfo/Pacific/Guam + dracut_install /usr/share/zoneinfo/Pacific/Funafuti + dracut_install /usr/share/zoneinfo/Pacific/Majuro + dracut_install /usr/share/zoneinfo/Pacific/Midway + dracut_install /usr/share/zoneinfo/Pacific/Nauru + dracut_install /usr/share/zoneinfo/Pacific/Samoa + dracut_install /usr/share/zoneinfo/Pacific/Marquesas + dracut_install /usr/share/zoneinfo/Pacific/Kiritimati + dracut_install /usr/share/zoneinfo/Pacific/Noumea + dracut_install /usr/share/zoneinfo/Pacific/Truk + dracut_install /usr/share/zoneinfo/Pacific/Guadalcanal + dracut_install /usr/share/zoneinfo/Pacific/Pohnpei + dracut_install /usr/share/zoneinfo/Pacific/Pitcairn + dracut_install /usr/share/zoneinfo/Pacific/Port_Moresby + dracut_install /usr/share/zoneinfo/Pacific/Yap + dracut_install /usr/share/zoneinfo/Pacific/Easter + dracut_install /usr/share/zoneinfo/Pacific/Wallis + dracut_install /usr/share/zoneinfo/Pacific/Apia + dracut_install /usr/share/zoneinfo/Pacific/Auckland + dracut_install /usr/share/zoneinfo/Pacific/Gambier + dracut_install /usr/share/zoneinfo/Pacific/Chatham + dracut_install /usr/share/zoneinfo/Japan + dracut_install /usr/share/zoneinfo/Libya + dracut_install /usr/share/zoneinfo/ROC + dracut_install /usr/share/zoneinfo/Iran + dracut_install /usr/share/zoneinfo/Brazil/West + dracut_install /usr/share/zoneinfo/Brazil/East + dracut_install /usr/share/zoneinfo/Brazil/Acre + dracut_install /usr/share/zoneinfo/Brazil/DeNoronha + dracut_install /usr/share/zoneinfo/Arctic/Longyearbyen + dracut_install /usr/share/zoneinfo/Portugal + dracut_install /usr/share/zoneinfo/MET + dracut_install /usr/share/zoneinfo/W-SU + dracut_install /usr/share/zoneinfo/Kwajalein + dracut_install /usr/share/zoneinfo/CST6CDT + dracut_install /usr/share/zoneinfo/GB-Eire + dracut_install /usr/share/zoneinfo/Australia/Melbourne + dracut_install /usr/share/zoneinfo/Australia/Broken_Hill + dracut_install /usr/share/zoneinfo/Australia/Queensland + dracut_install /usr/share/zoneinfo/Australia/South + dracut_install /usr/share/zoneinfo/Australia/Eucla + dracut_install /usr/share/zoneinfo/Australia/Yancowinna + dracut_install /usr/share/zoneinfo/Australia/Lord_Howe + dracut_install /usr/share/zoneinfo/Australia/Hobart + dracut_install /usr/share/zoneinfo/Australia/NSW + dracut_install /usr/share/zoneinfo/Australia/West + dracut_install /usr/share/zoneinfo/Australia/LHI + dracut_install /usr/share/zoneinfo/Australia/Perth + dracut_install /usr/share/zoneinfo/Australia/ACT + dracut_install /usr/share/zoneinfo/Australia/Darwin + dracut_install /usr/share/zoneinfo/Australia/Lindeman + dracut_install /usr/share/zoneinfo/Australia/Sydney + dracut_install /usr/share/zoneinfo/Australia/North + dracut_install /usr/share/zoneinfo/Australia/Canberra + dracut_install /usr/share/zoneinfo/Australia/Adelaide + dracut_install /usr/share/zoneinfo/Australia/Brisbane + dracut_install /usr/share/zoneinfo/Australia/Victoria + dracut_install /usr/share/zoneinfo/Australia/Tasmania + dracut_install /usr/share/zoneinfo/Australia/Currie + dracut_install /usr/share/zoneinfo/UCT + dracut_install /usr/share/zoneinfo/Cuba + dracut_install /usr/share/zoneinfo/Singapore + dracut_install /usr/share/zoneinfo/GMT + dracut_install /usr/share/zoneinfo/NZ-CHAT + dracut_install /usr/share/zoneinfo/Asia/Istanbul + dracut_install /usr/share/zoneinfo/Asia/Kuwait + dracut_install /usr/share/zoneinfo/Asia/Saigon + dracut_install /usr/share/zoneinfo/Asia/Urumqi + dracut_install /usr/share/zoneinfo/Asia/Brunei + dracut_install /usr/share/zoneinfo/Asia/Ujung_Pandang + dracut_install /usr/share/zoneinfo/Asia/Muscat + dracut_install /usr/share/zoneinfo/Asia/Kashgar + dracut_install /usr/share/zoneinfo/Asia/Kamchatka + dracut_install /usr/share/zoneinfo/Asia/Manila + dracut_install /usr/share/zoneinfo/Asia/Vladivostok + dracut_install /usr/share/zoneinfo/Asia/Jayapura + dracut_install /usr/share/zoneinfo/Asia/Magadan + dracut_install /usr/share/zoneinfo/Asia/Almaty + dracut_install /usr/share/zoneinfo/Asia/Qyzylorda + dracut_install /usr/share/zoneinfo/Asia/Anadyr + dracut_install /usr/share/zoneinfo/Asia/Nicosia + dracut_install /usr/share/zoneinfo/Asia/Kathmandu + dracut_install /usr/share/zoneinfo/Asia/Qatar + dracut_install /usr/share/zoneinfo/Asia/Jerusalem + dracut_install /usr/share/zoneinfo/Asia/Yakutsk + dracut_install /usr/share/zoneinfo/Asia/Karachi + dracut_install /usr/share/zoneinfo/Asia/Samarkand + dracut_install /usr/share/zoneinfo/Asia/Kolkata + dracut_install /usr/share/zoneinfo/Asia/Ulaanbaatar + dracut_install /usr/share/zoneinfo/Asia/Irkutsk + dracut_install /usr/share/zoneinfo/Asia/Baku + dracut_install /usr/share/zoneinfo/Asia/Gaza + dracut_install /usr/share/zoneinfo/Asia/Seoul + dracut_install /usr/share/zoneinfo/Asia/Chungking + dracut_install /usr/share/zoneinfo/Asia/Amman + dracut_install /usr/share/zoneinfo/Asia/Kuala_Lumpur + dracut_install /usr/share/zoneinfo/Asia/Aqtobe + dracut_install /usr/share/zoneinfo/Asia/Katmandu + dracut_install /usr/share/zoneinfo/Asia/Tashkent + dracut_install /usr/share/zoneinfo/Asia/Oral + dracut_install /usr/share/zoneinfo/Asia/Dhaka + dracut_install /usr/share/zoneinfo/Asia/Hovd + dracut_install /usr/share/zoneinfo/Asia/Makassar + dracut_install /usr/share/zoneinfo/Asia/Bangkok + dracut_install /usr/share/zoneinfo/Asia/Tokyo + dracut_install /usr/share/zoneinfo/Asia/Macao + dracut_install /usr/share/zoneinfo/Asia/Riyadh + dracut_install /usr/share/zoneinfo/Asia/Rangoon + dracut_install /usr/share/zoneinfo/Asia/Jakarta + dracut_install /usr/share/zoneinfo/Asia/Aden + dracut_install /usr/share/zoneinfo/Asia/Calcutta + dracut_install /usr/share/zoneinfo/Asia/Ashkhabad + dracut_install /usr/share/zoneinfo/Asia/Beirut + dracut_install /usr/share/zoneinfo/Asia/Harbin + dracut_install /usr/share/zoneinfo/Asia/Novosibirsk + dracut_install /usr/share/zoneinfo/Asia/Omsk + dracut_install /usr/share/zoneinfo/Asia/Aqtau + dracut_install /usr/share/zoneinfo/Asia/Bahrain + dracut_install /usr/share/zoneinfo/Asia/Dili + dracut_install /usr/share/zoneinfo/Asia/Pontianak + dracut_install /usr/share/zoneinfo/Asia/Singapore + dracut_install /usr/share/zoneinfo/Asia/Baghdad + dracut_install /usr/share/zoneinfo/Asia/Novokuznetsk + dracut_install /usr/share/zoneinfo/Asia/Dubai + dracut_install /usr/share/zoneinfo/Asia/Dushanbe + dracut_install /usr/share/zoneinfo/Asia/Damascus + dracut_install /usr/share/zoneinfo/Asia/Krasnoyarsk + dracut_install /usr/share/zoneinfo/Asia/Tbilisi + dracut_install /usr/share/zoneinfo/Asia/Yerevan + dracut_install /usr/share/zoneinfo/Asia/Pyongyang + dracut_install /usr/share/zoneinfo/Asia/Bishkek + dracut_install /usr/share/zoneinfo/Asia/Colombo + dracut_install /usr/share/zoneinfo/Asia/Yekaterinburg + dracut_install /usr/share/zoneinfo/Asia/Chongqing + dracut_install /usr/share/zoneinfo/Asia/Ho_Chi_Minh + dracut_install /usr/share/zoneinfo/Asia/Hong_Kong + dracut_install /usr/share/zoneinfo/Asia/Thimbu + dracut_install /usr/share/zoneinfo/Asia/Thimphu + dracut_install /usr/share/zoneinfo/Asia/Ashgabat + dracut_install /usr/share/zoneinfo/Asia/Shanghai + dracut_install /usr/share/zoneinfo/Asia/Tehran + dracut_install /usr/share/zoneinfo/Asia/Tel_Aviv + dracut_install /usr/share/zoneinfo/Asia/Taipei + dracut_install /usr/share/zoneinfo/Asia/Kabul + dracut_install /usr/share/zoneinfo/Asia/Macau + dracut_install /usr/share/zoneinfo/Asia/Choibalsan + dracut_install /usr/share/zoneinfo/Asia/Vientiane + dracut_install /usr/share/zoneinfo/Asia/Dacca + dracut_install /usr/share/zoneinfo/Asia/Kuching + dracut_install /usr/share/zoneinfo/Asia/Phnom_Penh + dracut_install /usr/share/zoneinfo/Asia/Ulan_Bator + dracut_install /usr/share/zoneinfo/Asia/Sakhalin + dracut_install /usr/share/zoneinfo/MST7MDT + dracut_install /usr/share/zoneinfo/Canada/Atlantic + dracut_install /usr/share/zoneinfo/Canada/Central + dracut_install /usr/share/zoneinfo/Canada/Eastern + dracut_install /usr/share/zoneinfo/Canada/Yukon + dracut_install /usr/share/zoneinfo/Canada/Pacific + dracut_install /usr/share/zoneinfo/Canada/Saskatchewan + dracut_install /usr/share/zoneinfo/Canada/Mountain + dracut_install /usr/share/zoneinfo/Canada/Newfoundland + dracut_install /usr/share/zoneinfo/Israel + dracut_install /usr/share/zoneinfo/Africa/Lagos + dracut_install /usr/share/zoneinfo/Africa/Kigali + dracut_install /usr/share/zoneinfo/Africa/Lome + dracut_install /usr/share/zoneinfo/Africa/Niamey + dracut_install /usr/share/zoneinfo/Africa/Conakry + dracut_install /usr/share/zoneinfo/Africa/Asmera + dracut_install /usr/share/zoneinfo/Africa/Banjul + dracut_install /usr/share/zoneinfo/Africa/Abidjan + dracut_install /usr/share/zoneinfo/Africa/Bujumbura + dracut_install /usr/share/zoneinfo/Africa/Luanda + dracut_install /usr/share/zoneinfo/Africa/Kampala + dracut_install /usr/share/zoneinfo/Africa/Ouagadougou + dracut_install /usr/share/zoneinfo/Africa/Libreville + dracut_install /usr/share/zoneinfo/Africa/Lubumbashi + dracut_install /usr/share/zoneinfo/Africa/Dakar + dracut_install /usr/share/zoneinfo/Africa/Bamako + dracut_install /usr/share/zoneinfo/Africa/Nairobi + dracut_install /usr/share/zoneinfo/Africa/Bangui + dracut_install /usr/share/zoneinfo/Africa/Johannesburg + dracut_install /usr/share/zoneinfo/Africa/Accra + dracut_install /usr/share/zoneinfo/Africa/Bissau + dracut_install /usr/share/zoneinfo/Africa/Timbuktu + dracut_install /usr/share/zoneinfo/Africa/Nouakchott + dracut_install /usr/share/zoneinfo/Africa/Maputo + dracut_install /usr/share/zoneinfo/Africa/Ndjamena + dracut_install /usr/share/zoneinfo/Africa/Maseru + dracut_install /usr/share/zoneinfo/Africa/Tripoli + dracut_install /usr/share/zoneinfo/Africa/Blantyre + dracut_install /usr/share/zoneinfo/Africa/Gaborone + dracut_install /usr/share/zoneinfo/Africa/Addis_Ababa + dracut_install /usr/share/zoneinfo/Africa/Porto-Novo + dracut_install /usr/share/zoneinfo/Africa/Kinshasa + dracut_install /usr/share/zoneinfo/Africa/Dar_es_Salaam + dracut_install /usr/share/zoneinfo/Africa/Douala + dracut_install /usr/share/zoneinfo/Africa/Mogadishu + dracut_install /usr/share/zoneinfo/Africa/Monrovia + dracut_install /usr/share/zoneinfo/Africa/Mbabane + dracut_install /usr/share/zoneinfo/Africa/Algiers + dracut_install /usr/share/zoneinfo/Africa/Lusaka + dracut_install /usr/share/zoneinfo/Africa/Khartoum + dracut_install /usr/share/zoneinfo/Africa/Asmara + dracut_install /usr/share/zoneinfo/Africa/Tunis + dracut_install /usr/share/zoneinfo/Africa/Casablanca + dracut_install /usr/share/zoneinfo/Africa/Sao_Tome + dracut_install /usr/share/zoneinfo/Africa/Ceuta + dracut_install /usr/share/zoneinfo/Africa/El_Aaiun + dracut_install /usr/share/zoneinfo/Africa/Harare + dracut_install /usr/share/zoneinfo/Africa/Freetown + dracut_install /usr/share/zoneinfo/Africa/Windhoek + dracut_install /usr/share/zoneinfo/Africa/Djibouti + dracut_install /usr/share/zoneinfo/Africa/Malabo + dracut_install /usr/share/zoneinfo/Africa/Cairo + dracut_install /usr/share/zoneinfo/Africa/Brazzaville + dracut_install /usr/share/zoneinfo/Etc/Zulu + dracut_install /usr/share/zoneinfo/Etc/GMT-0 + dracut_install /usr/share/zoneinfo/Etc/Greenwich + dracut_install /usr/share/zoneinfo/Etc/GMT+6 + dracut_install /usr/share/zoneinfo/Etc/GMT+9 + dracut_install /usr/share/zoneinfo/Etc/GMT-9 + dracut_install /usr/share/zoneinfo/Etc/GMT+5 + dracut_install /usr/share/zoneinfo/Etc/GMT0 + dracut_install /usr/share/zoneinfo/Etc/GMT-10 + dracut_install /usr/share/zoneinfo/Etc/GMT+0 + dracut_install /usr/share/zoneinfo/Etc/Universal + dracut_install /usr/share/zoneinfo/Etc/GMT+12 + dracut_install /usr/share/zoneinfo/Etc/GMT-5 + dracut_install /usr/share/zoneinfo/Etc/GMT+2 + dracut_install /usr/share/zoneinfo/Etc/UTC + dracut_install /usr/share/zoneinfo/Etc/GMT+8 + dracut_install /usr/share/zoneinfo/Etc/GMT-11 + dracut_install /usr/share/zoneinfo/Etc/GMT-4 + dracut_install /usr/share/zoneinfo/Etc/GMT-12 + dracut_install /usr/share/zoneinfo/Etc/GMT+11 + dracut_install /usr/share/zoneinfo/Etc/GMT+3 + dracut_install /usr/share/zoneinfo/Etc/GMT+4 + dracut_install /usr/share/zoneinfo/Etc/GMT+1 + dracut_install /usr/share/zoneinfo/Etc/GMT-14 + dracut_install /usr/share/zoneinfo/Etc/UCT + dracut_install /usr/share/zoneinfo/Etc/GMT+7 + dracut_install /usr/share/zoneinfo/Etc/GMT-6 + dracut_install /usr/share/zoneinfo/Etc/GMT-2 + dracut_install /usr/share/zoneinfo/Etc/GMT + dracut_install /usr/share/zoneinfo/Etc/GMT-3 + dracut_install /usr/share/zoneinfo/Etc/GMT-8 + dracut_install /usr/share/zoneinfo/Etc/GMT-7 + dracut_install /usr/share/zoneinfo/Etc/GMT-13 + dracut_install /usr/share/zoneinfo/Etc/GMT-1 + dracut_install /usr/share/zoneinfo/Etc/GMT+10 + dracut_install /usr/share/zoneinfo/PST8PDT + dracut_install /usr/share/zoneinfo/Jamaica + dracut_install /usr/share/zoneinfo/NZ + dracut_install /usr/share/zoneinfo/PRC + dracut_install /usr/share/zoneinfo/Chile/EasterIsland + dracut_install /usr/share/zoneinfo/Chile/Continental + inst "$moddir/xcatroot" "/sbin/xcatroot" + inst "$moddir/dhclient.conf" "/etc/dhclient.conf" + # dhclient executes this helper, so it must stay executable in initramfs. + inst_script "$moddir/dhclient-script" "/sbin/dhclient-script" + inst "$moddir/rsyslog.conf" "/etc/rsyslog.conf" + dracut_install chronyc chronyd rpcbind systemd-tmpfiles + dracut_install /etc/ssh + _dracut_install_opt /etc/chrony.conf + _dracut_install_opt /etc/chrony/chrony.conf + _dracut_install_opt /etc/chrony.keys + _dracut_install_opt /run/rpcbind + _dracut_install_opt /etc/systemd/system.conf + dracut_install /etc/netconfig rpcbind /etc/host.conf + _dracut_install_opt /sbin/rpc.statd + _dracut_install_opt /usr/sbin/rpc.statd + _dracut_install_opt /usr/sbin/sm-notify + _dracut_install_opt /sbin/sm-notify + _dracut_install_opt /usr/sbin/rpc.idmapd + dracut_install ps free find #debug + inst_dir /var/lib/nfs + inst_dir /var/lib/nfs/statd/sm + inst_dir /var/lib/nfs/statd/sm.bak + inst_dir /var/lib/nfs/rpc_pipefs/nfs + inst "/bin/bash" "/bin/sh" + inst "/usr/share/terminfo/l/linux" + inst "/usr/share/terminfo/v/vt100" + inst_hook cmdline 10 "$moddir/xcat-cmdline.sh" + # rsyslog modules — Ubuntu multiarch paths + for mod in lmtcpclt omtesting lmnetstrms imfile imklog lmzlibw immark imudp lmregexp lmtcpsrv lmnsd_ptcp imtcp lmnet imuxsock; do + _dracut_install_opt "/usr/lib/$TRIPLET/rsyslog/$mod.so" + done + _dracut_install_opt "/usr/lib/$TRIPLET/libnfsidmap/nsswitch.so" + dracut_install killall logger nc nslookup bc chown chroot dd expr kill mkdosfs parted rsync shutdown sort ssh-keygen tr blockdev findfs insmod kexec lvm mdadm mke2fs pivot_root sshd swapon tune2fs pvcreate lvremove vgremove vgcreate lvcreate lvscan lvchange vgchange pvdisplay lvdisplay vgdisplay blkid dmsetup sfdisk # for sysclone + _dracut_install_opt /usr/lib/udev/rules.d/10-dm.rules + _dracut_install_opt /usr/lib/udev/rules.d/11-dm-lvm.rules + _dracut_install_opt /usr/lib/udev/rules.d/13-dm-disk.rules + _dracut_install_opt /usr/lib/udev/rules.d/95-dm-notify.rules + _dracut_install_opt /usr/share/hwdata/pci.ids + _dracut_install_opt /etc/udev/hwdb.bin +} diff --git a/xCAT-genesis-builder/dracut_105/ubuntu/rsyslog.conf b/xCAT-genesis-builder/dracut_105/ubuntu/rsyslog.conf new file mode 100644 index 000000000..82ecc3260 --- /dev/null +++ b/xCAT-genesis-builder/dracut_105/ubuntu/rsyslog.conf @@ -0,0 +1,4 @@ +$ModLoad imuxsock +$ModLoad immark +$MarkMessagePeriod 1200 +*.* /var/log/xcat.genesis diff --git a/xCAT-genesis-builder/dracut_105/ubuntu/xcat-cmdline.sh b/xCAT-genesis-builder/dracut_105/ubuntu/xcat-cmdline.sh new file mode 100755 index 000000000..c479f9e91 --- /dev/null +++ b/xCAT-genesis-builder/dracut_105/ubuntu/xcat-cmdline.sh @@ -0,0 +1,90 @@ +#!/bin/bash +root=1 +rootok=1 +netroot=xcat +clear +echo PS1="'"'[xCAT Genesis running on \H \w]\$ '"'" > /.bashrc +echo PS1="'"'[xCAT Genesis running on \H \w]\$ '"'" > /.bash_profile +mkdir -p /etc/ssh +mkdir -p /var/tmp/ +mkdir -p /var/empty/sshd +sed -i '/^root:x/d' /etc/passwd +cat >>/etc/passwd <<"__ENDL" +root:x:0:0::/:/bin/bash +sshd:x:30:30:SSH User:/var/empty/sshd:/sbin/nologin +rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin +rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin +qemu:x:107:107:qemu user:/:/sbin/nologin +chrony:x:995:991::/var/lib/chrony:/sbin/nologin +__ENDL +# Fedora 20 ppc64 uses /lib/dracut/hooks/initqueue/finished +# CentOS 7 probably uses /lib/dracut/hooks/initqueue/finished also +if [ -d "/initqueue-finished" ]; then + echo '[ -e $NEWROOT/proc ]' > /initqueue-finished/xcatroot.sh +else + #echo 'if [ -e /proc ]; then /bin/doxcat; fi' > /lib/dracut/hooks/initqueue/finished/xcatroot.sh + echo '[ -e /proc ]' > /lib/dracut/hooks/initqueue/finished/xcatroot.sh +fi +mkdir /dev/cgroup +mount -t cgroup -o cpu,memory,devices cgroup /dev/cgroup +# Fedora 20 ppc64 does not udevd +# CentOS 7 probably does not have udevd either +if [ -f "/sbin/udevd" ]; then + udevd --daemon +else + /usr/lib/systemd/systemd-udevd --daemon +fi +udevadm trigger +mkdir -p /var/lib/dhclient/ +mkdir -p /var/log +ip link set lo up +echo '127.0.0.1 localhost' >> /etc/hosts +if grep -q console=ttyS /proc/cmdline; then + while :; do sleep 1; screen -S console -ln screen -x doxcat /dev/tty1; clear &>/dev/tty1 ; done & +fi +while :; do screen -ln < /dev/tty2 &> /dev/tty2 ; done & + +# The section below is just for System P LE hardware discovery + +# Need to wait for NIC initialization +sleep 20 +ARCH="$(uname -m)" + +if [[ ${ARCH} =~ ppc64 ]]; then + # load all network driver modules listed in /lib/modules//modules.dep file + KERVER=`uname -r` + for line in `cat /lib/modules/$KERVER/modules.dep | awk -F: '{print \$1}' | sed -e "s/\(.*\)\.ko.*/\1/"`; do + if [[ $line =~ "kernel/drivers/net" ]]; then + modprobe `basename $line` + fi + done + # Check if running on a VM, and load "virtio_pci" module + cat /proc/cpuinfo | grep "machine" | grep "emulated" + if [ $? -eq 0 ]; then + modprobe virtio_pci + fi + waittime=2 + ALL_NICS=$(ip link show | grep -v "^ " | awk '{print $2}' | sed -e 's/:$//' | grep -v lo) + for tmp in $ALL_NICS; do + tmp_data="$(ip link show "$tmp" | grep -v "^ " | grep "UP")" + if [ "$tmp_data" == "" ]; then + ip link set "$tmp" up + fi + tmp_data="UP" + waittime=$((waittime+1)) + done + # wait 2+number_of_nics seconds for all the LINKed NICs to be UP + sleep $waittime +elif [[ ${ARCH} =~ x86_64 ]]; then + # load all network driver modules listed in /lib/modules//modules.dep file + KERVER=`uname -r` + # Xen guests require xen-netfront for the paravirtual NIC. + modprobe xen-netfront 2>/dev/null || : + for line in `cat /lib/modules/$KERVER/modules.dep |grep -vE 'tunnel|ieee|ifb|bond|dummy|fjes|hv_netvsc|ntb_netdev|hdlc_fr|dlci'| awk -F: '{print \$1}' | sed -e "s/\(.*\)\.ko.*/\1/"`; do + if [[ $line =~ "kernel/drivers/net" ]]; then + modprobe `basename $line` + fi + done +fi + +while :; do screen -dr doxcat || screen -S doxcat -L -ln doxcat; done diff --git a/xCAT-genesis-builder/dracut_105/ubuntu/xcatroot b/xCAT-genesis-builder/dracut_105/ubuntu/xcatroot new file mode 100755 index 000000000..3eeec2bf0 --- /dev/null +++ b/xCAT-genesis-builder/dracut_105/ubuntu/xcatroot @@ -0,0 +1,8 @@ +#!/bin/sh +echo "Starting xCAT mini-environment" +NEWROOT=$3 +XCATMASTER=$XCAT +while : +do + /bin/sh +done diff --git a/xCAT-genesis-builder/install.ubuntu b/xCAT-genesis-builder/install.ubuntu index f7363212e..2aeea8a88 100755 --- a/xCAT-genesis-builder/install.ubuntu +++ b/xCAT-genesis-builder/install.ubuntu @@ -1,4 +1,5 @@ #!/bin/sh +# DEPRECATED: This file is no longer used. See dracut_105/ubuntu/module-setup.sh echo $drivers version12=`awk '{print $2}' /etc/issue | grep 12` dracut_install wget openssl tar ipmitool cpio gzip lsmod ethtool modprobe touch echo cut wc diff --git a/xCAT-genesis-builder/xCAT-genesis-base.spec b/xCAT-genesis-builder/xCAT-genesis-base.spec index 27eac8751..aea7027f9 100644 --- a/xCAT-genesis-builder/xCAT-genesis-base.spec +++ b/xCAT-genesis-builder/xCAT-genesis-base.spec @@ -36,7 +36,6 @@ BuildRequires: bc BuildRequires: bind-utils BuildRequires: chrony BuildRequires: cpio -BuildRequires: dhcp-client BuildRequires: e2fsprogs BuildRequires: hostname %if "%{_target_cpu}" == "x86_64" @@ -69,7 +68,7 @@ BuildRequires: procps-ng BuildRequires: psmisc BuildRequires: rsync BuildRequires: rsyslog -BuildRequires: screen +BuildRequires: tmux BuildRequires: usbutils BuildRequires: util-linux BuildRequires: vim-minimal diff --git a/xCAT-openbmc-py/xCAT-openbmc-py.spec b/xCAT-openbmc-py/xCAT-openbmc-py.spec index a323b5d8a..a49260453 100644 --- a/xCAT-openbmc-py/xCAT-openbmc-py.spec +++ b/xCAT-openbmc-py/xCAT-openbmc-py.spec @@ -1,7 +1,7 @@ Summary: xCAT openbmc python Name: xCAT-openbmc-py Version: %{?version:%{version}}%{!?version:%(cat Version)} -Release: %{?release:%{release}}%{!?release:snap%(date +"%Y%m%d%H%M")} +Release: %{?release:%{release}}%{!?release:%(cat Release)} Epoch: 1 License: EPL Group: Applications/System diff --git a/xCAT-server/lib/xcat/plugins/ddns.pm b/xCAT-server/lib/xcat/plugins/ddns.pm index 411046109..f1af338c8 100644 --- a/xCAT-server/lib/xcat/plugins/ddns.pm +++ b/xCAT-server/lib/xcat/plugins/ddns.pm @@ -1473,6 +1473,13 @@ sub update_namedconf { } else { ensure_ddns_key_file($ctx); } + # Persist the TSIG secret to the DB so service nodes (which have no local + # /etc/xcat/ddns.key) can retrieve it via kea_ddns_key()'s passwd fallback. + if ($ctx->{privkey}) { + my $passtab = xCAT::Table->new("passwd", -create => 1); + $passtab->setAttribs({ key => "omapi", username => $omapi_key_name }, + { password => $ctx->{privkey} }) if $passtab; + } } my $cmd = "grep '^nameserver' /etc/resolv.conf | awk '{print \$2}'"; diff --git a/xCAT-server/lib/xcat/plugins/dhcp.pm b/xCAT-server/lib/xcat/plugins/dhcp.pm index f8f26804a..4483c46ca 100644 --- a/xCAT-server/lib/xcat/plugins/dhcp.pm +++ b/xCAT-server/lib/xcat/plugins/dhcp.pm @@ -1691,38 +1691,45 @@ sub process_request } } } - @entries = xCAT::TableUtils->get_site_attribute("nameservers"); - $t_entry = $entries[0]; - if (defined($t_entry)) { - $sitenameservers = $t_entry; - } - @entries = xCAT::TableUtils->get_site_attribute("ntpservers"); - $t_entry = $entries[0]; - if (defined($t_entry)) { - $sitentpservers = $t_entry; - } - @entries = xCAT::TableUtils->get_site_attribute("logservers"); - $t_entry = $entries[0]; - if (defined($t_entry)) { - $sitelogservers = $t_entry; - } - @entries = xCAT::TableUtils->get_site_attribute("domain"); - $t_entry = $entries[0]; - - unless (defined($t_entry)) - { - # this may not be an error - # $callback->( - # {error => ["No domain defined in site tabe"], errorcode => [1]} - # ); - # return; - } else { - $site_domain = $t_entry; - } - - xCAT::MsgUtils->trace($verbose_on_off, "d", "dhcp: sitelogservers=$sitelogservers sitentpservers=$sitentpservers sitenameservers=$sitenameservers site_domain=$site_domain"); } + # site nameservers/ntpservers/logservers/domain must be read regardless of how the DHCP + # interfaces were determined. They previously lived inside the `else` branch above, so a + # service node whose interfaces come from servicenode.dhcpinterfaces (the `if` branch) + # never read them -- leaving $site_domain empty and making the Kea backend abort with + # "No domain defined for entry in networks table, and no domain defined in site + # table." Hoisted out so both branches populate them. + my @entries = xCAT::TableUtils->get_site_attribute("nameservers"); + my $t_entry = $entries[0]; + if (defined($t_entry)) { + $sitenameservers = $t_entry; + } + @entries = xCAT::TableUtils->get_site_attribute("ntpservers"); + $t_entry = $entries[0]; + if (defined($t_entry)) { + $sitentpservers = $t_entry; + } + @entries = xCAT::TableUtils->get_site_attribute("logservers"); + $t_entry = $entries[0]; + if (defined($t_entry)) { + $sitelogservers = $t_entry; + } + @entries = xCAT::TableUtils->get_site_attribute("domain"); + $t_entry = $entries[0]; + + unless (defined($t_entry)) + { + # this may not be an error + # $callback->( + # {error => ["No domain defined in site tabe"], errorcode => [1]} + # ); + # return; + } else { + $site_domain = $t_entry; + } + + xCAT::MsgUtils->trace($verbose_on_off, "d", "dhcp: sitelogservers=$sitelogservers sitentpservers=$sitentpservers sitenameservers=$sitenameservers site_domain=$site_domain"); + if ( $backend->name eq 'kea' ) { kea_process_request($backend, $req, \%opt, \%activenics, $verbose_on_off); return; @@ -2737,6 +2744,18 @@ sub kea_build_ddns_intent $dns =~ s/,.*//; next unless $dns; + # networks.nameservers / site.nameservers default to the + # placeholder. Kea D2 validates dns-servers[].ip-address as a real IP, + # so resolve to the management IP facing this network the + # same way kea_subnet4_intent does for DHCP options. Skip the network's + # DDNS domains if we can't resolve a real IP rather than emit an invalid one. + if ($dns =~ //) { + my @myipd = xCAT::NetworkUtils->my_ip_facing($entry->{net}); + my $myip = $myipd[0] ? undef : $myipd[1]; + $dns =~ s//$myip/g if $myip; + } + next if (!$dns || $dns =~ //); + my $domain = $entry->{ddnsdomain} || $entry->{domain} || $site_domain; if ($domain) { $domain .= '.' unless $domain =~ /\.$/; @@ -2830,9 +2849,10 @@ sub kea_ddns_key return ($algorithm, $secret) if $secret; } + my $settings = xCAT::DHCP::OmapiPolicy->settings(); my $passtab = xCAT::Table->new('passwd'); - my $pent = $passtab ? $passtab->getAttribs({ key => 'omapi', username => 'xcat_key' }, ['password']) : undef; - return ('HMAC-SHA256', $pent->{password}) if $pent && $pent->{password}; + my $pent = $passtab ? $passtab->getAttribs({ key => 'omapi', username => $settings->{key_name} }, ['password']) : undef; + return (uc($settings->{algorithm}), $pent->{password}) if $pent && $pent->{password}; return; } diff --git a/xCAT-server/lib/xcat/plugins/kvm.pm b/xCAT-server/lib/xcat/plugins/kvm.pm index c589a0fcc..546c9984d 100644 --- a/xCAT-server/lib/xcat/plugins/kvm.pm +++ b/xCAT-server/lib/xcat/plugins/kvm.pm @@ -3242,7 +3242,7 @@ sub power { else { $allnodestatus{$node} = $::STATUS_POWERING_ON; } - } elsif (not $dom->is_active()) { + } elsif (not _dom_active($dom)) { eval{ $dom->create(); }; @@ -3257,7 +3257,7 @@ sub power { if ($dom) { my $newxml = $dom->get_xml_description(); $updatetable->{kvm_nodedata}->{$node}->{xml} = $newxml; - if ($dom->is_active()) { + if (_dom_active($dom)) { eval{ $dom->destroy(); }; @@ -3276,7 +3276,7 @@ sub power { $allnodestatus{$node} = $::STATUS_POWERING_OFF; } else { $retstring .= "$status_noop"; } } elsif ($subcommand eq 'reset') { - if ($dom && $dom->is_active()) { + if ($dom && _dom_active($dom)) { my $oldxml = $dom->get_xml_description(); my $newxml = reconfigvm($node, $oldxml); @@ -4343,4 +4343,19 @@ sub get_cdrom_device_names() { return @cdrom_device_names; } +# Return true if a libvirt domain is running. Some Sys::Virt versions on EL10 do +# not expose Sys::Virt::Domain->is_active(); fall back to the domain info state +# (VIR_DOMAIN_SHUTOFF == 5) so rpower/mkvm work across Sys::Virt versions. +sub _dom_active { + my $dom = shift; + return 0 unless ($dom); + my $active; + eval { $active = $dom->is_active(); }; + return $active unless ($@); + my $info; + eval { $info = $dom->get_info(); }; + return 0 if ($@ || !$info || !defined($info->{state})); + return ($info->{state} != 5) ? 1 : 0; +} + 1; diff --git a/xCAT-server/lib/xcat/plugins/xdsh.pm b/xCAT-server/lib/xcat/plugins/xdsh.pm index 0ffed07aa..e4c96eef7 100644 --- a/xCAT-server/lib/xcat/plugins/xdsh.pm +++ b/xCAT-server/lib/xcat/plugins/xdsh.pm @@ -324,8 +324,8 @@ sub parse_xdcp_cmd 'R|recursive' => \$options{'recursive'}, 'T|trace' => \$options{'trace'}, 'V|version' => \$options{'version'}, - 'nodestatus|nodestatus' => \$options{'nodestatus'}, - 'sudo|sudo' => \$options{'sudo'}, + 'nodestatus' => \$options{'nodestatus'}, + 'sudo' => \$options{'sudo'}, 'X:s' => \$options{'ignore_env'} ) ) @@ -488,8 +488,8 @@ sub parse_xdsh_cmd 'V|version' => \$options{'version'}, 'devicetype=s' => \$options{'devicetype'}, - 'nodestatus|nodestatus' => \$options{'nodestatus'}, - 'sudo|sudo' => \$options{'sudo'}, + 'nodestatus' => \$options{'nodestatus'}, + 'sudo' => \$options{'sudo'}, 'command-name|commandName=s' => \$options{'command-name'}, 'command-description|commandDescription=s' => \$options{'command-description'}, diff --git a/xCAT-server/sbin/xcatconfig b/xCAT-server/sbin/xcatconfig index 7984efb21..7eec28355 100755 --- a/xCAT-server/sbin/xcatconfig +++ b/xCAT-server/sbin/xcatconfig @@ -595,7 +595,7 @@ if ($::INITIALINSTALL || $::FORCE) } #End - more - Linux-only config -# Run mknb to put xCAT-genesis-scripts-x86_64 and xCAT-genesis-base-x86_64 together and in /tftpboot +# Run mknb for each installed xCAT genesis architecture and place the image in /tftpboot if (($::INITIALINSTALL || $::UPDATEINSTALL) && $::osname eq 'Linux') { &mknb; } @@ -1973,9 +1973,7 @@ sub setupLinuxexports =head3 mknb Creates a network boot root image on Linux - Run mknb to put xCAT-genesis-scripts-x86_64 and xCAT-genesis-base-x86_64 together and in /tftpboot - From 2.12.2, both xCAT-genesis-scripts-x86_64 and xCAT-genesis-scripts-ppc64 will be installed. - So, will run mknb twice, one for ppc64 and another for x86_64 + Run mknb for each installed xCAT-genesis-scripts/xCAT-genesis-base architecture and place the result in /tftpboot =cut #----------------------------------------------------------------------------- diff --git a/xCAT-server/share/xcat/install/alma/compute.alma10.pkglist b/xCAT-server/share/xcat/install/alma/compute.alma10.pkglist new file mode 120000 index 000000000..e5ed10698 --- /dev/null +++ b/xCAT-server/share/xcat/install/alma/compute.alma10.pkglist @@ -0,0 +1 @@ +../rh/compute.rhels10.pkglist \ No newline at end of file diff --git a/xCAT-server/share/xcat/install/alma/compute.alma10.tmpl b/xCAT-server/share/xcat/install/alma/compute.alma10.tmpl new file mode 120000 index 000000000..8ccf86648 --- /dev/null +++ b/xCAT-server/share/xcat/install/alma/compute.alma10.tmpl @@ -0,0 +1 @@ +../rh/compute.rhels10.tmpl \ No newline at end of file diff --git a/xCAT-server/share/xcat/install/alma/service.alma10.pkglist b/xCAT-server/share/xcat/install/alma/service.alma10.pkglist new file mode 120000 index 000000000..5d4806f77 --- /dev/null +++ b/xCAT-server/share/xcat/install/alma/service.alma10.pkglist @@ -0,0 +1 @@ +../rh/service.rhels10.pkglist \ No newline at end of file diff --git a/xCAT-server/share/xcat/install/alma/service.alma10.tmpl b/xCAT-server/share/xcat/install/alma/service.alma10.tmpl new file mode 120000 index 000000000..61ff7052d --- /dev/null +++ b/xCAT-server/share/xcat/install/alma/service.alma10.tmpl @@ -0,0 +1 @@ +../rh/service.rhels10.tmpl \ No newline at end of file diff --git a/xCAT-server/share/xcat/install/alma/service.alma10.x86_64.otherpkgs.pkglist b/xCAT-server/share/xcat/install/alma/service.alma10.x86_64.otherpkgs.pkglist new file mode 120000 index 000000000..ddd272e85 --- /dev/null +++ b/xCAT-server/share/xcat/install/alma/service.alma10.x86_64.otherpkgs.pkglist @@ -0,0 +1 @@ +../rh/service.rhels10.x86_64.otherpkgs.pkglist \ No newline at end of file diff --git a/xCAT-server/share/xcat/install/rh/service.rhels10.pkglist b/xCAT-server/share/xcat/install/rh/service.rhels10.pkglist new file mode 100644 index 000000000..c78589414 --- /dev/null +++ b/xCAT-server/share/xcat/install/rh/service.rhels10.pkglist @@ -0,0 +1,19 @@ +@Minimal Install +kernel +chrony +net-tools +nfs-utils +openssh-server +openssl +rsync +util-linux +wget +mariadb-connector-odbc +perl-DBD-MySQL +perl-DBD-Pg +unixODBC +python3 +tar +bzip2 +perl-interpreter +perl-lib diff --git a/xCAT-server/share/xcat/install/rh/service.rhels10.tmpl b/xCAT-server/share/xcat/install/rh/service.rhels10.tmpl new file mode 120000 index 000000000..af462065b --- /dev/null +++ b/xCAT-server/share/xcat/install/rh/service.rhels10.tmpl @@ -0,0 +1 @@ +compute.rhels10.tmpl \ No newline at end of file diff --git a/xCAT-server/share/xcat/install/rh/service.rhels10.x86_64.otherpkgs.pkglist b/xCAT-server/share/xcat/install/rh/service.rhels10.x86_64.otherpkgs.pkglist new file mode 100644 index 000000000..323288034 --- /dev/null +++ b/xCAT-server/share/xcat/install/rh/service.rhels10.x86_64.otherpkgs.pkglist @@ -0,0 +1,2 @@ +xcat/xcat-core/xCATsn +xcat/xcat-dep/rh10/x86_64/goconserver diff --git a/xCAT-test/autotest/bundle/alma10_x86_daily.bundle b/xCAT-test/autotest/bundle/alma10_x86_daily.bundle new file mode 100644 index 000000000..26f22b0b9 --- /dev/null +++ b/xCAT-test/autotest/bundle/alma10_x86_daily.bundle @@ -0,0 +1,3 @@ +setup_vm +#INCLUDE:rhels_x86_daily.bundle# +clean_up_env diff --git a/xCAT-test/autotest/testcase/HA/case0 b/xCAT-test/autotest/testcase/HA/case0 index e1fdb14af..6ff9494d3 100644 --- a/xCAT-test/autotest/testcase/HA/case0 +++ b/xCAT-test/autotest/testcase/HA/case0 @@ -272,7 +272,7 @@ check:rc==0 #configure first MN as standby HA MN cmd:xdsh $$PRIMARYMN "service xcatd stop" check:rc==0 -cmd:xdsh $$PRIMARYMN "sed -i 's/IPADDR=100.1.0.233/IPADDR=100.1.0.100/g' /etc/sysconfig/network-scripts/ifcfg-$$PMNSECONDNIC" +cmd:xdsh $$PRIMARYMN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh setip $$PMNSECONDNIC 100.1.0.100 check:rc==0 cmd:xdsh $$PRIMARYMN "ifdown $$PMNSECONDNIC;ifup $$PMNSECONDNIC" check:rc==0 diff --git a/xCAT-test/autotest/testcase/commoncmd/nic_cfg.sh b/xCAT-test/autotest/testcase/commoncmd/nic_cfg.sh new file mode 100755 index 000000000..8c787455b --- /dev/null +++ b/xCAT-test/autotest/testcase/commoncmd/nic_cfg.sh @@ -0,0 +1,192 @@ +#!/bin/bash +############################################################################### +# nic_cfg.sh - backend-aware NIC-config query/teardown helper for xCAT autotest. +# +# Runs ON the target node. Ship + run it from a test case with xdsh -e, e.g.: +# xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show ens4 +# +# Why this exists: +# confignetwork/confignics/infiniband/HA cases historically verify NIC config by +# reading /etc/sysconfig/network-scripts/ifcfg-* (Red Hat) or /etc/sysconfig/network +# (SUSE) or /etc/network/interfaces.d (Ubuntu). On EL10 the +# NetworkManager-initscripts-ifcfg-rh plugin is gone: NetworkManager is keyfile-only +# (/etc/NetworkManager/system-connections/*.nmconnection) and the network-scripts dir +# does not exist, so every ifcfg read comes back empty and the cases fail. +# +# This helper detects the active backend and emits a NORMALIZED, ifcfg-style +# "KEY=value" dump (IPADDR=, PREFIX=, BOOTPROTO=, MTU=, ...) regardless of backend, +# so the existing `check:output=~...` assertions keep matching on every OS. On EL it +# reads NetworkManager (nmcli + the keyfile); on SUSE/RH it reads ifcfg; on Ubuntu it +# reads interfaces.d. +# +# Subcommands: +# show normalized config dump for kernel device +# (ens4, bond0, bond0.2, br0, br22, ib0, ...). Also appends the raw +# backend config file so extra params are visible/greppable. +# del remove the xCAT connection / ifcfg for +# backup snapshot the persistent network config under /tmp/backupnet +# restore restore the snapshot and reload the active backend +# +# is the kernel device name the tests already use; on NetworkManager the xCAT +# connection ("xcat-", "xcat-bond-", "xcat-bridge-", +# "xcat-vlan-.", ...) is resolved from the device, so callers never need to +# know the connection naming. +############################################################################### + +NMDIR=/etc/NetworkManager/system-connections +RHDIR=/etc/sysconfig/network-scripts +SUSEDIR=/etc/sysconfig/network +UBUDIR=/etc/network/interfaces.d +BACKUP=/tmp/backupnet + +detect_backend() { + if command -v nmcli >/dev/null 2>&1 && systemctl is-active --quiet NetworkManager 2>/dev/null; then + echo nm + elif [ -d "$SUSEDIR" ] && grep -qi suse /etc/*release 2>/dev/null; then + echo suse + elif grep -qi ubuntu /etc/*release 2>/dev/null; then + echo ubuntu + elif [ -d "$RHDIR" ]; then + echo rh + else + echo unknown + fi +} + +# Resolve a connection's on-disk keyfile path. NM names it "-.nmconnection" +# (not just ".nmconnection") whenever a same-named file already exists, so resolve by +# UUID rather than assuming the plain name. +nm_keyfile() { + local conn=$1 uuid + uuid=$(nmcli -g connection.uuid connection show "$conn" 2>/dev/null) + if [ -n "$uuid" ]; then + grep -l "uuid=$uuid" "$NMDIR"/*.nmconnection 2>/dev/null | head -1 + fi +} + +# Resolve the NetworkManager connection name bound to a device. +nm_conn_for_dev() { + local dev=$1 c cand + c=$(nmcli -t -f NAME,DEVICE connection show --active 2>/dev/null | awk -F: -v d="$dev" '$2==d{print $1; exit}') + [ -z "$c" ] && c=$(nmcli -t -f NAME,DEVICE connection show 2>/dev/null | awk -F: -v d="$dev" '$2==d{print $1; exit}') + if [ -z "$c" ]; then + for cand in "xcat-$dev" "xcat-bond-$dev" "xcat-bridge-$dev" "xcat-vlan-$dev"; do + if nmcli -t -f NAME connection show 2>/dev/null | grep -qx "$cand"; then c=$cand; break; fi + done + fi + echo "$c" +} + +nm_show() { + local dev=$1 conn method addrs a ip pfx mtu kf + conn=$(nm_conn_for_dev "$dev") + if [ -z "$conn" ]; then echo "nic_cfg: no NetworkManager connection for device $dev"; return 1; fi + echo "NAME=$conn" + echo "DEVICE=$dev" + method=$(nmcli -g ipv4.method connection show "$conn" 2>/dev/null) + case "$method" in + manual) echo "BOOTPROTO=none" ;; + auto) echo "BOOTPROTO=dhcp" ;; + disabled|"") : ;; + *) echo "BOOTPROTO=$method" ;; + esac + addrs=$(nmcli -g ipv4.addresses connection show "$conn" 2>/dev/null) + local oldifs="$IFS"; IFS=',' + for a in $addrs; do + a=$(echo "$a" | tr -d ' ') + [ -z "$a" ] && continue + ip=${a%/*}; pfx=${a#*/} + echo "IPADDR=$ip" + echo "PREFIX=$pfx" + done + IFS="$oldifs" + mtu=$(nmcli -g 802-3-ethernet.mtu connection show "$conn" 2>/dev/null) + kf=$(nm_keyfile "$conn") + if { [ -z "$mtu" ] || [ "$mtu" = "auto" ]; } && [ -n "$kf" ] && [ -r "$kf" ]; then + mtu=$(awk -F= '/^[[:space:]]*mtu=/{print $2; exit}' "$kf") + fi + [ -n "$mtu" ] && [ "$mtu" != "auto" ] && echo "MTU=$mtu" + # Raw keyfile so anything not normalized above (extra params, slaves, vlan id, ...) + # is still visible and greppable by the case's check: lines. + if [ -r "$kf" ]; then echo "# --- $kf ---"; cat "$kf"; fi +} + +file_show() { + # SUSE / legacy-RH / Ubuntu: cat whatever ifcfg/interfaces file matches the device. + local dev=$1 f found=1 + for f in "$RHDIR"/ifcfg-*"$dev"* "$SUSEDIR"/ifcfg-"$dev" "$UBUDIR"/"$dev" "$UBUDIR"/"$dev":* ; do + if [ -r "$f" ]; then echo "# --- $f ---"; cat "$f"; found=0; fi + done + [ -r /etc/network/interfaces ] && { echo "# --- /etc/network/interfaces ---"; cat /etc/network/interfaces; found=0; } + return $found +} + +nm_del() { + local dev=$1 conn c + conn=$(nm_conn_for_dev "$dev") + [ -n "$conn" ] && nmcli connection delete "$conn" >/dev/null 2>&1 + # Drop every xCAT-created connection referencing this device (the connection itself, + # its vlan children, and any bond/bridge slave on it), including NM's collision-renamed + # "xcat-...-" duplicates. This keeps stale connections from piling up and causing + # keyfile-name collisions across cases. + nmcli -t -f NAME connection show 2>/dev/null | grep -E "^xcat-.*${dev}" | while read -r c; do + nmcli connection delete "$c" >/dev/null 2>&1 + done + return 0 +} + +case "$1" in + show) + be=$(detect_backend); dev=$2 + case "$be" in + nm) nm_show "$dev" ;; + *) file_show "$dev" ;; + esac + ;; + del) + be=$(detect_backend); shift + for dev in "$@"; do + case "$be" in + nm) nm_del "$dev" ;; + suse) rm -f "$SUSEDIR/ifcfg-$dev" ;; + rh) rm -f "$RHDIR"/ifcfg-*"$dev"* ;; + ubuntu) rm -f "$UBUDIR/$dev" "$UBUDIR/$dev":* ;; + esac + done + ;; + setip) + be=$(detect_backend); dev=$2; newip=$3 + case "$be" in + nm) conn=$(nm_conn_for_dev "$dev") + pfx=$(nmcli -g ipv4.addresses connection show "$conn" 2>/dev/null | head -1 | sed 's,.*/,,') + [ -z "$pfx" ] && pfx=24 + nmcli connection modify "$conn" ipv4.method manual ipv4.addresses "$newip/$pfx" >/dev/null 2>&1 + nmcli connection up "$conn" >/dev/null 2>&1 ;; + suse) sed -i "s,IPADDR=.*,IPADDR=$newip," "$SUSEDIR/ifcfg-$dev" ;; + rh) sed -i "s,IPADDR=.*,IPADDR=$newip," "$RHDIR"/ifcfg-*"$dev"* ;; + esac + ;; + backup) + be=$(detect_backend); rm -rf "$BACKUP"; mkdir -p "$BACKUP" + case "$be" in + nm) cp -af "$NMDIR"/. "$BACKUP"/ 2>/dev/null ;; + suse) cp -af "$SUSEDIR"/ifcfg-* "$BACKUP"/ 2>/dev/null ;; + rh) cp -af "$RHDIR" "$BACKUP"/ 2>/dev/null ;; + ubuntu) cp -af "$UBUDIR"/. "$BACKUP"/ 2>/dev/null ;; + esac + ;; + restore) + be=$(detect_backend) + case "$be" in + nm) rm -f "$NMDIR"/*.nmconnection 2>/dev/null; cp -af "$BACKUP"/. "$NMDIR"/ 2>/dev/null; chmod 600 "$NMDIR"/*.nmconnection 2>/dev/null; nmcli connection reload >/dev/null 2>&1 ;; + suse) cp -af "$BACKUP"/ifcfg-* "$SUSEDIR"/ 2>/dev/null ;; + rh) cp -af "$BACKUP"/network-scripts/. "$RHDIR"/ 2>/dev/null; command -v nmcli >/dev/null 2>&1 && nmcli con reload >/dev/null 2>&1 ;; + ubuntu) cp -af "$BACKUP"/. "$UBUDIR"/ 2>/dev/null ;; + esac + rm -rf "$BACKUP" + ;; + *) + echo "usage: nic_cfg.sh {show|del |backup|restore}" >&2 + exit 2 + ;; +esac diff --git a/xCAT-test/autotest/testcase/confignetwork/cases0 b/xCAT-test/autotest/testcase/confignetwork/cases0 index 7585a857e..287f43de9 100644 --- a/xCAT-test/autotest/testcase/confignetwork/cases0 +++ b/xCAT-test/autotest/testcase/confignetwork/cases0 @@ -34,7 +34,7 @@ check:rc==0 check:output=~booted cmd:xdsh $$CN hostname check:output=~$$CN -cmd:installnic=`xdsh $$CN ip addr |grep __GETNODEATTR($$CN,ip)__|awk -F " " '{print $NF}'`; if grep SUSE /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network/ifcfg-$installnic"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network-scripts/ifcfg-$installnic"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep __GETNODEATTR($$CN,ip)__ /etc/network/interfaces.d/*";else echo "Sorry,this is not supported os"; fi +cmd:installnic=`xdsh $$CN ip addr |grep __GETNODEATTR($$CN,ip)__|awk -F " " '{print $NF}'`; xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $installnic check:rc==0 check:output=~__GETNODEATTR($$CN,ip)__ check:output=~BOOTPROTO=none|static @@ -84,7 +84,7 @@ check:rc==0 check:output=~booted cmd:xdsh $$CN hostname check:output=~$$CN -cmd:installnic=`xdsh $$CN ip addr |grep __GETNODEATTR($$CN,ip)__|awk -F " " '{print $NF}'`; if grep SUSE /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network/ifcfg-$installnic"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network-scripts/ifcfg-$installnic"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cat /etc/network/interfaces.d/*";else echo "Sorry,this is not supported os"; fi +cmd:installnic=`xdsh $$CN ip addr |grep __GETNODEATTR($$CN,ip)__|awk -F " " '{print $NF}'`; xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $installnic check:rc==0 check:output=~__GETNODEATTR($$CN,ip)__ check:output=~BOOTPROTO=none|static @@ -137,11 +137,11 @@ check:output=~64 bytes from $$CN cmd:lsdef -l $$CN | grep status check:rc==0 check:output=~booted -cmd:installnic=`xdsh $$CN ip addr |grep __GETNODEATTR($$CN,ip)__|awk -F " " '{print $NF}'`; if grep SUSE /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network/ifcfg-$installnic"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network-scripts/ifcfg-$installnic"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cat /etc/network/interfaces";else echo "Sorry,this is not supported os"; fi +cmd:installnic=`xdsh $$CN ip addr |grep __GETNODEATTR($$CN,ip)__|awk -F " " '{print $NF}'`; xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $installnic check:rc==0 check:output=~__GETNODEATTR($$CN,ip)__ check:output=~BOOTPROTO=none|static -cmd:secondarynic=`xdsh $$CN ip addr |grep 100.1.0.100|awk -F " " '{print $NF}'`; if grep SUSE /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network/ifcfg-$secondarynic"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network-scripts/ifcfg-$secondarynic"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cat /etc/network/interfaces";else echo "Sorry,this is not supported os"; fi +cmd:secondarynic=`xdsh $$CN ip addr |grep 100.1.0.100|awk -F " " '{print $NF}'`; xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $secondarynic check:rc==0 check:output=~100.1.0.100 check:output=~BOOTPROTO=none|static @@ -162,7 +162,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /etc/sysconfig/network-scripts /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/;cp -f /etc/network/interfaces /tmp";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var3=100.;var4=`echo $cnip |awk -F. '{print $2}'`;var5=.0.0;secondnet=$var3$var4$var5;mkdef -t network -o confignetworks_test1 net=$secondnet mask=255.255.0.0 mgtifname=$$SECONDNIC check:rc==0 @@ -173,16 +173,16 @@ check:rc==0 cmd:rmdef -t network -o confignetworks_test1 cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=100;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;if grep SUSE /etc/*release;then xdsh $$CN "grep $second1ip /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep $second1ip /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep $second1ip /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=100;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC | grep $second1ip check:rc==0 -cmd:installnic=`xdsh $$CN ip addr |grep __GETNODEATTR($$CN,ip)__|awk -F " " '{print $NF}'`; if grep SUSE /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network/ifcfg-$installnic"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network-scripts/ifcfg-*$installnic*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cat /etc/network/interfaces.d/*";else echo "Sorry,this is not supported os"; fi +cmd:installnic=`xdsh $$CN ip addr |grep __GETNODEATTR($$CN,ip)__|awk -F " " '{print $NF}'`; xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $installnic check:rc==0 check:output=~__GETNODEATTR($$CN,ip)__ check:output=~BOOTPROTO=none|static cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=100;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;xdsh $$CN "ip addr del $second1ip/16 dev $$SECONDNIC" -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /tmp/backupnet/network-scripts /etc/sysconfig/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:xdsh $$CN "systemctl status NetworkManager >/dev/null 2>/dev/null && which nmcli >/dev/null 2>/dev/null && nmcli con reload" cmd:xdsh $$CN "rm -rf /tmp/backupnet/ /tmp/interfaces" end @@ -192,10 +192,7 @@ description: this case is to test confignetwork could configure secondarynic suc label:others,network cmd:lsdef $$CN;if [ $? -eq 0 ]; then lsdef -l $$CN -z >/tmp/CN.stanza ;fi check:rc==0 -cmd:xdsh $$CN "rm -rf /tmp/backupnet/" -cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" -check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /etc/sysconfig/network-scripts /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:mkdef -t network -o 11_1_0_0-255_255_0_0 net=11.1.0.0 mask=255.255.0.0 mgtifname=$$SECONDNIC mtu=1496 check:rc==0 @@ -206,16 +203,14 @@ check:rc==0 cmd:rmdef -t network -o 11_1_0_0-255_255_0_0 cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~11.1.0.100 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep MTU /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep -i MTU /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep mtu /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~MTU=1496|mtu 1496 cmd:xdsh $$CN "ip addr del 11.1.0.100/16 dev $$SECONDNIC" -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /tmp/backupnet/network-scripts /etc/sysconfig/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/";else echo "Sorry,this is not supported os"; fi -cmd:xdsh $$CN "systemctl status NetworkManager >/dev/null 2>/dev/null && which nmcli >/dev/null 2>/dev/null && nmcli con reload" -cmd:xdsh $$CN "rm -rf /tmp/backupnet/" +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh restore end start: confignetwork_secondarynic_nicaliases_updatenode @@ -226,7 +221,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /etc/sysconfig/network-scripts /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/;cp -f /etc/network/interfaces /tmp";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:cp -f /etc/hosts /etc/hosts.bak cmd:mkdef -t network -o 11_1_0_0-255_255_0_0 net=11.1.0.0 mask=255.255.0.0 mgtifname=$$SECONDNIC @@ -243,10 +238,10 @@ check:output=~aliases1-2 cmd:updatenode $$CN -P confignetwork check:rc==0 cmd:xdsh $$CN date -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cat /etc/network/interfaces.d/*";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~11.1.0.100 check:output=~BOOTPROTO=none|static -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cat /etc/network/interfaces.d/*";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~12.1.0.100 check:output=~BOOTPROTO=none|static cmd:rmdef -t network -o 11_1_0_0-255_255_0_0 @@ -254,7 +249,7 @@ cmd:rmdef -t network -o 12_1_0_0-255_255_0_0 cmd:xdsh $$CN "ip addr del 11.1.0.100/16 dev $$SECONDNIC" cmd:xdsh $$CN "ip addr del 12.1.0.100/16 dev $$SECONDNIC" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC";xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts";xdsh $$CN "cp -rf /tmp/backupnet/network-scripts /etc/sysconfig/";elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -f /etc/network/interfaces.d/$$SECONDNIC /etc/network/interfaces.d/$$SECONDNIC:1";xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:xdsh $$CN "systemctl status NetworkManager >/dev/null 2>/dev/null && which nmcli >/dev/null 2>/dev/null && nmcli con reload" cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi @@ -273,7 +268,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /etc/sysconfig/network-scripts /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/;cp -f /etc/network/interfaces /tmp";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:cp -f /etc/hosts /etc/hosts.bak cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var3=100.;var4=`echo $cnip |awk -F. '{print $2}'`;var5=.0.0;secondnet=$var3$var4$var5;mkdef -t network -o confignetworks_test1 net=$secondnet mask=255.255.0.0 mgtifname=$$SECONDNIC @@ -289,26 +284,26 @@ check:output=~$$CN-$$SECONDNIC-1 check:output=~$$CN-$$SECONDNIC-2 cmd:updatenode $$CN -P confignetwork check:rc==0 -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=100;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var3;if grep SUSE /etc/*release;then xdsh $$CN "grep $second1ip /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep $second1ip /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep $second1ip /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=100;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var3;xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC | grep $second1ip check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cat /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~BOOTPROTO=none|static check:output=~CONNECTED_MODE=yes|CONNECTED_MODE yes -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=101;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var3;if grep SUSE /etc/*release;then xdsh $$CN "grep $second1ip /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep $second1ip /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep $second1ip /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=101;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var3;xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC | grep $second1ip check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cat /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~CONNECTED_MODE=yes|CONNECTED_MODE yes check:output=~BOOTPROTO=none|static cmd:rmdef -t network -o confignetworks_test1 cmd:rmdef -t network -o confignetworks_test2 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -f /etc/network/interfaces.d/$$SECONDNIC /etc/network/interfaces.d/$$SECONDNIC:1";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=100;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;xdsh $$CN "ip addr del $second1ip/16 dev $$SECONDNIC" cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=101;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;xdsh $$CN "ip addr del $second1ip/16 dev $$SECONDNIC" cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 cmd:mv -f /etc/hosts.bak /etc/hosts -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /tmp/backupnet/network-scripts /etc/sysconfig/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:xdsh $$CN "systemctl status NetworkManager >/dev/null 2>/dev/null && which nmcli >/dev/null 2>/dev/null && nmcli con reload" cmd:xdsh $$CN "rm -rf /tmp/backupnet/" @@ -379,7 +374,7 @@ cmd:chtab node=$$CN nics.disable=yes check:rc==0 cmd:updatenode $$CN -P confignetwork check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/sysconfig/network-scripts/ifcfg-$$SECONDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC | grep 11.1.0.100 check:output!~11.1.0.100 cmd:rmdef -t network -o 11_1_0_0-255_255_0_0 check:rc==0 @@ -401,7 +396,7 @@ cmd:chtab node=$$CN nics.disable=1 check:rc==0 cmd:updatenode $$CN -P confignetwork check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/sysconfig/network-scripts/ifcfg-$$SECONDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC | grep 11.1.0.100 check:output!~11.1.0.100 cmd:rmdef -t network -o 11_1_0_0-255_255_0_0 check:rc==0 @@ -447,7 +442,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /etc/sysconfig/network-scripts /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/;cp -f /etc/network/interfaces /tmp";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:mkdef -t network -o 11_1_0_0-255_255_0_0 net=11.1.0.0 mask=255.255.0.0 mgtifname=$$SECONDNIC check:rc==0 @@ -473,21 +468,21 @@ check:output=~$$CN-$$THIRDNIC-2 cmd:updatenode $$CN -P confignetwork check:rc==0 cmd:xdsh $$CN date -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC | grep 11.1.0.100 check:output=~11.1.0.100 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 12.1.0.100 /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep 12.1.0.100 /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 12.1.0.100 /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC | grep 12.1.0.100 check:output=~12.1.0.100 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 13.1.0.200 /etc/sysconfig/network/ifcfg-$$THIRDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep 13.1.0.200 /etc/sysconfig/network-scripts/ifcfg-*$$THIRDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 13.1.0.200 /etc/network/interfaces.d/$$THIRDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$THIRDNIC | grep 13.1.0.200 check:output=~13.1.0.200 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 14.1.0.100 /etc/sysconfig/network/ifcfg-$$THIRDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep 14.1.0.100 /etc/sysconfig/network-scripts/ifcfg-*$$THIRDNIC*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 14.1.0.100 /etc/network/interfaces.d/$$THIRDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$THIRDNIC | grep 14.1.0.100 check:output=~14.1.0.100 cmd:rmdef -t network -o 11_1_0_0-255_255_0_0 cmd:rmdef -t network -o 12_1_0_0-255_255_0_0 cmd:rmdef -t network -o 13_1_0_0-255_255_0_0 cmd:rmdef -t network -o 14_1_0_0-255_255_0_0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$SECONDNIC /etc/network/interfaces.d/$$SECONDNIC:1";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$THIRDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$THIRDNIC /etc/network/interfaces.d/$$THIRDNIC:1";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC check:rc==0 cmd:xdsh $$CN "ip addr del 11.1.0.100/16 dev $$SECONDNIC" cmd:xdsh $$CN "ip addr del 12.1.0.100/16 dev $$SECONDNIC" @@ -496,7 +491,7 @@ cmd:xdsh $$CN "ip addr del 14.1.0.100/16 dev $$THIRDNIC" cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 cmd:mv -f /etc/hosts.bak /etc/hosts -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /tmp/backupnet/network-scripts /etc/sysconfig/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:xdsh $$CN "systemctl status NetworkManager >/dev/null 2>/dev/null && which nmcli >/dev/null 2>/dev/null && nmcli con reload" cmd:xdsh $$CN "rm -rf /tmp/backupnet/" @@ -511,7 +506,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:xdsh $$CN "if grep SUSE /etc/*release;then cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/; elif grep -E \"Red Hat|CentOS|Rocky|Alma\" /etc/*release;then cp -f /etc/sysconfig/network-scripts/ifcfg-* /tmp/backupnet/; elif grep Ubuntu /etc/*release;then cp -f /etc/network/interfaces.d/* /tmp/backupnet/;else echo \"Sorry,this is not supported os\"; fi" +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var3=100.;var4=`echo $cnip |awk -F. '{print $2}'`;var5=.0.0;secondnet=$var3$var4$var5;mkdef -t network -o confignetworks_test1 net=$secondnet mask=255.255.0.0 mgtifname=$$SECONDNIC check:rc==0 cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=100;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;chdef $$CN nicips.$$SECONDNIC=$second1ip nictypes.$$SECONDNIC=Ethernet nicnetworks.$$SECONDNIC=confignetworks_test1 @@ -524,7 +519,7 @@ cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var3=105.;var4=`echo $cnip |awk -F. check:rc==0 cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var3=106.;var4=`echo $cnip |awk -F. '{print $2}'`;var5=.0.0;secondnet=$var3$var4$var5;mkdef -t network -o confignetworks_test7 net=$secondnet mask=255.255.0.0 mgtifname=$$SECONDNIC check:rc==0 -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=100;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;xdsh $$CN "if grep SUSE /etc/*release;then grep $second1ip /etc/sysconfig/network/ifcfg-$$SECONDNIC; elif grep -E \"Red Hat|CentOS|Rocky|Alma\" /etc/*release;then grep $second1ip /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*; elif grep Ubuntu /etc/*release;then grep $second1ip /etc/network/interfaces.d/$$SECONDNIC;else echo \"Sorry,this is not supported os\"; fi" +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=100;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC | grep $second1ip check:rc==0 cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=105;var2=106;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second6ip=$var1$var3;second7ip=$var2$var3;chdef $$CN nicnetworks.$$SECONDNIC.6=confignetworks_test6 nicnetworks.$$SECONDNIC.7=confignetworks_test7 nictypes.$$SECONDNIC.6=vlan nictypes.$$SECONDNIC.7=vlan nicips.$$SECONDNIC.6=$second6ip nicips.$$SECONDNIC.7=$second7ip nicdevices.$$SECONDNIC.6=$$SECONDNIC nicdevices.$$SECONDNIC.7=$$SECONDNIC nictypes.$$SECONDNIC=ethernet check:rc==0 @@ -532,11 +527,11 @@ cmd:updatenode $$CN -P confignetwork check:rc==0 cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=105;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second6ip=$var1$var3; echo $second6ip; xdsh $$CN "if grep SUSE /etc/*release;then grep $second6ip /etc/sysconfig/network/ifcfg-$$SECONDNIC.6;elif grep -E \"Red Hat|CentOS|Rocky|Alma\" /etc/*release;then grep $second6ip /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC.6*; elif grep Ubuntu /etc/*release;then grep $second6ip /etc/network/interfaces.d/$$SECONDNIC.6;else echo \"Sorry,this is not supported os\"; fi" +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=105;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second6ip=$var1$var3; echo $second6ip; xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC.6 | grep $second6ip check:rc==0 -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var2=106;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second7ip=$var2$var3; echo $second6ip; xdsh $$CN "if grep SUSE /etc/*release;then grep $second7ip /etc/sysconfig/network/ifcfg-$$SECONDNIC.7; elif grep -E \"Red Hat|CentOS|Rocky|Alma\" /etc/*release;then grep $second7ip /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC.7*; elif grep Ubuntu /etc/*release;then grep $second7ip /etc/network/interfaces.d/$$SECONDNIC.7;else echo \"Sorry,this is not supported os\"; fi" +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var2=106;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second7ip=$var2$var3; echo $second6ip; xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC.7 | grep $second7ip check:rc==0 -cmd:xdsh $$CN "if grep SUSE /etc/*release;then rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC; elif grep -E \"Red Hat|CentOS|Rocky|Alma\" /etc/*release;then rm -rf /etc/sysconfig/network-scripts/ifcfg-$$SECONDNIC*; elif grep Ubuntu /etc/*release;then rm -rf /etc/network/interfaces.d/$$SECONDNIC;else echo \"Sorry,this is not supported os\"; fi" +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=105;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second6ip=$var1$var3;xdsh $$CN "ip addr del $second6ip/8 dev $$SECONDNIC.6" cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var2=106;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second7ip=$var2$var3;xdsh $$CN "ip addr del $second7ip/8 dev $$SECONDNIC.7" @@ -546,9 +541,9 @@ cmd:rmdef -t network -o confignetworks_test7 cmd:xdsh $$CN "ip link del dev $$SECONDNIC.6" cmd:xdsh $$CN "ip link del dev $$SECONDNIC.7" cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=101;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;xdsh $$CN "ip addr del $second1ip/16 dev $$SECONDNIC" -cmd:xdsh $$CN "if grep SUSE /etc/*release;then rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC.6 /etc/sysconfig/network/ifcfg-$$SECONDNIC.7; elif grep -E \"Red Hat|CentOS|Rocky|Alma\" /etc/*release;then rm -rf /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC.6 /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC.7; elif grep Ubuntu /etc/*release;then rm -rf /etc/network/interfaces.d/$$SECONDNIC.6 /etc/network/interfaces.d/$$SECONDNIC.7;else echo \"Sorry,this is not supported os\"; fi" +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC.6 check:rc==0 -cmd:xdsh $$CN "if grep SUSE /etc/*release;then cp -f /tmp/backupnet/* /etc/sysconfig/network/; elif grep -E \"Red Hat .* 8.*|CentOS .* 8.*\" /etc/*release; then cp -f /tmp/backupnet/* /etc/sysconfig/network-scripts/; nmcli con reload;elif grep -E \"Red Hat|CentOS|Rocky|Alma\" /etc/*release;then cp -f /tmp/backupnet/* /etc/sysconfig/network-scripts/; elif grep Ubuntu /etc/*release;then cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/;else echo \"Sorry,this is not supported os\"; fi" +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/ /tmp/interfaces" check:rc==0 @@ -563,14 +558,14 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:xdsh $$CN "if grep SUSE /etc/*release;then cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/; elif grep -E \"Red Hat|CentOS|Rocky|Alma\" /etc/*release;then cp -f /etc/sysconfig/network-scripts/ifcfg-* /tmp/backupnet/; elif grep Ubuntu /etc/*release;then cp -f /etc/network/interfaces.d/* /tmp/backupnet/;else echo \"Sorry,this is not supported os\"; fi" +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:mkdef -t network -o 11_1_0_0-255_255_0_0 net=11.1.0.0 mask=255.255.0.0 mgtifname=$$SECONDNIC mtu=1500 check:rc==0 cmd:chdef $$CN nicips.$$SECONDNIC=11.1.0.100 nictypes.$$SECONDNIC=Ethernet nicnetworks.$$SECONDNIC=11_1_0_0-255_255_0_0 check:rc==0 cmd:updatenode $$CN -P confignetwork check:rc==0 -cmd:xdsh $$CN "if grep SUSE /etc/*release;then grep 11.1.0.100 /etc/sysconfig/network/ifcfg-$$SECONDNIC; elif grep -E \"Red Hat|CentOS|Rocky|Alma\" /etc/*release;then grep 11.1.0.100 /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*; elif grep Ubuntu /etc/*release;then grep 11.1.0.100 /etc/network/interfaces.d/$$SECONDNIC;else echo \"Sorry,this is not supported os\"; fi" +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC | grep 11.1.0.100 check:output=~11.1.0.100 cmd:chdef $$CN nicips.$$SECONDNIC= nictypes.$$SECONDNIC= nicnetworks.$$SECONDNIC= check:rc==0 @@ -589,11 +584,11 @@ cmd:rmdef -t network -o 11_1_0_0-255_255_0_0 cmd:rmdef -t network -o 60_0_0_0-255_0_0_0 cmd:rmdef -t network -o 70_0_0_0-255_0_0_0 cmd:xdsh $$CN "ip addr del 11.1.0.100/16 dev $$SECONDNIC" -cmd:xdsh $$CN "if grep SUSE /etc/*release;then rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC; elif grep -E \"Red Hat|CentOS|Rocky|Alma\" /etc/*release;then rm -rf /etc/sysconfig/network-scripts/ifcfg-*$$SECONDNIC*; elif grep Ubuntu /etc/*release;then rm -rf /etc/network/interfaces.d/$$SECONDNIC;else echo \"Sorry,this is not supported os\"; fi" +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 -cmd:xdsh $$CN "if grep SUSE /etc/*release;then cp -f /tmp/backupnet/* /etc/sysconfig/network/; elif grep -E \"Red Hat .* 8.*|CentOS .* 8.*|Rocky .* 8.*|AlmaLinux .* 8.*\" /etc/*release; then cp -f /tmp/backupnet/* /etc/sysconfig/network-scripts/; nmcli con reload;elif grep -E \"Red Hat|CentOS\" /etc/*release;then cp -f /tmp/backupnet/* /etc/sysconfig/network-scripts/; elif grep Ubuntu /etc/*release;then cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/;else echo \"Sorry,this is not supported os\"; fi" +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/ /tmp/interfaces" check:rc==0 @@ -608,7 +603,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /etc/sysconfig/network-scripts /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:if grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "if yum -q list bridge-utils ; then yum -y install bridge-utils; fi";fi cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var3=100.;var4=`echo $cnip |awk -F. '{print $2}'`;var5=.0.0;secondnet=$var3$var4$var5;mkdef -t network -o confignetworks_test1 net=$secondnet mask=255.255.0.0 mgtifname=$$SECONDNIC check:rc==0 @@ -632,23 +627,23 @@ cmd:xdsh $$CN "ls /sys/class/net" check:output=~bond0 cmd:xdsh $$CN "cat /sys/class/net/bonding_masters" check:output=~bond0 -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=102;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;bond0ip=$var1$var2;if grep SUSE /etc/*release;then xdsh $$CN "grep $bond0ip /etc/sysconfig/network/ifcfg-bond0"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep $bond0ip /etc/sysconfig/network-scripts/ifcfg-*bond0"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep $bond0ip /etc/network/interfaces.d/bond0";else echo "Sorry,this is not supported os"; fi +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=102;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;bond0ip=$var1$var2;xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show bond0 | grep $bond0ip check:rc==0 cmd:rmdef -t network -o confignetworks_test1 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts/ifcfg-$$SECONDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 cmd:rmdef -t network -o confignetworks_test2 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$THIRDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts/ifcfg-$$THIRDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$THIRDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC check:rc==0 cmd:rmdef -t network -o confignetworks_test3 cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=102;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;bond0ip=$var1$var2;xdsh $$CN "ip addr del $bond0ip/16 dev bond0" cmd:xdsh $$CN "ip link del dev bond0" cmd:xdsh $$CN "echo -bond0 > /sys/class/net/bonding_masters" -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-bond0"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/bond0";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del bond0 check:rc==0 cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /tmp/backupnet/network-scripts /etc/sysconfig/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:xdsh $$CN "systemctl status NetworkManager >/dev/null 2>/dev/null && which nmcli >/dev/null 2>/dev/null && nmcli con reload" cmd:xdsh $$CN "rm -rf /tmp/backupnet/ /tmp/interfaces" @@ -664,7 +659,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network-scripts/ifcfg-* /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:if grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "if yum -q list bridge-utils ; then yum -y install bridge-utils; fi";fi cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var3=100.;var4=`echo $cnip |awk -F. '{print $2}'`;var5=.0.0;secondnet=$var3$var4$var5;mkdef -t network -o confignetworks_test1 net=$secondnet mask=255.255.0.0 mgtifname=$$SECONDNIC check:rc==0 @@ -690,15 +685,15 @@ check:rc!=0 cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=100;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;xdsh $$CN "ip addr del $second1ip/16 dev $$SECONDNIC" cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=101;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;xdsh $$CN "ip addr del $second1ip/16 dev $$THIRDNIC" cmd:rmdef -t network -o confignetworks_test1 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts/ifcfg-$$SECONDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 cmd:rmdef -t network -o confignetworks_test2 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$THIRDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts/ifcfg-$$THIRDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$THIRDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC check:rc==0 cmd:rmdef -t network -o confignetworks_test3 cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network-scripts/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/ /tmp/interfaces" check:rc==0 @@ -713,7 +708,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /etc/sysconfig/network-scripts /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/;cp -f /etc/network/interfaces /tmp";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:if grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "if yum -q list bridge-utils ; then yum -y install bridge-utils; fi";fi cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var3=100.;var4=`echo $cnip |awk -F. '{print $2}'`;var5=.0.0;secondnet=$var3$var4$var5;mkdef -t network -o confignetworks_test1 net=$secondnet mask=255.255.0.0 mgtifname=$$SECONDNIC mtu=1500 check:rc==0 @@ -735,9 +730,9 @@ cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=102;var2=103;var3=`echo $cnip check:rc==0 cmd:updatenode $$CN -P confignetwork check:rc==0 -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=102;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;bond2ip=$var1$var3;if grep SUSE /etc/*release;then xdsh $$CN "grep $bond2ip /etc/sysconfig/network/ifcfg-bond0.2"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep $bond2ip /etc/sysconfig/network-scripts/ifcfg-*bond0.2*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep $bond2ip /etc/network/interfaces.d/bond0.2";else echo "Sorry,this is not supported os"; fi +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=102;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;bond2ip=$var1$var3;xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show bond0.2 | grep $bond2ip check:rc==0 -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var2=103;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;bond3ip=$var2$var3;if grep SUSE /etc/*release;then xdsh $$CN "grep $bond3ip /etc/sysconfig/network/ifcfg-bond0.3"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep $bond3ip /etc/sysconfig/network-scripts/ifcfg-*bond0.3*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep $bond3ip /etc/network/interfaces.d/bond0.3";else echo "Sorry,this is not supported os"; fi +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var2=103;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;bond3ip=$var2$var3;xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show bond0.3 | grep $bond3ip check:rc==0 cmd:xdsh $$CN "ls /sys/class/net" check:output=~bond0 @@ -746,10 +741,10 @@ check:output=~bond0.3 cmd:xdsh $$CN "cat /sys/class/net/bonding_masters" check:output=~bond0 cmd:rmdef -t network -o confignetworks_test1 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 cmd:rmdef -t network -o confignetworks_test2 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$THIRDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$THIRDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC check:rc==0 cmd:rmdef -t network -o confignetworks_test3 cmd:rmdef -t network -o confignetworks_test4 @@ -761,11 +756,11 @@ cmd:xdsh $$CN "ip link del dev bond0" cmd:xdsh $$CN "ip link del dev bond0.2" cmd:xdsh $$CN "ip link del dev bond0.3" cmd:xdsh $$CN "echo -bond0 > /sys/class/net/bonding_masters" -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-bond0 /etc/sysconfig/network/ifcfg-bond0.2 /etc/sysconfig/network/ifcfg-bond0.3"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/bond0 /etc/sysconfig/network/ifcfg-bond0.2 /etc/sysconfig/network/ifcfg-bond0.3";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del bond0 bond0.2 bond0.3 check:rc==0 cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /tmp/backupnet/network-scripts /etc/sysconfig/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:xdsh $$CN "systemctl status NetworkManager >/dev/null 2>/dev/null && which nmcli >/dev/null 2>/dev/null && nmcli con reload" cmd:xdsh $$CN "rm -rf /tmp/backupnet/ /tmp/interfaces" @@ -781,7 +776,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /etc/sysconfig/network-scripts /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:if grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "if yum -q list bridge-utils ; then yum -y install bridge-utils; fi";fi cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var3=100.;var4=`echo $cnip |awk -F. '{print $2}'`;var5=.0.0;secondnet=$var3$var4$var5;mkdef -t network -o confignetworks_test1 net=$secondnet mask=255.255.0.0 mgtifname=$$SECONDNIC check:rc==0 @@ -807,13 +802,13 @@ cmd:xdsh $$CN "ls /sys/class/net" check:output=~br0 cmd:xdsh $$CN "cat /sys/class/net/bonding_masters" check:output=~bond0 -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=103;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;br0ip=$var1$var2;if grep SUSE /etc/*release;then xdsh $$CN "grep $br0ip /etc/sysconfig/network/ifcfg-br0"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep $br0ip /etc/sysconfig/network-scripts/ifcfg-*br0"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep $br0ip /etc/network/interfaces.d/br0";else echo "Sorry,this is not supported os"; fi +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=103;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;br0ip=$var1$var2;xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show br0 | grep $br0ip check:rc==0 cmd:rmdef -t network -o confignetworks_test1 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts/ifcfg-$$SECONDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 cmd:rmdef -t network -o confignetworks_test2 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$THIRDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts/ifcfg-$$THIRDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$THIRDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC check:rc==0 cmd:rmdef -t network -o confignetworks_test cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=103;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;br0ip=$var1$var2;xdsh $$CN "ip addr del $br0ip/16 dev br0" @@ -821,11 +816,11 @@ cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=101;var2=`echo $cnip |sed -r ' cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=102;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;second1ip=$var1$var2;xdsh $$CN "ip addr del $second1ip/16 dev $$THIRDNIC" cmd:xdsh $$CN "ip link del dev br0" cmd:xdsh $$CN "echo -bond0 > /sys/class/net/bonding_masters" -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-br0"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/br0";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del br0 check:rc==0 cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /tmp/backupnet/network-scripts /etc/sysconfig/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:xdsh $$CN "systemctl status NetworkManager >/dev/null 2>/dev/null && which nmcli >/dev/null 2>/dev/null && nmcli con reload" cmd:xdsh $$CN "rm -rf /tmp/backupnet/ /tmp/interfaces" cmd:chtab -d node=$$CN nics @@ -839,7 +834,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /etc/sysconfig/network-scripts /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/;cp -f /etc/network/interfaces /tmp";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:if grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "if yum -q list bridge-utils ; then yum -y install bridge-utils; fi";fi cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var3=100.;var4=`echo $cnip |awk -F. '{print $2}'`;var5=.0.0;secondnet=$var3$var4$var5;mkdef -t network -o confignetworks_test1 net=$secondnet mask=255.255.0.0 mgtifname=$$SECONDNIC check:rc==0 @@ -860,9 +855,9 @@ cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=102;var2=103;var3=`echo $cnip check:rc==0 cmd:updatenode $$CN -P confignetwork -t 1800 check:rc==0 -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=102;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;br22ip=$var1$var3;if grep SUSE /etc/*release;then xdsh $$CN "grep $br22ip /etc/sysconfig/network/ifcfg-br22"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep $br22ip /etc/sysconfig/network-scripts/ifcfg-*br22*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep $br22ip /etc/network/interfaces.d/br22";else echo "Sorry,this is not supported os"; fi +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=102;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;br22ip=$var1$var3;xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show br22 | grep $br22ip check:rc==0 -cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=103;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;br33ip=$var1$var3;if grep SUSE /etc/*release;then xdsh $$CN "grep $br33ip /etc/sysconfig/network/ifcfg-br33"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep $br33ip /etc/sysconfig/network-scripts/ifcfg-*br33*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep $br33ip /etc/network/interfaces.d/br33";else echo "Sorry,this is not supported os"; fi +cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=103;var3=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;br33ip=$var1$var3;xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show br33 | grep $br33ip check:rc==0 cmd:xdsh $$CN "ls /sys/class/net" check:output=~br22 @@ -873,7 +868,7 @@ cmd:xdsh $$CN "ip addr show bond0.3" cmd:xdsh $$CN "ip addr show br33" cmd:rmdef -t network -o confignetworks_test1 cmd:rmdef -t network -o confignetworks_test2 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 cmd:rmdef -t network -o confignetworks_test3 cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=102;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;br22ip=$var1$var2;xdsh $$CN "ip addr del $br22ip/16 dev br22" @@ -887,11 +882,11 @@ cmd:xdsh $$CN "ip link del dev bond0" cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=100;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;secondip=$var1$var2;xdsh $$CN "ip addr del $secondip/16 dev $$SECONDNIC" cmd:cnip=__GETNODEATTR($$CN,ip)__;echo $cnip;var1=101;var2=`echo $cnip |sed -r 's/[^\.]{1,3}(\..*)/\1/'`;secondip=$var1$var2;xdsh $$CN "ip addr del $secondip/16 dev $$THIRDNIC" cmd:xdsh $$CN "echo -bond0 > /sys/class/net/bonding_masters" -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-bond0 /etc/sysconfig/network/ifcfg-bond0.2 /etc/sysconfig/network/ifcfg-bond0.3 /etc/sysconfig/network/ifcfg-br22 /etc/sysconfig/network/ifcfg-br33"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/bond0 /etc/network/interfaces.d/bond0.2 /etc/network/interfaces.d/bond0.3 /etc/network/interfaces.d/br22 /etc/network/interfaces.d/br33";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del bond0 bond0.2 bond0.3 br22 br33 check:rc==0 cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /tmp/backupnet/network-scripts /etc/sysconfig/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:xdsh $$CN "systemctl status NetworkManager >/dev/null 2>/dev/null && which nmcli >/dev/null 2>/dev/null && nmcli con reload" cmd:xdsh $$CN "rm -rf /tmp/backupnet/ /tmp/interfaces" @@ -906,7 +901,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /etc/sysconfig/network-scripts /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/;cp -f /etc/network/interfaces /tmp";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:if grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "if yum -q list bridge-utils ; then yum -y install bridge-utils; fi";fi cmd:mkdef -t network -o 11_1_0_0-255_255_0_0 net=11.1.0.0 mask=255.255.0.0 mgtifname=$$SECONDNIC check:rc==0 @@ -924,25 +919,25 @@ cmd:chdef $$CN nicdevices.br22=bond0.2 nicdevices.br33=bond0.3 nictypes.br22=bri check:rc==0 cmd:updatenode $$CN -P "confignetwork -s" check:rc==0 -cmd:installnic=`xdsh $$CN ip addr |grep __GETNODEATTR($$CN,ip)__|awk -F " " '{print $NF}'`; if grep SUSE /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network/ifcfg-$installnic"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cat /etc/sysconfig/network-scripts/ifcfg-*$installnic*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cat /etc/network/interfaces.d/*";else echo "Sorry,this is not supported os"; fi +cmd:installnic=`xdsh $$CN ip addr |grep __GETNODEATTR($$CN,ip)__|awk -F " " '{print $NF}'`; xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $installnic check:rc==0 check:output=~__GETNODEATTR($$CN,ip)__ check:output=~BOOTPROTO=none|static cmd:xdsh $$CN "cat /sys/class/net/bonding_masters" check:output=~bond0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 30.5.106.8 /etc/sysconfig/network/ifcfg-br22"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep 30.5.106.8 /etc/sysconfig/network-scripts/ifcfg-*br22*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 30.5.106.8 /etc/network/interfaces.d/br22";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show br22 | grep 30.5.106.8 check:output=~30.5.106.8 check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 40.5.106.8 /etc/sysconfig/network/ifcfg-br33"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "grep 40.5.106.8 /etc/sysconfig/network-scripts/ifcfg-*br33*"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 40.5.106.8 /etc/network/interfaces.d/br33";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show br33 | grep 40.5.106.8 check:output=~40.5.106.8 check:rc==0 cmd:xdsh $$CN "ls /sys/class/net" check:output=~br22 check:output=~br33 cmd:rmdef -t network -o 11_1_0_0-255_255_0_0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC cmd:rmdef -t network -o 12_1_0_0-255_255_0_0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$THIRDNIC"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$THIRDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC cmd:rmdef -t network -o 30_5_0_0-255_255_0_0 cmd:xdsh $$CN "ip addr del 30.5.106.8/16 dev br22" cmd:xdsh $$CN "ip link del dev br22" @@ -954,7 +949,7 @@ cmd:xdsh $$CN "ip link del dev bond0.3" cmd:xdsh $$CN "ip link del dev bond0" cmd:xdsh $$CN "ip addr del 11.1.0.100/16 dev $$SECONDNIC" cmd:xdsh $$CN "ip addr del 12.1.0.100/16 dev $$THIRDNIC" -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-bond0 /etc/sysconfig/network/ifcfg-bond0.2 /etc/sysconfig/network/ifcfg-bond0.3 /etc/sysconfig/network/ifcfg-br22 /etc/sysconfig/network/ifcfg-br33";xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/";elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts";xdsh $$CN "cp -rf /tmp/backupnet/network-scripts /etc/sysconfig/";elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/bond0 /etc/network/interfaces.d/bond0.2 /etc/network/interfaces.d/bond0.3 /etc/network/interfaces.d/br22 /etc/network/interfaces.d/br33";xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:xdsh $$CN "systemctl status NetworkManager >/dev/null 2>/dev/null && which nmcli >/dev/null 2>/dev/null && nmcli con reload" cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi @@ -973,7 +968,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network-scripts/ifcfg-* /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:if grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "if yum -q list bridge-utils ; then yum -y install bridge-utils; fi";fi cmd:mkdef -t network -o 30_5_0_0-255_255_0_0 net=30.5.0.0 mask=255.255.0.0 check:rc==0 @@ -994,7 +989,7 @@ cmd:xdsh $$CN "ip link del dev bond0.3" cmd:xdsh $$CN "ip link del dev bond0" cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network-scripts/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/;cp -f /tmp/interfaces /etc/network/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:xdsh $$CN "rm -rf /tmp/backupnet/ /tmp/interfaces" cmd:chtab -d node=$$CN nics end @@ -1006,7 +1001,7 @@ cmd:lsdef $$CN -z && lsdef -l $$CN -z >/tmp/CN.stanza check:rc==0 cmd:xdsh $$CN "mkdir -p /tmp/backupnet" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS|Rocky|Alma" /etc/*release;then xdsh $$CN "cp -rf /etc/sysconfig/network-scripts /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/;cp -f /etc/network/interfaces /tmp";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:xdsh $$CN "ps -A --format pid,comm | awk '/dhclient/ { print \$1 }' | xargs -r -n 1 kill" cmd:xdsh $$CN "ps -A --format pid,comm | awk '/dhclient/ { print \$1 }' | xargs -r -n 1 kill -KILL" @@ -1018,7 +1013,7 @@ cmd:xdsh $$CN date check:rc==0 # Clean up cmd:test -e /tmp/CN.stanza && rmdef $$CN && mkdef -z /dev/null 2>/dev/null && which nmcli >/dev/null 2>/dev/null && nmcli con reload" diff --git a/xCAT-test/autotest/testcase/confignetwork/cases1 b/xCAT-test/autotest/testcase/confignetwork/cases1 index 184e432b7..18dade3d1 100644 --- a/xCAT-test/autotest/testcase/confignetwork/cases1 +++ b/xCAT-test/autotest/testcase/confignetwork/cases1 @@ -6,7 +6,7 @@ check:rc==0 cmd:xdsh $$CN "rm -rf /tmp/backupnet/" cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep -E "Red Hat|CentOS" /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network-scripts/ifcfg-* /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:mkdef -t network -o 30_0_0_0-255_255_0_0 net=30.0.0.0 mask=255.0.0.0 mgtifname=$$SECONDNIC check:rc==0 @@ -26,22 +26,22 @@ check:output=~$$CN-$$SECONDNIC check:output=~$$CN-$$THIRDNIC cmd:updatenode $$CN -P confignetwork check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 30.0.0.9 /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS" /etc/*release;then xdsh $$CN "grep 30.0.0.9 /etc/sysconfig/network-scripts/ifcfg-$$SECONDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 30.0.0.9 /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC | grep 30.0.0.9 check:output=~30.0.0.9 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 40.0.0.8 /etc/sysconfig/network/ifcfg-$$THIRDNIC"; elif grep -E "Red Hat|CentOS" /etc/*release;then xdsh $$CN "grep 40.0.0.8 /etc/sysconfig/network-scripts/ifcfg-$$THIRDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 40.0.0.8 /etc/network/interfaces.d/$$THIRDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$THIRDNIC | grep 40.0.0.8 check:output=~40.0.0.8 cmd:rmdef -t network -o 30_0_0_0-255_255_0_0 cmd:rmdef -t network -o 40_0_0_0-255_255_0_0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$SECONDNIC"; elif grep -E "Red Hat|CentOS" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts/ifcfg-$$SECONDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$SECONDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-$$THIRDNIC"; elif grep -E "Red Hat|CentOS" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts/ifcfg-$$THIRDNIC"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/$$THIRDNIC";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC check:rc==0 cmd:xdsh $$CN "ip addr del 30.0.0.9/8 dev $$SECONDNIC" cmd:xdsh $$CN "ip addr del 40.0.0.8/8 dev $$THIRDNIC" cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 cmd:mv -f /etc/hosts.bak /etc/hosts -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep -E "Red Hat|CentOS" /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network-scripts/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup cmd:xdsh $$CN "rm -rf /tmp/backupnet/" end diff --git a/xCAT-test/autotest/testcase/confignics/cases0 b/xCAT-test/autotest/testcase/confignics/cases0 index 9ac73aeb7..382035108 100644 --- a/xCAT-test/autotest/testcase/confignics/cases0 +++ b/xCAT-test/autotest/testcase/confignics/cases0 @@ -9,11 +9,11 @@ cmd:chdef $$CN nicips.$$SECONDNIC=100.1.0.100 nictypes.$$SECONDNIC=Ethernet nicn check:rc==0 cmd:updatenode $$CN -P confignics check:rc==0 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~100.1.0.100 check:output=~MTU=1501 cmd:rmdef -t network -o 100_1_0_0-255_255_0_0 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 end @@ -33,18 +33,18 @@ cmd:chdef $$CN nicips.$$THIRDNIC=200.1.0.100 nictypes.$$THIRDNIC=Ethernet nicnet check:rc==0 cmd:updatenode $$CN -P confignics check:rc==0 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~100.1.0.100 check:output!~dhcp check:output=~MTU=1501 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$THIRDNIC; else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$THIRDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$THIRDNIC check:output=~200.1.0.100 check:output!~dhcp check:output=~MTU=1502 cmd:rmdef -t network -o 100_1_0_0-255_255_0_0 cmd:rmdef -t network -o 200_1_0_0-255_255_0_0 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$THIRDNIC; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$THIRDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 end @@ -68,28 +68,28 @@ cmd:chdef $$CN nicips.$$THIRDNIC="13.1.0.100|14.1.0.100" nictypes.$$THIRDNIC=Eth check:rc==0 cmd:updatenode $$CN -P confignics check:rc==0 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~11.1.0.100 check:output!~dhcp check:output=~MTU=1501 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$SECONDNIC:1 ; elif [ "$$OS" = "rhels" ]; then xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$SECONDNIC:1;else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~12.1.0.100 check:output!~dhcp -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$THIRDNIC; else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$THIRDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$THIRDNIC check:output=~13.1.0.100 check:output!~dhcp check:output=~MTU=1503 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$THIRDNIC:1 ; elif [ "$$OS" = "rhels" ]; then xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$THIRDNIC:1;else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$THIRDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$THIRDNIC check:output=~14.1.0.100 check:output!~dhcp cmd:rmdef -t network -o 11_1_0_0-255_255_0_0 cmd:rmdef -t network -o 12_1_0_0-255_255_0_0 cmd:rmdef -t network -o 13_1_0_0-255_255_0_0 cmd:rmdef -t network -o 14_1_0_0-255_255_0_0 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$SECONDNIC:1; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$SECONDNIC:1; fi -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$THIRDNIC; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$THIRDNIC; fi -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$THIRDNIC:1; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$THIRDNIC:1; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 end @@ -122,28 +122,28 @@ check:output=~$$CN-$$THIRDNIC-1 check:output=~$$CN-$$THIRDNIC-2 cmd:updatenode $$CN -P confignics check:rc==0 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~11.1.0.100 check:output!~dhcp output=~MTU=1501 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$SECONDNIC:1 ; elif [ "$$OS" = "rhels" ]; then xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$SECONDNIC:1;else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~12.1.0.100 check:output!~dhcp -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$THIRDNIC; else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$THIRDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$THIRDNIC check:output=~13.1.0.100 check:output!~dhcp output=~MTU=1503 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$THIRDNIC:1 ; elif [ "$$OS" = "rhels" ]; then xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$THIRDNIC:1;else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$THIRDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$THIRDNIC check:output=~14.1.0.100 check:output!~dhcp cmd:rmdef -t network -o 11_1_0_0-255_255_0_0 cmd:rmdef -t network -o 12_1_0_0-255_255_0_0 cmd:rmdef -t network -o 13_1_0_0-255_255_0_0 cmd:rmdef -t network -o 14_1_0_0-255_255_0_0 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$SECONDNIC:1; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$SECONDNIC:1; fi -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$THIRDNIC; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$THIRDNIC; fi -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$THIRDNIC:1; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$THIRDNIC:1; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC cmd:cp /etc/hosts.backup /etc/hosts cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 @@ -175,16 +175,16 @@ check:output=~aliases2-1 check:output=~aliases2-2 cmd:updatenode $$CN -P confignics check:rc==0 -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~11.1.0.100 check:output!~dhcp -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$SECONDNIC:1 ; elif [ "$$OS" = "rhels" ]; then xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$SECONDNIC:1;else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output=~12.1.0.100 check:output!~dhcp -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$THIRDNIC; else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$THIRDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$THIRDNIC check:output=~13.1.0.100 check:output!~dhcp -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$THIRDNIC:1 ; elif [ "$$OS" = "rhels" ]; then xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$THIRDNIC:1;else xdsh $$CN cat /etc/sysconfig/network*/ifcfg-$$THIRDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$THIRDNIC check:output=~14.1.0.100 check:output!~dhcp cmd:rmdef -t network -o 11_1_0_0-255_255_0_0 @@ -195,10 +195,10 @@ cmd:xdsh $$CN "ip addr del 11.1.0.100/16 dev $$SECONDNIC" cmd:xdsh $$CN "ip addr del 12.1.0.100/16 dev $$SECONDNIC" cmd:xdsh $$CN "ip addr del 13.1.0.100/16 dev $$THIRDNIC" cmd:xdsh $$CN "ip addr del 14.1.0.100/16 dev $$THIRDNIC" -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$SECONDNIC; fi -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$SECONDNIC:1; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$SECONDNIC:1; fi -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$THIRDNIC; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$THIRDNIC; fi -cmd:if [ "$$OS" = "ubuntu" ];then xdsh $$CN rm -rf /etc/network/interfaces.d/$$THIRDNIC:1; else xdsh $$CN rm -rf /etc/sysconfig/network*/ifcfg-$$THIRDNIC:1; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$SECONDNIC +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del $$THIRDNIC cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 end @@ -217,7 +217,7 @@ cmd:chtab node=$$CN nics.disable=yes check:rc==0 cmd:updatenode $$CN -P confignics check:rc==0 -cmd:if [ "$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN cat /etc/sysconfig/network-scripts/ifcfg-$$SECONDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output!~100.1.0.100 output=~MTU=1501 cmd:rmdef -t network -o 100_1_0_0-255_255_0_0 @@ -240,7 +240,7 @@ cmd:chtab node=$$CN nics.disable=1 check:rc==0 cmd:updatenode $$CN -P confignics check:rc==0 -cmd:if [ "$OS" = "ubuntu" ];then xdsh $$CN cat /etc/network/interfaces.d/$$SECONDNIC; else xdsh $$CN cat /etc/sysconfig/network-scripts/ifcfg-$$SECONDNIC; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $$SECONDNIC check:output!~100.1.0.100 output=~MTU=1501 cmd:rmdef -t network -o 100_1_0_0-255_255_0_0 @@ -265,7 +265,7 @@ check:rc==0 cmd:updatenode $$CN "confignics -s" check:rc==0 check:output!~invalid -cmd:if cat /etc/*release |grep "Red Hat" >/dev/null ;then if [[ `xdsh $$CN cat /etc/sysconfig/network-scripts/ifcfg-* ` =~ "IPADDR=$$NODEIP" ]] && [[ `xdsh $$CN cat /etc/sysconfig/network-scripts/ifcfg-* ` =~ "MTU=1496" ]] ; then exit 0 ;else exit 1 ; fi ;elif cat /etc/*release |grep SUSE >/dev/null ; then if [[ `xdsh $$CN cat /etc/sysconfig/network/ifcfg-* ` =~ "IPADDR=$$NODEIP" ]] && [[ `xdsh $$CN cat /etc/sysconfig/network/ifcfg-* ` =~ "MTU=1496" ]] ;then exit 0;else exit 1;fi;fi +cmd:instnic=$(xdsh $$CN ip addr|grep $$NODEIP|awk -F" " '{print $NF}');out=$(xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show $instnic);echo "$out"|grep -q "IPADDR=$$NODEIP" && echo "$out"|grep -q "MTU=1496" && exit 0 || exit 1 check:rc==0 cmd:/opt/xcat/share/xcat/tools/autotest/testcase/confignics/mtu_set_clean C 1496 check:rc==0 diff --git a/xCAT-test/autotest/testcase/discovery/discovery_test b/xCAT-test/autotest/testcase/discovery/discovery_test index 00b1314bd..6c2b94b77 100755 --- a/xCAT-test/autotest/testcase/discovery/discovery_test +++ b/xCAT-test/autotest/testcase/discovery/discovery_test @@ -477,9 +477,9 @@ sub set_up_test_env_for_node_discovery { "makehosts -d $discovery_target_node", "rm -f /var/log/consoles/node-*", "rmdef $discovery_target_node", - "rm -f /var/lib/dhcp/*", - "touch /var/lib/dhcpd/dhcpd.leases", - "systemctl restart dhcpd", + "rm -f /var/lib/dhcp/* /var/lib/kea/kea-leases4.csv 2>/dev/null; true", + "if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then true; else mkdir -p /var/lib/dhcpd; touch /var/lib/dhcpd/dhcpd.leases; fi", + "if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then systemctl restart kea-dhcp4; elif cat /etc/*release | grep -qi ubuntu; then service isc-dhcp-server restart; else service dhcpd restart; fi", "$predef_node_cmd", "makehosts -a $discovery_prodefine_node_name_in_automation", "makedns $discovery_prodefine_node_name_in_automation"); diff --git a/xCAT-test/autotest/testcase/get_install_disk/fresh_install_disk b/xCAT-test/autotest/testcase/get_install_disk/fresh_install_disk index 488a0b6f4..7d1103be9 100644 --- a/xCAT-test/autotest/testcase/get_install_disk/fresh_install_disk +++ b/xCAT-test/autotest/testcase/get_install_disk/fresh_install_disk @@ -19,7 +19,7 @@ check:rc==0 cmd:makedhcp -a check:rc==0 cmd:sleep 10 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:if cat /etc/*release |grep "7.2" |grep "Red Hat">/dev/null;then mkdef $$STATELITE -u profile=compute provmethod=statelite osvers=rhels7.2;else mkdef $$STATELITE -u profile=compute provmethod=statelite; fi diff --git a/xCAT-test/autotest/testcase/get_install_disk/reinstall_disk b/xCAT-test/autotest/testcase/get_install_disk/reinstall_disk index a894df7f7..8e096114f 100644 --- a/xCAT-test/autotest/testcase/get_install_disk/reinstall_disk +++ b/xCAT-test/autotest/testcase/get_install_disk/reinstall_disk @@ -19,7 +19,7 @@ check:rc==0 cmd:makedhcp -a check:rc==0 cmd:sleep 10 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:if cat /etc/*release |grep "7.2" |grep "Red Hat">/dev/null;then mkdef $$STATELITE -u profile=compute provmethod=statelite osvers=rhels7.2;else mkdef $$STATELITE -u profile=compute provmethod=statelite; fi diff --git a/xCAT-test/autotest/testcase/infiniband/cases0 b/xCAT-test/autotest/testcase/infiniband/cases0 index 6d8c554a1..984d4c319 100644 --- a/xCAT-test/autotest/testcase/infiniband/cases0 +++ b/xCAT-test/autotest/testcase/infiniband/cases0 @@ -19,7 +19,7 @@ cmd:lsdef $$CN;if [ $? -eq 0 ]; then lsdef -l $$CN -z >/tmp/CN.stanza ;fi check:rc==0 cmd:xdsh $$CN "mkdir -p /tmp/backupnet/" check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network/ifcfg-* /tmp/backupnet/"; elif grep "Red Hat" /etc/*release;then xdsh $$CN "cp -f /etc/sysconfig/network-scripts/ifcfg-* /tmp/backupnet/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /etc/network/interfaces.d/* /tmp/backupnet/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh backup check:rc==0 cmd:mkdef -t network -o 11_1_0_0-255_255_0_0 net=11.1.0.0 mask=255.255.0.0 mgtifname=ib0 check:rc==0 @@ -27,17 +27,17 @@ cmd:chdef $$CN nicips.ib0=11.1.0.100 nictypes.ib0=infiniband nicnetworks.ib0=11_ check:rc==0 cmd:updatenode $$CN -P confignetwork check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/sysconfig/network/ifcfg-ib0"; elif grep "Red Hat" /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/sysconfig/network-scripts/ifcfg-ib0"; elif grep Ubuntu /etc/*release;then xdsh $$CN "grep 11.1.0.100 /etc/network/interfaces.d/ib0";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh show ib0 | grep 11.1.0.100 check:output=~11.1.0.100 cmd:xdsh $$CN "ping -c 1 11.1.0.100" check:rc==0 # Clean up cmd:xdsh $$CN "ip addr del 11.1.0.100/16 dev ib0" cmd:rmdef -t network -o 11_1_0_0-255_255_0_0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network/ifcfg-ib0"; elif grep "Red Hat" /etc/*release;then xdsh $$CN "rm -rf /etc/sysconfig/network-scripts/ifcfg-ib0"; elif grep Ubuntu /etc/*release;then xdsh $$CN "rm -rf /etc/network/interfaces.d/ib0";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh del ib0 check:rc==0 cmd:if [ -e /tmp/CN.stanza ]; then rmdef $$CN; cat /tmp/CN.stanza | mkdef -z; rm -rf /tmp/CN.stanza; fi check:rc==0 -cmd:if grep SUSE /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network/"; elif grep "Red Hat" /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/sysconfig/network-scripts/"; elif grep Ubuntu /etc/*release;then xdsh $$CN "cp -f /tmp/backupnet/* /etc/network/interfaces.d/";else echo "Sorry,this is not supported os"; fi +cmd:xdsh $$CN -e /opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/nic_cfg.sh restore cmd:xdsh $$CN "rm -rf /tmp/backupnet/" end diff --git a/xCAT-test/autotest/testcase/installation/SN_diskless_setup_case b/xCAT-test/autotest/testcase/installation/SN_diskless_setup_case index 371584a04..9efe3f987 100644 --- a/xCAT-test/autotest/testcase/installation/SN_diskless_setup_case +++ b/xCAT-test/autotest/testcase/installation/SN_diskless_setup_case @@ -22,7 +22,7 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$SN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi check:output=~$$SN cmd:chdef -t node $$SN groups=service,all check:rc==0 @@ -92,7 +92,7 @@ check:rc==0 check:output=~Provision node\(s\)\: $$SN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:ping $$SN -c 3 check:rc==0 diff --git a/xCAT-test/autotest/testcase/installation/SN_setup_case b/xCAT-test/autotest/testcase/installation/SN_setup_case index 68ceac5d6..97447b6df 100644 --- a/xCAT-test/autotest/testcase/installation/SN_setup_case +++ b/xCAT-test/autotest/testcase/installation/SN_setup_case @@ -24,7 +24,7 @@ check:rc==0 cmd:makedhcp -a check:rc==0 cmd:sleep 2 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat\|Rocky\|AlmaLinux" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$SN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat\|Rocky\|AlmaLinux" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi check:output=~$$SN cmd:chdef -t node $$SN groups=service,all check:rc==0 @@ -64,7 +64,7 @@ cmd:/opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/retry_install.sh $$S check:rc==0 check:output=~Provision node\(s\)\: $$SN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:ping $$SN -c 3 check:rc==0 diff --git a/xCAT-test/autotest/testcase/installation/reg_linux_diskfull_installation_flat b/xCAT-test/autotest/testcase/installation/reg_linux_diskfull_installation_flat index 199fcabaa..a9c2bb874 100644 --- a/xCAT-test/autotest/testcase/installation/reg_linux_diskfull_installation_flat +++ b/xCAT-test/autotest/testcase/installation/reg_linux_diskfull_installation_flat @@ -44,7 +44,7 @@ check:rc==0 cmd:/opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/retry_install.sh $$CN __GETNODEATTR($$CN,os)__-__GETNODEATTR($$CN,arch)__-install-compute check:rc==0 check:output=~Provision node\(s\)\: $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:ping $$CN -c 3 check:rc==0 check:output=~64 bytes from $$CN diff --git a/xCAT-test/autotest/testcase/installation/reg_linux_diskfull_installation_hierarchy b/xCAT-test/autotest/testcase/installation/reg_linux_diskfull_installation_hierarchy index 194fdd9f2..7b3680355 100644 --- a/xCAT-test/autotest/testcase/installation/reg_linux_diskfull_installation_hierarchy +++ b/xCAT-test/autotest/testcase/installation/reg_linux_diskfull_installation_hierarchy @@ -55,7 +55,7 @@ cmd:/opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/retry_install.sh $$C check:rc==0 check:output=~Provision node\(s\)\: $$CN -cmd:xdsh $$SN "if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi" +cmd:xdsh $$SN "if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi" cmd:if [[ "__GETNODEATTR($$CN,arch)__" =~ "ppc" ]]; then sleep 120;elif [[ "__GETNODEATTR($$CN,arch)__" =~ "x86_64" ]];then sleep 200;else sleep 180;fi cmd:ping $$CN -c 3 diff --git a/xCAT-test/autotest/testcase/installation/reg_linux_diskless_installation_flat b/xCAT-test/autotest/testcase/installation/reg_linux_diskless_installation_flat index 43824d94e..e49f7d008 100644 --- a/xCAT-test/autotest/testcase/installation/reg_linux_diskless_installation_flat +++ b/xCAT-test/autotest/testcase/installation/reg_linux_diskless_installation_flat @@ -78,7 +78,7 @@ cmd:/opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/retry_install.sh $$CN check:rc==0 check:output=~Provision node\(s\)\: $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:ping $$CN -c 3 check:rc==0 @@ -178,7 +178,7 @@ cmd:/opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/retry_install.sh $$C check:rc==0 check:output=~Provision node\(s\)\: $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:ping $$CN -c 3 check:rc==0 diff --git a/xCAT-test/autotest/testcase/installation/reg_linux_diskless_installation_hierarchy b/xCAT-test/autotest/testcase/installation/reg_linux_diskless_installation_hierarchy index 655c56158..5b6d56c03 100644 --- a/xCAT-test/autotest/testcase/installation/reg_linux_diskless_installation_hierarchy +++ b/xCAT-test/autotest/testcase/installation/reg_linux_diskless_installation_hierarchy @@ -34,7 +34,7 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:service dhcpd restart +cmd:if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then systemctl restart kea-dhcp4; elif cat /etc/*release | grep -qi ubuntu; then service isc-dhcp-server restart; else service dhcpd restart; fi check:rc==0 cmd:a=0;while true; do [ $a -eq 100 ] && exit 1;output=$(makedhcp -q $$CN);[ $? -ne 0 ] && exit 1;echo $output|grep $$CN 2>/dev/null && exit 0;a=$[$a+1];sleep 1;done check:rc==0 @@ -62,7 +62,7 @@ cmd:/opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/retry_install.sh $$C check:rc==0 check:output=~Provision node\(s\)\: $$CN -cmd:xdsh $$SN "if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi" +cmd:xdsh $$SN "if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi" cmd:ping $$CN -c 3 check:rc==0 @@ -139,7 +139,7 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:service dhcpd restart +cmd:if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then systemctl restart kea-dhcp4; elif cat /etc/*release | grep -qi ubuntu; then service isc-dhcp-server restart; else service dhcpd restart; fi check:rc==0 cmd:a=0;while true; do [ $a -eq 100 ] && exit 1;output=$(makedhcp -q $$CN);[ $? -ne 0 ] && exit 1;echo $output|grep $$CN 2>/dev/null && exit 0;a=$[$a+1];sleep 1;done check:rc==0 @@ -180,7 +180,7 @@ cmd:/opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/retry_install.sh $$C check:rc==0 check:output=~Provision node\(s\)\: $$CN -cmd:xdsh $$SN "if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi" +cmd:xdsh $$SN "if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi" cmd:ping $$CN -c 3 check:rc==0 diff --git a/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_flat b/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_flat index d3025d42e..11bc387c8 100644 --- a/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_flat +++ b/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_flat @@ -27,7 +27,7 @@ check:rc==0 #On SLES remove rh dependency dirs to free up disk space cmd:if [[ "$$OS" =~ "sle" ]]; then rm -rf /xcat-dep/rh*; fi -cmd:if cat /etc/*release |grep SUSE >/dev/null; then cp /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile_sles.csv /tmp/litefile.csv;tabrestore /tmp/litefile.csv; elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null; then tabrestore /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile.csv;fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cp /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile_sles.csv /tmp/litefile.csv;tabrestore /tmp/litefile.csv; elif cat /etc/*release |grep SUSE >/dev/null;then cp /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile_sles.csv /tmp/litefile.csv;tabrestore /tmp/litefile.csv;elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null; then tabrestore /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile.csv;fi check:rc==0 cmd:tabdump litefile check:rc==0 @@ -40,7 +40,7 @@ cmd:cat /etc/exports|grep nodedata; if [ "$?" -ne "0" ]; then echo "/nodedata *( check:rc==0 cmd:cd /etc; export exports;cd - check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then service nfsserver restart; elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null;then if [ -f /usr/lib/systemd/system/nfs-server.service ]; then service nfs-server restart; else service nfs restart;fi; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then service nfsserver restart; elif cat /etc/*release |grep SUSE >/dev/null;then service nfsserver restart;elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null;then if [ -f /usr/lib/systemd/system/nfs-server.service ]; then service nfs-server restart; else service nfs restart;fi; fi check:rc==0 cmd:chtab node=$$CN statelite.statemnt="$$MN:/nodedata" check:rc==0 @@ -64,7 +64,7 @@ cmd:/opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/retry_install.sh $$C check:rc==0 check:output=~Provision node\(s\)\: $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:ping $$CN -c 3 check:rc==0 check:output=~64 bytes from $$CN @@ -99,7 +99,7 @@ cmd:/opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/retry_install.sh $$C check:rc==0 check:output=~Provision node\(s\)\: $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:ping $$CN -c 3 check:rc==0 diff --git a/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_hierarchy_by_nfs b/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_hierarchy_by_nfs index f44d14147..637386df4 100644 --- a/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_hierarchy_by_nfs +++ b/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_hierarchy_by_nfs @@ -41,7 +41,7 @@ cmd:xdsh $$SN 'cat /etc/exports|grep nodedata; if [ "$?" -ne "0" ]; then echo "/ check:rc==0 cmd:xdsh $$SN 'cd /etc; export exports;cd -' check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN 'service nfsserver restart'; elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null;then xdsh $$SN 'if [ -f /usr/lib/systemd/system/nfs-server.service ]; then service nfs-server restart; else service nfs restart;fi'; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then xdsh $$SN 'service nfsserver restart'; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN 'service nfsserver restart';elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null;then xdsh $$SN 'if [ -f /usr/lib/systemd/system/nfs-server.service ]; then service nfs-server restart; else service nfs restart;fi'; fi check:rc==0 cmd:xdsh $$SN 'showmount -e' @@ -49,7 +49,7 @@ cmd:xdsh $$SN 'showmount -e' cmd:chtab node=$$CN statelite.statemnt="$$SN:/nodedata" check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null; then cp /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile_sles.csv /tmp/litefile.csv; tabrestore /tmp/litefile.csv; elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null; then tabrestore /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile.csv; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cp /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile_sles.csv /tmp/litefile.csv; tabrestore /tmp/litefile.csv; elif cat /etc/*release |grep SUSE >/dev/null;then cp /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile_sles.csv /tmp/litefile.csv; tabrestore /tmp/litefile.csv;elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null; then tabrestore /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile.csv; fi check:rc==0 cmd:tabdump litefile check:rc==0 @@ -84,7 +84,7 @@ cmd:/opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/retry_install.sh $$C check:rc==0 check:output=~Provision node\(s\)\: $$CN -cmd:xdsh $$SN "if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi" +cmd:xdsh $$SN "if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi" cmd:ping $$CN -c 3 check:rc==0 diff --git a/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_hierarchy_by_ramdisk b/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_hierarchy_by_ramdisk index 4318f1e05..2db45dbc4 100644 --- a/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_hierarchy_by_ramdisk +++ b/xCAT-test/autotest/testcase/installation/reg_linux_statelite_installation_hierarchy_by_ramdisk @@ -41,13 +41,13 @@ cmd:xdsh $$SN 'cat /etc/exports|grep nodedata; if [ "$?" -ne "0" ]; then echo "/ check:rc==0 cmd:xdsh $$SN 'cd /etc; export exports;cd -' check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN 'service nfsserver restart'; elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null;then xdsh $$SN 'if [ -f /usr/lib/systemd/system/nfs-server.service ]; then service nfs-server restart; else service nfs restart;fi'; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then xdsh $$SN 'service nfsserver restart'; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN 'service nfsserver restart';elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null;then xdsh $$SN 'if [ -f /usr/lib/systemd/system/nfs-server.service ]; then service nfs-server restart; else service nfs restart;fi'; fi check:rc==0 cmd:chtab node=$$CN statelite.statemnt="$$SN:/nodedata" check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null; then cp /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile_sles.csv /tmp/litefile.csv; tabrestore /tmp/litefile.csv; elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null; then tabrestore /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile.csv; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cp /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile_sles.csv /tmp/litefile.csv; tabrestore /tmp/litefile.csv; elif cat /etc/*release |grep SUSE >/dev/null;then cp /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile_sles.csv /tmp/litefile.csv; tabrestore /tmp/litefile.csv;elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null; then tabrestore /opt/xcat/share/xcat/tools/autotest/testcase/installation/litefile.csv; fi check:rc==0 cmd:tabdump litefile check:rc==0 @@ -77,7 +77,7 @@ cmd:/opt/xcat/share/xcat/tools/autotest/testcase/commoncmd/retry_install.sh $$C check:rc==0 check:output=~Provision node\(s\)\: $$CN -cmd:xdsh $$SN "if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi" +cmd:xdsh $$SN "if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi" cmd:ping $$CN -c 3 check:rc==0 diff --git a/xCAT-test/autotest/testcase/makedhcp/cases0 b/xCAT-test/autotest/testcase/makedhcp/cases0 index 9566ab1a5..8559a3c1b 100644 --- a/xCAT-test/autotest/testcase/makedhcp/cases0 +++ b/xCAT-test/autotest/testcase/makedhcp/cases0 @@ -2,18 +2,17 @@ start:makedhcp_n description:Create a new dhcp configuration file with a network statement for each network the dhcp daemon should listen on os:Linux label:mn_only,ci_test,dhcp -cmd:if [ -f "/etc/dhcp/dhcpd.conf" ];then cp -f /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak ; elif [ -f "/etc/dhcpd.conf" ]; then cp -f /etc/dhcpd.conf /etc/dhcpd.conf.bak; fi +cmd:if [ -f "/etc/dhcp/dhcpd.conf" ];then cp -f /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak ; elif [ -f "/etc/dhcpd.conf" ]; then cp -f /etc/dhcpd.conf /etc/dhcpd.conf.bak; fi; if [ -f "/etc/kea/kea-dhcp4.conf" ]; then cp -f /etc/kea/kea-dhcp4.conf /etc/kea/kea-dhcp4.conf.bak; fi cmd:makedhcp -n check:rc==0 -cmd:cat $(ls /etc/dhcp/dhcpd.conf || ls /etc/dhcpd.conf) +cmd:cat /etc/dhcp/dhcpd.conf 2>/dev/null || cat /etc/dhcpd.conf 2>/dev/null || cat /etc/kea/kea-dhcp4.conf 2>/dev/null check:rc==0 cmd:sleep 20 -cmd:ps -e | grep dhcpd +cmd:ps -e | grep -E "dhcpd|kea-dhcp4" | grep -v grep check:rc==0 -check:output=~dhcpd -cmd:if cat /etc/*release |grep Ubuntu >/dev/null;then service isc-dhcp-server status;else service dhcpd status;fi +cmd:if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then systemctl status kea-dhcp4; elif cat /etc/*release | grep Ubuntu >/dev/null; then service isc-dhcp-server status; else service dhcpd status; fi check:output=~running -cmd:if [ -f "/etc/dhcp/dhcpd.conf" ]; then mv -f /etc/dhcp/dhcpd.conf.bak /etc/dhcp/dhcpd.conf; elif [ -f "/etc/dhcpd.conf" ]; then mv -f /etc/dhcpd.conf.bak /etc/dhcpd.conf; fi +cmd:if [ -f "/etc/dhcp/dhcpd.conf.bak" ]; then mv -f /etc/dhcp/dhcpd.conf.bak /etc/dhcp/dhcpd.conf; elif [ -f "/etc/dhcpd.conf.bak" ]; then mv -f /etc/dhcpd.conf.bak /etc/dhcpd.conf; fi; if [ -f "/etc/kea/kea-dhcp4.conf.bak" ]; then mv -f /etc/kea/kea-dhcp4.conf.bak /etc/kea/kea-dhcp4.conf; fi end start:makedhcp_h @@ -59,7 +58,7 @@ cmd:if [ -f "/etc/dhcp/dhcpd.conf" ];then cp -f /etc/dhcp/dhcpd.conf /etc/dhcp/d cmd:makedhcp -n cmd:makedhcp -a check:rc==0 -cmd:if [ -f /var/lib/dhcpd/dhcpd.leases ]; then cat /var/lib/dhcpd/dhcpd.leases; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [ -f "/var/lib/dhcp/dhcpd.leases" ]; then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cat /var/lib/kea/kea-leases4.csv; elif [ -f /var/lib/dhcpd/dhcpd.leases ]; then cat /var/lib/dhcpd/dhcpd.leases; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [ -f "/var/lib/dhcp/dhcpd.leases" ]; then cat /var/lib/dhcp/dhcpd.leases; fi check:output=~testnode1 check:output=~11:22:33:44:55:66 cmd:cat /tmp/CN.stanza | chdef -z @@ -90,10 +89,10 @@ cmd:if [ -f "/etc/dhcp/dhcpd.conf" ];then cp -f /etc/dhcp/dhcpd.conf /etc/dhcp/d cmd:makedhcp -n cmd:makedhcp -a check:rc==0 -cmd:if [ -f /var/lib/dhcpd/dhcpd.leases ]; then cat /var/lib/dhcpd/dhcpd.leases > /tmp/1; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then cat /var/lib/dhcp/db/dhcpd.leases > /tmp/1;elif [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases > /tmp/1; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cat /var/lib/kea/kea-leases4.csv > /tmp/1; elif [ -f /var/lib/dhcpd/dhcpd.leases ]; then cat /var/lib/dhcpd/dhcpd.leases > /tmp/1; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then cat /var/lib/dhcp/db/dhcpd.leases > /tmp/1;elif [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases > /tmp/1; fi cmd:makedhcp -a -d check:rc==0 -cmd:if [ -f /var/lib/dhcpd/dhcpd.leases ]; then cat /var/lib/dhcpd/dhcpd.leases > /tmp/2; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then cat /var/lib/dhcp/db/dhcpd.leases > /tmp/2;elif [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases > /tmp/2; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cat /var/lib/kea/kea-leases4.csv > /tmp/2; elif [ -f /var/lib/dhcpd/dhcpd.leases ]; then cat /var/lib/dhcpd/dhcpd.leases > /tmp/2; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then cat /var/lib/dhcp/db/dhcpd.leases > /tmp/2;elif [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases > /tmp/2; fi cmd:diff /tmp/1 /tmp/2 check:output=~testnode1 check:output=~deleted @@ -115,10 +114,10 @@ cmd:lsdef -l testnode1 -z > /tmp/CN.stanza cmd:chdef -t node -o testnode1 mac=11:22:33:44:55:66 cmd:makedhcp -n cmd:makedhcp testnode1 -cmd:if [ -f /var/lib/dhcpd/dhcpd.leases ]; then cat /var/lib/dhcpd/dhcpd.leases > /tmp/1; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then cat /var/lib/dhcp/db/dhcpd.leases > /tmp/1;elif [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases > /tmp/1; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cat /var/lib/kea/kea-leases4.csv > /tmp/1; elif [ -f /var/lib/dhcpd/dhcpd.leases ]; then cat /var/lib/dhcpd/dhcpd.leases > /tmp/1; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then cat /var/lib/dhcp/db/dhcpd.leases > /tmp/1;elif [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases > /tmp/1; fi cmd:makedhcp -d testnode1 check:rc==0 -cmd:if [ -f /var/lib/dhcpd/dhcpd.leases ]; then cat /var/lib/dhcpd/dhcpd.leases > /tmp/2; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then cat /var/lib/dhcp/db/dhcpd.leases > /tmp/2;elif [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases > /tmp/2; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cat /var/lib/kea/kea-leases4.csv > /tmp/2; elif [ -f /var/lib/dhcpd/dhcpd.leases ]; then cat /var/lib/dhcpd/dhcpd.leases > /tmp/2; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then cat /var/lib/dhcp/db/dhcpd.leases > /tmp/2;elif [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases > /tmp/2; fi cmd:diff /tmp/1 /tmp/2 check:output=~testnode1 check:output=~deleted @@ -150,7 +149,7 @@ cmd:lsdef -l $$CN -z > /tmp/$$CN.stanza cmd:chdef -t node -o $$CN mac=11:22:33:44:55:66 cmd:makedhcp -a check:rc==0 -cmd:if [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cat /var/lib/kea/kea-leases4.csv; elif [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases; fi check:output=~$$CN check:output=~11:22:33:44:55:66 cmd:chdef -t node -o $$CN mac= @@ -162,7 +161,7 @@ os:Linux label:cn_os_ready,dhcp cmd:makedhcp -a -d check:rc==0 -cmd:service dhcpd restart +cmd:if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then systemctl restart kea-dhcp4; elif cat /etc/*release | grep -qi ubuntu; then service isc-dhcp-server restart; else service dhcpd restart; fi cmd:makedhcp -q $$CN check:rc==0 check:output!~$$CN @@ -174,8 +173,8 @@ os:ubuntu label:cn_os_ready,dhcp cmd:makedhcp -a -d check:rc==0 -cmd:service isc-dhcp-server restart -cmd:if [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases | grep $$CN; fi +cmd:if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then systemctl restart kea-dhcp4; elif cat /etc/*release | grep -qi ubuntu; then service isc-dhcp-server restart; else service dhcpd restart; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cat /var/lib/kea/kea-leases4.csv | grep $$CN; elif [ -f /var/lib/dhcp/dhcpd.leases ]; then cat /var/lib/dhcp/dhcpd.leases | grep $$CN; fi check:output!~$$CN cmd:makedhcp -a end @@ -185,7 +184,7 @@ os:Linux label:cn_os_ready,dhcp cmd:makedhcp -d $$CN check:rc==0 -cmd:service dhcpd restart +cmd:if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then systemctl restart kea-dhcp4; elif cat /etc/*release | grep -qi ubuntu; then service isc-dhcp-server restart; else service dhcpd restart; fi cmd:makedhcp -q $$CN check:output!~$$CN cmd:makedhcp -a @@ -209,10 +208,10 @@ cmd:cat /etc/hosts cmd:makedhcp -n check:rc==0 cmd:makedhcp -d testnode -cmd:if [ -f /var/lib/dhcpd/dhcpd.leases ]; then a="/var/lib/dhcpd/dhcpd.leases"; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then a="/var/lib/dhcp/db/dhcpd.leases"; elif [ -f "/var/lib/dhcp/dhcpd.leases" ]; then a="/var/lib/dhcp/dhcpd.leases";fi; ls -l $a; cat $a +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then a="/var/lib/kea/kea-leases4.csv"; elif [ -f /var/lib/dhcpd/dhcpd.leases ]; then a="/var/lib/dhcpd/dhcpd.leases"; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then a="/var/lib/dhcp/db/dhcpd.leases"; elif [ -f "/var/lib/dhcp/dhcpd.leases" ]; then a="/var/lib/dhcp/dhcpd.leases";fi; ls -l $a; cat $a cmd:makedhcp testnode check:rc==0 -cmd:if [ -f /var/lib/dhcpd/dhcpd.leases ]; then a="/var/lib/dhcpd/dhcpd.leases"; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then a="/var/lib/dhcp/db/dhcpd.leases"; elif [ -f "/var/lib/dhcp/dhcpd.leases" ]; then a="/var/lib/dhcp/dhcpd.leases";fi; ls -l $a; cat $a +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then a="/var/lib/kea/kea-leases4.csv"; elif [ -f /var/lib/dhcpd/dhcpd.leases ]; then a="/var/lib/dhcpd/dhcpd.leases"; elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then a="/var/lib/dhcp/db/dhcpd.leases"; elif [ -f "/var/lib/dhcp/dhcpd.leases" ]; then a="/var/lib/dhcp/dhcpd.leases";fi; ls -l $a; cat $a cmd:a=2;while true; do [ $a -eq 64 ] && exit 1;output=$(makedhcp -q testnode);[ $? -ne 0 ] && exit 1;echo $output|grep testnode 2>/dev/null && exit 0;a=$[$a*2]; makedhcp testnode; sleep $a;done check:rc==0 check:output=~testnode: ip-address = 100.100.100.2 diff --git a/xCAT-test/autotest/testcase/makehosts/cases0 b/xCAT-test/autotest/testcase/makehosts/cases0 index e69e2b8b2..4f90dd08a 100644 --- a/xCAT-test/autotest/testcase/makehosts/cases0 +++ b/xCAT-test/autotest/testcase/makehosts/cases0 @@ -106,12 +106,12 @@ cmd:chtab node=nouse_compute hosts.ip="|node(\d+)|1.2.3.(\$1+0)|" hosts.hostname check:rc==0 cmd:chdef -t node -o node01 groups="nouse_compute" check:rc==0 -cmd:sleep 30 +cmd:sleep 5 cmd:XCATBYPASS=1 makehosts -n check:rc==0 -cmd:sleep 30 +cmd:sleep 5 cmd:cat /etc/hosts -cmd:sleep 30 +cmd:sleep 5 cmd:cp -f /etc/hosts /tmp/hosts cmd:cat /tmp/hosts |wc -l check:rc==0 @@ -131,10 +131,10 @@ cmd:chtab node=compute hosts.ip="|node(\d+)|1.2.3.(\$1+0)|" hosts.hostnames="|(. check:rc==0 cmd:chdef -t node -o node01 groups="compute" check:rc==0 -cmd:sleep 30 +cmd:sleep 5 cmd:XCATBYPASS=1 makehosts -n node01 check:rc==0 -cmd:sleep 30 +cmd:sleep 5 cmd:cp /etc/hosts /tmp/hosts -f cmd:cat /tmp/hosts |wc -l check:rc==0 diff --git a/xCAT-test/autotest/testcase/migration/redhat_migration b/xCAT-test/autotest/testcase/migration/redhat_migration index ec2cdfa72..23add7858 100644 --- a/xCAT-test/autotest/testcase/migration/redhat_migration +++ b/xCAT-test/autotest/testcase/migration/redhat_migration @@ -24,9 +24,9 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:service dhcpd restart +cmd:if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then systemctl restart kea-dhcp4; elif cat /etc/*release | grep -qi ubuntu; then service isc-dhcp-server restart; else service dhcpd restart; fi check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:copycds $$ISO check:rc==0 @@ -133,9 +133,9 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:service dhcpd restart +cmd:if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then systemctl restart kea-dhcp4; elif cat /etc/*release | grep -qi ubuntu; then service isc-dhcp-server restart; else service dhcpd restart; fi check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat\|Rocky\|Alma" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:copycds $$ISO check:rc==0 diff --git a/xCAT-test/autotest/testcase/migration/sles_migration b/xCAT-test/autotest/testcase/migration/sles_migration index 2a606a2d2..ff84e27fc 100644 --- a/xCAT-test/autotest/testcase/migration/sles_migration +++ b/xCAT-test/autotest/testcase/migration/sles_migration @@ -23,9 +23,9 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:service dhcpd restart +cmd:if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then systemctl restart kea-dhcp4; elif cat /etc/*release | grep -qi ubuntu; then service isc-dhcp-server restart; else service dhcpd restart; fi check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:copycds $$ISO | grep -v "%" check:rc==0 @@ -142,9 +142,9 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:service dhcpd restart +cmd:if systemctl is-active kea-dhcp4 >/dev/null 2>&1; then systemctl restart kea-dhcp4; elif cat /etc/*release | grep -qi ubuntu; then service isc-dhcp-server restart; else service dhcpd restart; fi check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:copycds $$ISO | grep -v "%" check:rc==0 diff --git a/xCAT-test/autotest/testcase/nodeset/cases0 b/xCAT-test/autotest/testcase/nodeset/cases0 index c0efa3dcc..edb0c5fb1 100644 --- a/xCAT-test/autotest/testcase/nodeset/cases0 +++ b/xCAT-test/autotest/testcase/nodeset/cases0 @@ -500,7 +500,7 @@ check:rc==0 cmd:imagename=`cat /tmp/imagename`;nodeset $$CN osimage=$imagename check:rc==0 check:output=~$$CN:\s*install -cmd:imagename=`cat /tmp/imagename`;osversion=`lsdef -t osimage -o $imagename |grep osvers|awk -F= '{print $2}'`;versionnum=`echo $osversion |sed 's:[a-zA-Z]::g'`;grep -w -A10 "$$CN" /var/lib/dhcpd/dhcpd.leases | grep "/install/$osversion/armel/cumulus-linux-$versionnum-bcm-armel.bin" +cmd:imagename=`cat /tmp/imagename`;osversion=`lsdef -t osimage -o $imagename |grep osvers|awk -F= '{print $2}'`;versionnum=`echo $osversion |sed 's:[a-zA-Z]::g'`;if [ -f /var/lib/kea/kea-leases4.csv ]; then grep "/install/$osversion/armel/cumulus-linux-$versionnum-bcm-armel.bin" /etc/kea/kea-dhcp4.conf; else grep -w -A10 "$$CN" /var/lib/dhcpd/dhcpd.leases | grep "/install/$osversion/armel/cumulus-linux-$versionnum-bcm-armel.bin"; fi check:rc==0 end diff --git a/xCAT-test/autotest/testcase/noop/cases0 b/xCAT-test/autotest/testcase/noop/cases0 new file mode 100644 index 000000000..4474074ed --- /dev/null +++ b/xCAT-test/autotest/testcase/noop/cases0 @@ -0,0 +1,7 @@ +start:noop +description:no-op smoke test -- runs 'echo ok' and verifies it; exercises the test harness without touching the cluster +label:mn_only,ci_test +cmd:echo ok +check:rc==0 +check:output=~ok +end diff --git a/xCAT-test/autotest/testcase/performance/case0 b/xCAT-test/autotest/testcase/performance/case0 index 01cf61124..f73adc5b2 100644 --- a/xCAT-test/autotest/testcase/performance/case0 +++ b/xCAT-test/autotest/testcase/performance/case0 @@ -50,7 +50,7 @@ cmd:rinstall $$SN,$$CN osimage=__GETNODEATTR($$CN,os)__-__GETNODEATTR($$CN,arch) check:rc==0 #check:output=~Provision node\(s\)\: $$CN #check:output=~Provision node\(s\)\: $$SN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi #After starting installation, began run fake nodes testing on MN cmd:which yum &>/dev/null && yum install -y bridge-utils || apt install -y bridge-utils diff --git a/xCAT-test/autotest/testcase/restapi/cases0 b/xCAT-test/autotest/testcase/restapi/cases0 index d696800b8..d3f658fe9 100644 --- a/xCAT-test/autotest/testcase/restapi/cases0 +++ b/xCAT-test/autotest/testcase/restapi/cases0 @@ -2,12 +2,12 @@ start:restapi_setup_on_MN_CN description: Set up the REST API on MN and CN label:restapi #Install the mod_ssl package on Red Hat, Rocky and AlmaLinux -cmd:if cat /etc/*release | grep "Red Hat\|Rocky\|AlmaLinux" >/dev/null; then yum install mod_ssl -y; rpm -qa | grep mod_ssl; fi +cmd:if cat /etc/*release | grep "Red Hat\|Rocky\|AlmaLinux" >/dev/null; then dnf install mod_ssl -y; rpm -qa | grep mod_ssl; fi check:rc==0 cmd:if cat /etc/*release | grep "Red Hat\|Rocky\|AlmaLinux" >/dev/null; then sed -i 's/^\(\s*\)SSLCertificateFile.*$/\1SSLCertificateFile \/etc\/xcat\/cert\/server-cred.pem/' /etc/httpd/conf.d/ssl.conf; fi cmd:if cat /etc/*release | grep "Red Hat\|Rocky\|AlmaLinux" >/dev/null; then sed -i 's/^\(\s*SSLCertificateKeyFile.*\)$/#\1/' /etc/httpd/conf.d/ssl.conf; fi check:rc==0 -cmd:if cat /etc/*release | grep "Red Hat\|Rocky\|AlmaLinux" >/dev/null; then service httpd restart; fi +cmd:if cat /etc/*release | grep "Red Hat\|Rocky\|AlmaLinux" >/dev/null; then systemctl restart httpd; fi check:rc==0 #Configure the SLES environment cmd:if cat /etc/*release | grep "SLES" >/dev/null; then a2enmod ssl; a2enflag SSL; cp /etc/apache2/vhosts.d/vhost-ssl.template /etc/apache2/vhosts.d/vhost-ssl.conf; fi @@ -15,7 +15,7 @@ check:rc==0 cmd:if cat /etc/*release | grep "SLES" >/dev/null; then sed -i 's/^\(\s*\)SSLCertificateFile.*$/\1SSLCertificateFile \/etc\/xcat\/cert\/server-cred.pem/' /etc/apache2/vhosts.d/vhost-ssl.conf; fi cmd:if cat /etc/*release | grep "SLES" >/dev/null; then sed -i 's/^\(\s*SSLCertificateKeyFile.*\)$/#\1/' /etc/apache2/vhosts.d/vhost-ssl.conf; fi check:rc==0 -cmd:if cat /etc/*release | grep "SLES" >/dev/null; then service apache2 restart; fi +cmd:if cat /etc/*release | grep "SLES" >/dev/null; then systemctl restart apache2; fi check:rc==0 cmd:scp /install/postscripts/ca/ca-cert.pem $$CN:/root check:rc==0 @@ -31,10 +31,10 @@ check:rc==0 cmd:tabch -d key=xcat passwd check:rc==0 #Remove the mod_ssl package on Red Hat, Rocky and AlmaLinux -cmd:if cat /etc/*release | grep "Red Hat\|Rocky\|AlmaLinux" >/dev/null; then yum remove mod_ssl -y; service httpd restart; fi +cmd:if cat /etc/*release | grep "Red Hat\|Rocky\|AlmaLinux" >/dev/null; then dnf remove mod_ssl -y; systemctl restart httpd; fi check:rc==0 #Clean up the SLES environment -cmd:if cat /etc/*release | grep "SLES" >/dev/null; then rm /etc/apache2/vhosts.d/vhost-ssl.conf; service apache2 restart; fi +cmd:if cat /etc/*release | grep "SLES" >/dev/null; then rm /etc/apache2/vhosts.d/vhost-ssl.conf; systemctl restart apache2; fi check:rc==0 end diff --git a/xCAT-test/autotest/testcase/snpool/cfg_wrong_cn_in_sn_pool_tftp_sync_mode b/xCAT-test/autotest/testcase/snpool/cfg_wrong_cn_in_sn_pool_tftp_sync_mode index 955bc1f21..f830a802f 100644 --- a/xCAT-test/autotest/testcase/snpool/cfg_wrong_cn_in_sn_pool_tftp_sync_mode +++ b/xCAT-test/autotest/testcase/snpool/cfg_wrong_cn_in_sn_pool_tftp_sync_mode @@ -27,9 +27,9 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$SN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi check:output=~$$SN -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:chdef -t node $$SN,$$CN groups=service,all check:rc==0 @@ -64,7 +64,7 @@ cmd:rinstall $$SN,$$CN osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch) check:rc==0 check:output=~Provision node\(s\)\: $$SN $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:/opt/xcat/share/xcat/tools/autotest/testcase/installation/customize_sleep_for_sn __GETNODEATTR($$SN,os)__ __GETNODEATTR($$SN,arch)__ #Check status on SN after SN is installed @@ -135,11 +135,11 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$SN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$CN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 ## # Unset mac diff --git a/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_mount_mode b/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_mount_mode index c44d061e0..4d2072d51 100644 --- a/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_mount_mode +++ b/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_mount_mode @@ -27,9 +27,9 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$SN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi check:output=~$$SN -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:chdef -t node $$SN,$$CN groups=service,all check:rc==0 @@ -65,7 +65,7 @@ cmd:rinstall $$SN,$$CN osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch) check:rc==0 check:output=~Provision node\(s\)\: $$SN $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:/opt/xcat/share/xcat/tools/autotest/testcase/installation/customize_sleep_for_sn __GETNODEATTR($$SN,os)__ __GETNODEATTR($$SN,arch)__ #Check status on SN after SN is installed @@ -136,11 +136,11 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$SN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$CN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 cmd:nodeset compute1 osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch)__-install-compute check:rc==0 diff --git a/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_mount_mode_checkresult b/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_mount_mode_checkresult index 1f2a75243..052a6973c 100644 --- a/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_mount_mode_checkresult +++ b/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_mount_mode_checkresult @@ -20,11 +20,11 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$SN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$CN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 cmd:nodeset compute1 osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch)__-install-compute check:rc==0 diff --git a/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_sync_mode b/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_sync_mode index 3c2a0a051..b23450082 100644 --- a/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_sync_mode +++ b/xCAT-test/autotest/testcase/snpool/not_set_xcatmaster_in_sn_pool_tftp_sync_mode @@ -27,9 +27,9 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$SN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi check:output=~$$SN -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:chdef -t node $$SN,$$CN groups=service,all check:rc==0 @@ -65,7 +65,7 @@ cmd:rinstall $$SN,$$CN osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch) check:rc==0 check:output=~Provision node\(s\)\: $$SN $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:/opt/xcat/share/xcat/tools/autotest/testcase/installation/customize_sleep_for_sn __GETNODEATTR($$SN,os)__ __GETNODEATTR($$SN,arch)__ #Check status on SN after SN is installed @@ -136,11 +136,11 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$SN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$CN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 cmd:nodeset compute1 osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch)__-install-compute check:rc==0 diff --git a/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_mount_mode b/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_mount_mode index e0853de30..fd69d79c4 100644 --- a/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_mount_mode +++ b/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_mount_mode @@ -27,9 +27,9 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$SN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi check:output=~$$SN -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:chdef -t node $$SN,$$CN groups=service,all check:rc==0 @@ -65,7 +65,7 @@ cmd:rinstall $$SN,$$CN osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch) check:rc==0 check:output=~Provision node\(s\)\: $$SN $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:/opt/xcat/share/xcat/tools/autotest/testcase/installation/customize_sleep_for_sn __GETNODEATTR($$SN,os)__ __GETNODEATTR($$SN,arch)__ #Check status on SN after SN is installed @@ -137,11 +137,11 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$SN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$CN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 cmd:nodeset compute1 osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch)__-install-compute check:rc==0 diff --git a/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_mount_mode_checkresult b/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_mount_mode_checkresult index 48efb039f..6ffdfa5df 100644 --- a/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_mount_mode_checkresult +++ b/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_mount_mode_checkresult @@ -20,11 +20,11 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$SN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$CN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 cmd:nodeset compute1 osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch)__-install-compute check:rc==0 diff --git a/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_sync_mode b/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_sync_mode index 9131e8860..3c13a6b60 100644 --- a/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_sync_mode +++ b/xCAT-test/autotest/testcase/snpool/set_xcatmaster_in_sn_pool_tftp_sync_mode @@ -27,9 +27,9 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$SN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi check:output=~$$SN -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:chdef -t node $$SN,$$CN groups=service,all check:rc==0 @@ -64,7 +64,7 @@ cmd:rinstall $$SN,$$CN osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch) check:rc==0 check:output=~Provision node\(s\)\: $$SN $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:/opt/xcat/share/xcat/tools/autotest/testcase/installation/customize_sleep_for_sn __GETNODEATTR($$SN,os)__ __GETNODEATTR($$SN,arch)__ #Check status on SN after SN is installed @@ -136,11 +136,11 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$SN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$SN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$SN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then xdsh $$CN grep compute1 /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then xdsh $$CN cat /var/lib/dhcp/db/dhcpd.leases|grep compute1;elif cat /etc/*release |grep "Red Hat" >/dev/null;then xdsh $$CN cat /var/lib/dhcpd/dhcpd.leases|grep compute1;fi check:output=~compute1 cmd:nodeset compute1 osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch)__-install-compute check:rc==0 diff --git a/xCAT-test/autotest/testcase/snpool/setup_sn_pool_tftp_mount_mode b/xCAT-test/autotest/testcase/snpool/setup_sn_pool_tftp_mount_mode index 06e0cd23a..81361e50e 100644 --- a/xCAT-test/autotest/testcase/snpool/setup_sn_pool_tftp_mount_mode +++ b/xCAT-test/autotest/testcase/snpool/setup_sn_pool_tftp_mount_mode @@ -27,9 +27,9 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$SN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$SN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$SN;fi check:output=~$$SN -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:chdef -t node $$SN,$$CN groups=service,all check:rc==0 @@ -65,7 +65,7 @@ cmd:rinstall $$SN,$$CN osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch) check:rc==0 check:output=~Provision node\(s\)\: $$SN $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:/opt/xcat/share/xcat/tools/autotest/testcase/installation/customize_sleep_for_sn __GETNODEATTR($$SN,os)__ __GETNODEATTR($$SN,arch)__ #Check status on SN after SN is installed diff --git a/xCAT-test/autotest/testcase/snpool/setup_sn_pool_tftp_sync_mode b/xCAT-test/autotest/testcase/snpool/setup_sn_pool_tftp_sync_mode index 12d07824d..fdf9c579b 100644 --- a/xCAT-test/autotest/testcase/snpool/setup_sn_pool_tftp_sync_mode +++ b/xCAT-test/autotest/testcase/snpool/setup_sn_pool_tftp_sync_mode @@ -27,9 +27,9 @@ cmd:makedhcp -n check:rc==0 cmd:makedhcp -a check:rc==0 -cmd:if cat /etc/*release | grep SUSE >/dev/null ; then cat /var/lib/dhcp/db/dhcpd.leases | grep $$SN ; elif cat /etc/*release | grep "Red Hat" >/dev/null ; then cat /var/lib/dhcpd/dhcpd.leases | grep $$SN ; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cat /var/lib/kea/kea-leases4.csv | grep $$SN; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases | grep $$SN;elif cat /etc/*release | grep "Red Hat" >/dev/null ; then cat /var/lib/dhcpd/dhcpd.leases | grep $$SN ; fi check:output=~$$SN -cmd:if cat /etc/*release | grep SUSE >/dev/null ; then cat /var/lib/dhcp/db/dhcpd.leases | grep $$CN ; elif cat /etc/*release | grep "Red Hat" >/dev/null ; then cat /var/lib/dhcpd/dhcpd.leases | grep $$CN ; fi +cmd:if [ -f /var/lib/kea/kea-leases4.csv ]; then cat /var/lib/kea/kea-leases4.csv | grep $$CN; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases | grep $$CN;elif cat /etc/*release | grep "Red Hat" >/dev/null ; then cat /var/lib/dhcpd/dhcpd.leases | grep $$CN ; fi check:output=~$$CN cmd:chdef -t node $$SN,$$CN groups=service,all check:rc==0 @@ -64,7 +64,7 @@ cmd:rinstall $$SN,$$CN osimage=__GETNODEATTR($$SN,os)__-__GETNODEATTR($$SN,arch) check:rc==0 check:output=~Provision node\(s\)\: $$SN $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:/opt/xcat/share/xcat/tools/autotest/testcase/installation/customize_sleep_for_sn __GETNODEATTR($$SN,os)__ __GETNODEATTR($$SN,arch)__ #Check status on SN after SN is installed diff --git a/xCAT-test/autotest/testcase/xcat_inventory/cases.environment b/xCAT-test/autotest/testcase/xcat_inventory/cases.environment index cd4652763..3b50f549a 100644 --- a/xCAT-test/autotest/testcase/xcat_inventory/cases.environment +++ b/xCAT-test/autotest/testcase/xcat_inventory/cases.environment @@ -40,7 +40,7 @@ cmd:rinstall $$CN osimage=test.environments.osimage check:rc==0 check:output=~Provision node\(s\)\: $$CN -cmd:if [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi +cmd:if [[ -f /var/lib/kea/kea-leases4.csv ]]; then cat /var/lib/kea/kea-leases4.csv; elif [[ -f /var/lib/dhcp/db/dhcpd.leases ]]; then cat /var/lib/dhcp/db/dhcpd.leases; elif [[ -f /var/lib/dhcpd/dhcpd.leases ]];then cat /var/lib/dhcpd/dhcpd.leases;elif [[ -f /var/lib/dhcp/dhcpd.leases ]];then cat /var/lib/dhcp/dhcpd.leases; fi cmd:cat /tmp/mountoutput/file.org cmd:sleep 300 cmd:a=0;while ! `lsdef -l $$CN|grep status|grep booted >/dev/null`; do sleep 10;((a++));if [ $a -gt 60 ];then break;fi done diff --git a/xCAT-test/autotest/testcase/xcatdebugmode/rhels_xcatdebugmode_diskful b/xCAT-test/autotest/testcase/xcatdebugmode/rhels_xcatdebugmode_diskful index 603d19fa0..ff13ea195 100644 --- a/xCAT-test/autotest/testcase/xcatdebugmode/rhels_xcatdebugmode_diskful +++ b/xCAT-test/autotest/testcase/xcatdebugmode/rhels_xcatdebugmode_diskful @@ -19,7 +19,7 @@ check:rc==0 cmd:makedhcp -a check:rc==0 cmd:sleep 10 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:copycds $$ISO check:rc==0 @@ -79,7 +79,7 @@ check:rc==0 cmd:makedhcp -a check:rc==0 cmd:sleep 10 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:copycds $$ISO check:rc==0 @@ -167,7 +167,7 @@ check:rc==0 cmd:makedhcp -a check:rc==0 cmd:sleep 10 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:copycds $$ISO check:rc==0 diff --git a/xCAT-test/autotest/testcase/xcatdebugmode/sles_xcatdebugmode_diskful b/xCAT-test/autotest/testcase/xcatdebugmode/sles_xcatdebugmode_diskful index f8033badc..4551a23f8 100644 --- a/xCAT-test/autotest/testcase/xcatdebugmode/sles_xcatdebugmode_diskful +++ b/xCAT-test/autotest/testcase/xcatdebugmode/sles_xcatdebugmode_diskful @@ -20,7 +20,7 @@ check:rc==0 cmd:makedhcp -a check:rc==0 cmd:sleep 10 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:copycds $$ISO check:rc==0 @@ -89,7 +89,7 @@ check:rc==0 cmd:makedhcp -a check:rc==0 cmd:sleep 10 -cmd:if cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi +cmd:if [ -f /etc/kea/kea-dhcp4.conf ]; then grep $$CN /etc/kea/kea-dhcp4.conf; elif cat /etc/*release |grep SUSE >/dev/null;then cat /var/lib/dhcp/db/dhcpd.leases|grep $$CN;elif cat /etc/*release |grep "Red Hat" >/dev/null;then cat /var/lib/dhcpd/dhcpd.leases|grep $$CN;fi check:output=~$$CN cmd:chtab key=xcatdebugmode site.value="1" check:rc==0 diff --git a/xCAT-test/unit/dhcp_kea_plugin_intent.t b/xCAT-test/unit/dhcp_kea_plugin_intent.t index 1973bf308..d31bc28de 100644 --- a/xCAT-test/unit/dhcp_kea_plugin_intent.t +++ b/xCAT-test/unit/dhcp_kea_plugin_intent.t @@ -202,4 +202,106 @@ ok(!xCAT_plugin::dhcp::dhcpd_sysconfig_uses_interface_key('opensuse-tumbleweed') is( $subnet->{dynamicrange}, $network_entry{dynamicrange}, 'owning Kea server renders dynamic pool' ); } +{ + # Regression: networks.nameservers / site.nameservers default to the + # placeholder. Kea D2 rejects a non-IP dns-servers ip-address, + # so kea_build_ddns_intent must resolve to the management IP + # facing the network (via my_ip_facing) before rendering DDNS domains. + no warnings 'redefine'; + local *xCAT_plugin::dhcp::kea_ddns_enabled = sub { 1 }; + local *xCAT_plugin::dhcp::kea_ddns_key = sub { ( 'HMAC-SHA256', 'YWJjMTIz' ); }; + + local $xCAT::Table::networks = DHCPKeaIntentNetTable->new( + { + %network_entry, + nameservers => '', + } + ); + + my $ddns_intent = xCAT_plugin::dhcp::kea_build_ddns_intent(); + + ok( $ddns_intent && !$ddns_intent->{error}, 'kea_build_ddns_intent succeeds with nameservers' ); + ok( scalar @{ $ddns_intent->{forward_domains} || [] }, 'kea_build_ddns_intent renders a forward DDNS domain' ); + ok( scalar @{ $ddns_intent->{reverse_domains} || [] }, 'kea_build_ddns_intent renders a reverse DDNS domain' ); + + my @dns_ips = + map { $_->{'ip-address'} } + map { @{ $_->{'dns-servers'} || [] } } + ( @{ $ddns_intent->{forward_domains} || [] }, @{ $ddns_intent->{reverse_domains} || [] } ); + + ok( scalar @dns_ips, 'rendered DDNS domains carry dns-servers' ); + foreach my $ip (@dns_ips) { + isnt( $ip, '', 'DDNS dns-server ip-address is never the literal placeholder' ); + is( $ip, '10.0.0.1', 'DDNS dns-server ip-address resolves to the management IP facing the network' ); + like( $ip, qr/^\d+\.\d+\.\d+\.\d+$/, 'DDNS dns-server ip-address is a valid IPv4 literal' ); + } +} + +{ + # Regression: a service node (noderes.servicenode set, groups=service) must + # get a Kea host reservation exactly like a regular compute node. The Kea + # reservation builder loops over every requested node without filtering on + # service-node membership, so kea_build_node_reservations must emit an + # ip/mac/hostname reservation whose next-server is resolved (via + # my_ip_facing) to the management server that serves the node's subnet. + package DHCPKeaResTable; + sub new { my ( $class, $rows ) = @_; return bless { rows => $rows }, $class; } + sub getNodesAttribs { + my ( $self, $nodes, $attrs ) = @_; + my %out; + $out{$_} = [ $self->{rows}{$_} || {} ] for @$nodes; + return \%out; + } + sub close { return; } + + package main; + + my %res_tables = ( + noderes => DHCPKeaResTable->new( { 'svc01' => { netboot => 'xnba', servicenode => '192.168.201.20', tftpserver => '' } } ), + chain => DHCPKeaResTable->new( { 'svc01' => {} } ), + nodetype => DHCPKeaResTable->new( { 'svc01' => { arch => 'x86_64', provmethod => 'install', os => 'rhels9' } } ), + iscsi => DHCPKeaResTable->new( {} ), + mac => DHCPKeaResTable->new( { 'svc01' => { mac => '42:d7:c0:a8:c9:15' } } ), + ); + + no warnings 'redefine'; + local *xCAT::Table::new = sub { + my ( $class, $name ) = @_; + return $res_tables{$name}; + }; + my $svc_getipaddr = sub { + my ( $host, %opt ) = @_; + return if $opt{OnlyV6}; + return '192.168.201.21'; + }; + local *xCAT::NetworkUtils::getipaddr = $svc_getipaddr; + # dhcp.pm imports getipaddr into its own namespace at use-time, so override + # the imported copy as well. + local *xCAT_plugin::dhcp::getipaddr = $svc_getipaddr; + local *xCAT::NetworkUtils::my_ip_facing = sub { return ( 0, '192.168.201.20' ); }; + local *xCAT_plugin::dhcp::ipIsDynamic = sub { return 0; }; + + my @errors; + local $xCAT_plugin::dhcp::callback = sub { + my $resp = shift; + push @errors, @{ $resp->{error} } if $resp->{error}; + }; + + my $backend = bless {}, 'DHCPKeaResBackend'; + { + package DHCPKeaResBackend; + sub subnet_id_for_ip { return 1; } + } + + my $reservations = xCAT_plugin::dhcp::kea_build_node_reservations( $backend, {}, ['svc01'] ); + + is( scalar(@errors), 0, 'service node reservation builds without errors' ); + is( scalar( @{ $reservations || [] } ), 1, 'service node yields exactly one Kea host reservation' ); + my $r = $reservations->[0] || {}; + is( $r->{'ip-address'}, '192.168.201.21', 'service node reservation carries the node IP' ); + is( $r->{'hw-address'}, '42:d7:c0:a8:c9:15', 'service node reservation carries the node MAC' ); + is( $r->{hostname}, 'svc01', 'service node reservation carries the hostname' ); + is( $r->{'next-server'}, '192.168.201.20', 'service node reservation next-server resolves to the serving management IP' ); +} + done_testing(); diff --git a/xCAT/postscripts/bmcsetup b/xCAT/postscripts/bmcsetup new file mode 100755 index 000000000..d958567a6 --- /dev/null +++ b/xCAT/postscripts/bmcsetup @@ -0,0 +1,770 @@ +#!/bin/sh +# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html +# Lenovo (c) 2016 +# +# Raw commands to set BMCs to defaults +# dx320 +# 0x2e 0x10 0x4d 0x4f 0x00 0xff +# +# dx340 +# 0x30 0x13 0xff 0x00 0x00 0x00 +# +# dx360/x3450 +# 0x30 0x02 0x43 0x4c 0x52 0xaa +# 0x08 0x00 0x49 0x4e 0x54 0x45 0x4c +# 0x08 0x04 +# +log_label="bmcsetup" + +TIMEOUT=15 + +# +# Function: cold_reset_bmc +# +# Cold reset the BMC for certain servers +# Product ID: 309 - x3755 M4 (8722) +# Product ID: 43707 and Manufacturer ID: 0 - IBM Power S822LC and S812LC +# +# Otherwise the BMC will not respond to ping after running the ipmitool commands in this script +# It is found that Dell PowerEdge M605 server have the same product ID '43707', but its 'Manufacturer ID' is '674' +function cold_reset_bmc() { + if [ -z $XPROD ]; then + logger -s -t $log_label -p local4.crit "CRITICAL ERROR - XPROD must be set before calling ${FUNCNAME[0]}" + rm -f /tmp/ipmicfg.xml + exit 1 + fi + if [ "$XPROD" = "43707" -a "$IPMIMFG" != '0' ]; then + return + fi + if [ "$XPROD" = "309" -o "$XPROD" = "43707" ] ; then + if [ "$XPROD" = "43707" ]; then + # OpenPOWER SPECIFIC, the OpenPOWER machines with AMI BMC should NOT need a + # reset after applying ipmitool commands. However, it seems there is a problem with + # the BMC where after 15 seconds, it stops responding. To work around, sleep 30 + # seconds before issuing the reset of the BMC. + snooze + else + logger -s -t $log_label -p local4.info "Resetting BMC ..." + ipmitool mc reset cold + logger -s -t $log_label -p local4.info "Waiting for the BMC to appear ..." + fi + + if [ "$XPROD" = "43707" ]; then + # OpenPOWER SPECIFIC, check the BMC with the following raw command to + # make sure that the bmc is really in a "ready" state before continuing + SLEEP_INTERVAL=3 + MAX_ITERATION=100 + tries=0 + while [ $tries -lt ${MAX_ITERATION} ] ; do + sleep ${SLEEP_INTERVAL} + ret=`ipmitool raw 0x3a 0x0a 2> /dev/null` + if [ "$ret" == " 00" ]; then + return + fi + tries=$(($tries+1)) + done + TOTAL_SEC=$((${SLEEP_INTERVAL} * ${MAX_ITERATION})) + logger -s -t $log_label -p local4.error "ERROR, After waiting ${TOTAL_SEC} seconds, the BMC is not in a ready state." + else + # for Non OpenPOWER servers, just sleep for some set time. + sleep 15 + + TRIES=0 + # Get the LAN information + while ! ipmitool lan print $LANCHAN > /dev/null; do + sleep 3 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + fi + fi +} + +# +# Function snooze() +# +# The purpose of this is to work around the issue with OpenPOWER BMCs after +# making a change to network configuration, sleep 30 to be sure the changes apply. +# +function snooze() { + if [ -z $XPROD ]; then + logger -s -t $log_label -p local4.crit "CRITICAL ERROR - XPROD must be set before calling ${FUNCNAME[0]}" + rm -f /tmp/ipmicfg.xml + exit 1 + fi + if [ "$XPROD" = "43707" -a "$IPMIMFG" != '0' ]; then + return + fi + if [ "$XPROD" = "43707" ]; then + # For OpenPOWER Machines + logger -s -t $log_label -p local4.debug "OpenPOWER, snooze for 30 seconds..." + sleep 30 + else + sleep 1 + fi +} + +if ! ipmitool -V 2>/dev/null| grep "version"; then + echo "No ipmitool find, please install it first"; + exit 1; +fi + +# Add ipmi_devintf module to allow the ipmitool operation in-band +if grep -q "^ppc64" <<< "$(uname -m)"; then + modprobe ipmi_powernv +else + modprobe ipmi_si +fi +modprobe ipmi_devintf + +for parm in `cat /proc/cmdline`; do + key=`echo $parm|awk -F= '{print $1}'` + if [ "$key" = "xcatd" ]; then + XCATMASTER=`echo $parm|awk -F= '{print $2}'|awk -F: '{print $1}'` + fi +done + +allowcred.awk & +CREDPID=$! +sleep 5 +IPCFGMETHOD=static +while [ -z "$BMCIP" -a $IPCFGMETHOD="static" ]; do + while ! getipmi + do + logger -s -t $log_label -p local4.info "Retrying retrieval of IPMI settings from server" + done + BMCIP=`grep bmcip /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'` + BMCVLAN=`grep taggedvlan /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'` + if [ -z "$BMCVLAN" ]; then + BMCVLAN=off; + fi + BMCGW=`grep gateway /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'` + BMCNM=`grep netmask /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'` + BMCUS=`grep username /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'` + BMCPW=`grep password /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'` + IPCFGMETHOD=`grep ipcfgmethod /tmp/ipmicfg.xml|awk -F\> '{print $2}'|awk -F\< '{print $1}'` + if [ -z "$IPCFGMETHOD" ]; then + IPCFGMETHOD="static" + fi + if [ -z "$BMCIP" -a $IPCFGMETHOD="static" ]; then + logger -s -t $log_label -p local4.err "FAILED TO RETRIEVE SETTINGS, RETRYING in 15 seconds" + sleep 15 + fi +done +kill $CREDPID +NUMBMCS=`grep bmcip /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'|wc -l` +logger -s -t $log_label -p local4.debug "BMC Information obtained from xCAT" +logger -s -t $log_label -p local4.debug "NUMBMCS=$NUMBMCS ==> BMC IP=$BMCIP/$BMCNM, GW=$BMCGW, VLAN=$BMCVLAN" + +# +# Get the BMC Version and Manufacturer ID +# +MC_INFO=/tmp/xcat.ipmitool.mcinfo + +ipmitool mc info > ${MC_INFO} +IPMIVER=`cat ${MC_INFO} |grep ^IPMI|awk '{print $4}'` +IPMIMFG=`cat ${MC_INFO} |grep "^Manufacturer ID"|awk '{print $4}'` + +# Get the BMC Product ID +XPROD=`cat ${MC_INFO} |grep "^Product ID"|awk '{print $4}'` + +logger -s -t $log_label -p local4.info "IPMIVER=$IPMIVER, IPMIMFG=$IPMIMFG, XPROD=$XPROD" + +# +# IPMIMFG=2 = IBM +# IPMIMFG=0 = OpenPOWER +# IPMIMFG=42817 and XPROD=16975 = OpenBMC (AC922) +# IPMIMFG=42817 and XPROD=1 = OpenBMC (IC922) +# +if [ "$IPMIMFG" == 2 ]; then #IBM + if [ "$XPROD" == "220" ]; then + LOCKEDUSERS=1 + BMCPORT=`grep bmcport /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'` + logger -s -t $log_label -p local4.info "BMCPORT is $BMCPORT" + if [ ! -z "$BMCPORT" ]; then + let idev=0 + IFS=',' + for p in $BMCPORT; do + # Set the LAN Configuration Parameters (OEM) + ipmitool -d $idev raw 0xc 1 1 0xc0 $p > /dev/null + # Set the PEF Configuration Parameters (Platform Event Filtering) + ipmitool -d $idev raw 0x04 0x12 0x09 0x01 0x18 0x${p}1 0x00 > /dev/null + CURBMCPORT=`ipmitool -d $idev raw 0xc 2 1 0xc0 0 0 | awk '{print $2}'` + logger -s -t $log_label -p local4.info "CURBMCPORT is $CURBMCPORT" + while [ "$CURBMCPORT" -ne "$BMCPORT" ]; do + sleep 1 + # Get the LAN Configuration Parameters (OEM) + CURBMCPORT=`ipmitool -d $idev raw 0xc 2 1 0xc0 0 0 | awk '{print $2}'` + done + let idev=idev+1 + done + unset IFS + fi + elif [ "$XPROD" == "291" ]; then + LOCKEDUSERS=1 + else + # Get a ID for the server + IBMFAM=`ipmitool raw 0x3a 0x50 |head -n 1| awk '{print $1 $2 $3 $4}'` + logger -s -t $log_label -p local4.info "IBMFAM is $IBMFAM" + if [ "$IBMFAM" == "59554f4f" ]; then + BMCPORT=`grep bmcport /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'` + if [ ! -z "$BMCPORT" ]; then + let idev=0 + IFS=',' + for p in $BMCPORT; do + ipmitool -d $idev raw 0xc 1 1 0xc0 $p > /dev/null + CURBMCPORT=`ipmitool -d $idev raw 0xc 2 1 0xc0 0 0 | awk '{print $2}'` + logger -s -t $log_label -p local4.info "CURBMCPORT is $CURBMCPORT" + while [ "$CURBMCPORT" -ne "$BMCPORT" ]; do + sleep 1 + CURBMCPORT=`ipmitool -d $idev raw 0xc 2 1 0xc0 0 0 | awk '{print $2}'` + done + let idev=idev+1 + done + unset IFS + fi + fi + fi +elif [ "$IPMIMFG" == 19046 -a "$XPROD" == 13616 ] ; then + LOCKEDUSERS=1 +elif [ "$IPMIMFG" == 20301 -o "$IPMIMFG" == 19046 ] ; then + IBMVPDV=`ipmitool raw 0x3a 0xb 2 0 16 1` + logger -s -t $log_label -p local4.info "XPROD is $XPROD, IBMVPDV is $IBMVPDV" + if [ $IBMVPDV -eq 2 ]; then + ISITE=1; + fi + LOCKEDUSERS=1 + BMCPORT=`grep bmcport /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'` + logger -s -t $log_label -p local4.info "BMCPORT is $BMCPORT" + if [ ! -z "$BMCPORT" ]; then + let idev=0 + IFS=',' + for p in $BMCPORT; do + unset IFS + ipmitool -d $idev raw 0xc 1 1 0xc0 $p > /dev/null + IFS=',' + # after this change, we need to watch and wait to see that it + # actually takes effect. On port change, the service processor + # does not migrate the network configuration over + # so we might be halfway through setting up when the net config + # reverts to dhcp then static, which setting a static ip for is + # considered invalid + CHECKBMCPORT=$(echo $p|awk '{print $1}') + CURBMCPORT=`ipmitool -d $idev raw 0xc 2 1 0xc0 0 0 | awk '{print $2}'` + logger -s -t $log_label -p local4.info "CURBMCPORT is $CURBMCPORT" + while [ -z "$CURBMCPORT" -o 0"$CURBMCPORT" -ne 0"$CHECKBMCPORT" ]; do + sleep 1 + CURBMCPORT=`ipmitool -d $idev raw 0xc 2 1 0xc0 0 0 | awk '{print $2}'` + done + let idev=idev+1 + done + unset IFS + fi +elif [ "$IPMIMFG" == "47488" ]; then + LOCKEDUSERS=1 +elif [ "$IPMIMFG" == "674" ]; then # DELL + logger -s -t $log_label -p local4.info "Dell server detected" + BMCPORT=`grep bmcport /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'` + # BMCPORT can take 3 values: + # 1st value: 0 = shared / 1 = dedicated + # 2nd value shared LOM (1-4) (0 or no value means first available LOM) + # 3rd value: failover LOM (1-4) (0 means no failover, no value means all LOMs) + read -r bmc_mode shared_lom failover_lom <<< "$BMCPORT" + logger -s -t $log_label -p local4.info "BMCPORT is $BMCPORT" + logger -s -t $log_label -p local4.info "bmc_mode:$bmc_mode shared_lom:$shared_lom failover_lom:$failover_lom" + if [ "$bmc_mode" == "1" ]; then # dedicated + logger -s -t $log_label -p local4.info "Setting BMC to dedicated mode" + # https://github.com/ipmitool/ipmitool/issues/18 + # ipmitool raw 0x30 0x28 0xAA 0xBB, with: + # AA: 01 = dedicated, 02...05 = shared with lom1...4 + # BB: 00 = no failover, 02...05 = failover on lom1...4, , 06 = failover on all loms + ipmitool raw 0x30 0x28 0x01 0x00 + elif [ "$bmc_mode" == "0" ]; then # shared + logger -s -t $log_label -p local4.info "Setting BMC to shared mode" + case "$failover_lom" in + "" ) xFAIL=0x06 ;; + 0 ) xFAIL=0x00 ;; + [1-4]) xFAIL=$(printf 0x%02x $((failover_lom+1))) ;; + *) logger -s -t $log_label -p local4.info "WARNING: can't set failover LOM to $failover_lom, defaulting to failover all LOMs" + xFAIL=0x06 ;; + esac + case "$shared_lom" in + ""|0) xLOM=00 ;; + [1-4]) xLOM=$(printf 0x%02x $((shared_lom+1))) ;; + *) logger -s -t $log_label -p local4.info "WARNING: can't set shared LOM to $shared_lom, defaulting to first available LOMs" + xLOM=00 ;; + esac + case "$xLOM" in + "00") # try to find the first available LOM + _lom=1 + while ! ipmitool raw 0x30 0x28 "$(printf 0x%02x $((_lom+1)))" "$xFAIL" 2>/dev/null; do + _lom=$((_lom+1)) + snooze + if [ $_lom -gt 4 ]; then + logger -s -t $log_label -p local4.info "ERROR: setting BMC to share mode failed" + break; + fi + done + ;; + *) ipmitool raw 0x30 0x28 "$xLOM" "$xFAIL" || \ + logger -s -t $log_label -p local4.info "ERROR: error setting BMCPORT to requested parameters" + ;; + esac + fi +elif [ "$IPMIMFG" == "10876" ]; then # Supermicro + BMCPORT=`grep bmcport /tmp/ipmicfg.xml |awk -F\> '{print $2}'|awk -F\< '{print $1}'` + logger -s -t $log_label -p local4.info "BMCPORT is $BMCPORT" + # https://www.supermicro.com/support/faqs/faq.cfm?faq=17953 + if [ "$BMCPORT" == "0" ]; then # shared + ipmitool raw 0x30 0x70 0x0c 1 1 + elif [ "$BMCPORT" == "1" ]; then # dedicated + ipmitool raw 0x30 0x70 0x0c 1 0 + fi +elif [ "$IPMIMFG" == "42817" -a "$XPROD" == "16975" ]; then # IBM OpenPOWER servers with OpenBMC (AC922) + ISOPENBMC=1 +elif [ "$IPMIMFG" == "42817" -a "$XPROD" == "1" ]; then # IBM OpenPOWER servers with OpenBMC (IC922) + ISOPENBMC=1 +fi + +LAN_MED_TYPE="802.3" +if [ ! -z "$ISOPENBMC" ]; then + # For OpenBMC, the value of "Channel Medium Type" attribute could be "Other LAN" for FW drivers prior to OP940.01 + # and "802.3" for FW drivers OP940.01 and later + LAN_MED_TYPE="802.3|Other LAN" +fi +# Loop through channels and pick the one to communicate on +while [ -z "$LANCHAN" ]; do + logger -s -t $log_label -p local4.info "Auto detecting LAN channel..." + for TLANCHAN in {1..16}; do + # Try to get the channel information; then get the MAC which is used for the channel + if ipmitool channel info $TLANCHAN 2> /dev/null | grep -E "$LAN_MED_TYPE" > /dev/null 2>&1 && ipmitool raw 0xc 2 $TLANCHAN 5 0 0 > /dev/null 2>&1; then + LANCHAN=$TLANCHAN + break; + fi; + echo -n "." + done + if [ -z "$LANCHAN" ]; then + logger -s -t $log_label -p local4.info "Unable to detect lan channel, retrying in 10 seconds" + sleep 10 + fi +done +logger -s -t $log_label -p local4.info "Detected LAN channel $LANCHAN" + +let idev=NUMBMCS +if [ $IPCFGMETHOD="static" ]; then + while [ $idev -gt 0 ]; do + let idev=idev-1 + TRIES=0 + # Set the channel to use STATIC IP address + while ! ipmitool -d $idev lan set $LANCHAN ipsrc static; do + snooze + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then + break; + fi + done + done + let idev=0 + for b in $BMCIP; do + TRIES=0 + # Set the IP for the current channel + while ! ipmitool -d $idev lan set $LANCHAN ipaddr $b; do + snooze + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then + break; + fi + done + let idev=idev+1 + done + let idev=0 + for m in $BMCNM; do + TRIES=0 + # Set the NETMASK for the current channel + while ! ipmitool -d $idev lan set $LANCHAN netmask $m; do + snooze + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then + break; + fi + done + let idev=idev+1 + done + + if [ ! -z "$BMCGW" ]; then + let idev=0 + for g in $BMCGW; do + TRIES=0 + # Set the GATEWAY for the current channel + while ! ipmitool -d $idev lan set $LANCHAN defgw ipaddr $g; do + snooze + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then + break; + fi + done + let idev=idev+1 + done + fi +else + if [ -z "$ISOPENBMC" ];then + let idev=NUMBMCS + else + let idev=0 + fi + while [ $idev -gt 0 ]; do + let idev=idev-1 + TRIES=0 + # Set the method to get IP for the current channel, if required. + while ! ipmitool -d $idev lan set $LANCHAN ipsrc $IPCFGMETHOD; do + snooze + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then + break; + fi + done + done +fi + +if [ "$BMCVLAN" = off ]; then + TRIES=0 + while ! ipmitool raw 0xc 1 $LANCHAN 0x14 0 0; do + snooze + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then + break; + fi + done +else + let idev=0 + for b in $BMCVLAN; do + TRIES=0 + # Set VLAN for the current channel + while ! ipmitool -d $idev lan set $LANCHAN vlan id $b; do + snooze + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then + break; + fi + done + let idev=idev+1 + done +fi + + +# update the node status to 'bmcready' for openbmc, no more configuration is needed. +if [ ! -z "$ISOPENBMC" ]; then + # To enable network configuration for openbmc + # + # For OpenBMC, FW team still suggest running the raw command instead of access on, use raw for now + # + # ipmitool -d 0 lan set $LANCHAN access on + ipmitool -d 0 raw 0x06 0x40 $LANCHAN 0x42 0x44 + # update the node status to 'bmcready' + if [ ! -z "$XCATMASTER" ]; then + # Wait for some time for the new network setting is ready + snooze + if ipmitool lan print 1 | grep $BMCIP >/dev/null; then + updateflag.awk $XCATMASTER 3002 "installstatus bmcready" + else + updateflag.awk $XCATMASTER 3002 "installstatus failed" + fi + fi + rm -f /tmp/ipmicfg.xml + exit $bmc_config_rc +fi +# After network commands are issued, pause to allow the BMC to apply (OpenPOWER) +snooze + +let idev=NUMBMCS-1 +for user in $BMCUS; do + if [ "$user" = "" ]; then + continue + fi + if USERLIST=$(ipmitool -d $idev user list "$LANCHAN") && [ -n "$USERLIST" ]; then + DISABLEUSERS=$(echo "$USERLIST" | awk '$1 != "ID" && $1 ~ /^[0-9]+$/ {print $1}') + ENABLEDUSERS=$(echo "$USERLIST" | awk ' + $1 == "ID" { next } + $1 !~ /^[0-9]+$/ { next } + { + ipmi_msg = $(NF - 1) + if ($(NF - 1) == "NO" && $NF == "ACCESS") { + ipmi_msg = $(NF - 2) + } + if (ipmi_msg == "true") { + print $1 + } + }') + else + DISABLEUSERS=$(ipmitool user list "$LANCHAN"|awk '{print $1}'|grep -v ID) + ENABLEDUSERS="$DISABLEUSERS" + logger -s -t $log_label -p local4.warning "Could not read IPMI user list for device $idev, falling back to disabling all non-target users" + fi + # Get the User Slots + USERSLOT=$(echo "$USERLIST" | awk -v user="$user" '$1 != "ID" && $2 == user {print $1; exit}') + if [ -z "$USERSLOT" ]; then + USERSLOT=$((`ipmitool raw 6 0x44 1 1|awk '{print $3}'` + 1)) + fi + if [ "$USERSLOT" == 0 ]; then + # automatically find first unlocked user slot + for slot in {1..16}; do + USERLOCKED=`ipmitool channel getaccess $LANCHAN $slot | grep Fixed | awk '{print $4}'` + if [ "$USERLOCKED" == "No" ]; then + USERSLOT=$slot + break + fi + done + fi + # fall back to userslot 2 as a last resort + if [ "$USERSLOT" = 0 ]; then USERSLOT=2; fi + if [ "$ISITE" = 1 ]; then + allowcred.awk & + CREDPID=$! + while ! remoteimmsetup + do + logger -s -t $log_label -p local4.info "Waiting for xCAT remote configuration of service processor via CMM.." + done + kill $CREDPID + fi + + # Get the specified user + CURRENTUSER=$(echo "$USERLIST" | awk -v slot="$USERSLOT" '$1 == slot {print $2; exit}') + DISABLEUSERS=$(echo "$DISABLEUSERS" | awk -v slot="$USERSLOT" '$1 != slot {print $1}') + logger -s -t $log_label -p local4.info "CURRENTUSER=$CURRENTUSER, DISABLEUSERS=$DISABLEUSERS" + for userid in $DISABLEUSERS; do + TRIES=0 + # user disable is not idempotent on several BMCs; skip slots already disabled. + echo "$ENABLEDUSERS" | grep -q "^${userid}$" || continue + # Disable the non-specified user + while ! ipmitool -d $idev user disable "$userid"; do + sleep 1 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + done + + TRIES=0 + # Enable the specified user + while ! ipmitool -d $idev user enable $USERSLOT; do + sleep 1 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + ipmitool raw 6 0x43 $(($LANCHAN|176)) $USERSLOT 4 + + TRIES=0 + if [ "$CURRENTUSER" != "$user" ]; then + # Change the user name, if necessary + while ! ipmitool -d $idev user set name $USERSLOT "$user"; do + sleep 1 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + fi + + TRIES=0 + # Last param in ipmitool user priv is the channel to set it on. + # Penguin boxes are all channel 2 + # + # Get privilege for the specified user + # + CURRPRIV=`ipmitool -d $idev user list $LANCHAN|grep ^$USERSLOT|awk '{print $6}'` + logger -s -t $log_label -p local4.info "CURRPRIV=$CURRPRIV" + if [ "$CURRPRIV" != "ADMINISTRATOR" ]; then + # Set the ADMIN privilege for the specified user + while ! ipmitool -d $idev user priv $USERSLOT 4 $LANCHAN; do + sleep 1 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + fi + + TRIES=0 + # Enable the channel link for the specified user + if [ "$IPMIMFG" == 343 -a "$XPROD" == 124 ]; then # For Intel S2600BP system boards + cmd="ipmitool -d $idev channel setaccess $LANCHAN $USERSLOT link=on ipmi=on" + else + cmd="ipmitool -d $idev channel setaccess $LANCHAN $USERSLOT link=on" + fi + while ! eval $cmd; do + sleep 1 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + + let idev=idev-1 +done + +let idev=NUMBMCS-1 +for bmcp in $BMCPW; do + if [ "$bmcp" = "" ]; then continue; fi + + TRIES=0 + # Set the password for the specified user + while ! ipmitool -d $idev user set password $USERSLOT "$bmcp"; do + sleep 1 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + + logger -s -t $log_label -p local4.info "Set up following user table: " + TRIES=0 + # Display the user list + ipmitool -d $idev user list $LANCHAN + let idev=idev-1 +done + +let idev=NUMBMCS +while [ $idev -gt 0 ]; do + let idev=idev-1 + + MSG="Enabling the non-volatile channel access ($LANCHAN)" + logger -s -t $log_label -p local4.info "$MSG" + TRIES=0 + # Set the non-volatile channel access: enable and privilege + while ! ipmitool -d $idev raw 0x6 0x40 $LANCHAN 0x42 0x44 > /dev/null; do + sleep 1 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + if [ $TRIES -gt $TIMEOUT ]; then logger -s -t $log_label -p local4.err "$MSG: ERROR"; else logger -s -t $log_label -p local4.info "$MSG: OK"; fi + + MSG="Enabling the volatile channel access ($LANCHAN)" + logger -s -t $log_label -p local4.info "$MSG" + TRIES=0 + # Set the volatile channel access: enable and privilege + while ! ipmitool -d $idev raw 0x6 0x40 $LANCHAN 0x82 0x84 > /dev/null; do + sleep 1 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + if [ $TRIES -gt $TIMEOUT ]; then logger -s -t $log_label -p local4.err "$MSG: ERROR"; else logger -s -t $log_label -p local4.info "$MSG: OK"; fi + + MSG="Enabling ARP responses" + logger -s -t $log_label -p local4.info "$MSG" + TRIES=0 + # enable the ARP response on the channel + while ! ipmitool -d $idev lan set $LANCHAN arp respond on > /dev/null; do + sleep 1 + let TRIES=TRIES+1 + echo -n . + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + if [ $TRIES -gt $TIMEOUT ]; then logger -s -t $log_label -p local4.err "$MSG: ERROR"; else logger -s -t $log_label -p local4.info "$MSG: OK"; fi + + MSG="Enabling IPMI MD5 LAN access" + logger -s -t $log_label -p local4.info "$MSG" + TRIES=0 + # Set the auth level to md5 for the channel + while ! ipmitool -d $idev lan set $LANCHAN auth admin md5 > /dev/null; do + sleep 1 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + if [ $TRIES -gt $TIMEOUT ]; then logger -s -t $log_label -p local4.err "$MSG: ERROR"; else logger -s -t $log_label -p local4.info "$MSG: OK"; fi + + if [ ! "$IPMIVER" == "1.5" ]; then + MSG="Enabling IPMI v 2.0 LAN access" + logger -s -t $log_label -p local4.info "$MSG" + # the following goals: + # - disable cipher suite 0 (if present, avoid password bypass) + # - disable cipher suite 1 (if present, to avoid weaking Kg if used) + # - enable cipher suite 2 (scenarios without perl Rijndael) + # - enable cipher suite 3 + # - ignore the rest + # + # Read the LAN info + # + ZEROIDX=$(ipmitool lan print $LANCHAN|grep ^RMCP+|cut -d: -f 2|sed -e 's/ //' -e 's/,/\n/g'|grep -n '%0$'|sed -e 's/:.*//') + ONEIDX=$(ipmitool lan print $LANCHAN|grep ^RMCP+|cut -d: -f 2|sed -e 's/ //' -e 's/,/\n/g'|grep -n '^1$'|sed -e 's/:.*//') + TWOIDX=$(ipmitool lan print $LANCHAN|grep ^RMCP+|cut -d: -f 2|sed -e 's/ //' -e 's/,/\n/g'|grep -n '^2$'|sed -e 's/:.*//') + THREEIDX=$(ipmitool lan print $LANCHAN|grep ^RMCP+|cut -d: -f 2|sed -e 's/ //' -e 's/,/\n/g'|grep -n '^3$'|sed -e 's/:.*//') + ACCESS=$(ipmitool lan print $LANCHAN|grep 'Cipher Suite Priv Max'|cut -d: -f 2|sed -e 's/ //g' -e 's/\(.\)/\1\n/g'|grep -v '^$') + # logger -s -t $log_label -p local4.info "ZEROIDX is $ZEROIDX, ONEIDX is $ONEIDX, TWOIDX is $TWOIDX, THREEIDX is $THREEIDX, ACCESS is $ACCESS" + NEWACCESS="" + i=1 + for elem in $ACCESS; do + if [ $i = "$ZEROIDX" -o $i = "$ONEIDX" ]; then + NEWACCESS="$NEWACCESS"X + elif [ $i = "$TWOIDX" -o $i = "$THREEIDX" ]; then + #do not *downgrade* from OEM priv + if [ "$elem" != "O" ]; then NEWACCESS="$NEWACCESS"a; else NEWACCESS="$NEWACCESS"$elem; fi + else + NEWACCESS="$NEWACCESS"$elem + fi + i=$((i+1)) + done + + # logger -s -t $log_label -p local4.info "ACCESS=$NEWACCESS" + + MSG="Set the cipher_privileges for the channel" + logger -s -t $log_label -p local4.info "$MSG" + # Set the cipher_privileges for the channel + if ipmitool lan set $LANCHAN cipher_privs $NEWACCESS > /dev/null; then + logger -s -t $log_label -p local4.info "$MSG: OK" + else + logger -s -t $log_label -p local4.info "$MSG: ERROR" + fi + + MSG="Enabling SOL for channel $LANCHAN" + logger -s -t $log_label -p local4.info "$MSG" + TRIES=0 + # Enable the SOL for the channel + while ! ipmitool -d $idev raw 0xc 0x21 $LANCHAN 0x1 0x1 > /dev/null; do + sleep 1 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + if [ $TRIES -gt $TIMEOUT ]; then logger -s -t $log_label -p local4.err "$MSG: ERROR"; else logger -s -t $log_label -p local4.info "$MSG: OK"; fi + + MSG="Enabling SOL for $BMCUS" + logger -s -t $log_label -p local4.info "$MSG" + TRIES=0 + # Enable the SOL for the USER and set the payload 1 + while ! ipmitool -d $idev raw 6 0x4c $LANCHAN $USERSLOT 2 0 0 0 > /dev/null; do + sleep 1 + let TRIES=TRIES+1 + if [ $TRIES -gt $TIMEOUT ]; then break; fi + done + if [ $TRIES -gt $TIMEOUT ]; then logger -s -t $log_label -p local4.err "$MSG: ERROR"; else logger -s -t $log_label -p local4.info "$MSG: OK"; fi + fi + + # Cold reset the BMC + cold_reset_bmc + + # update the node status to 'bmcready' + if [ ! -z "$XCATMASTER" ]; then + updateflag.awk $XCATMASTER 3002 "installstatus bmcready" + fi + + logger -s -t $log_label -p local4.info "Lighting Identify Light" + if [ "$XPROD" = "43707" -a "$IPMIMFG" = '0' ]; then + ISOPENPOWER=1 + elif [ "$IPMIMFG" = "10876" ];then + # Handle Supermicro Servers (MFG=10876) + # Boston (PROD=2437), Briggs/Stratton (PROD=2355) + if [ "$XPROD" = "2437" -o "$XPROD" = "2355" ]; then + ISOPENPOWER=1 + fi + fi + + + if [ "$ISOPENPOWER" = '1' ]; then + # OpenPOWER BMC specific, turn on the LED beacon light. + # - default interval, # ipmitool chassis identify + # Chassis identify interval: default (15 seconds) + # - 275 is too large, # ipmitool chassis identify 275 + # Given interval is too big. + ipmitool chassis identify 250 + else + # All other BMCs + while : + # Identify the server by turning on the LED light + do ipmitool -d $idev raw 0 4 10 > /dev/null + sleep 7 + done & + fi +done + +# remove the bmc configuration information before exit +rm -f /tmp/ipmicfg.xml diff --git a/xCAT/postscripts/configeth b/xCAT/postscripts/configeth index ea8ec0b70..fff118007 100755 --- a/xCAT/postscripts/configeth +++ b/xCAT/postscripts/configeth @@ -216,7 +216,13 @@ function configipv4(){ name="${array_extra_param_names[$i]}" value="${array_extra_param_values[$i]}" if [[ "$OSVER" =~ ^(rhel|rhels|alma|almalinux|rocky|centos|ol)(9|1[0-9]) ]]; then - nmcli con modify $con_name $name $value + # Best-effort: apply as a native NetworkManager property if one exists. + # Arbitrary ifcfg-style keys (e.g. CONNECTED_MODE) have no NM setting and + # are (re)persisted into the keyfile [user] section after ALL IPs are + # configured (post-loop block below), because the per-IP nmcli modify used + # for additional addresses re-serializes the keyfile and would otherwise + # drop anything appended here. + nmcli con modify $con_name $name $value 2>/dev/null || true else grep -i "${name}" $str_conf_file if [ $? -eq 0 ];then @@ -763,7 +769,17 @@ elif [ "$1" = "-s" ];then tmp_con_name=${str_inst_nic}"-tmp" nmcli con modify $con_name connection.id $tmp_con_name fi - nmcli con add type ethernet con-name $con_name ifname ${str_inst_nic} ipv4.method manual ipv4.addresses ${str_inst_ip}/${str_inst_prefix} connection.autoconnect-priority 9 gw4 ${str_inst_gateway} + if [ -z "$str_inst_gateway" ]; then + # EL10/NM: during updatenode the dhclient lease and MACADDRESS may be + # absent, leaving the gateway empty. Recover it from the live default + # route so the install NIC keeps its default route. + str_inst_gateway=`ip route show default | awk '{print $3}' | head -1` + fi + gw4_arg="" + # Never pass an empty gw4: nmcli rejects "value for 'gw4' is missing", the + # connection is not created, and the later down+reload leaves the NIC down. + [ -n "$str_inst_gateway" ] && gw4_arg="gw4 $str_inst_gateway" + nmcli con add type ethernet con-name $con_name ifname ${str_inst_nic} ipv4.method manual ipv4.addresses ${str_inst_ip}/${str_inst_prefix} connection.autoconnect-priority 9 $gw4_arg str_conf_file_1="/etc/sysconfig/network-scripts/ifcfg-xcat-${str_inst_nic}-1" if [ -f $str_conf_file_1 ]; then grep $con_name $str_conf_file_1 >/dev/null 2>/dev/null @@ -1304,4 +1320,34 @@ if [ $networkmanager_active -eq 1 ] && [ -n "$tmp_con_name" ]; then nmcli con delete $tmp_con_name fi fi +# Persist nicextraparams that NetworkManager has no native setting for (e.g. CONNECTED_MODE) +# into the connection keyfile's [user] section. Done here as the very last step: the +# nmcli con reload/up in the restart phase above re-serializes the keyfile from NM's +# in-memory model and drops anything NM does not model, so an earlier write would be lost. +# On EL10 (keyfile-only) there is no ifcfg file to hold these. We do NOT reload after, so +# the file keeps the section; NM tolerates an unknown [user] section in keyfile mode. +if [ "$str_os_type" = "redhat" ] && [ "$networkmanager_active" = "1" ] && [[ "$OSVER" =~ ^(rhel|rhels|alma|almalinux|rocky|centos|ol)(9|1[0-9]) ]]; then + # Resolve the connection's keyfile by UUID -- NM may name it "-.nmconnection" + # (not the plain ".nmconnection") when a same-named file already exists. + ep_con="xcat-${str_nic_name}" + ep_uuid=$(nmcli -g connection.uuid connection show "$ep_con" 2>/dev/null) + ep_kf="" + [ -n "$ep_uuid" ] && ep_kf=$(grep -l "uuid=$ep_uuid" /etc/NetworkManager/system-connections/*.nmconnection 2>/dev/null | head -1) + if [ -n "$ep_kf" ] && [ -f "$ep_kf" ]; then + for ep in "${array_nic_params[@]}"; do + [ -z "$ep" ] && continue + [ "$ep" = "$str_default_token" ] && continue + parse_nic_extra_params "$ep" + j=0 + while [ $j -lt ${#array_extra_param_names[@]} ]; do + nm="${array_extra_param_names[$j]}" + vl="${array_extra_param_values[$j]}" + grep -q '^\[user\]' "$ep_kf" || printf '\n[user]\n' >> "$ep_kf" + grep -q "^xcat\.${nm}=" "$ep_kf" || echo "xcat.${nm}=${vl}" >> "$ep_kf" + j=$((j+1)) + done + done + chmod 600 "$ep_kf" + fi +fi exit $error_code diff --git a/xCAT/postscripts/getipmi b/xCAT/postscripts/getipmi new file mode 100755 index 000000000..1c1c6f6be --- /dev/null +++ b/xCAT/postscripts/getipmi @@ -0,0 +1,66 @@ +#!/bin/bash + +log_label="getipmi" + +allowcred.awk & +CREDPID=$! +if [ -z "$XCATDEST" ]; then + XCATDEST=$1 +fi + +# This section only works in genesis +if [ -z "$XCATDEST" ]; then + for parm in $(cat /proc/cmdline); do + if echo "$parm" |grep -q xcatd=; then + XCATDEST="$(echo "$parm" |awk -F= '{print $2}')" + fi + done +fi +# This section works in diskless/diskful +# The environment MASTER_IP and XCATDPORT is exported by mypostscript +if [ -z "$XCATDEST" ]; then + XCATDEST=$MASTER_IP:$XCATDPORT +fi + +for LANCHAN in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16; do + if ipmitool channel info $LANCHAN 2> /dev/null | grep 802.3 > /dev/null 2>&1 && ipmitool raw 0xc 2 $LANCHAN 5 0 0 > /dev/null 2>&1; + then break; + fi; +done +BMCMAC="$(ipmitool lan print "$LANCHAN"|grep ^MAC|awk '{print $4}')" #bmcconfig may opt to use DHCP, if so we need to feed up the mac address +#TODO: need a way to get the DUID the service processor may use, perhaps reserve that for 'ibmsetup' since spec doesn't touch ipv6? +IPMIMFG="$(ipmitool mc info |grep "^Manufacturer ID"|awk '{print $4}')" +XPROD="$(ipmitool mc info | grep "^Product ID"|awk '{print $4}')" +if [ "$IPMIMFG" == "42817" -a "$XPROD" == "16975" ]; then + ISOPENBMC=1 # AC922 +elif [ "$IPMIMFG" == "42817" -a "$XPROD" == "1" ]; then + ISOPENBMC=1 # IC922 +else + ISOPENBMC=0 +fi +echo " +getbmcconfig +300 +$ISOPENBMC +$BMCMAC +" > /tmp/bmcreq.xml +rm -f /tmp/ipmicfg.xml +while [ ! -f /tmp/ipmicfg.xml ] || grep error /tmp/ipmicfg.xml; do + if [ -f /tmp/ipmicfg.xml ]; then + timer=60 + while [ $timer -gt 0 ]; do + sleep 1 + echo -en "Retrying in $timer seconds \r" + timer=$(($timer-1)); + done + fi + echo -en " \r"; + + if [ -f /etc/xcat/cert.pem -a -f /etc/xcat/certkey.pem ]; then #use client cert if available + openssl s_client -key /etc/xcat/certkey.pem -cert /etc/xcat/cert.pem -connect "$XCATDEST" -quiet 2> /dev/null < /tmp/bmcreq.xml > /tmp/ipmicfg.xml + else + openssl s_client -connect "$XCATDEST" -quiet 2> /dev/null < /tmp/bmcreq.xml > /tmp/ipmicfg.xml + fi +done +rm /tmp/bmcreq.xml +kill $CREDPID diff --git a/xCAT/postscripts/remoteshell b/xCAT/postscripts/remoteshell index bfc67f4bd..28f4a3dfa 100755 --- a/xCAT/postscripts/remoteshell +++ b/xCAT/postscripts/remoteshell @@ -163,7 +163,11 @@ if [ $? -ne 0 ]; then else #the message received is an error, so parse it ERR_MSG=`sed -n 's%.*\(.*\).*%\1%p' /tmp/ssh_dsa_hostkey` - logger -s -t $log_label -p local4.err Error: $ERR_MSG + # DSA host keys are obsolete and absent on modern OpenSSH (EL9/EL10 removed + # ssh-dss), so the server has no ssh_dsa_hostkey to hand out. That is expected, + # not an error: log to syslog only (no -s) and without the word "Error" so it + # does not pollute postscript output (e.g. updatenode's "output !~ error" check). + logger -t $log_label -p local4.info "remoteshell: ssh_host_dsa_key unavailable, skipping ($ERR_MSG)" fi rm /tmp/ssh_dsa_hostkey diff --git a/xCAT/postscripts/servicenode b/xCAT/postscripts/servicenode index 9fd4b3a83..5590d8c14 100755 --- a/xCAT/postscripts/servicenode +++ b/xCAT/postscripts/servicenode @@ -137,6 +137,17 @@ else # install xcat from /install/xcat # Copy Certificates, and config file to apprpriate directories # from /install and restart xcat + + # xCAT-server pulls perl deps (Crypt::CBC/PBKDF2, Expect, Net-DNS, ...) that + # live in EPEL; enable it here, before the otherpkgs postbootscript installs + # xCATsn, on EL service nodes. Tolerant by design: runcmd() only logs on + # failure, so RHEL nodes without epel-release in a default repo (or sites + # without EPEL reachability) do not fail service-node setup. + if (-e "/etc/os-release" && `grep -Ei 'platform:el' /etc/os-release 2>/dev/null`) { + `logger -t $log_label -p local4.info servicenode: ensuring EPEL is enabled for xCAT-server dependencies`; + &runcmd("dnf -y install epel-release"); + } + &runcmd("rpm -e OpenIPMI-tools"); ©certs; diff --git a/xCAT/xCAT.spec b/xCAT/xCAT.spec index dc71009d7..b5e665def 100644 --- a/xCAT/xCAT.spec +++ b/xCAT/xCAT.spec @@ -55,12 +55,6 @@ Requires: xCAT-server = 4:%{version}-%{release} %if %nots390x Requires: xCAT-probe = 4:%{version}-%{release} Requires: xCAT-genesis-scripts-%{genesistarch} = 1:%{version}-%{release} -%ifarch x86_64 -Requires: xCAT-genesis-scripts-ppc64 = 1:%{version}-%{release} -%endif -%ifarch ppc ppc64 ppc64le -Requires: xCAT-genesis-scripts-x86_64 = 1:%{version}-%{release} -%endif %endif Requires: rsync diff --git a/xCATsn/xCATsn.spec b/xCATsn/xCATsn.spec index d79632860..b184bc02e 100644 --- a/xCATsn/xCATsn.spec +++ b/xCATsn/xCATsn.spec @@ -259,6 +259,21 @@ if [ -f "/proc/cmdline" ] && [ "x$(stat -c '%i %d' /)" == "x$(stat -c '%i %d' /p fi %endif +%ifos linux +# xCATsn is installed only on service nodes (it Conflicts: xCAT) and pulls in xCAT-server (xcatd) +# plus the credentials/cfgloc the servicenode postscript already staged -- so this is the right, +# autodeclarative place to bring xcatd up on a service node. Guard so it runs only on a real +# running system (skip the genimage/diskless chroot, where there is no systemd), and start via +# systemctl: on EL10 the SysV path (/etc/init.d/xcatd) cannot start xcatd. +if [ -f "/proc/cmdline" ] && [ "x$(stat -c '%i %d' /)" == "x$(stat -c '%i %d' /proc/1/root/. 2>/dev/null)" ]; then + if command -v systemctl >/dev/null 2>&1; then + systemctl restart xcatd + else + service xcatd restart + fi +fi +%endif + %clean %files