Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions tests/ssg_test_suite/test_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down Expand Up @@ -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",
"--publish", "{}".format(self.internal_ssh_port), "--detach", image_name,
"/usr/sbin/sshd", "-p", "{}".format(self.internal_ssh_port), "-D"]
try:
Expand Down Expand Up @@ -573,11 +572,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)}
Expand Down