diff options
29 files changed, 161 insertions, 51 deletions
diff --git a/ocata/ocata/extensions/tests/test_epacaps.py b/ocata/ocata/extensions/tests/test_epacaps.py index a78e4c25..34a4e8e1 100644 --- a/ocata/ocata/extensions/tests/test_epacaps.py +++ b/ocata/ocata/extensions/tests/test_epacaps.py @@ -19,7 +19,7 @@ from django.test import Client from rest_framework import status import unittest -from newton.requests.views.util import VimDriverUtils +from newton_base.util import VimDriverUtils MOCK_VIM_INFO = { "createTime": "2017-04-01 02:22:27", @@ -64,4 +64,4 @@ class TestEpaCaps(unittest.TestCase): self.assertEquals(cloud_region_id, json_content["cloud-region-id"]) self.assertEquals(vimid, json_content["vimid"]) self.assertEquals(json.loads(MOCK_VIM_INFO['cloud_epa_caps']), - json_content["cloud-epa-caps"])
\ No newline at end of file + json_content["cloud-epa-caps"]) diff --git a/ocata/ocata/proxy/tests/test_identity_proxy.py b/ocata/ocata/proxy/tests/test_identity_proxy.py index a77592f8..d5fb22ec 100644 --- a/ocata/ocata/proxy/tests/test_identity_proxy.py +++ b/ocata/ocata/proxy/tests/test_identity_proxy.py @@ -22,7 +22,7 @@ from rest_framework import status from keystoneauth1 import session from keystoneauth1.exceptions import HttpError -from newton.requests.views.util import VimDriverUtils +from newton_base.util import VimDriverUtils from ocata.proxy.views.identityV3 import Tokens mock_viminfo = { diff --git a/ocata/ocata/proxy/tests/test_service_proxy.py b/ocata/ocata/proxy/tests/test_service_proxy.py index f916e33e..aa461d37 100644 --- a/ocata/ocata/proxy/tests/test_service_proxy.py +++ b/ocata/ocata/proxy/tests/test_service_proxy.py @@ -21,7 +21,7 @@ from rest_framework import status import unittest -from newton.requests.views.util import VimDriverUtils +from newton_base.util import VimDriverUtils MOCK_VIM_INFO = { "createTime": "2017-04-01 02:22:27", diff --git a/ocata/ocata/registration/tests/test_registration.py b/ocata/ocata/registration/tests/test_registration.py index e3fe352e..694a1437 100644 --- a/ocata/ocata/registration/tests/test_registration.py +++ b/ocata/ocata/registration/tests/test_registration.py @@ -16,10 +16,10 @@ import mock from rest_framework import status -from newton.pub.utils import restcall +from common.utils import restcall from newton.requests.tests import mock_info from newton.requests.tests import test_base -from newton.requests.views.util import VimDriverUtils +from newton_base.util import VimDriverUtils MOCK_GET_TENANT_RESPONSE = { "projects":[ diff --git a/ocata/ocata/settings.py b/ocata/ocata/settings.py index 6021aa78..5567a06a 100644 --- a/ocata/ocata/settings.py +++ b/ocata/ocata/settings.py @@ -12,6 +12,8 @@ import os import sys +CACHE_EXPIRATION_TIME = 3600 + # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) diff --git a/ocata/vagrant/test/Dockerfile b/ocata/vagrant/test/Dockerfile index 2d9eda54..cc7d2b53 100644 --- a/ocata/vagrant/test/Dockerfile +++ b/ocata/vagrant/test/Dockerfile @@ -19,7 +19,7 @@ RUN apt-get update && \ rm -f multicloud-openstack-ocata.zip && \ pip install -r /opt/ocata/requirements.txt -ADD extsys.py /opt/ocata/lib/newton/newton/pub/msapi/extsys.py +ADD extsys.py /opt/ocata/lib/share/common/msapi/extsys.py WORKDIR /opt/ocata CMD /bin/sh -c /opt/ocata/run.sh diff --git a/ocata/vagrant/test/extsys.py b/ocata/vagrant/test/extsys.py index 59cf7a7b..83778914 100644 --- a/ocata/vagrant/test/extsys.py +++ b/ocata/vagrant/test/extsys.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. @@ -14,8 +14,8 @@ import logging import re from rest_framework import status -from newton.pub.exceptions import VimDriverNewtonException -from newton.pub.utils.restcall import req_by_msb,req_to_aai +from common.exceptions import VimDriverNewtonException +from common.utils.restcall import req_by_msb,req_to_aai logger = logging.getLogger(__name__) 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__) |