From 535e4ab6764f5a7a59a289fda3d8c37d1e5cfa2e Mon Sep 17 00:00:00 2001 From: Pablo Acevedo Montserrat Date: Thu, 18 Sep 2025 08:15:27 +0200 Subject: [PATCH 1/3] NO-ISSUE: Skip bootc releases tests if images are not available --- .../el96-lrel@ai-model-serving-online.sh | 19 ++++++++++++++++++- .../releases/el96-lrel@dual-stack.sh | 19 ++++++++++++++++++- .../releases/el96-lrel@ginkgo-tests.sh | 19 ++++++++++++++++++- .../releases/el96-lrel@ipv6.sh | 19 ++++++++++++++++++- .../releases/el96-lrel@multi-nic.sh | 19 ++++++++++++++++++- .../releases/el96-lrel@optional.sh | 19 ++++++++++++++++++- .../releases/el96-lrel@osconfig.sh | 19 ++++++++++++++++++- .../releases/el96-lrel@router.sh | 19 ++++++++++++++++++- .../releases/el96-lrel@standard1.sh | 19 ++++++++++++++++++- .../releases/el96-lrel@standard2.sh | 19 ++++++++++++++++++- .../releases/el96-lrel@storage.sh | 19 ++++++++++++++++++- .../releases/el96-lrel@telemetry.sh | 19 ++++++++++++++++++- 12 files changed, 216 insertions(+), 12 deletions(-) diff --git a/test/scenarios-bootc/releases/el96-lrel@ai-model-serving-online.sh b/test/scenarios-bootc/releases/el96-lrel@ai-model-serving-online.sh index 3aea260575..2306fa9079 100644 --- a/test/scenarios-bootc/releases/el96-lrel@ai-model-serving-online.sh +++ b/test/scenarios-bootc/releases/el96-lrel@ai-model-serving-online.sh @@ -2,6 +2,8 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + # Currently, RHOAI is only available for x86_64 check_platform() { local -r record_junit=${1:-false} @@ -15,20 +17,35 @@ check_platform() { } scenario_create_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + check_platform true # Increased disk size because of the additional embedded images (especially OVMS which is ~3.5GiB) - LVM_SYSROOT_SIZE=20480 prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + LVM_SYSROOT_SIZE=20480 prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" launch_vm --boot_blueprint rhel96-bootc --vm_disksize 30 } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + check_platform remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + check_platform run_tests host1 \ diff --git a/test/scenarios-bootc/releases/el96-lrel@dual-stack.sh b/test/scenarios-bootc/releases/el96-lrel@dual-stack.sh index e8d98152bf..62db73086f 100644 --- a/test/scenarios-bootc/releases/el96-lrel@dual-stack.sh +++ b/test/scenarios-bootc/releases/el96-lrel@dual-stack.sh @@ -2,16 +2,33 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" launch_vm --boot_blueprint rhel96-bootc --network "${VM_DUAL_STACK_NETWORK}" } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + local -r vmname=$(full_vm_name host1) # Valid IP addresses are the first two entries returned by manage-vm script. local -r vm_ip1=$("${ROOTDIR}/scripts/devenv-builder/manage-vm.sh" ip -n "${vmname}" | head -1) diff --git a/test/scenarios-bootc/releases/el96-lrel@ginkgo-tests.sh b/test/scenarios-bootc/releases/el96-lrel@ginkgo-tests.sh index 06486c35dd..9990b95585 100644 --- a/test/scenarios-bootc/releases/el96-lrel@ginkgo-tests.sh +++ b/test/scenarios-bootc/releases/el96-lrel@ginkgo-tests.sh @@ -2,15 +2,32 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" launch_vm --boot_blueprint rhel96-bootc --vm_disksize 30 } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_gingko_tests host1 } diff --git a/test/scenarios-bootc/releases/el96-lrel@ipv6.sh b/test/scenarios-bootc/releases/el96-lrel@ipv6.sh index 5e15dafba8..2369c50f85 100644 --- a/test/scenarios-bootc/releases/el96-lrel@ipv6.sh +++ b/test/scenarios-bootc/releases/el96-lrel@ipv6.sh @@ -14,16 +14,33 @@ WEB_SERVER_URL="http://[${VM_BRIDGE_IP}]:${WEB_SERVER_PORT}" # shellcheck disable=SC2034 # used elsewhere MIRROR_REGISTRY_URL="$(hostname):${MIRROR_REGISTRY_PORT}/microshift" +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + scenario_create_vms() { # Enable IPv6 single stack in kickstart - prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" false true + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" false true launch_vm --boot_blueprint rhel96-bootc --network "${VM_IPV6_NETWORK}" } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 suites/ipv6/singlestack.robot } diff --git a/test/scenarios-bootc/releases/el96-lrel@multi-nic.sh b/test/scenarios-bootc/releases/el96-lrel@multi-nic.sh index a263a0e824..1f1b7dee52 100644 --- a/test/scenarios-bootc/releases/el96-lrel@multi-nic.sh +++ b/test/scenarios-bootc/releases/el96-lrel@multi-nic.sh @@ -2,17 +2,34 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" # Using multus as secondary network to have 2 nics in different networks. launch_vm --boot_blueprint rhel96-bootc --network default,"${VM_MULTUS_NETWORK}" } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + local -r vmname=$(full_vm_name host1) local -r vm_ip1=$("${ROOTDIR}/scripts/devenv-builder/manage-vm.sh" ip -n "${vmname}" | head -1) local -r vm_ip2=$("${ROOTDIR}/scripts/devenv-builder/manage-vm.sh" ip -n "${vmname}" | tail -1) diff --git a/test/scenarios-bootc/releases/el96-lrel@optional.sh b/test/scenarios-bootc/releases/el96-lrel@optional.sh index 6bc601136a..fd9c89b5a2 100644 --- a/test/scenarios-bootc/releases/el96-lrel@optional.sh +++ b/test/scenarios-bootc/releases/el96-lrel@optional.sh @@ -7,17 +7,34 @@ VM_BRIDGE_IP="$(get_vm_bridge_ip "${VM_MULTUS_NETWORK}")" # shellcheck disable=SC2034 # used elsewhere WEB_SERVER_URL="http://${VM_BRIDGE_IP}:${WEB_SERVER_PORT}" +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" # Two nics - one for macvlan, another for ipvlan (they cannot enslave the same interface) launch_vm --boot_blueprint rhel96-bootc --network "${VM_MULTUS_NETWORK},${VM_MULTUS_NETWORK}" } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 \ --variable "PROMETHEUS_HOST:$(hostname)" \ --variable "PROMETHEUS_PORT:9092" \ diff --git a/test/scenarios-bootc/releases/el96-lrel@osconfig.sh b/test/scenarios-bootc/releases/el96-lrel@osconfig.sh index 2faa3e542b..e12f896c52 100644 --- a/test/scenarios-bootc/releases/el96-lrel@osconfig.sh +++ b/test/scenarios-bootc/releases/el96-lrel@osconfig.sh @@ -2,16 +2,33 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" launch_vm --boot_blueprint rhel96-bootc } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 \ suites/osconfig/clusterid.robot \ suites/osconfig/systemd-resolved.robot diff --git a/test/scenarios-bootc/releases/el96-lrel@router.sh b/test/scenarios-bootc/releases/el96-lrel@router.sh index c7238c7e43..ccc97131f7 100644 --- a/test/scenarios-bootc/releases/el96-lrel@router.sh +++ b/test/scenarios-bootc/releases/el96-lrel@router.sh @@ -4,16 +4,33 @@ export TEST_EXCLUDES="ushift-6085" # Sourced from scenario.sh and uses functions defined there. +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" launch_vm --boot_blueprint rhel96-bootc } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 \ suites/router } diff --git a/test/scenarios-bootc/releases/el96-lrel@standard1.sh b/test/scenarios-bootc/releases/el96-lrel@standard1.sh index 052faac7e1..ec0b303b3d 100644 --- a/test/scenarios-bootc/releases/el96-lrel@standard1.sh +++ b/test/scenarios-bootc/releases/el96-lrel@standard1.sh @@ -2,16 +2,33 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" launch_vm --boot_blueprint rhel96-bootc } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 \ --variable "EXPECTED_OS_VERSION:9.6" \ suites/standard1/ suites/selinux/validate-selinux-policy.robot diff --git a/test/scenarios-bootc/releases/el96-lrel@standard2.sh b/test/scenarios-bootc/releases/el96-lrel@standard2.sh index 048165ad4d..9d441214de 100644 --- a/test/scenarios-bootc/releases/el96-lrel@standard2.sh +++ b/test/scenarios-bootc/releases/el96-lrel@standard2.sh @@ -2,15 +2,32 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" launch_vm --boot_blueprint rhel96-bootc } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 suites/standard2 } diff --git a/test/scenarios-bootc/releases/el96-lrel@storage.sh b/test/scenarios-bootc/releases/el96-lrel@storage.sh index ff07d22704..aa21366d0a 100644 --- a/test/scenarios-bootc/releases/el96-lrel@storage.sh +++ b/test/scenarios-bootc/releases/el96-lrel@storage.sh @@ -2,15 +2,32 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" launch_vm --boot_blueprint rhel96-bootc } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 suites/storage/ } diff --git a/test/scenarios-bootc/releases/el96-lrel@telemetry.sh b/test/scenarios-bootc/releases/el96-lrel@telemetry.sh index 68e8e71a33..9ed75dc229 100644 --- a/test/scenarios-bootc/releases/el96-lrel@telemetry.sh +++ b/test/scenarios-bootc/releases/el96-lrel@telemetry.sh @@ -2,16 +2,33 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template "rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" launch_vm --boot_blueprint rhel96-bootc } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 \ --variable "PROXY_HOST:${VM_BRIDGE_IP}" \ --variable "PROXY_PORT:9001" \ From ae54ea6ac04f01546884d57a6e76ba3812c262a1 Mon Sep 17 00:00:00 2001 From: Pablo Acevedo Montserrat Date: Thu, 18 Sep 2025 10:41:36 +0200 Subject: [PATCH 2/3] NO-ISSUE: skip ostree releases tests if images are not available --- test/scenarios/releases/el96-lrel@backups.sh | 21 +++++++- .../releases/el96-lrel@dual-stack.sh | 19 ++++++- .../releases/el96-lrel@ginkgo-tests.sh | 19 ++++++- test/scenarios/releases/el96-lrel@ipv6.sh | 19 ++++++- .../releases/el96-lrel@low-latency.sh | 20 +++++++- .../scenarios/releases/el96-lrel@multi-nic.sh | 19 ++++++- test/scenarios/releases/el96-lrel@optional.sh | 49 +++++++++++++------ test/scenarios/releases/el96-lrel@osconfig.sh | 19 ++++++- test/scenarios/releases/el96-lrel@router.sh | 19 ++++++- .../scenarios/releases/el96-lrel@standard1.sh | 19 ++++++- .../scenarios/releases/el96-lrel@standard2.sh | 19 ++++++- test/scenarios/releases/el96-lrel@storage.sh | 21 +++++++- .../el96-yminus1@el96-lrel@standard1.sh | 21 +++++++- .../el96-yminus1@el96-lrel@standard2.sh | 23 +++++++-- .../el96-yminus2@el96-lrel@standard1.sh | 21 +++++++- .../el96-yminus2@el96-lrel@standard2.sh | 27 ++++++++-- 16 files changed, 313 insertions(+), 42 deletions(-) diff --git a/test/scenarios/releases/el96-lrel@backups.sh b/test/scenarios/releases/el96-lrel@backups.sh index 7d38edabf2..5677c34c1e 100644 --- a/test/scenarios/releases/el96-lrel@backups.sh +++ b/test/scenarios/releases/el96-lrel@backups.sh @@ -2,15 +2,32 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" - launch_vm + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" + launch_vm } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 suites/backup/backups.robot } diff --git a/test/scenarios/releases/el96-lrel@dual-stack.sh b/test/scenarios/releases/el96-lrel@dual-stack.sh index 0d1fba7326..8dfe957a75 100644 --- a/test/scenarios/releases/el96-lrel@dual-stack.sh +++ b/test/scenarios/releases/el96-lrel@dual-stack.sh @@ -2,16 +2,33 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" launch_vm --network "${VM_DUAL_STACK_NETWORK}" } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + local -r vmname=$(full_vm_name host1) local -r vm_ip1=$("${ROOTDIR}/scripts/devenv-builder/manage-vm.sh" ip -n "${vmname}" | head -1) local -r vm_ip2=$("${ROOTDIR}/scripts/devenv-builder/manage-vm.sh" ip -n "${vmname}" | tail -1) diff --git a/test/scenarios/releases/el96-lrel@ginkgo-tests.sh b/test/scenarios/releases/el96-lrel@ginkgo-tests.sh index cd4b205d23..dd126998d8 100644 --- a/test/scenarios/releases/el96-lrel@ginkgo-tests.sh +++ b/test/scenarios/releases/el96-lrel@ginkgo-tests.sh @@ -2,15 +2,32 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" launch_vm --vm_disksize 30 } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_gingko_tests host1 } diff --git a/test/scenarios/releases/el96-lrel@ipv6.sh b/test/scenarios/releases/el96-lrel@ipv6.sh index 120b408ed5..158c7ad1ab 100644 --- a/test/scenarios/releases/el96-lrel@ipv6.sh +++ b/test/scenarios/releases/el96-lrel@ipv6.sh @@ -10,16 +10,33 @@ WEB_SERVER_URL="http://[${VM_BRIDGE_IP}]:${WEB_SERVER_PORT}" # shellcheck disable=SC2034 # used elsewhere MIRROR_REGISTRY_URL="${VM_BRIDGE_IP}:${MIRROR_REGISTRY_PORT}" +start_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { # Enable IPv6 single stack in kickstart - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" false true + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" false true launch_vm --network "${VM_IPV6_NETWORK}" } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 suites/ipv6/singlestack.robot } diff --git a/test/scenarios/releases/el96-lrel@low-latency.sh b/test/scenarios/releases/el96-lrel@low-latency.sh index 0f3a5b8e7e..27c5fd0a19 100644 --- a/test/scenarios/releases/el96-lrel@low-latency.sh +++ b/test/scenarios/releases/el96-lrel@low-latency.sh @@ -5,16 +5,32 @@ export TEST_RANDOMIZATION=none # Sourced from scenario.sh and uses functions defined there. +start_image="rhel-9.6-microshift-brew-tuned-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-tuned-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" launch_vm --vm_vcpus 6 } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi # Should not be run immediately after creating VM because of # microshift-tuned rebooting the node to activate the profile. local -r start_time=$(date +%s) @@ -30,7 +46,7 @@ scenario_run_tests() { fi sleep 5 done - + # --exitonfailure because tests within suites are meant to be ordered, # so don't advance to next test if current failed. diff --git a/test/scenarios/releases/el96-lrel@multi-nic.sh b/test/scenarios/releases/el96-lrel@multi-nic.sh index 21f65d659c..b10682cc85 100644 --- a/test/scenarios/releases/el96-lrel@multi-nic.sh +++ b/test/scenarios/releases/el96-lrel@multi-nic.sh @@ -2,17 +2,34 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" # Using multus as secondary network to have 2 nics in different networks. launch_vm --network default,"${VM_MULTUS_NETWORK}" } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + local -r vmname=$(full_vm_name host1) local -r vm_ip1=$("${ROOTDIR}/scripts/devenv-builder/manage-vm.sh" ip -n "${vmname}" | head -1) local -r vm_ip2=$("${ROOTDIR}/scripts/devenv-builder/manage-vm.sh" ip -n "${vmname}" | tail -1) diff --git a/test/scenarios/releases/el96-lrel@optional.sh b/test/scenarios/releases/el96-lrel@optional.sh index 1eef1773d6..953c60e299 100644 --- a/test/scenarios/releases/el96-lrel@optional.sh +++ b/test/scenarios/releases/el96-lrel@optional.sh @@ -7,30 +7,47 @@ VM_BRIDGE_IP="$(get_vm_bridge_ip "${VM_MULTUS_NETWORK}")" # shellcheck disable=SC2034 # used elsewhere WEB_SERVER_URL="http://${VM_BRIDGE_IP}:${WEB_SERVER_PORT}" +start_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" # Two nics - one for macvlan, another for ipvlan (they cannot enslave the same interface) launch_vm --network "${VM_MULTUS_NETWORK},${VM_MULTUS_NETWORK}" } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { - # Generic Device Plugin suite is excluded because getting serialsim for ostree would require: - # - getting the version of the kernel of ostree image, - # - installing kernel-devel of that version on the hypervisor, - # - building serialsim - # - packaging serialsim as an RPM - # - including the RPM in the ostree blueprint - # GDP suite is tested with bootc images instead. - run_tests host1 \ - --variable "PROMETHEUS_HOST:$(hostname)" \ - --variable "PROMETHEUS_PORT:9092" \ - --variable "LOKI_HOST:$(hostname)" \ - --variable "LOKI_PORT:3200" \ - --variable "PROM_EXPORTER_PORT:8889" \ - --exclude generic-device-plugin \ - suites/optional/ + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + # Generic Device Plugin suite is excluded because getting serialsim for ostree would require: + # - getting the version of the kernel of ostree image, + # - installing kernel-devel of that version on the hypervisor, + # - building serialsim + # - packaging serialsim as an RPM + # - including the RPM in the ostree blueprint + # GDP suite is tested with bootc images instead. + run_tests host1 \ + --variable "PROMETHEUS_HOST:$(hostname)" \ + --variable "PROMETHEUS_PORT:9092" \ + --variable "LOKI_HOST:$(hostname)" \ + --variable "LOKI_PORT:3200" \ + --variable "PROM_EXPORTER_PORT:8889" \ + --exclude generic-device-plugin \ + suites/optional/ } diff --git a/test/scenarios/releases/el96-lrel@osconfig.sh b/test/scenarios/releases/el96-lrel@osconfig.sh index d084405a59..156dc6757b 100644 --- a/test/scenarios/releases/el96-lrel@osconfig.sh +++ b/test/scenarios/releases/el96-lrel@osconfig.sh @@ -2,16 +2,33 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" launch_vm } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 \ suites/osconfig/clusterid.robot \ suites/osconfig/systemd-resolved.robot diff --git a/test/scenarios/releases/el96-lrel@router.sh b/test/scenarios/releases/el96-lrel@router.sh index a1e0b2792a..5df1d90db2 100644 --- a/test/scenarios/releases/el96-lrel@router.sh +++ b/test/scenarios/releases/el96-lrel@router.sh @@ -4,16 +4,33 @@ export TEST_EXCLUDES="ushift-6085" # Sourced from scenario.sh and uses functions defined there. +start_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" launch_vm } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 \ suites/router } diff --git a/test/scenarios/releases/el96-lrel@standard1.sh b/test/scenarios/releases/el96-lrel@standard1.sh index cfd6cf0b3d..e349e7f202 100644 --- a/test/scenarios/releases/el96-lrel@standard1.sh +++ b/test/scenarios/releases/el96-lrel@standard1.sh @@ -2,16 +2,33 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" launch_vm } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 \ --variable "EXPECTED_OS_VERSION:9.6" \ suites/standard1/ suites/selinux/validate-selinux-policy.robot diff --git a/test/scenarios/releases/el96-lrel@standard2.sh b/test/scenarios/releases/el96-lrel@standard2.sh index 84e892dca8..196f95c82d 100644 --- a/test/scenarios/releases/el96-lrel@standard2.sh +++ b/test/scenarios/releases/el96-lrel@standard2.sh @@ -2,15 +2,32 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" launch_vm } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 suites/standard2/ } diff --git a/test/scenarios/releases/el96-lrel@storage.sh b/test/scenarios/releases/el96-lrel@storage.sh index dfd4895424..251418fcc1 100644 --- a/test/scenarios/releases/el96-lrel@storage.sh +++ b/test/scenarios/releases/el96-lrel@storage.sh @@ -2,15 +2,32 @@ # Sourced from scenario.sh and uses functions defined there. +start_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" - launch_vm + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" + launch_vm } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 suites/storage/ } diff --git a/test/scenarios/releases/el96-yminus1@el96-lrel@standard1.sh b/test/scenarios/releases/el96-yminus1@el96-lrel@standard1.sh index fecd3c129c..a099473433 100644 --- a/test/scenarios/releases/el96-yminus1@el96-lrel@standard1.sh +++ b/test/scenarios/releases/el96-yminus1@el96-lrel@standard1.sh @@ -6,16 +6,33 @@ # ensure MicroShift is upgraded before running standard suite tests export TEST_RANDOMIZATION=none +start_image="rhel-9.6-microshift-brew-optionals-4.${PREVIOUS_MINOR_VERSION}-zstream" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${PREVIOUS_MINOR_VERSION}-zstream" - launch_vm + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" + launch_vm } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + run_tests host1 \ --variable "TARGET_REF:rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" \ --variable "EXPECTED_OS_VERSION:9.6" \ diff --git a/test/scenarios/releases/el96-yminus1@el96-lrel@standard2.sh b/test/scenarios/releases/el96-yminus1@el96-lrel@standard2.sh index 0de1778b65..7727e9bb9b 100644 --- a/test/scenarios/releases/el96-yminus1@el96-lrel@standard2.sh +++ b/test/scenarios/releases/el96-yminus1@el96-lrel@standard2.sh @@ -6,17 +6,34 @@ # ensure MicroShift is upgraded before running standard suite tests export TEST_RANDOMIZATION=none +start_image="rhel-9.6-microshift-brew-optionals-4.${PREVIOUS_MINOR_VERSION}-zstream" + scenario_create_vms() { - prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${PREVIOUS_MINOR_VERSION}-zstream" - launch_vm + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart.ks.template "${start_image}" + launch_vm } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { - run_tests host1 \ + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + run_tests host1 \ --variable "TARGET_REF:rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" \ suites/upgrade/upgrade-successful.robot \ suites/standard2/ diff --git a/test/scenarios/releases/el96-yminus2@el96-lrel@standard1.sh b/test/scenarios/releases/el96-yminus2@el96-lrel@standard1.sh index 4d090d64d8..eb62ce03e8 100644 --- a/test/scenarios/releases/el96-yminus2@el96-lrel@standard1.sh +++ b/test/scenarios/releases/el96-yminus2@el96-lrel@standard1.sh @@ -6,18 +6,35 @@ # ensure MicroShift is upgraded before running standard suite tests export TEST_RANDOMIZATION=none +dest_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { + if ! does_image_exist "${dest_image}"; then + echo "Image '${dest_image}' not found - skipping test" + return 0 + fi + prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${YMINUS2_MINOR_VERSION}-zstream" - launch_vm + launch_vm } scenario_remove_vms() { + if ! does_image_exist "${dest_image}"; then + echo "Image '${dest_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { + if ! does_image_exist "${dest_image}"; then + echo "Image '${dest_image}' not found - skipping test" + return 0 + fi + run_tests host1 \ - --variable "TARGET_REF:rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" \ + --variable "TARGET_REF:${dest_image}" \ --variable "EXPECTED_OS_VERSION:9.6" \ suites/upgrade/upgrade-successful.robot \ suites/standard1/ diff --git a/test/scenarios/releases/el96-yminus2@el96-lrel@standard2.sh b/test/scenarios/releases/el96-yminus2@el96-lrel@standard2.sh index 99943c738b..0c5a7bccd1 100644 --- a/test/scenarios/releases/el96-yminus2@el96-lrel@standard2.sh +++ b/test/scenarios/releases/el96-yminus2@el96-lrel@standard2.sh @@ -6,18 +6,35 @@ # ensure MicroShift is upgraded before running standard suite tests export TEST_RANDOMIZATION=none +dest_image="rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" + scenario_create_vms() { + if ! does_image_exist "${dest_image}"; then + echo "Image '${dest_image}' not found - skipping test" + return 0 + fi + prepare_kickstart host1 kickstart.ks.template "rhel-9.6-microshift-brew-optionals-4.${YMINUS2_MINOR_VERSION}-zstream" - launch_vm + launch_vm } scenario_remove_vms() { + if ! does_image_exist "${dest_image}"; then + echo "Image '${dest_image}' not found - skipping test" + return 0 + fi + remove_vm host1 } scenario_run_tests() { - run_tests host1 \ - --variable "TARGET_REF:rhel-9.6-microshift-brew-optionals-4.${MINOR_VERSION}-${LATEST_RELEASE_TYPE}" \ - suites/upgrade/upgrade-successful.robot \ - suites/standard2/ + if ! does_image_exist "${dest_image}"; then + echo "Image '${dest_image}' not found - skipping test" + return 0 + fi + + run_tests host1 \ + --variable "TARGET_REF:${dest_image}" \ + suites/upgrade/upgrade-successful.robot \ + suites/standard2/ } From 5012ec01c8152767409a426da2bbb1f18003bb49 Mon Sep 17 00:00:00 2001 From: Pablo Acevedo Montserrat Date: Mon, 29 Sep 2025 10:27:34 +0200 Subject: [PATCH 3/3] NO-ISSUE: fix y1 bootc scenarios --- .../releases/el96-y1@el96-lrel@standard1.sh | 15 ++++++++++++++- .../releases/el96-y1@el96-lrel@standard2.sh | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/test/scenarios-bootc/releases/el96-y1@el96-lrel@standard1.sh b/test/scenarios-bootc/releases/el96-y1@el96-lrel@standard1.sh index ce888d08d0..84de2f6dc7 100644 --- a/test/scenarios-bootc/releases/el96-y1@el96-lrel@standard1.sh +++ b/test/scenarios-bootc/releases/el96-y1@el96-lrel@standard1.sh @@ -6,18 +6,27 @@ # ensure MicroShift is upgraded before running standard suite tests export TEST_RANDOMIZATION=none +start_image="rhel96-bootc-brew-y1-with-optional" dest_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" scenario_create_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi if ! does_image_exist "${dest_image}"; then echo "Image '${dest_image}' not found - skipping test" return 0 fi - prepare_kickstart host1 kickstart-bootc.ks.template rhel96-bootc-brew-y1-with-optional + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" launch_vm --boot_blueprint rhel96-bootc } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi if ! does_image_exist "${dest_image}"; then echo "Image '${dest_image}' not found - skipping test" return 0 @@ -26,6 +35,10 @@ scenario_remove_vms() { } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi if ! does_image_exist "${dest_image}"; then echo "Image '${dest_image}' not found - skipping test" return 0 diff --git a/test/scenarios-bootc/releases/el96-y1@el96-lrel@standard2.sh b/test/scenarios-bootc/releases/el96-y1@el96-lrel@standard2.sh index 02982b866b..5852724f07 100644 --- a/test/scenarios-bootc/releases/el96-y1@el96-lrel@standard2.sh +++ b/test/scenarios-bootc/releases/el96-y1@el96-lrel@standard2.sh @@ -6,18 +6,27 @@ # ensure MicroShift is upgraded before running standard suite tests export TEST_RANDOMIZATION=none +start_image="rhel96-bootc-brew-y1-with-optional" dest_image="rhel96-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" scenario_create_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi if ! does_image_exist "${dest_image}"; then echo "Image '${dest_image}' not found - skipping test" return 0 fi - prepare_kickstart host1 kickstart-bootc.ks.template rhel96-bootc-brew-y1-with-optional + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" launch_vm --boot_blueprint rhel96-bootc } scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi if ! does_image_exist "${dest_image}"; then echo "Image '${dest_image}' not found - skipping test" return 0 @@ -26,6 +35,10 @@ scenario_remove_vms() { } scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi if ! does_image_exist "${dest_image}"; then echo "Image '${dest_image}' not found - skipping test" return 0