From b14e1359642e17daf769ca39fa01e644135191f0 Mon Sep 17 00:00:00 2001 From: Huang Haibin Date: Wed, 28 Feb 2018 03:44:35 +0800 Subject: Move extsys from newton to common Change-Id: I30ad2ed3a43bcb0ef569bb25d3e51a9ab49ea48a Issue-ID: MULTICLOUD-138 Signed-off-by: Huang Haibin --- share/common/msapi/__init__.py | 10 +++ share/common/msapi/extsys.py | 98 ++++++++++++++++++++++++++ share/newton_base/extensions/epacaps.py | 6 +- share/newton_base/extensions/extensions.py | 6 +- share/newton_base/openoapi/flavor.py | 2 +- share/newton_base/openoapi/hosts.py | 4 +- share/newton_base/openoapi/image.py | 2 +- share/newton_base/openoapi/limits.py | 2 +- share/newton_base/openoapi/network.py | 4 +- share/newton_base/openoapi/server.py | 2 +- share/newton_base/openoapi/subnet.py | 2 +- share/newton_base/openoapi/tenants.py | 2 +- share/newton_base/openoapi/volume.py | 2 +- share/newton_base/openoapi/vport.py | 2 +- share/newton_base/proxy/dnsaasdelegate.py | 6 +- share/newton_base/proxy/identityV3.py | 13 ++-- share/newton_base/proxy/proxy_utils.py | 2 +- share/newton_base/proxy/services.py | 6 +- share/newton_base/registration/registration.py | 11 ++- share/newton_base/swagger/__init__.py | 2 +- share/newton_base/swagger/views.py | 2 +- share/newton_base/util.py | 4 +- 22 files changed, 149 insertions(+), 41 deletions(-) create mode 100644 share/common/msapi/__init__.py create mode 100644 share/common/msapi/extsys.py (limited to 'share') diff --git a/share/common/msapi/__init__.py b/share/common/msapi/__init__.py new file mode 100644 index 00000000..387c54c2 --- /dev/null +++ b/share/common/msapi/__init__.py @@ -0,0 +1,10 @@ +# Copyright (c) 2017-2018 Wind River Systems, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. diff --git a/share/common/msapi/extsys.py b/share/common/msapi/extsys.py new file mode 100644 index 00000000..99824ef2 --- /dev/null +++ b/share/common/msapi/extsys.py @@ -0,0 +1,98 @@ +# Copyright (c) 2017-2018 Wind River Systems, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +import json +import logging +import re + +from common.exceptions import VimDriverNewtonException +from common.utils import restcall + + +logger = logging.getLogger(__name__) + +def get_vim_by_id(vim_id): + + cloud_owner,cloud_region_id = decode_vim_id(vim_id) + + if cloud_owner and cloud_region_id: + retcode, content, status_code = \ + restcall.req_to_aai("/cloud-infrastructure/cloud-regions/cloud-region/%s/%s?depth=1" + % (cloud_owner,cloud_region_id),"GET") + if retcode != 0: + logger.error("Status code is %s, detail is %s.", status_code, content) + raise VimDriverNewtonException( + "Failed to query VIM with id (%s:%s,%s)." % (vim_id,cloud_owner,cloud_region_id), + status_code, content) + tmp_viminfo = json.JSONDecoder().decode(content) + + #assume esr-system-info-id is composed by {cloud-owner} _ {cloud-region-id} +# retcode2,content2,status_code2 = \ +# restcall.req_to_aai(("/cloud-infrastructure/cloud-regions/cloud-region/%(owner)s/%(region)s" +# "/esr-system-info-list/esr-system-info/%(owner)s_%(region)s" % { +# "owner": cloud_owner, "region": cloud_region_id}), "GET") +# if retcode2 != 0: +# logger.error("Status code is %s, detail is %s.", status_code, content) +# raise VimDriverNewtonException( +# "Failed to query ESR system with id (%s:%s,%s)." % (vim_id,cloud_owner,cloud_region_id), +# status_code2, content2) +# tmp_authinfo = json.JSONDecoder().decode(content2) + tmp_authinfo = tmp_viminfo['esr-system-info-list']['esr-system-info'][0] if tmp_viminfo else None + + #convert vim information + if tmp_viminfo and tmp_authinfo: + viminfo = {} + viminfo['vimId'] = vim_id + viminfo['resource-version'] = tmp_viminfo.get('resource-version') + viminfo['cloud_owner'] = cloud_owner + viminfo['cloud_region_id'] = cloud_region_id + viminfo['type'] = tmp_viminfo.get('cloud-type') + viminfo['name'] = tmp_viminfo.get('complex-name') + viminfo['version'] = tmp_viminfo.get('cloud-region-version') + viminfo['cloud_extra_info'] = tmp_viminfo.get('cloud-extra-info') + viminfo['cloud_epa_caps'] = tmp_viminfo.get('cloud-epa-caps') + + viminfo['userName'] = tmp_authinfo['user-name'] + viminfo['password'] = tmp_authinfo['password'] + viminfo['domain'] = tmp_authinfo.get('cloud-domain') + viminfo['url'] = tmp_authinfo.get('service-url') + viminfo['tenant'] = tmp_authinfo.get('default-tenant') + viminfo['cacert'] = tmp_authinfo.get('ssl-cacert') + viminfo['insecure'] = tmp_authinfo.get('ssl-insecure') + + return viminfo + return None + +def delete_vim_by_id(vim_id): + cloud_owner, cloud_region_id = decode_vim_id(vim_id) + if cloud_owner and cloud_region_id: + #get the vim info + viminfo = get_vim_by_id(vim_id) + if not viminfo or not viminfo['resource-version']: + return 0 + + retcode, content, status_code = \ + restcall.req_to_aai("/cloud-infrastructure/cloud-regions/cloud-region/%s/%s?resource-version=%s" + % ( cloud_owner, cloud_region_id, viminfo['resource-version']), "DELETE") + if retcode != 0: + logger.error("Status code is %s, detail is %s.", status_code, content) + raise VimDriverNewtonException( + "Failed to delete VIM in AAI with id (%s:%s,%s)." % (vim_id,cloud_owner,cloud_region_id), + status_code, content) + return 0 + # return non zero if failed to decode cloud owner and region id + return 1 + +def decode_vim_id(vim_id): + m = re.search(r'^([0-9a-zA-Z-]+)_([0-9a-zA-Z_-]+)$', vim_id) + cloud_owner, cloud_region_id = m.group(1), m.group(2) + return cloud_owner, cloud_region_id + diff --git a/share/newton_base/extensions/epacaps.py b/share/newton_base/extensions/epacaps.py index d8878e2c..cc5420e5 100644 --- a/share/newton_base/extensions/epacaps.py +++ b/share/newton_base/extensions/epacaps.py @@ -21,9 +21,9 @@ 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 -from newton.pub.msapi import extsys +from common.exceptions import VimDriverNewtonException +from newton_base.util import VimDriverUtils +from common.msapi import extsys logger = logging.getLogger(__name__) diff --git a/share/newton_base/extensions/extensions.py b/share/newton_base/extensions/extensions.py index fb6455b1..6b3ecb57 100644 --- a/share/newton_base/extensions/extensions.py +++ b/share/newton_base/extensions/extensions.py @@ -24,9 +24,9 @@ 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 -from newton.pub.msapi import extsys +from common.exceptions import VimDriverNewtonException +from newton_base.util import VimDriverUtils +from common.msapi import extsys logger = logging.getLogger(__name__) diff --git a/share/newton_base/openoapi/flavor.py b/share/newton_base/openoapi/flavor.py index 27bbb821..d50b1941 100644 --- a/share/newton_base/openoapi/flavor.py +++ b/share/newton_base/openoapi/flavor.py @@ -20,7 +20,7 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException from newton_base.util import VimDriverUtils logger = logging.getLogger(__name__) diff --git a/share/newton_base/openoapi/hosts.py b/share/newton_base/openoapi/hosts.py index 720ba8e2..60debf54 100644 --- a/share/newton_base/openoapi/hosts.py +++ b/share/newton_base/openoapi/hosts.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Wind River Systems, Inc. +# Copyright (c) 2017-2018 Wind River Systems, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException from newton_base.util import VimDriverUtils diff --git a/share/newton_base/openoapi/image.py b/share/newton_base/openoapi/image.py index 9ddb5f55..965b2c3f 100644 --- a/share/newton_base/openoapi/image.py +++ b/share/newton_base/openoapi/image.py @@ -21,7 +21,7 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException from newton_base.util import VimDriverUtils diff --git a/share/newton_base/openoapi/limits.py b/share/newton_base/openoapi/limits.py index 3f62afa3..3302fdba 100644 --- a/share/newton_base/openoapi/limits.py +++ b/share/newton_base/openoapi/limits.py @@ -19,7 +19,7 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException from newton_base.util import VimDriverUtils diff --git a/share/newton_base/openoapi/network.py b/share/newton_base/openoapi/network.py index a1ac550d..253ac89f 100644 --- a/share/newton_base/openoapi/network.py +++ b/share/newton_base/openoapi/network.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Wind River Systems, Inc. +# Copyright (c) 2017-2018 Wind River Systems, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,7 +19,7 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException from newton_base.util import VimDriverUtils diff --git a/share/newton_base/openoapi/server.py b/share/newton_base/openoapi/server.py index c53e43e8..95eab2bf 100644 --- a/share/newton_base/openoapi/server.py +++ b/share/newton_base/openoapi/server.py @@ -22,7 +22,7 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException from newton_base.util import VimDriverUtils logger = logging.getLogger(__name__) diff --git a/share/newton_base/openoapi/subnet.py b/share/newton_base/openoapi/subnet.py index 1310ab50..a9b423ac 100644 --- a/share/newton_base/openoapi/subnet.py +++ b/share/newton_base/openoapi/subnet.py @@ -19,7 +19,7 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException from newton_base.util import VimDriverUtils diff --git a/share/newton_base/openoapi/tenants.py b/share/newton_base/openoapi/tenants.py index bcd8f2f2..926f72c5 100644 --- a/share/newton_base/openoapi/tenants.py +++ b/share/newton_base/openoapi/tenants.py @@ -20,7 +20,7 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException from newton_base.util import VimDriverUtils logger = logging.getLogger(__name__) diff --git a/share/newton_base/openoapi/volume.py b/share/newton_base/openoapi/volume.py index a048dda4..27bd1ef7 100644 --- a/share/newton_base/openoapi/volume.py +++ b/share/newton_base/openoapi/volume.py @@ -19,7 +19,7 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException from newton_base.util import VimDriverUtils diff --git a/share/newton_base/openoapi/vport.py b/share/newton_base/openoapi/vport.py index 8f9b0d62..9656b5c0 100644 --- a/share/newton_base/openoapi/vport.py +++ b/share/newton_base/openoapi/vport.py @@ -19,7 +19,7 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException from newton_base.util import VimDriverUtils diff --git a/share/newton_base/proxy/dnsaasdelegate.py b/share/newton_base/proxy/dnsaasdelegate.py index 85bcbfde..8a384527 100644 --- a/share/newton_base/proxy/dnsaasdelegate.py +++ b/share/newton_base/proxy/dnsaasdelegate.py @@ -25,9 +25,9 @@ from rest_framework.views import APIView from newton_base.proxy.services import Services from newton_base.proxy.proxy_utils import ProxyUtils -from newton.pub.exceptions import VimDriverNewtonException -from newton.pub.msapi import extsys -from newton.requests.views.util import VimDriverUtils +from common.exceptions import VimDriverNewtonException +from common.msapi import extsys +from newton_base.util import VimDriverUtils logger = logging.getLogger(__name__) diff --git a/share/newton_base/proxy/identityV3.py b/share/newton_base/proxy/identityV3.py index 0c45c23e..057bdf3e 100644 --- a/share/newton_base/proxy/identityV3.py +++ b/share/newton_base/proxy/identityV3.py @@ -24,8 +24,8 @@ 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 +from common.exceptions import VimDriverNewtonException +from newton_base.util import VimDriverUtils from newton_base.proxy.proxy_utils import ProxyUtils logger = logging.getLogger(__name__) @@ -90,9 +90,10 @@ class Tokens(APIView): # prepare request resource to vim instance vim = VimDriverUtils.get_vim_info(vimid) - sess = VimDriverUtils.get_session(vim, tenantname = tenant_name, tenantid=tenant_id) + sess = VimDriverUtils.get_session(vim, tenant_name = tenant_name, tenant_id=tenant_id) - tmp_auth_state = VimDriverUtils.get_auth_state(vim, sess) + #tmp_auth_state = VimDriverUtils.get_auth_state(vim, sess) + tmp_auth_state = VimDriverUtils.get_auth_state(sess) tmp_auth_info = json.loads(tmp_auth_state) tmp_auth_token = tmp_auth_info['auth_token'] tmp_auth_data = tmp_auth_info['body'] @@ -104,8 +105,8 @@ class Tokens(APIView): tmp_auth_data['token']['catalog'], tmp_metadata_catalog = ProxyUtils.update_catalog( vimid, tmp_auth_data['token']['catalog'], self.proxy_prefix) - tmp_auth_token = VimDriverUtils.update_token_cache( - vim, sess, tmp_auth_token, tmp_auth_state, json.dumps(tmp_metadata_catalog)) + VimDriverUtils.update_token_cache( + tmp_auth_token, tmp_auth_state, json.dumps(tmp_metadata_catalog)) tmp_auth_data['token']['catalog'] = ProxyUtils.update_catalog_dnsaas( vimid,tmp_auth_data['token']['catalog'], self.proxy_prefix, vim) diff --git a/share/newton_base/proxy/proxy_utils.py b/share/newton_base/proxy/proxy_utils.py index 79be4221..bad5b60f 100644 --- a/share/newton_base/proxy/proxy_utils.py +++ b/share/newton_base/proxy/proxy_utils.py @@ -19,7 +19,7 @@ import uuid from rest_framework import status -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException logger = logging.getLogger(__name__) diff --git a/share/newton_base/proxy/services.py b/share/newton_base/proxy/services.py index e40b58ec..fb0cf60a 100644 --- a/share/newton_base/proxy/services.py +++ b/share/newton_base/proxy/services.py @@ -23,9 +23,9 @@ from rest_framework import status from rest_framework.views import APIView from newton_base.proxy.proxy_utils import ProxyUtils -from newton.pub.exceptions import VimDriverNewtonException -from newton.pub.msapi import extsys -from newton.requests.views.util import VimDriverUtils +from common.exceptions import VimDriverNewtonException +from common.msapi import extsys +from newton_base.util import VimDriverUtils logger = logging.getLogger(__name__) diff --git a/share/newton_base/registration/registration.py b/share/newton_base/registration/registration.py index d9ce713d..e5a84501 100644 --- a/share/newton_base/registration/registration.py +++ b/share/newton_base/registration/registration.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Wind River Systems, Inc. +# Copyright (c) 2017-2018 Wind River Systems, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,11 +21,10 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.config import config -from newton.pub.exceptions import VimDriverNewtonException -from newton.pub.msapi import extsys -from newton.pub.utils import restcall -from newton.requests.views.util import VimDriverUtils +from common.exceptions import VimDriverNewtonException +from common.msapi import extsys +from common.utils import restcall +from newton_base.util import VimDriverUtils logger = logging.getLogger(__name__) diff --git a/share/newton_base/swagger/__init__.py b/share/newton_base/swagger/__init__.py index 802f3fba..387c54c2 100644 --- a/share/newton_base/swagger/__init__.py +++ b/share/newton_base/swagger/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Wind River Systems, Inc. +# Copyright (c) 2017-2018 Wind River Systems, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/share/newton_base/swagger/views.py b/share/newton_base/swagger/views.py index 10f3c0cc..839abea2 100644 --- a/share/newton_base/swagger/views.py +++ b/share/newton_base/swagger/views.py @@ -18,7 +18,7 @@ from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from newton.pub.exceptions import VimDriverNewtonException +from common.exceptions import VimDriverNewtonException logger = logging.getLogger(__name__) diff --git a/share/newton_base/util.py b/share/newton_base/util.py index d2363252..c708e850 100644 --- a/share/newton_base/util.py +++ b/share/newton_base/util.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Wind River Systems, Inc. +# Copyright (c) 2017-2018 Wind River Systems, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ from keystoneauth1.identity import v2 as keystone_v2 from keystoneauth1.identity import v3 as keystone_v3 from keystoneauth1 import session -from newton.pub.msapi import extsys +from common.msapi import extsys logger = logging.getLogger(__name__) -- cgit 1.2.3-korg