diff --git a/launch/utils.py b/launch/utils.py
index 0ed05c3319..a9f8d01bab 100644
--- a/launch/utils.py
+++ b/launch/utils.py
@@ -93,6 +93,12 @@ def get_public_ip(server, version=4):
         for addr in server.manager.api.floating_ips.list():
             if addr.instance_id == server.id:
                 return addr.ip
+        # We don't have one - so add one please
+        new_ip = server.manager.api.floating_ips.create()
+        server.add_floating_ip(new_ip)
+        for addr in server.manager.api.floating_ips.list():
+            if addr.instance_id == server.id:
+                return addr.ip
     for addr in server.addresses.get('public', []):
         if type(addr) == type(u''):  # Rackspace/openstack 1.0
             return addr