diff --git a/ansible/install.yml b/ansible/install.yml
index d6a6297..b972b4e 100755
--- a/ansible/install.yml
+++ b/ansible/install.yml
@@ -72,5 +72,8 @@
    - name: install ipaddress
      pip: name=ipaddress state=latest
 
+   - name: install urllib
+     pip: name=urllib state=latest
+
 
 
diff --git a/src/emuvim/api/openstack/helper.py b/src/emuvim/api/openstack/helper.py
new file mode 100644
index 0000000..dca3ba5
--- /dev/null
+++ b/src/emuvim/api/openstack/helper.py
@@ -0,0 +1,11 @@
+from urlparse import urlparse
+import logging
+
+LOG = logging.getLogger("api.openstack.helper")
+
+def get_host(r):
+    try:
+        return urlparse(r.base_url).hostname
+    except:
+        LOG.error("Could not get host part of request URL.")
+    return "0.0.0.0"
diff --git a/src/emuvim/api/openstack/openstack_dummies/__init__.py b/src/emuvim/api/openstack/openstack_dummies/__init__.py
index 451ce11..5874ebe 100755
--- a/src/emuvim/api/openstack/openstack_dummies/__init__.py
+++ b/src/emuvim/api/openstack/openstack_dummies/__init__.py
@@ -3,4 +3,3 @@
 from keystone_dummy_api import KeystoneDummyApi
 from neutron_dummy_api import NeutronDummyApi
 from nova_dummy_api import NovaDummyApi
-
diff --git a/src/emuvim/api/openstack/openstack_dummies/glance_dummy_api.py b/src/emuvim/api/openstack/openstack_dummies/glance_dummy_api.py
index a61c710..8113397 100755
--- a/src/emuvim/api/openstack/openstack_dummies/glance_dummy_api.py
+++ b/src/emuvim/api/openstack/openstack_dummies/glance_dummy_api.py
@@ -1,6 +1,7 @@
 from flask_restful import Resource
 from flask import Response, request
 from emuvim.api.openstack.openstack_dummies.base_openstack_dummy import BaseOpenstackDummy
+from emuvim.api.openstack.helper import get_host
 import logging
 import json
 
@@ -182,7 +183,7 @@
         resp['image'] = f
         # build actual response with headers and everything
         r = Response(json.dumps(resp), status=201, mimetype="application/json")
-        r.headers.add("Location", "http://%s:%d/v1/images/%s" % (self.api.ip,
+        r.headers.add("Location", "http://%s:%d/v1/images/%s" % (get_host(request),
                                                                  self.api.port,
                                                                  img_id))
         return r
diff --git a/src/emuvim/api/openstack/openstack_dummies/heat_dummy_api.py b/src/emuvim/api/openstack/openstack_dummies/heat_dummy_api.py
index 8262adb..a5b6402 100755
--- a/src/emuvim/api/openstack/openstack_dummies/heat_dummy_api.py
+++ b/src/emuvim/api/openstack/openstack_dummies/heat_dummy_api.py
@@ -2,6 +2,7 @@
 from flask_restful import Resource
 from emuvim.api.openstack.resources import Stack
 from emuvim.api.openstack.openstack_dummies.base_openstack_dummy import BaseOpenstackDummy
+from emuvim.api.openstack.helper import get_host
 from datetime import datetime
 from emuvim.api.openstack.heat_parser import HeatParser
 import logging
@@ -75,7 +76,7 @@
             "id": "v1.0",
             "links": [
                 {
-                    "href": "http://%s:%d/v2.0" % (self.api.ip, self.api.port),
+                    "href": "http://%s:%d/v2.0" % (get_host(request), self.api.port),
                     "rel": "self"
                 }
             ]
@@ -123,7 +124,7 @@
                                      "links": [
                                          {
                                              "href": "http://%s:%s/v1/%s/stacks/%s"
-                                                     % (self.api.ip, self.api.port, tenant_id, stack.id),
+                                                     % (get_host(request), self.api.port, tenant_id, stack.id),
                                              "rel": "self"
                                          }]}}
 
