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