diff --git a/tests/ssg_test_suite/test_env.py b/tests/ssg_test_suite/test_env.py index e35ddc4eb57..354b3dbcfe4 100644 --- a/tests/ssg_test_suite/test_env.py +++ b/tests/ssg_test_suite/test_env.py @@ -361,13 +361,13 @@ def get_ssh_port(self): if self.domain_ip == 'localhost': try: ports = self._get_container_ports(self.current_container) - except Exception: + except Exception as exc: msg = ( "Unable to extract SSH ports from the container. " "This usually means that the container backend reported its configuration " "in an unexpected format." ) - raise RuntimeError(msg) from None + raise RuntimeError(msg) from exc if self.internal_ssh_port in ports: ssh_port = ports[self.internal_ssh_port] @@ -533,7 +533,6 @@ def _new_container_from_image(self, image_name, container_name): "--cap-add=cap_sys_admin", "--cap-add=cap_sys_chroot", # "--privileged", - "--network", "slirp4netns:mtu=1500", "--cap-add=cap_net_admin", "--publish", "{}".format(self.internal_ssh_port), "--detach", image_name, "/usr/sbin/sshd", "-p", "{}".format(self.internal_ssh_port), "-D"] @@ -574,11 +573,16 @@ def _get_container_ports(self, container): return self.extract_port_map(json.loads(podman_output)) def extract_port_map(self, podman_network_data): + if not podman_network_data: + raise ValueError("Port data is empty or None") + if 'containerPort' in podman_network_data: container_port = podman_network_data['containerPort'] host_port = podman_network_data['hostPort'] else: container_port_with_protocol, host_data = podman_network_data.popitem() + if not host_data or not isinstance(host_data, list): + raise ValueError(f"Invalid port mapping data: {host_data}") container_port = container_port_with_protocol.split("/")[0] host_port = host_data[0]['HostPort'] port_map = {int(container_port): int(host_port)}