@@ -204,7 +205,7 @@
                     "links": [
                         {
                             "href": "http://%s:%s/v1/%s/stacks/%s"
-                                    % (self.api.ip, self.api.port, tenant_id, stack.id),
+                                    % (get_host(request), self.api.port, tenant_id, stack.id),
                             "rel": "self"
                         }
                     ],
diff --git a/src/emuvim/api/openstack/openstack_dummies/keystone_dummy_api.py b/src/emuvim/api/openstack/openstack_dummies/keystone_dummy_api.py
index 7abf9c4..ea7ae45 100755
--- a/src/emuvim/api/openstack/openstack_dummies/keystone_dummy_api.py
+++ b/src/emuvim/api/openstack/openstack_dummies/keystone_dummy_api.py
@@ -1,6 +1,7 @@
 from flask_restful import Resource
 from flask import request, Response
 from emuvim.api.openstack.openstack_dummies.base_openstack_dummy import BaseOpenstackDummy
+from emuvim.api.openstack.helper import get_host
 import logging
 import json
 
@@ -15,8 +16,8 @@
         self.api.add_resource(Shutdown, "/shutdown")
         self.api.add_resource(KeystoneShowAPIv2, "/v2.0", resource_class_kwargs={'api': self})
         self.api.add_resource(KeystoneGetToken, "/v2.0/tokens", resource_class_kwargs={'api': self})
-        self.api.add_resource(KeystoneShowAPIv3, "/v3", resource_class_kwargs={'api': self})
-        self.api.add_resource(KeystoneGetTokenv3, "/v3/auth/tokens", resource_class_kwargs={'api': self})
+        self.api.add_resource(KeystoneShowAPIv3, "/v3.0", resource_class_kwargs={'api': self})
+        self.api.add_resource(KeystoneGetTokenv3, "/v3.0/auth/tokens", resource_class_kwargs={'api': self})
 
     def _start_flask(self):
         LOG.info("Starting %s endpoint @ http://%s:%d" % (__name__, self.ip, self.port))
@@ -62,7 +63,7 @@
             "id": "v2.0",
             "links": [
                 {
-                    "href": "http://%s:%d/v2.0" % (self.api.ip, self.api.port),
+                    "href": "http://%s:%d/v2.0" % (get_host(request), self.api.port),
                     "rel": "self"
                 }
             ],
@@ -113,32 +114,12 @@
             "id": "v2.0",
             "links": [
                 {
-                    "href": "http://%s:%d/v2.0" % (self.api.ip, self.api.port),
-                    "rel": "self"
-                },
-                {
-                    "href": "http://%s:%d/v2.0/tokens" % (self.api.ip, self.api.port),
-                    "rel": "self"
-                },
-                {
-                    "href": "http://%s:%d/v2.0/networks" % (self.api.ip, neutron_port),
-                    "rel": "self"
-                },
-                {
-                    "href": "http://%s:%d/v2.0/subnets" % (self.api.ip, neutron_port),
-                    "rel": "self"
-                },
-                {
-                    "href": "http://%s:%d/v2.0/ports" % (self.api.ip, neutron_port),
-                    "rel": "self"
-                },
-                {
-                    "href": "http://%s:%d/v1/<tenant_id>/stacks" % (self.api.ip, heat_port),
+                    "href": "http://%s:%d/v2.0" % (get_host(request), self.api.port),
                     "rel": "self"
                 }
             ]
         }
-
+        LOG.debug(json.dumps(resp))
         return Response(json.dumps(resp), status=200, mimetype='application/json')
 
 
@@ -169,33 +150,13 @@
             "media-types": [
                 {
                     "base": "application/json",
-                    "type": "application/vnd.openstack.identity-v2.0+json"
+                    "type": "application/vnd.openstack.identity-v3.0+json"
                 }
             ],
