diff --git a/common/test.py b/common/test.py
index 0ffa2b0..70d8708 100644
--- a/common/test.py
+++ b/common/test.py
@@ -16,6 +16,7 @@
 import re
 import subprocess
 import time
+import urllib
 
 import fixtures
 from heatclient import exc as heat_exceptions
@@ -107,6 +108,22 @@
 
         return linux_client
 
+    def check_connectivity(self, check_ip):
+        def try_connect(ip):
+            try:
+                urllib.urlopen('http://%s/' % ip)
+                return True
+            except IOError:
+                return False
+
+        timeout = self.conf.connectivity_timeout
+        elapsed_time = 0
+        while not try_connect(check_ip):
+            time.sleep(10)
+            elapsed_time += 10
+            if elapsed_time > timeout:
+                raise exceptions.TimeoutException()
+
     def _log_console_output(self, servers=None):
         if not servers:
             servers = self.compute_client.servers.list()
