diff options
Diffstat (limited to 'newton/newton/requests/views/tenants.py')
-rw-r--r-- | newton/newton/requests/views/tenants.py | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/newton/newton/requests/views/tenants.py b/newton/newton/requests/views/tenants.py index 901839a4..88b9454b 100644 --- a/newton/newton/requests/views/tenants.py +++ b/newton/newton/requests/views/tenants.py @@ -11,25 +11,27 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. + import logging -import json import traceback + from keystoneauth1.exceptions import HttpError from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView from newton.pub.exceptions import VimDriverNewtonException - from newton.requests.views.util import VimDriverUtils logger = logging.getLogger(__name__) -DEBUG=True class Tenants(APIView): - service = {'service_type': 'identity', - 'interface': 'public'} + service = { + 'service_type': 'identity', + 'interface': 'public' + } + keys_mapping = [ ("projects", "tenants"), ] @@ -41,12 +43,9 @@ class Tenants(APIView): query = VimDriverUtils.get_query_part(request) vim = VimDriverUtils.get_vim_info(vimid) + req_resouce = "/projects" if '/v2' in vim["url"]: req_resouce = "/v2.0/tenants" - elif '/v3' in vim["url"]: - req_resouce = "/projects" - else: - req_resouce = "/projects" sess = VimDriverUtils.get_session(vim) resp = sess.get(req_resouce, endpoint_filter=self.service) @@ -57,28 +56,30 @@ class Tenants(APIView): } content.update(vim_dict) - VimDriverUtils.replace_key_by_mapping(content, - self.keys_mapping) + VimDriverUtils.replace_key_by_mapping( + content, self.keys_mapping) if query: _, tenantname = query.split('=') if tenantname: - tmp=content["tenants"] + tmp = content["tenants"] content["tenants"] = [] # convert the key naming in hosts for tenant in tmp: if tenantname == tenant['name']: content["tenants"].append(tenant) - return Response(data=content, status=resp.status_code) except VimDriverNewtonException as e: - return Response(data={'error': e.content}, status=e.status_code) + return Response( + data={'error': e.content}, status=e.status_code) except HttpError as e: - logger.error("HttpError: status:%s, response:%s" % (e.http_status, e.response.json())) - return Response(data=e.response.json(), status=e.http_status) + logger.error("HttpError: status:%s, response:%s" % ( + e.http_status, e.response.json())) + return Response(data=e.response.json(), + status=e.http_status) except Exception as e: logger.error(traceback.format_exc()) - return Response(data={'error': str(e)}, - status=status.HTTP_500_INTERNAL_SERVER_ERROR) - + return Response( + data={'error': str(e)}, + status=status.HTTP_500_INTERNAL_SERVER_ERROR) |