-            "id": "v2.0",
+            "id": "v3.0",
             "links": [
                 {
-                    "href": "http://%s:%d/v2.0" % (self.api.ip, self.api.port),
-                    "rel": "self"
-                },
-                {
-                    "href": "http://%s:%d/v2.0/tokens" % (self.api.ip, self.api.port),
-                    "rel": "self"
-                },
-                {
-                    "href": "http://%s:%d/v2.0/networks" % (self.api.ip, neutron_port),
-                    "rel": "self"
-                },
-                {
-                    "href": "http://%s:%d/v2.0/subnets" % (self.api.ip, neutron_port),
-                    "rel": "self"
-                },
-                {
-                    "href": "http://%s:%d/v2.0/ports" % (self.api.ip, neutron_port),
-                    "rel": "self"
-                },
-                {
-                    "href": "http://%s:%d/v1/<tenant_id>/stacks" % (self.api.ip, heat_port),
+                    "href": "http://%s:%d/v3.0" % (get_host(request), self.api.port),
                     "rel": "self"
                 }
             ]
@@ -260,11 +221,11 @@
             ret['access']['serviceCatalog'] = [{
                 "endpoints": [
                     {
-                        "adminURL": "http://%s:%s/v2.1/%s" % (self.api.ip, self.api.port + 3774, user['id']),
+                        "adminURL": "http://%s:%s/v2.1/%s" % (get_host(request), self.api.port + 3774, user['id']),
                         "region": "RegionOne",
-                        "internalURL": "http://%s:%s/v2.1/%s" % (self.api.ip, self.api.port + 3774, user['id']),
+                        "internalURL": "http://%s:%s/v2.1/%s" % (get_host(request), self.api.port + 3774, user['id']),
                         "id": "2dad48f09e2a447a9bf852bcd93548ef",
-                        "publicURL": "http://%s:%s/v2.1/%s" % (self.api.ip, self.api.port + 3774, user['id'])
+                        "publicURL": "http://%s:%s/v2.1/%s" % (get_host(request), self.api.port + 3774, user['id'])
                     }
                 ],
                 "endpoints_links": [],
@@ -274,11 +235,11 @@
                 {
                     "endpoints": [
                         {
-                            "adminURL": "http://%s:%s/v2.0" % (self.api.ip, self.api.port),
+                            "adminURL": "http://%s:%s/v2.0" % (get_host(request), self.api.port),
                             "region": "RegionOne",
-                            "internalURL": "http://%s:%s/v2.0" % (self.api.ip, self.api.port),
+                            "internalURL": "http://%s:%s/v2.0" % (get_host(request), self.api.port),
                             "id": "2dad48f09e2a447a9bf852bcd93543fc",
-                            "publicURL": "http://%s:%s/v2" % (self.api.ip, self.api.port)
+                            "publicURL": "http://%s:%s/v2" % (get_host(request), self.api.port)
                         }
                     ],
                     "endpoints_links": [],
@@ -288,11 +249,11 @@
                 {
                     "endpoints": [
                         {
-                            "adminURL": "http://%s:%s" % (self.api.ip, self.api.port + 4696),
+                            "adminURL": "http://%s:%s" % (get_host(request), self.api.port + 4696),
                             "region": "RegionOne",
-                            "internalURL": "http://%s:%s" % (self.api.ip, self.api.port + 4696),
+                            "internalURL": "http://%s:%s" % (get_host(request), self.api.port + 4696),
                             "id": "2dad48f09e2a447a9bf852bcd93548cf",
-                            "publicURL": "http://%s:%s" % (self.api.ip, self.api.port + 4696)
+                            "publicURL": "http://%s:%s" % (get_host(request), self.api.port + 4696)
                         }
                     ],
                     "endpoints_links": [],
@@ -302,11 +263,11 @@
                 {
                     "endpoints": [
                         {
-                            "adminURL": "http://%s:%s" % (self.api.ip, self.api.port + 4242),
+                            "adminURL": "http://%s:%s" % (get_host(request), self.api.port + 4242),
                             "region": "RegionOne",
-                            "internalURL": "http://%s:%s" % (self.api.ip, self.api.port + 4242),
+                            "internalURL": "http://%s:%s" % (get_host(request), self.api.port + 4242),
                             "id": "2dad48f09e2a447a9bf852bcd93548cf",
-                            "publicURL": "http://%s:%s" % (self.api.ip, self.api.port + 4242)
+                            "publicURL": "http://%s:%s" % (get_host(request), self.api.port + 4242)
                         }
                     ],
                     "endpoints_links": [],
@@ -316,11 +277,11 @@
                 {
                     "endpoints": [
                         {
-                            "adminURL": "http://%s:%s/v1/%s" % (self.api.ip, self.api.port + 3004, user['id']),
+                            "adminURL": "http://%s:%s/v1/%s" % (get_host(request), self.api.port + 3004, user['id']),
                             "region": "RegionOne",
-                            "internalURL": "http://%s:%s/v1/%s" % (self.api.ip, self.api.port + 3004, user['id']),
+                            "internalURL": "http://%s:%s/v1/%s" % (get_host(request), self.api.port + 3004, user['id']),
                             "id": "2dad48f09e2a447a9bf852bcd93548bf",
-                            "publicURL": "http://%s:%s/v1/%s" % (self.api.ip, self.api.port + 3004, user['id'])
+                            "publicURL": "http://%s:%s/v1/%s" % (get_host(request), self.api.port + 3004, user['id'])
                         }
                     ],
                     "endpoints_links": [],
@@ -406,7 +367,7 @@
             token['catalog'] = [{
                 "endpoints": [
                     {
-                        "url": "http://%s:%s/v2.1/%s" % (self.api.ip, self.api.port + 3774, user['id']),
+                        "url": "http://%s:%s/v2.1/%s" % (get_host(request), self.api.port + 3774, user['id']),
                         "region": "RegionOne",
                         "interface": "public",
                         "id": "2dad48f09e2a447a9bf852bcd93548ef"
@@ -419,7 +380,7 @@
                 {
                     "endpoints": [
                         {
-                            "url": "http://%s:%s/v2.0" % (self.api.ip, self.api.port),
+                            "url": "http://%s:%s/v2.0" % (get_host(request), self.api.port),
                             "region": "RegionOne",
                             "interface": "public",
                             "id": "2dad48f09e2a447a9bf852bcd93543fc"
@@ -432,7 +393,7 @@
                 {
                     "endpoints": [
                         {
-                            "url": "http://%s:%s" % (self.api.ip, self.api.port + 4696),
+                            "url": "http://%s:%s" % (get_host(request), self.api.port + 4696),
                             "region": "RegionOne",
                             "interface": "public",
                             "id": "2dad48f09e2a447a9bf852bcd93548cf"
@@ -445,7 +406,7 @@
                 {
                     "endpoints": [
                         {
-                            "url": "http://%s:%s" % (self.api.ip, self.api.port + 4242),
+                            "url": "http://%s:%s" % (get_host(request), self.api.port + 4242),
                             "region": "RegionOne",
                             "interface": "public",
                             "id": "2dad48f09e2a447a9bf852bcd93548cf"
@@ -458,7 +419,7 @@
                 {
                     "endpoints": [
                         {
-                            "url": "http://%s:%s/v1/%s" % (self.api.ip, self.api.port + 3004, user['id']),
+                            "url": "http://%s:%s/v1/%s" % (get_host(request), self.api.port + 3004, user['id']),
                             "region": "RegionOne",
                             "interface": "public",
                             "id": "2dad48f09e2a447a9bf852bcd93548bf"
@@ -469,7 +430,6 @@
                     "name": "heat"
                 }
             ]
-            
             return Response(json.dumps(ret), status=201, mimetype='application/json')
 
         except Exception as ex:
diff --git a/src/emuvim/api/openstack/openstack_dummies/neutron_dummy_api.py b/src/emuvim/api/openstack/openstack_dummies/neutron_dummy_api.py
index 9835bcd..0acc8ff 100755
--- a/src/emuvim/api/openstack/openstack_dummies/neutron_dummy_api.py
+++ b/src/emuvim/api/openstack/openstack_dummies/neutron_dummy_api.py
@@ -1,6 +1,7 @@
 from flask_restful import Resource
 from flask import request, Response
 from emuvim.api.openstack.openstack_dummies.base_openstack_dummy import BaseOpenstackDummy
+from emuvim.api.openstack.helper import get_host
 from datetime import datetime
 import neutron_sfc_dummy_api as SFC
 import logging
diff --git a/src/emuvim/api/openstack/openstack_dummies/neutron_sfc_dummy_api.py b/src/emuvim/api/openstack/openstack_dummies/neutron_sfc_dummy_api.py
index 93121c3..a778913 100644
--- a/src/emuvim/api/openstack/openstack_dummies/neutron_sfc_dummy_api.py
+++ b/src/emuvim/api/openstack/openstack_dummies/neutron_sfc_dummy_api.py
@@ -5,6 +5,7 @@
 import uuid
 
 from emuvim.api.openstack.resources.port_chain import PortChain
+from emuvim.api.openstack.helper import get_host
 
 
 class SFC(Resource):
diff --git a/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py b/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py
index 514755e..2b356e1 100755
--- a/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py
+++ b/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py
@@ -1,6 +1,7 @@
 from flask_restful import Resource
 from flask import Response, request
 from emuvim.api.openstack.openstack_dummies.base_openstack_dummy import BaseOpenstackDummy
+from emuvim.api.openstack.helper import get_host
 import logging
 import json
 import uuid
@@ -103,7 +104,7 @@
                         }
                     ]
                 }
-            """ % (self.api.ip, self.api.port)
+            """ % (get_host(request), self.api.port)
 
             response = Response(resp, status=200, mimetype="application/json")
             response.headers['Access-Control-Allow-Origin'] = '*'
@@ -157,7 +158,7 @@
                     "updated": "2013-07-23T11:33:21Z"
                 }
             }
-            """ % (self.api.ip, self.api.port)
+            """ % (get_host(request), self.api.port)
 
             response = Response(resp, status=200, mimetype="application/json")
             response.headers['Access-Control-Allow-Origin'] = '*'
@@ -188,7 +189,7 @@
             resp['servers'] = list()
             for server in self.api.compute.computeUnits.values():
                 s = server.create_server_dict(self.api.compute)
-                s['links'] = [{'href': "http://%s:%d/v2.1/%s/servers/%s" % (self.api.ip,
+                s['links'] = [{'href': "http://%s:%d/v2.1/%s/servers/%s" % (get_host(request),
                                                                             self.api.port,
                                                                             id,
                                                                             server.id)}]
@@ -276,7 +277,7 @@
             resp['servers'] = list()
             for server in self.api.compute.computeUnits.values():
                 s = server.create_server_dict(self.api.compute)
-                s['links'] = [{'href': "http://%s:%d/v2.1/%s/servers/%s" % (self.api.ip,
+                s['links'] = [{'href': "http://%s:%d/v2.1/%s/servers/%s" % (get_host(request),
                                                                             self.api.port,
                                                                             id,
                                                                             server.id)}]
@@ -322,7 +323,7 @@
             resp = {"servers": list()}
             for server in self.api.compute.computeUnits.values():
                 s = server.create_server_dict(self.api.compute)
-                s['links'] = [{'href': "http://%s:%d/v2.1/%s/servers/%s" % (self.api.ip,
+                s['links'] = [{'href': "http://%s:%d/v2.1/%s/servers/%s" % (get_host(request),
                                                                             self.api.port,
                                                                             id,
                                                                             server.id)}]
@@ -331,7 +332,7 @@
                     "id": flavor.id,
                     "links": [
                         {
-                            "href": "http://%s:%d/v2.1/%s/flavors/%s" % (self.api.ip,
+                            "href": "http://%s:%d/v2.1/%s/flavors/%s" % (get_host(request),
                                                                          self.api.port,
                                                                          id,
                                                                          flavor.id),
@@ -344,7 +345,7 @@
                     "id": image.id,
                     "links": [
                         {
-                            "href": "http://%s:%d/v2.1/%s/images/%s" % (self.api.ip,
+                            "href": "http://%s:%d/v2.1/%s/images/%s" % (get_host(request),
                                                                         self.api.port,
                                                                         id,
                                                                         image.id),
@@ -385,7 +386,7 @@
                 f = flavor.__dict__.copy()
                 f['id'] = flavor.id
                 f['name'] = flavor.name
-                f['links'] = [{'href': "http://%s:%d/v2.1/%s/flavors/%s" % (self.api.ip,
+                f['links'] = [{'href': "http://%s:%d/v2.1/%s/flavors/%s" % (get_host(request),
                                                                             self.api.port,
                                                                             id,
                                                                             flavor.id)}]
@@ -411,7 +412,7 @@
             data.get("disk"), "GB")
         # create response based on incoming data
         data["id"] = f.id
-        data["links"] = [{'href': "http://%s:%d/v2.1/%s/flavors/%s" % (self.api.ip,
+        data["links"] = [{'href': "http://%s:%d/v2.1/%s/flavors/%s" % (get_host(request),
                                                                        self.api.port,
                                                                        id,
                                                                        f.id)}]
@@ -441,7 +442,7 @@
                 # but use a copy so we don't modifiy the original
                 f = flavor.__dict__.copy()
                 # add additional expected stuff stay openstack compatible
-                f['links'] = [{'href': "http://%s:%d/v2.1/%s/flavors/%s" % (self.api.ip,
+                f['links'] = [{'href': "http://%s:%d/v2.1/%s/flavors/%s" % (get_host(request),
                                                                             self.api.port,
                                                                             id,
                                                                             flavor.id)}]
@@ -475,7 +476,7 @@
             data.get("disk"), "GB")
         # create response based on incoming data
         data["id"] = f.id
-        data["links"] = [{'href': "http://%s:%d/v2.1/%s/flavors/%s" % (self.api.ip,
+        data["links"] = [{'href': "http://%s:%d/v2.1/%s/flavors/%s" % (get_host(request),
                                                                        self.api.port,
                                                                        id,
                                                                        f.id)}]
@@ -510,7 +511,7 @@
                         break
             resp['flavor']['id'] = flavor.id
             resp['flavor']['name'] = flavor.name
-            resp['flavor']['links'] = [{'href': "http://%s:%d/v2.1/%s/flavors/%s" % (self.api.ip,
+            resp['flavor']['links'] = [{'href': "http://%s:%d/v2.1/%s/flavors/%s" % (get_host(request),
                                                                                      self.api.port,
                                                                                      id,
                                                                                      flavor.id)}]
@@ -552,7 +553,7 @@
                 f = dict()
                 f['id'] = image.id
                 f['name'] = str(image.name).replace(":latest", "")
-                f['links'] = [{'href': "http://%s:%d/v2.1/%s/images/%s" % (self.api.ip,
+                f['links'] = [{'href': "http://%s:%d/v2.1/%s/images/%s" % (get_host(request),
                                                                            self.api.port,
                                                                            id,
                                                                            image.id)}]
@@ -589,7 +590,7 @@
                 f = image.__dict__.copy()
                 # add additional expected stuff stay openstack compatible
                 f['name'] = str(image.name).replace(":latest", "")
-                f['links'] = [{'href': "http://%s:%d/v2.1/%s/images/%s" % (self.api.ip,
+                f['links'] = [{'href': "http://%s:%d/v2.1/%s/images/%s" % (get_host(request),
                                                                            self.api.port,
                                                                            id,
                                                                            image.id)}]
@@ -674,7 +675,7 @@
             if server is None:
                 return Response("Server with id or name %s does not exists." % serverid, status=404)
             s = server.create_server_dict()
-            s['links'] = [{'href': "http://%s:%d/v2.1/%s/servers/%s" % (self.api.ip,
+            s['links'] = [{'href': "http://%s:%d/v2.1/%s/servers/%s" % (get_host(request),
                                                                         self.api.port,
                                                                         id,
                                                                         server.id)}]
@@ -684,7 +685,7 @@
                 "id": flavor.id,
                 "links": [
                     {
-                        "href": "http://%s:%d/v2.1/%s/flavors/%s" % (self.api.ip,
+                        "href": "http://%s:%d/v2.1/%s/flavors/%s" % (get_host(request),
                                                                      self.api.port,
                                                                      id,
                                                                      flavor.id),
@@ -697,7 +698,7 @@
                 "id": image.id,
                 "links": [
                     {
-                        "href": "http://%s:%d/v2.1/%s/images/%s" % (self.api.ip,
+                        "href": "http://%s:%d/v2.1/%s/images/%s" % (get_host(request),
                                                                     self.api.port,
                                                                     id,
                                                                     image.id),
diff --git a/src/emuvim/examples/openstack_single_dc.py b/src/emuvim/examples/openstack_single_dc.py
index b12079d..87e59c8 100644
--- a/src/emuvim/examples/openstack_single_dc.py
+++ b/src/emuvim/examples/openstack_single_dc.py
@@ -28,21 +28,37 @@
 import logging
 from mininet.log import setLogLevel
 from emuvim.dcemulator.net import DCNetwork
-
+from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint
 from emuvim.api.openstack.openstack_api_endpoint import OpenstackApiEndpoint
 
 logging.basicConfig(level=logging.INFO)
+setLogLevel('info')  # set Mininet loglevel
+logging.getLogger('werkzeug').setLevel(logging.DEBUG)
+logging.getLogger('api.openstack.base').setLevel(logging.DEBUG)
+logging.getLogger('api.openstack.compute').setLevel(logging.DEBUG)
+logging.getLogger('api.openstack.keystone').setLevel(logging.DEBUG)
+logging.getLogger('api.openstack.nova').setLevel(logging.DEBUG)
+logging.getLogger('api.openstack.neutron').setLevel(logging.DEBUG)
+logging.getLogger('api.openstack.heat').setLevel(logging.DEBUG)
+logging.getLogger('api.openstack.heat.parser').setLevel(logging.DEBUG)
+logging.getLogger('api.openstack.glance').setLevel(logging.DEBUG)
+logging.getLogger('api.openstack.helper').setLevel(logging.DEBUG)
 
 
 def create_topology():
     net = DCNetwork(monitor=False, enable_learning=False)
 
     dc1 = net.addDatacenter("dc1")
-
+    # add OpenStack-like APIs to the emulated DC
     api1 = OpenstackApiEndpoint("0.0.0.0", 6001)
     api1.connect_datacenter(dc1)
     api1.start()
     api1.connect_dc_network(net)
+    # add the command line interface endpoint to the emulated DC (REST API)
+    rapi1 = RestApiEndpoint("0.0.0.0", 5001)
+    rapi1.connectDCNetwork(net)
+    rapi1.connectDatacenter(dc1)
+    rapi1.start()
 
     net.start()
     net.CLI()
@@ -51,7 +67,6 @@
 
 
 def main():
-    setLogLevel('info')  # set Mininet loglevel
     create_topology()
 
 
diff --git a/utils/docker/Dockerfile b/utils/docker/Dockerfile
index 214510e..e1ba00d 100755
--- a/utils/docker/Dockerfile
+++ b/utils/docker/Dockerfile
@@ -52,7 +52,7 @@
 # install son-emu
 RUN echo 'install son-emu'
 RUN apt-get install -y  python-dev python-zmq libzmq-dev libffi-dev libssl-dev
-RUN pip install -U zerorpc tabulate argparse networkx six ryu oslo.config pytest Flask flask_restful requests prometheus_client pyaml
+RUN pip install -U zerorpc tabulate argparse networkx six ryu oslo.config pytest Flask flask_restful requests urllib prometheus_client pyaml
 WORKDIR /
 #avoid pulling not the latest git, copy the current dir, to run this from Jenkins
 #RUN git clone https://github.com/sonata-nfv/son-emu.git
@@ -65,5 +65,5 @@
 
 ENTRYPOINT ["/son-emu/utils/docker/entrypoint.sh"]
 
-# dummy GK, cAdvisor, Prometheus Push Gateway, son-emu REST API
-EXPOSE 5000 8081 9091 5001
+# dummy GK, cAdvisor, Prometheus Push Gateway, son-emu REST API, OpenStack-fake APIs
+EXPOSE 5000 8081 9091 5001 4000 10243 9005 6001 9775 10697
