# identityV2.Tokens.as_view()),
url(r'^identity/v3/auth/tokens$',
identityV3.Tokens.as_view()),
+ url(r'^identity/v3/?$',
+ identityV3.Tokens.as_view()),
url(r'^identity/v2.0/?$',
identityV3.TokensV2.as_view()),
url(r'^identity/v2.0/tokens/?$',
DEBUG=True
+v3_version_detail = {
+ "version": {
+ "status": "stable",
+ "updated": "2014-04-17T00:00:00Z",
+ "media-types": [
+ {
+ "base": "application/json",
+ "type": "application/vnd.openstack.identity-v3+json"
+ }
+ ],
+ "id": "v3",
+ "links": [
+ ]
+ }
+}
+
class Tokens(APIView):
service = {'service_type': 'identity',
'interface': 'public'}
self.proxy_prefix = config.MULTICLOUD_PREFIX
self._logger = logger
+ def get(self, request, vimid=""):
+ self._logger.debug("identityV3--get::META> %s" % request.META)
+
+ return Response(data=v3_version_detail, status=status.HTTP_200_OK)
+
def post(self, request, vimid=""):
self._logger.debug("identityV3--post::META> %s" % request.META)
self._logger.debug("identityV3--post::data> %s" % request.data)
#backward support for keystone v2.0 API
if not tenant_name and request.data.get("auth"):
tenant_name = request.data["auth"].get("tenantName")
+ tenant_id = request.data["auth"].get("tenantId")
#keystone v3 API
if not tenant_name and request.data.get("auth") \
return Response(data={'error': str(e)},
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
-version_detail = {
+v2_version_detail = {
"version": {
"status": "stable",
"updated": "2014-04-17T00:00:00Z",
def get(self, request, vimid=""):
self._logger.debug("TokensV2--get::META> %s" % request.META)
- return Response(data=version_detail, status=status.HTTP_200_OK)
+ return Response(data=v2_version_detail, status=status.HTTP_200_OK)
def post(self, request, vimid=""):
self._logger.debug("TokensV2--post::META> %s" % request.META)
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: