diff --git a/README.md b/README.md index b4b923f6ca0191e37316b706efc1e30c5e07b100..15f2a4cb2aa0a7e2a86aa6362e7e5be35e07b52a 100644 --- a/README.md +++ b/README.md @@ -49,9 +49,9 @@ Note that images are generally created in the Openstack `$PROJECT_VIRTUAL` proje ### RedHat testing particularities -Due to how RedHat machines require bootstrapping, we only test virtual managed machines for the time being. +Due to how RedHat machines require bootstrapping, we only test virtual machines for the time being. -This means that `TEST_UNMANAGED` or `TEST_PHYSICAL` will have no effect for this use case. +This means that `TEST_PHYSICAL` will have no effect for this use case. ## Tests diff --git a/ci/common.yml b/ci/common.yml index a50641ee8897d63111c176cc29a7ae6a3139711d..3105c8a1281c2097a102ee77fe5a96b5d7b30612 100644 --- a/ci/common.yml +++ b/ci/common.yml @@ -42,7 +42,7 @@ exit 1 fi else - OS_DISTRO=$(openstack image show ${IMAGE} -c properties -f json | jq '.properties.os_distro') + OS_DISTRO=$(openstack image show ${IMAGE} -c properties -f json | jq '.properties.os_distro' | tr -d \") fi .test_unmanaged_physical: diff --git a/ci/rh7.yml b/ci/rh7.yml index 30fe03e8dbba160f13feccd0e8ff4f2142f3a8fe..9bcb589c3bf35e738d534f99fb1fe7d0297eb5c8 100644 --- a/ci/rh7.yml +++ b/ci/rh7.yml @@ -6,3 +6,13 @@ rh7_puppet_virtual: only: variables: - $TEST_OSRH7 == 'True' && $TEST_VIRTUAL == 'True' && $TEST_PUPPET == 'True' + +rh7_unman_virtual: + extends: .test_unmanaged_virtual + variables: + OS: RH7 + ARCH: x86_64 + DELETE_FAILURES: "False" + only: + variables: + - $TEST_OSRH7 == 'True' && $TEST_VIRTUAL == 'True' && $TEST_UNMANAGED == 'True' diff --git a/ci/rh8.yml b/ci/rh8.yml index 46509d0d241606f5f7c80a94462db421cddb3123..15e250b74f9fd457146b37c77cd3893ef3474979 100644 --- a/ci/rh8.yml +++ b/ci/rh8.yml @@ -6,3 +6,13 @@ rh8_puppet_virtual: only: variables: - $TEST_OSRH8 == 'True' && $TEST_VIRTUAL == 'True' && $TEST_PUPPET == 'True' + +rh8_unman_virtual: + extends: .test_unmanaged_virtual + variables: + OS: RH8 + ARCH: x86_64 + DELETE_FAILURES: "False" + only: + variables: + - $TEST_OSRH8 == 'True' && $TEST_VIRTUAL == 'True' && $TEST_UNMANAGED == 'True' diff --git a/common.sh b/common.sh index 1b07bdeacefcb34be8e8e08998c26f52a8fec6cb..0e65342e9c5a561a9107a19958ae75fed88c160e 100644 --- a/common.sh +++ b/common.sh @@ -81,7 +81,7 @@ function runOnServer() { } function isServerUp() { - runOnServer "$1" "uname -a; uptime; lsb_release -a" 2> /dev/null + runOnServer "$1" "uname -a; uptime; cat /etc/redhat-release" 2> /dev/null [ $? -eq 0 ] && return 0 return 4 diff --git a/testallthethings.sh b/testallthethings.sh index b66e481cdd86ba73722b8af578e6ff90293cf5d8..dcd44db387d1523a6557c76ea4f4596816197519 100755 --- a/testallthethings.sh +++ b/testallthethings.sh @@ -331,6 +331,10 @@ while [[ ${#TOBETESTED[@]} -gt 0 ]]; do deleteServer "${p_name}" "${TESTTYPE}-${flavor}" "puppet_tests" else t_Log "We're in! Running upstream tests" + if [[ $OS_DISTRO == 'RHEL' ]]; then + t_Log "Host is RHEL, setting up dependencies" + runOnServer "${p_name}" "yum -y install redhat-lsb-core" + fi # Find the OS we're running, and the commit hash of the latest passing test. Tested machines may not have external connectivity. centos_ver=$(runOnServer "${p_name}" "lsb_release -rs | cut -f 1 -d '.'") PASSING=$(curl -s https://ci.centos.org/job/CentOS-Core-QA-t_functional-c${centos_ver}-64/lastSuccessfulBuild/api/json | jq -r '.actions[] | select(.lastBuiltRevision) | .lastBuiltRevision.SHA1') @@ -345,17 +349,21 @@ while [[ ${#TOBETESTED[@]} -gt 0 ]]; do else testEnd "${TESTTYPE}-${flavor}" "upstream_centos_tests" $TEST_PASS fi - t_Log "Now run our own tests" testStart "${TESTTYPE}-${flavor}" "cern_centos_tests" - runOnServer "${p_name}" "IMAGECI_USER='$IMAGECI_USER' IMAGECI_PWD='$IMAGECI_PWD' bash -s" < ./cerncentostests.sh - g=$? - t_CheckExitStatus $g - if [[ $g -ne 0 ]]; then - testEnd "${TESTTYPE}-${flavor}" "cern_centos_tests" $TEST_FAIL - testAddComments "${TESTTYPE}-${flavor}" "cern_centos_tests" "CERN tests failed" - else + if [[ $OS_DISTRO == 'RHEL' ]]; then + testAddComments "${TESTTYPE}-${flavor}" "cern_centos_tests" "CERN tests skipped as image is upstream RHEL" testEnd "${TESTTYPE}-${flavor}" "cern_centos_tests" $TEST_PASS + else + runOnServer "${p_name}" "IMAGECI_USER='$IMAGECI_USER' IMAGECI_PWD='$IMAGECI_PWD' bash -s" < ./cerncentostests.sh + g=$? + t_CheckExitStatus $g + if [[ $g -ne 0 ]]; then + testEnd "${TESTTYPE}-${flavor}" "cern_centos_tests" $TEST_FAIL + testAddComments "${TESTTYPE}-${flavor}" "cern_centos_tests" "CERN tests failed" + else + testEnd "${TESTTYPE}-${flavor}" "cern_centos_tests" $TEST_PASS + fi fi deleteServer "${p_name}" "${TESTTYPE}-${flavor}" "cern_centos_tests" diff --git a/upstreamcentostests.sh b/upstreamcentostests.sh index 4c5aa8208eb4136d34a36a59a3df7fcdaa4b9d8c..9d6b0ca914ec7602323b6147d9841612a2d80170 100644 --- a/upstreamcentostests.sh +++ b/upstreamcentostests.sh @@ -75,6 +75,28 @@ if [ "$LSB_DISTRO_ID" != "CentOS" ]; then # Uses /etc/centos-release as an input file echo "8|tests/r_pdf/01_pdf-test*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list fi +# Most CentOS tests work for RHEL as well, with a few exceptions ... +if [ "$LSB_DISTRO_ID" == "RedHatEnterpriseServer" ]; then + # random failures, ignoring + echo "7|tests/p_abrt/abrt_gpg_keys*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "7|tests/p_anaconda/anaconda_centos_patch*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "7|tests/p_centos-release/*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "7|tests/p_lsb/lsb_release_brand_test*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "7|tests/p_kernel/*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "7|tests/p_httpd/*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "7|tests/p_java-openjdk/*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "7|tests/p_shim/01_shim_secureboot_signed*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "7|tests/p_yum/yum_bugtracker*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "7|tests/p_yum/yum_distroverpkg*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "7|tests/r_pdf/01_pdf-test*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list +fi +if [ "$LSB_DISTRO_ID" == "RedHatEnterprise" ]; then + echo "8|tests/p_lftp/10_lftp_http_test*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "8|tests/p_mtr/mtr_test*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "8|tests/p_wget/wget_test*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "8|tests/r_lamp/40_basic_lamp*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list + echo "8|tests/r_pdf/*|Not applicable on $LSB_DISTRO_ID" >> ./skipped-tests.list +fi # Tweaks for test suite to work on CERN CentOS # Need to tweak Pam so passwd tests do not fail due to test user being taken under Kerberos auth