From ce7140c6f7dac5087bf5db35adac80be8e687d14 Mon Sep 17 00:00:00 2001 From: istmxrein <maximilian.reinheimer@stud.h-da.de> Date: Fri, 23 Sep 2022 10:58:06 +0200 Subject: [PATCH] refactor get_server_ips --- prepare.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/prepare.py b/prepare.py index 3297776..269cc4a 100644 --- a/prepare.py +++ b/prepare.py @@ -1,7 +1,7 @@ #!/usr/bin/env python import sys import traceback -import os +import ipaddress import openstack import paramiko from tenacity import retry @@ -29,6 +29,7 @@ def provision_server( auto_ip=False, boot_from_volume=True, terminate_volume=True, + wait=True, volume_size=env.VOLUME_SIZE, key_name=env.KEY_PAIR_NAME, security_groups=[group for group in env.SECURITY_GROUPS.split()], @@ -47,11 +48,12 @@ def provision_server( def get_server_ip( conn: openstack.connection.Connection, server: openstack.compute.v2.server.Server ) -> str: - if env.SSH_IP_VERSION == "4": - return list(conn.compute.server_ips(server))[2].address - else: - return list(conn.compute.server_ips(server))[0].address - + ips = [ipaddress.ip_address(ip) for ip in list(conn.compute.server_ips(server.id))] + print(ips) + for ip in ips: + if env.SSH_IP_VERSION == str(ip.version) and ip.is_global: + return str(ip) + def check_ssh(ip: str) -> None: ssh_client = paramiko.client.SSHClient() -- GitLab