diff --git a/prepare.py b/prepare.py index 9c8926392e84a2529b53173f70c31a6e81993758..d3f3bde8a703671161471dc8d23f4a08b48d367f 100644 --- a/prepare.py +++ b/prepare.py @@ -1,5 +1,6 @@ #!/usr/bin/env python import sys +import time import traceback import ipaddress import openstack @@ -26,7 +27,6 @@ def provision_server( name=env.VM_NAME, flavor=flavor.id, image=image.id, - auto_ip=False, boot_from_volume=True, terminate_volume=True, wait=True, @@ -37,10 +37,6 @@ def provision_server( ) server = conn.wait_for_server(server, timeout=180) - - # if env.SSH_IP_VERSION == "4": - # ips = conn.available_floating_ip(network=env.FLOATING_IP_NETWORK, server=server) - # conn.compute.add_floating_ip_to_server(server, ips.floating_ip_address, fixed_address=None) return server @@ -48,11 +44,15 @@ def provision_server( def get_server_ip( conn: openstack.connection.Connection, server: openstack.compute.v2.server.Server ) -> str: - ips = [ipaddress.ip_address(ip.address) 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) + for i in range(3): + ips = [ipaddress.ip_address(ip.address) 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) + time.sleep(10) + raise RuntimeError("No working ip address found") + def check_ssh(ip: str) -> None: