summaryrefslogtreecommitdiffstats
path: root/newton/newton/proxy/views/services.py
diff options
context:
space:
mode:
Diffstat (limited to 'newton/newton/proxy/views/services.py')
-rw-r--r--newton/newton/proxy/views/services.py31
1 files changed, 22 insertions, 9 deletions
diff --git a/newton/newton/proxy/views/services.py b/newton/newton/proxy/views/services.py
index d86b0e8c..19fec9ca 100644
--- a/newton/newton/proxy/views/services.py
+++ b/newton/newton/proxy/views/services.py
@@ -35,6 +35,7 @@ DEBUG=True
class HasValidToken(BasePermission):
def has_permission(self, request, view):
+ logger.debug("HasValidToken--has_permission::META> %s" % request.META)
token = request.META.get('HTTP_X_AUTH_TOKEN', None)
if token:
state, metadata = VimDriverUtils.get_token_cache(token)
@@ -85,6 +86,12 @@ class Services(APIView):
def _do_action(self, action, request, vim_id, servicetype, requri):
tmp_auth_token = self._get_token(request)
try:
+ #special handling of compute/v2 request from APPC, temp solution for A release
+ if servicetype == 'compute':
+ tmp_pattern = re.compile(r'^v2/(.+)')
+ requri = tmp_pattern.sub(r'v2.1/' + r'\1', requri)
+
+
vim = VimDriverUtils.get_vim_info(vim_id)
# fetch the auth_state out of cache
auth_state, metadata_catalog = VimDriverUtils.get_token_cache(tmp_auth_token)
@@ -130,10 +137,16 @@ class Services(APIView):
content = resp.json() if resp.content else None
self._logger.debug("service " + action + " response: %s, %s" % (resp.status_code, content))
- if (action != "delete"):
+ if (action == "delete"):
+ return Response(headers={'X-Subject-Token': tmp_auth_token}, status=resp.status_code)
+ else:
content = ProxyUtils.update_prefix(metadata_catalog, content)
+ if (action == "get"):
+ if requri == '/v3/auth/catalog' and content and content.get("catalog"):
+ content['catalog'] = ProxyUtils.update_catalog_dnsaas(
+ vim_id, content['catalog'], self.proxy_prefix, vim)
return Response(headers={'X-Subject-Token': tmp_auth_token}, data=content, status=resp.status_code)
- return Response(headers={'X-Subject-Token': tmp_auth_token}, status=resp.status_code)
+
except VimDriverNewtonException as e:
return Response(data={'error': e.content}, status=e.status_code)
except HttpError as e:
@@ -145,7 +158,7 @@ class Services(APIView):
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def head(self, request, vimid="", servicetype="", requri=""):
- self._logger.debug("Services--head::META> %s" % request.META)
+ #self._logger.debug("Services--head::META> %s" % request.META)
self._logger.debug("Services--head::data> %s" % request.data)
self._logger.debug("Services--head::vimid, servicetype, requri> %s,%s,%s"
% (vimid, servicetype, requri))
@@ -184,14 +197,14 @@ class Services(APIView):
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def get(self, request, vimid="", servicetype="", requri=""):
- self._logger.debug("Services--get::META> %s" % request.META)
+ #self._logger.debug("Services--get::META> %s" % request.META)
self._logger.debug("Services--get::data> %s" % request.data)
self._logger.debug("Services--get::vimid, servicetype, requri> %s,%s,%s"
% (vimid, servicetype, requri))
return self._do_action("get", request, vimid, servicetype, requri)
def post(self, request, vimid="", servicetype="", requri=""):
- self._logger.debug("Services--post::META> %s" % request.META)
+ #self._logger.debug("Services--post::META> %s" % request.META)
self._logger.debug("Services--post::data> %s" % request.data)
self._logger.debug("Services--post::vimid, servicetype, requri> %s,%s,%s"
% (vimid, servicetype, requri))
@@ -199,21 +212,21 @@ class Services(APIView):
return self._do_action("post", request, vimid, servicetype, requri)
def put(self, request, vimid="", servicetype="", requri=""):
- self._logger.debug("Services--put::META> %s" % request.META)
+ #self._logger.debug("Services--put::META> %s" % request.META)
self._logger.debug("Services--put::data> %s" % request.data)
self._logger.debug("Services--put::vimid, servicetype, requri> %s,%s,%s"
% (vimid, servicetype, requri))
return self._do_action("put", request, vimid, servicetype, requri)
def patch(self, request, vimid="", servicetype="", requri=""):
- self._logger.debug("Services--patch::META> %s" % request.META)
+ #self._logger.debug("Services--patch::META> %s" % request.META)
self._logger.debug("Services--patch::data> %s" % request.data)
self._logger.debug("Services--patch::vimid, servicetype, requri> %s,%s,%s"
% (vimid, servicetype, requri))
return self._do_action("patch", request, vimid, servicetype, requri)
def delete(self, request, vimid="", servicetype="", requri=""):
- self._logger.debug("Services--delete::META> %s" % request.META)
+ #self._logger.debug("Services--delete::META> %s" % request.META)
self._logger.debug("Services--delete::data> %s" % request.data)
self._logger.debug("Services--delete::vimid, servicetype, requri> %s,%s,%s"
% (vimid, servicetype, requri))
@@ -229,7 +242,7 @@ class GetTenants(Services):
self._logger = logger
def get(self, request, vimid="", servicetype="identity", requri='projects'):
- self._logger.debug("GetTenants--get::META> %s" % request.META)
+ #self._logger.debug("GetTenants--get::META> %s" % request.META)
self._logger.debug("GetTenants--get::data> %s" % request.data)
self._logger.debug("GetTenants--get::vimid, servicetype, requri> %s,%s,%s"
% (vimid, servicetype, requri))