diff --git a/src/emuvim/api/openstack/openstack_api_endpoint.py b/src/emuvim/api/openstack/openstack_api_endpoint.py
index 127c3e8..f554f0c 100644
--- a/src/emuvim/api/openstack/openstack_api_endpoint.py
+++ b/src/emuvim/api/openstack/openstack_api_endpoint.py
@@ -4,6 +4,8 @@
 import threading
 import compute
 import requests
+import socket
+import time
 
 
 class OpenstackApiEndpoint():
@@ -55,7 +57,7 @@
         logging.info("Connected DCNetwork to API endpoint %s(%s:%d)" % (
             self.__class__.__name__, self.ip, self.port))
 
-    def start(self):
+    def start(self, wait_for_port=False):
         """
         Start all connected OpenStack endpoints that are connected to this API endpoint.
         """
@@ -66,6 +68,9 @@
             thread.daemon = True
             thread.name = component.__class__
             thread.start()
+            if wait_for_port:
+                self._wait_for_port(component.ip, component.port)
+                
 
     def stop(self):
         """
@@ -78,3 +83,14 @@
             except:
                 # seems to be stopped
                 pass
+
+    def _wait_for_port(self, ip, port):
+        for i in range(0, 10):
+            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+            s.settimeout(1)  # 1 Second Timeout
+            r = s.connect_ex((ip, port))
+            if r == 0:
+                break  # port is open proceed
+            else:
+                logging.warning("Waiting for {}:{} ... ({}/10)".format(ip, port, i + 1))
+            time.sleep(1)
diff --git a/src/emuvim/test/api_base_openstack.py b/src/emuvim/test/api_base_openstack.py
index 6fb9b49..c951665 100755
--- a/src/emuvim/test/api_base_openstack.py
+++ b/src/emuvim/test/api_base_openstack.py
@@ -103,7 +103,7 @@
 
     def startApi(self):
         for i in self.api:
-            i.start()
+            i.start(wait_for_port=True)
 
     def stopApi(self):
         for i in self.api:
diff --git a/src/emuvim/test/unittests/test_openstack.py b/src/emuvim/test/unittests/test_openstack.py
index cb4fb03..6c2bf5a 100755
--- a/src/emuvim/test/unittests/test_openstack.py
+++ b/src/emuvim/test/unittests/test_openstack.py
@@ -55,11 +55,9 @@
 
         # start api
         self.startApi()
-        time.sleep(2)
 
         # start Mininet network
         self.startNet()
-        time.sleep(2)
         
     @unittest.skip("temporarily disabled")
     def testChainingDummy(self):
diff --git a/src/emuvim/test/unittests/test_sonata_dummy_gatekeeper.py b/src/emuvim/test/unittests/test_sonata_dummy_gatekeeper.py
index 110907c..1b13158 100755
--- a/src/emuvim/test/unittests/test_sonata_dummy_gatekeeper.py
+++ b/src/emuvim/test/unittests/test_sonata_dummy_gatekeeper.py
@@ -56,6 +56,7 @@
         sdkg1.connectDatacenter(self.dc[1])
         # run the dummy gatekeeper (in another thread, don't block)
         sdkg1.start()
+        time.sleep(3)
         # start Mininet network
         self.startNet()
         time.sleep(1)
@@ -161,6 +162,7 @@
         sdkg1.connectDatacenter(self.dc[1])
         # run the dummy gatekeeper (in another thread, don't block)
         sdkg1.start()
+        time.sleep(3)
         # start Mininet network
         self.startNet()
         time.sleep(1)
@@ -216,6 +218,7 @@
         sdkg1.connectDatacenter(self.dc[1])
         # run the dummy gatekeeper (in another thread, don't block)
         sdkg1.start()
+        time.sleep(3)
         # start Mininet network
         self.startNet()
         time.sleep(1)
