diff --git a/scripts/devenv-builder/configure-composer.sh b/scripts/devenv-builder/configure-composer.sh index 4de872e592..22706e9652 100755 --- a/scripts/devenv-builder/configure-composer.sh +++ b/scripts/devenv-builder/configure-composer.sh @@ -9,11 +9,15 @@ install_and_configure_composer() { local -r version_id_major="$(awk -F. '{print $1}' <<< "${version_id}")" "${DNF_RETRY}" "install" "osbuild osbuild-composer" - "${DNF_RETRY}" "install" \ - "git composer-cli ostree rpm-ostree \ - cockpit-composer bash-completion podman runc genisoimage \ + + local packages="git composer-cli ostree rpm-ostree \ + cockpit-composer bash-completion podman runc \ createrepo yum-utils selinux-policy-devel jq wget lorax rpm-build \ - containernetworking-plugins expect httpd-tools vim-common" + python3-psutil expect httpd-tools vim-common" + if [[ "${version_id_major}" -lt 10 ]]; then + packages+=" genisoimage containernetworking-plugins" + fi + "${DNF_RETRY}" "install" "${packages}" # The mock utility comes from the EPEL repository "${DNF_RETRY}" "install" "https://dl.fedoraproject.org/pub/epel/epel-release-latest-${version_id_major}.noarch.rpm" diff --git a/scripts/devenv-builder/manage-vm.sh b/scripts/devenv-builder/manage-vm.sh index 0502d45f7b..60e06b7831 100755 --- a/scripts/devenv-builder/manage-vm.sh +++ b/scripts/devenv-builder/manage-vm.sh @@ -68,7 +68,7 @@ function get_base_isofile { } function action_config() { - local -r deps="libvirt virt-manager virt-install virt-viewer libvirt-client qemu-kvm qemu-img sshpass wget" + local -r deps="libvirt virt-install virt-viewer libvirt-client qemu-kvm qemu-img sshpass wget" "${SCRIPTDIR}/../dnf_retry.sh" "install" "${deps}" diff --git a/test/bin/manage_hypervisor_config.sh b/test/bin/manage_hypervisor_config.sh index 10daee0a0e..d326bc0eca 100755 --- a/test/bin/manage_hypervisor_config.sh +++ b/test/bin/manage_hypervisor_config.sh @@ -32,6 +32,8 @@ firewall_settings() { # Web server port to allow access from virtual machines sudo firewall-cmd --permanent --zone=public "--${action}-port"="${WEB_SERVER_PORT}/tcp" + # Mirror registry port for Quay container access + sudo firewall-cmd --permanent --zone=public "--${action}-port"="${MIRROR_REGISTRY_PORT}/tcp" # VNC ports for remote console connection to virtual machines sudo firewall-cmd --permanent --zone=public "--${action}-port=5900-5999/tcp" # Enable mDNS over libvirt network diff --git a/test/bin/mirror_registry.sh b/test/bin/mirror_registry.sh index 987feeb53d..a0b206b97d 100755 --- a/test/bin/mirror_registry.sh +++ b/test/bin/mirror_registry.sh @@ -292,7 +292,7 @@ EOF "${QUAY_IMAGE}" >/dev/null # Wait until the Quay instance is started - for i in $(seq 60) ; do + for i in $(seq 120) ; do sleep 1 if curl -sI --connect-timeout 5 --max-time 5 "${quay_url}" 2>/dev/null | grep -Eq "HTTP.*200 OK" ; then i=0 @@ -301,6 +301,10 @@ EOF done if [ "${i}" -ne 0 ] ; then echo "ERROR: Timed out waiting for Quay to start" + echo "--- Quay container status ---" + sudo podman ps -a --filter "name=microshift-quay" --no-trunc + echo "--- Quay container logs (last 50 lines) ---" + sudo podman logs --tail 50 microshift-quay 2>&1 exit 1 fi diff --git a/test/bin/pyutils/build_bootc_images.py b/test/bin/pyutils/build_bootc_images.py index d432db2bf3..2629f32eda 100644 --- a/test/bin/pyutils/build_bootc_images.py +++ b/test/bin/pyutils/build_bootc_images.py @@ -8,6 +8,7 @@ import os import platform import re +import subprocess import sys import time import traceback @@ -219,7 +220,13 @@ def extract_container_images(version, repo_spec, outfile, dry_run=False): # Construct and execute the dnf download command dnf_command = ["dnf", "download"] + dnf_options + [f"microshift-release-info-{version}"] - if common.run_command(dnf_command, dry_run) is not None: + try: + result = common.run_command(dnf_command, dry_run) + except subprocess.CalledProcessError: + common.print_msg(f"Warning: failed to download release-info for {version} from {repo_spec}, skipping") + common.popd() + return + if result is not None: images_output = get_container_images(str(image_path), version) with open(outfile, "a") as f: f.write(images_output.replace(',', '\n'))