From b164910e53daf749dd3f86551d10b14cfee1e388 Mon Sep 17 00:00:00 2001
From: Ben Morrice <ben.morrice@cern.ch>
Date: Tue, 17 Aug 2021 16:49:55 +0200
Subject: [PATCH 1/5] define rh[7-8]_unman_virtual stages

---
 ci/rh7.yml | 10 ++++++++++
 ci/rh8.yml | 10 ++++++++++
 2 files changed, 20 insertions(+)

diff --git a/ci/rh7.yml b/ci/rh7.yml
index 30fe03e..9bcb589 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 46509d0..15e250b 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'
-- 
GitLab


From a5b3cebad4c4dc2ee523265f831e062a6c1d0ac0 Mon Sep 17 00:00:00 2001
From: Ben Morrice <ben.morrice@cern.ch>
Date: Tue, 17 Aug 2021 17:40:19 +0200
Subject: [PATCH 2/5] use /etc/redhat-release instead of lsb_release for the
 uptime check

redhat-lsb-core is not included by default in RHEL images
---
 common.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common.sh b/common.sh
index 1b07bde..0e65342 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
-- 
GitLab


From e3cc15341352abba340c53b97098010f6065b4eb Mon Sep 17 00:00:00 2001
From: Ben Morrice <ben.morrice@cern.ch>
Date: Wed, 18 Aug 2021 08:33:58 +0200
Subject: [PATCH 3/5] fix OS_DISTRO image detection routine, we don't want
 quotes in the variable

---
 ci/common.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ci/common.yml b/ci/common.yml
index a50641e..3105c8a 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:
-- 
GitLab


From 0713ccd2e625f7ab4c69262d807aafe853331b59 Mon Sep 17 00:00:00 2001
From: Ben Morrice <ben.morrice@cern.ch>
Date: Wed, 18 Aug 2021 08:47:26 +0200
Subject: [PATCH 4/5] add unmanaged rhel support and skip list to
 testallthethings.sh, upstreamcentostests.sh

---
 testallthethings.sh    | 24 ++++++++++++++++--------
 upstreamcentostests.sh | 22 ++++++++++++++++++++++
 2 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/testallthethings.sh b/testallthethings.sh
index b66e481..dcd44db 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 4c5aa82..9d6b0ca 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
-- 
GitLab


From 095b1d4e29e328c63bf5c978c422b0a31dede47d Mon Sep 17 00:00:00 2001
From: Ben Morrice <ben.morrice@cern.ch>
Date: Thu, 19 Aug 2021 16:49:48 +0200
Subject: [PATCH 5/5] Update README to reflect changes to rh[7-8]_unman_virt
 stages

---
 README.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index b4b923f..15f2a4c 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
 
-- 
GitLab