Improve the code coverage for pike 88/99488/1
authorHaibin Huang <haibin.huang@intel.com>
Wed, 11 Dec 2019 13:44:24 +0000 (21:44 +0800)
committerHaibin Huang <haibin.huang@intel.com>
Wed, 11 Dec 2019 13:49:31 +0000 (21:49 +0800)
Issue-ID: MULTICLOUD-964
Signed-off-by: Haibin Huang <haibin.huang@intel.com>
Change-Id: I711b6953730fad74b06ecd371d9e5717298cbf21

pike/pike/proxy/tests/test_identity_proxy.py [new file with mode: 0644]
pike/pike/proxy/tests/test_service_proxy.py [moved from pike/pike/proxy/tests/test_proxy.py with 70% similarity]
pike/pike/proxy/urls.py
pike/pike/proxy/urls_v1.py
pike/pike/proxy/views/identityV3.py [moved from pike/pike/proxy/views/identity_v3.py with 80% similarity]
pike/pike/proxy/views/services.py

diff --git a/pike/pike/proxy/tests/test_identity_proxy.py b/pike/pike/proxy/tests/test_identity_proxy.py
new file mode 100644 (file)
index 0000000..7ff0045
--- /dev/null
@@ -0,0 +1,739 @@
+# Copyright (c) 2019 Intel Corporation.
+#
+# 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.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import json
+
+import mock
+import unittest
+
+from django.test import Client
+from rest_framework import status
+
+from newton_base.util import VimDriverUtils
+from newton_base.tests import mock_info
+
+mock_viminfo = {
+    "createTime": "2017-04-01 02:22:27",
+    "domain": "Default",
+    "name": "TiS_R4",
+    "password": "admin",
+    "tenant": "admin",
+    "type": "openstack",
+    "url": "http://128.224.180.14:5000/v3",
+    "userName": "admin",
+    "vendor": "Pike",
+    "version": "pike",
+    "vimId": "pike_RegionOne",
+    'cloud_owner': 'pike',
+    'cloud_region_id': ' RegionOne',
+    'cloud_extra_info': '',
+    'insecure': 'True',
+}
+
+mock_token_id = "1a62b3971d774404a504c5d9a3e506e3"
+
+mock_catalog_response = {
+    "catalog": [
+        {
+            "id": "99aefcc82a9246f98f8c281e61ffc754",
+            "endpoints": [
+                {
+                    "region": "RegionOne",
+                    "url": "http://128.224.180.14:9696",
+                    "id": "39583c1508ad4b71b380570a745ee10a",
+                    "interface": "public",
+                    "region_id": "RegionOne"
+                },
+                {
+                    "url": "http://192.168.204.2:9696",
+                    "region": "RegionOne",
+                    "id": "37e8d07ba24e4b8f93490c9daaba06e2",
+                    "interface": "internal",
+                    "region_id": "RegionOne"
+                },
+                {
+                    "interface": "admin",
+                    "id": "7eee4ca98d444b1abb00a50d4b89373f",
+                    "region_id": "RegionOne",
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:9696"
+                }
+            ],
+            "name": "neutron",
+            "type": "network"
+        },
+        {
+            "endpoints": [
+                {
+                    "interface": "public",
+                    "id": "10496738fa374295a4a88a63b81a1589",
+                    "region_id": "RegionOne",
+                    "url": "http://128.224.180.14:8777",
+                    "region": "RegionOne"
+                },
+                {
+                    "id": "02dcb8c0bd464c4489fa0a0c9f28571f",
+                    "region_id": "RegionOne",
+                    "interface": "internal",
+                    "url": "http://192.168.204.2:8777",
+                    "region": "RegionOne"
+                },
+                {
+                    "region_id": "RegionOne",
+                    "id": "8a73b0d3743b4e78b87614690f6e97fe",
+                    "interface": "admin",
+                    "url": "http://192.168.204.2:8777",
+                    "region": "RegionOne"
+                }
+            ],
+            "id": "d131054da83f4c93833799747a0f4709",
+            "name": "ceilometer",
+            "type": "metering"
+        },
+        {
+            "type": "volumev2",
+            "name": "cinderv2",
+            "endpoints": [
+                {
+                    "id": "35a67ad36f0447d19c9662babf7cf609",
+                    "interface": "public",
+                    "region_id": "RegionOne",
+                    "url": "http://128.224.180.14:8776/v2/fcca3cc49d5e42caae15459e27103efc",
+                    "region": "RegionOne"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:8776/v2/fcca3cc49d5e42caae15459e27103efc",
+                    "id": "c6ea42052268420fa2c8d351ee68c922",
+                    "interface": "internal",
+                    "region_id": "RegionOne"
+                },
+                {
+                    "region_id": "RegionOne",
+                    "id": "91cb24853dc3450d847b0c286a2e44ea",
+                    "interface": "admin",
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:8776/v2/fcca3cc49d5e42caae15459e27103efc"
+                }
+            ],
+            "id": "40440057102440739c30be10a66bc5d1"
+        },
+        {
+            "name": "heat",
+            "type": "orchestration",
+            "id": "35300cce88db4bd4bb5a72ffe3b88b00",
+            "endpoints": [
+                {
+                    "id": "58999d7b4a94439089ecfb2aca2d7f6c",
+                    "region_id": "RegionOne",
+                    "interface": "public",
+                    "region": "RegionOne",
+                    "url": "http://128.224.180.14:8004/v1/fcca3cc49d5e42caae15459e27103efc"
+                },
+                {
+                    "url": "http://192.168.204.2:8004/v1/fcca3cc49d5e42caae15459e27103efc",
+                    "region": "RegionOne",
+                    "interface": "internal",
+                    "id": "1e0ee1a2aef84802b921d422372a567e",
+                    "region_id": "RegionOne"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:8004/v1/fcca3cc49d5e42caae15459e27103efc",
+                    "id": "17661bf4859741b8a43a461dedad1871",
+                    "region_id": "RegionOne",
+                    "interface": "admin"
+                }
+            ]
+        },
+        {
+            "id": "08dc6912aea64c01925012c8a6df250a",
+            "endpoints": [
+                {
+                    "id": "02792c4eed77486083f9b2e52d7b94b0",
+                    "region_id": "RegionOne",
+                    "interface": "public",
+                    "region": "RegionOne",
+                    "url": "http://128.224.180.14:5000/v3"
+                },
+                {
+                    "id": "b6d5cad394b94309ae40d8de88059c5f",
+                    "region_id": "RegionOne",
+                    "interface": "internal",
+                    "url": "http://192.168.204.2:5000/v3",
+                    "region": "RegionOne"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:35357/v3",
+                    "region_id": "RegionOne",
+                    "id": "1f18e2b7c6a34493b86853b65917888e",
+                    "interface": "admin"
+                }
+            ],
+            "type": "identity",
+            "name": "keystone"
+        },
+        {
+            "name": "vim",
+            "type": "nfv",
+            "endpoints": [
+                {
+                    "url": "http://128.224.180.14:4545",
+                    "region": "RegionOne",
+                    "id": "b33e317345e4480ab0786e4960995ec9",
+                    "interface": "public",
+                    "region_id": "RegionOne"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:4545",
+                    "interface": "internal",
+                    "id": "03c85828d5bf432ab04831aa65ac9c52",
+                    "region_id": "RegionOne"
+                },
+                {
+                    "id": "067983abb061476cb53a9e23a740d98f",
+                    "region_id": "RegionOne",
+                    "interface": "admin",
+                    "url": "http://192.168.204.2:4545",
+                    "region": "RegionOne"
+                }
+            ],
+            "id": "01636c856fc84988b38b9117eb4a8021"
+        },
+        {
+            "name": "aodh",
+            "type": "alarming",
+            "id": "eb269151d0e44744a5b5449657bdc61c",
+            "endpoints": [
+                {
+                    "id": "5bfc6c056e0244c493642eb82f6aaa11",
+                    "region_id": "RegionOne",
+                    "interface": "public",
+                    "url": "http://128.224.180.14:8042",
+                    "region": "RegionOne"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:8042",
+                    "region_id": "RegionOne",
+                    "id": "ad69c7f76dce4089a195b9221ddbfb44",
+                    "interface": "internal"
+                },
+                {
+                    "interface": "admin",
+                    "id": "3e8fcdfa7bcb40b0ae33c282adfcc9ff",
+                    "region_id": "RegionOne",
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:8042"
+                }
+            ]
+        },
+        {
+            "name": "sysinv",
+            "type": "platform",
+            "endpoints": [
+                {
+                    "region": "RegionOne",
+                    "url": "http://128.224.180.14:6385/v1",
+                    "interface": "public",
+                    "id": "ba4ba8104590421b84672306c7e0e1f1",
+                    "region_id": "RegionOne"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:6385/v1",
+                    "interface": "internal",
+                    "id": "a1cba34b163f496ab1acd6e9b51e39a2",
+                    "region_id": "RegionOne"
+                },
+                {
+                    "url": "http://192.168.204.2:6385/v1",
+                    "region": "RegionOne",
+                    "id": "7c171210a2c841a6a52a5713e316d6fc",
+                    "interface": "admin",
+                    "region_id": "RegionOne"
+                }
+            ],
+            "id": "256bbad671f946fea543e6bd71f98875"
+        },
+        {
+            "id": "e84665dcce814c05b4c5084964547534",
+            "endpoints": [
+                {
+                    "url": "http://128.224.180.14:8000/v1/fcca3cc49d5e42caae15459e27103efc",
+                    "region": "RegionOne",
+                    "region_id": "RegionOne",
+                    "id": "b2ed1a23dc6944bea129c20861e0286a",
+                    "interface": "public"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:8000/v1/fcca3cc49d5e42caae15459e27103efc",
+                    "interface": "internal",
+                    "id": "c4df7c6bc15646848eff35caf6ffea8e",
+                    "region_id": "RegionOne"
+                },
+                {
+                    "region_id": "RegionOne",
+                    "id": "61b3dabb761443a89ab549f437c05ab0",
+                    "interface": "admin",
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:8000/v1/fcca3cc49d5e42caae15459e27103efc"
+                }
+            ],
+            "name": "heat-cfn",
+            "type": "cloudformation"
+        },
+        {
+            "id": "823024424a014981a3721229491c0b1a",
+            "endpoints": [
+                {
+                    "region": "RegionOne",
+                    "url": "http://128.224.180.14:8776/v1/fcca3cc49d5e42caae15459e27103efc",
+                    "region_id": "RegionOne",
+                    "id": "4a52e4e54ff440789f9a797919c4a0f2",
+                    "interface": "public"
+                },
+                {
+                    "url": "http://192.168.204.2:8776/v1/fcca3cc49d5e42caae15459e27103efc",
+                    "region": "RegionOne",
+                    "id": "d4f9a84476524a39844f0fce63f1022e",
+                    "region_id": "RegionOne",
+                    "interface": "internal"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:8776/v1/fcca3cc49d5e42caae15459e27103efc",
+                    "interface": "admin",
+                    "id": "81bf3810a8cc4697b68c6e93b5b8fe1f",
+                    "region_id": "RegionOne"
+                }
+            ],
+            "type": "volume",
+            "name": "cinder"
+        },
+        {
+            "name": "glance",
+            "type": "image",
+            "endpoints": [
+                {
+                    "id": "bd930aba961946cfb1401bada56d55e3",
+                    "region_id": "RegionOne",
+                    "interface": "public",
+                    "region": "RegionOne",
+                    "url": "http://128.224.180.14:9292"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:9292",
+                    "id": "c11da585f0b141b99d1e18bb9a607beb",
+                    "region_id": "RegionOne",
+                    "interface": "internal"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:9292",
+                    "id": "31b26c625a6a4fc7910dc5935155996e",
+                    "interface": "admin",
+                    "region_id": "RegionOne"
+                }
+            ],
+            "id": "3b78cf039bc54d1bbb99ab3a4be15ef1"
+        },
+        {
+            "id": "b8701374bf254de1beee8a2c9ecc6b33",
+            "endpoints": [
+                {
+                    "region_id": "RegionOne",
+                    "id": "f7407f330c8b4577b1d377d3fab9c2f8",
+                    "interface": "public",
+                    "region": "RegionOne",
+                    "url": "http://128.224.180.14:15491"
+                },
+                {
+                    "url": "http://192.168.204.2:5491",
+                    "region": "RegionOne",
+                    "interface": "internal",
+                    "id": "0b37ce31a32f4b6fa5e1aa0d6c20680f",
+                    "region_id": "RegionOne"
+                },
+                {
+                    "region_id": "RegionOne",
+                    "id": "7b87ea72adf245e1991e9e0df29b7ea9",
+                    "interface": "admin",
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:5491"
+                }
+            ],
+            "type": "patching",
+            "name": "patching"
+        },
+        {
+            "id": "0ec0923a58f04ffeb6fced3bbc5c0947",
+            "endpoints": [
+                {
+                    "url": "http://128.224.180.14:8774/v2.1/fcca3cc49d5e42caae15459e27103efc",
+                    "region": "RegionOne",
+                    "id": "13168b12da17451fb39630de67db168f",
+                    "region_id": "RegionOne",
+                    "interface": "public"
+                },
+                {
+                    "id": "22dd6a44209f42d986b82e3aa6535f82",
+                    "interface": "internal",
+                    "region_id": "RegionOne",
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:8774/v2.1/fcca3cc49d5e42caae15459e27103efc"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:8774/v2.1/fcca3cc49d5e42caae15459e27103efc",
+                    "id": "552a991ae501492f841c1b6e2ff38fc5",
+                    "region_id": "RegionOne",
+                    "interface": "admin"
+                }
+            ],
+            "type": "compute",
+            "name": "nova"
+        },
+        {
+            "id": "50b219650f1049b097b3f14e8c70cdf8",
+            "endpoints": [
+                {
+                    "interface": "public",
+                    "id": "5a4276cd6e4d43e883cf8640d4e13f7d",
+                    "region_id": "RegionOne",
+                    "region": "RegionOne",
+                    "url": "http://128.224.180.14:8776/v3/fcca3cc49d5e42caae15459e27103efc"
+                },
+                {
+                    "region": "RegionOne",
+                    "url": "http://192.168.204.2:8776/v3/fcca3cc49d5e42caae15459e27103efc",
+                    "region_id": "RegionOne",
+                    "id": "c796df3ca5a84fc18db5b43a55283953",
+                    "interface": "internal"
+                },
+                {
+                    "region_id": "RegionOne",
+                    "id": "cf55c2b34d0049ba835a2e48b9ad0e2e",
+                    "interface": "admin",
+                    "url": "http://192.168.204.2:8776/v3/fcca3cc49d5e42caae15459e27103efc",
+                    "region": "RegionOne"
+                }
+            ],
+            "type": "volumev3",
+            "name": "cinderv3"
+        }
+    ],
+}
+
+mock_auth_state = {
+    "body": {
+        "token": {
+            "is_domain": "false",
+            "expires_at": "2017-08-27T14:19:15.000000Z",
+            "issued_at": "2017-08-27T13:19:15.000000Z",
+            "roles": [
+                {
+                    "id": "9fe2ff9ee4384b1894a90878d3e92bab",
+                    "name": "_member_"
+                },
+                {
+                    "id": "b86a7e02935844b899d3d326f83c1b1f",
+                    "name": "admin"
+                },
+                {
+                    "name": "heat_stack_owner",
+                    "id": "7de502236e954c8282de32e773fc052e"
+                }
+            ],
+            "methods": [
+                "password"
+            ],
+            "catalog": mock_catalog_response['catalog'],
+            "project": {
+                "name": "admin",
+                "id": "fcca3cc49d5e42caae15459e27103efc",
+                "domain": {
+                    "id": "default",
+                    "name": "Default"
+                }
+            },
+            "user": {
+                "name": "admin",
+                "id": "9efb043c7629497a8028d7325ca1afb0",
+                "domain": {
+                    "id": "default",
+                    "name": "Default"
+                }
+            },
+            "audit_ids": [
+                "_ZWT10DtSZKRXIvIcxun7w"
+            ]
+        }
+    },
+    "auth_token": mock_token_id
+}
+
+
+class TestIdentityService(unittest.TestCase):
+    def setUp(self):
+        self.client = Client()
+
+    @mock.patch.object(VimDriverUtils, 'get_vim_info')
+    @mock.patch.object(VimDriverUtils, 'get_session')
+    @mock.patch.object(VimDriverUtils, 'get_auth_state')
+    @mock.patch.object(VimDriverUtils, 'update_token_cache')
+    def test_token(self, mock_update_token_cache, mock_get_auth_state,
+                   mock_get_session, mock_get_vim_info):
+        '''
+                test API: get token
+        :param mock_update_token_cache:
+        :param mock_get_auth_state:
+        :param mock_get_session:
+        :param mock_get_vim_info:
+        :return:
+        '''
+
+        # mock VimDriverUtils APIs
+        mock_session_specs = ["get"]
+        mock_session_get_response = {'status': 200}
+        mock_session = mock.Mock(name='mock_session', spec=mock_session_specs)
+        mock_session.get.return_value = mock_session_get_response
+
+        mock_get_vim_info.return_value = mock_viminfo
+        mock_get_session.return_value = mock_session
+        mock_get_auth_state.return_value = json.dumps(mock_auth_state)
+        mock_update_token_cache.return_value = mock_token_id
+
+        # simulate client to make the request
+        data = {}
+        response = self.client.post(
+            "/api/multicloud-pike/v0/pike_RegionOne/identity/v3/auth/tokens", data=data,
+            format='json')
+        self.failUnlessEqual(status.HTTP_201_CREATED, response.status_code)
+        context = response.json()
+
+        self.assertTrue(response['X-Subject-Token'] == mock_token_id)
+        self.assertTrue(context['token']['catalog'] is not None)
+
+    @mock.patch.object(VimDriverUtils, 'get_vim_info')
+    @mock.patch.object(VimDriverUtils, 'get_session')
+    @mock.patch.object(VimDriverUtils, 'get_auth_state')
+    @mock.patch.object(VimDriverUtils, 'update_token_cache')
+    def test_tokensV2(self, mock_update_token_cache, mock_get_auth_state,
+                      mock_get_session, mock_get_vim_info):
+        '''
+                test API: get token
+        :param mock_update_token_cache:
+        :param mock_get_auth_state:
+        :param mock_get_session:
+        :param mock_get_vim_info:
+        :return:
+        '''
+
+        # mock VimDriverUtils APIs
+        mock_session_specs = ["get"]
+        mock_session_get_response = {'status': 200}
+        mock_session = mock.Mock(name='mock_session',
+                                 spec=mock_session_specs)
+        mock_session.get.return_value = mock_session_get_response
+
+        mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO
+        mock_get_session.return_value = mock_session
+        mock_get_auth_state.return_value = json.dumps(mock_auth_state)
+        mock_update_token_cache.return_value = mock_info.MOCK_TOKEN_ID
+
+        # simulate client to make the request
+        data = {}
+        response = self.client.post(
+            "/api/multicloud-pike/v0/pike_RegionOne/identity/v2.0/tokens",
+            data=data, format='json')
+        self.failUnlessEqual(status.HTTP_200_OK,
+                             response.status_code)
+        context = response.json()
+
+        self.assertIsNotNone(context['access']['token'])
+        self.assertEqual(mock_info.MOCK_TOKEN_ID,
+                         context['access']['token']["id"])
+        self.assertIsNotNone(context['access']['serviceCatalog'])
+
+    @mock.patch.object(VimDriverUtils, 'get_vim_info')
+    @mock.patch.object(VimDriverUtils, 'get_session')
+    @mock.patch.object(VimDriverUtils, 'get_auth_state')
+    @mock.patch.object(VimDriverUtils, 'update_token_cache')
+    def test_token_with_tenantname(self, mock_update_token_cache, mock_get_auth_state,
+                                   mock_get_session, mock_get_vim_info):
+        '''
+                test API: get token
+        :param mock_update_token_cache:
+        :param mock_get_auth_state:
+        :param mock_get_session:
+        :param mock_get_vim_info:
+        :return:
+        '''
+
+        # mock VimDriverUtils APIs
+        mock_session_specs = ["get"]
+        mock_session_get_response = {'status': 200}
+        mock_session = mock.Mock(name='mock_session',
+                                 spec=mock_session_specs)
+        mock_session.get.return_value = mock_session_get_response
+
+        mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO
+        mock_get_session.return_value = mock_session
+        mock_get_auth_state.return_value = json.dumps(mock_auth_state)
+        mock_update_token_cache.return_value = mock_info.MOCK_TOKEN_ID
+
+        # simulate client to make the request
+        token_data = {
+            "auth": {
+                "identity": {
+                    "methods": ["password"],
+                    "password": {
+                        "user": {
+                            "name": "demo",
+                            "domain": {"name": "Default"},
+                            "password": "demo"
+                        }
+                    }
+                },
+                "scope": {
+                    "project": {
+                        "domain": {"name": "Default"},
+                        "name": "Integration"
+                    }
+                }
+            }
+        }
+
+        response = self.client.post(
+            "/api/multicloud-pike/v0/pike_RegionOne/identity/v3/auth/tokens",
+            data=json.dumps(token_data), content_type='application/json')
+        self.failUnlessEqual(status.HTTP_201_CREATED,
+                             response.status_code)
+        context = response.json()
+
+        self.assertEqual(mock_info.MOCK_TOKEN_ID,
+                         response['X-Subject-Token'])
+        self.assertIsNotNone(context['token']['catalog'])
+
+    @mock.patch.object(VimDriverUtils, 'get_vim_info')
+    @mock.patch.object(VimDriverUtils, 'get_session')
+    @mock.patch.object(VimDriverUtils, 'get_auth_state')
+    @mock.patch.object(VimDriverUtils, 'update_token_cache')
+    def test_tokensV2_with_tenantname(self, mock_update_token_cache, mock_get_auth_state,
+                                      mock_get_session, mock_get_vim_info):
+        '''
+                test API: get token
+        :param mock_update_token_cache:
+        :param mock_get_auth_state:
+        :param mock_get_session:
+        :param mock_get_vim_info:
+        :return:
+        '''
+
+        # mock VimDriverUtils APIs
+        mock_session_specs = ["get"]
+        mock_session_get_response = {'status': 200}
+        mock_session = mock.Mock(name='mock_session',
+                                 spec=mock_session_specs)
+        mock_session.get.return_value = mock_session_get_response
+
+        mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO
+        mock_get_session.return_value = mock_session
+        mock_get_auth_state.return_value = json.dumps(mock_auth_state)
+        mock_update_token_cache.return_value = mock_info.MOCK_TOKEN_ID
+
+        # simulate client to make the request
+        token_data = {
+            "auth": {
+                "tenantName": "Integration",
+                "passwordCredentials": {
+                    "username": "demo",
+                    "password": "demo"
+                }
+            }
+        }
+
+        response = self.client.post(
+            "/api/multicloud-pike/v0/pike_RegionOne/identity/v2.0/tokens",
+            data=json.dumps(token_data), content_type='application/json')
+        self.failUnlessEqual(status.HTTP_200_OK,
+                             response.status_code)
+        context = response.json()
+
+        self.assertIsNotNone(context['access']['token'])
+        self.assertEqual(mock_info.MOCK_TOKEN_ID,
+                         context['access']['token']["id"])
+        self.assertIsNotNone(context['access']['serviceCatalog'])
+
+    @mock.patch.object(VimDriverUtils, 'get_vim_info')
+    @mock.patch.object(VimDriverUtils, 'get_session')
+    @mock.patch.object(VimDriverUtils, 'get_auth_state')
+    @mock.patch.object(VimDriverUtils, 'update_token_cache')
+    def test_token_with_projectid(self, mock_update_token_cache, mock_get_auth_state,
+                                  mock_get_session, mock_get_vim_info):
+        '''
+                test API: get token
+        :param mock_update_token_cache:
+        :param mock_get_auth_state:
+        :param mock_get_session:
+        :param mock_get_vim_info:
+        :return:
+        '''
+
+        # mock VimDriverUtils APIs
+        mock_session_specs = ["get"]
+        mock_session_get_response = {'status': 200}
+        mock_session = mock.Mock(name='mock_session',
+                                 spec=mock_session_specs)
+        mock_session.get.return_value = mock_session_get_response
+
+        mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO
+        mock_get_session.return_value = mock_session
+        mock_get_auth_state.return_value = json.dumps(mock_auth_state)
+        mock_update_token_cache.return_value = mock_info.MOCK_TOKEN_ID
+
+        # simulate client to make the request
+        token_data = {
+            "auth": {
+                "identity": {
+                    "methods": ["password"],
+                    "password": {
+                        "user": {
+                            "name": "demo",
+                            "password": "demo"
+                        }
+                    }
+                },
+                "scope": {
+                    "project": {"id": "dd327af0542e47d7853e0470fe9ad625"}
+                }
+            }
+        }
+
+        response = self.client.post(
+            "/api/multicloud-pike/v0/pike_RegionOne/identity/v3/auth/tokens",
+            data=json.dumps(token_data), content_type='application/json')
+        self.failUnlessEqual(status.HTTP_201_CREATED,
+                             response.status_code)
+        context = response.json()
+
+        self.assertEqual(mock_info.MOCK_TOKEN_ID,
+                         response['X-Subject-Token'])
+
+        self.assertIsNotNone(context['token']['catalog'])
similarity index 70%
rename from pike/pike/proxy/tests/test_proxy.py
rename to pike/pike/proxy/tests/test_service_proxy.py
index 3bcae95..3369b99 100644 (file)
@@ -1,7 +1,4 @@
-'''
-Test proxy
-'''
-# Copyright (c) 2018 Intel Corporation.
+# Copyright (c) 2019 Intel Corporation.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -15,18 +12,15 @@ Test proxy
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import json
-
 import copy
-import unittest
-import mock
+import json
 
 from django.test import Client
+import mock
 from rest_framework import status
+import unittest
 
 from newton_base.util import VimDriverUtils
-from newton_base.tests import mock_info
-
 
 MOCK_VIM_INFO = {
     "createTime": "2017-04-01 02:22:27",
@@ -37,10 +31,10 @@ MOCK_VIM_INFO = {
     "type": "openstack",
     "url": "http://128.224.180.14:5000/v3",
     "userName": "admin",
-    "vendor": "WindRiver",
+    "vendor": "Pike",
     "version": "pike",
     "vimId": "pike_RegionOne",
-    'cloud_owner': 'windriver-hudson-dc',
+    'cloud_owner': 'starlingx',
     'cloud_region_id': 'RegionOne',
     'cloud_extra_info': '',
     'insecure': 'True',
@@ -495,8 +489,7 @@ MOCK_AUTH_STATE = {
 
 MOCK_INTERNAL_METADATA_CATALOG = {
     "identity": {
-        "proxy_prefix":
-        "http://172.16.77.20:9003/api/multicloud-pike/v0/pike_RegionOne/identity",
+        "proxy_prefix": "http://172.16.77.20:9003/api/multicloud-pike/v0/pike_RegionOne/identity",
         "prefix": "http://128.224.180.14:5000",
         "suffix": "v3"
     },
@@ -508,8 +501,7 @@ MOCK_INTERNAL_METADATA_CATALOG = {
     "orchestration": {
         "suffix": "v1/fcca3cc49d5e42caae15459e27103efc",
         "prefix": "http://128.224.180.14:8004",
-        "proxy_prefix": "http://172.16.77.20:9003/api/multicloud-pike/v0/pike_RegionOne/"
-                        "orchestration"
+        "proxy_prefix": "http://172.16.77.20:9003/api/multicloud-pike/v0/pike_RegionOne/orchestration"
     },
     "volume": {
         "prefix": "http://128.224.180.14:8776",
@@ -562,26 +554,22 @@ MOCK_INTERNAL_METADATA_CATALOG = {
         "proxy_prefix": "http://172.16.77.20:9003/api/multicloud-pike/v0/pike_RegionOne/alarming"
     },
     "cloudformation": {
-        "proxy_prefix": "http://172.16.77.20:9003/api/multicloud-pike/v0/pike_RegionOne/"
-                        "cloudformation",
+        "proxy_prefix": "http://172.16.77.20:9003/api/multicloud-pike/v0/pike_RegionOne/cloudformation",
         "prefix": "http://128.224.180.14:8000",
         "suffix": "v1/fcca3cc49d5e42caae15459e27103efc"
     }
 }
 
-
 MOCK_GET_SERVERS_RESPONSE = {
     "servers": [
         {
             "links": [
                 {
-                    "href": "http://128.224.180.14:8774/v2.1/fcca3cc49d5e42caae15459e27103efc/"
-                            "servers/b2581b5c-7c56-4564-819d-fe7a2ce9c261",
+                    "href": "http://128.224.180.14:8774/v2.1/fcca3cc49d5e42caae15459e27103efc/servers/b2581b5c-7c56-4564-819d-fe7a2ce9c261",
                     "rel": "self"
                 },
                 {
-                    "href": "http://128.224.180.14:8774/fcca3cc49d5e42caae15459e27103efc/"
-                            "servers/b2581b5c-7c56-4564-819d-fe7a2ce9c261",
+                    "href": "http://128.224.180.14:8774/fcca3cc49d5e42caae15459e27103efc/servers/b2581b5c-7c56-4564-819d-fe7a2ce9c261",
                     "rel": "bookmark"
                 }
             ],
@@ -594,13 +582,11 @@ MOCK_GET_SERVERS_RESPONSE = {
             "links": [
                 {
                     "rel": "self",
-                    "href": "http://128.224.180.14:8774/v2.1/fcca3cc49d5e42caae15459e27103efc/"
-                            "servers/ff7b51ca-a272-45f4-b54c-e40b8099e67d"
+                    "href": "http://128.224.180.14:8774/v2.1/fcca3cc49d5e42caae15459e27103efc/servers/ff7b51ca-a272-45f4-b54c-e40b8099e67d"
                 },
                 {
                     "rel": "bookmark",
-                    "href": "http://128.224.180.14:8774/fcca3cc49d5e42caae15459e27103efc/"
-                            "servers/ff7b51ca-a272-45f4-b54c-e40b8099e67d"
+                    "href": "http://128.224.180.14:8774/fcca3cc49d5e42caae15459e27103efc/servers/ff7b51ca-a272-45f4-b54c-e40b8099e67d"
                 }
             ]
         }
@@ -622,15 +608,7 @@ MOCK_POST_SERVER_REQUEST = {
         "personality": [
             {
                 "path": "/etc/banner.txt",
-                "contents": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp "
-                            "dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k "
-                            "IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs "
-                            "c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g "
-                            "QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo "
-                            "ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv "
-                            "dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy "
-                            "c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 "
-                            "b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
+                "contents": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA=="
             }
         ],
         "security_groups": [
@@ -652,13 +630,11 @@ MOCK_POST_SERVER_RESPONSE = {
         "id": "f5dc173b-6804-445a-a6d8-c705dad5b5eb",
         "links": [
             {
-                "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/"
-                        "servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
+                "href": "http://openstack.example.com/v2/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
                 "rel": "self"
             },
             {
-                "href": "http://openstack.example.com/6f70656e737461636b20342065766572/"
-                        "servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
+                "href": "http://openstack.example.com/6f70656e737461636b20342065766572/servers/f5dc173b-6804-445a-a6d8-c705dad5b5eb",
                 "rel": "bookmark"
             }
         ],
@@ -670,7 +646,6 @@ MOCK_POST_SERVER_RESPONSE = {
     }
 }
 
-
 MOCK_PATCH_IMAGE_REQUEST = [
     {
         "op": "replace",
@@ -713,256 +688,6 @@ MOCK_PATCH_IMAGE_RESPONSE = {
 }
 
 
-class TestIdentityService(unittest.TestCase):
-    def setUp(self):
-        self.client = Client()
-
-    @mock.patch.object(VimDriverUtils, 'get_vim_info')
-    @mock.patch.object(VimDriverUtils, 'get_session')
-    @mock.patch.object(VimDriverUtils, 'get_auth_state')
-    @mock.patch.object(VimDriverUtils, 'update_token_cache')
-    def test_token(self, mock_update_token_cache, mock_get_auth_state,
-                   mock_get_session, mock_get_vim_info):
-        '''
-                test API: get token
-        :param mock_update_token_cache:
-        :param mock_get_auth_state:
-        :param mock_get_session:
-        :param mock_get_vim_info:
-        :return:
-        '''
-
-        # mock VimDriverUtils APIs
-        mock_session_specs = ["get"]
-        mock_session_get_response = {'status': 200}
-        mock_session = mock.Mock(name='mock_session', spec=mock_session_specs)
-        mock_session.get.return_value = mock_session_get_response
-
-        mock_get_vim_info.return_value = MOCK_VIM_INFO
-        mock_get_session.return_value = mock_session
-        mock_get_auth_state.return_value = json.dumps(MOCK_AUTH_STATE)
-
-        mock_update_token_cache.return_value = MOCK_TOKEN_ID
-
-        # simulate client to make the request
-        data = {}
-        response = self.client.post(
-            "/api/multicloud-pike/v0/pike_RegionOne/identity/v3/auth/tokens",
-            data=data, format='json')
-        self.assertEqual(status.HTTP_201_CREATED, response.status_code)
-        context = response.json()
-
-        self.assertTrue(response['X-Subject-Token'] == MOCK_TOKEN_ID)
-        self.assertTrue(context['token']['catalog'] is not None)
-
-    @mock.patch.object(VimDriverUtils, 'get_vim_info')
-    @mock.patch.object(VimDriverUtils, 'get_session')
-    @mock.patch.object(VimDriverUtils, 'get_auth_state')
-    @mock.patch.object(VimDriverUtils, 'update_token_cache')
-    def test_tokensV2(self, mock_update_token_cache, mock_get_auth_state,
-                      mock_get_session, mock_get_vim_info):
-        '''
-                test API: get token
-        :param mock_update_token_cache:
-        :param mock_get_auth_state:
-        :param mock_get_session:
-        :param mock_get_vim_info:
-        :return:
-        '''
-
-        # mock VimDriverUtils APIs
-        mock_session_specs = ["get"]
-        mock_session_get_response = {'status': 200}
-        mock_session = mock.Mock(name='mock_session',
-                                 spec=mock_session_specs)
-        mock_session.get.return_value = mock_session_get_response
-
-        mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO
-        mock_get_session.return_value = mock_session
-        mock_get_auth_state.return_value = json.dumps(MOCK_AUTH_STATE)
-        mock_update_token_cache.return_value = mock_info.MOCK_TOKEN_ID
-
-        # simulate client to make the request
-        data = {}
-        response = self.client.post(
-            "/api/multicloud-pike/v0/pike_RegionOne/identity/v2.0/tokens",
-            data=data, format='json')
-        self.assertEqual(status.HTTP_200_OK,
-                         response.status_code)
-        context = response.json()
-
-        self.assertIsNotNone(context['access']['token'])
-        self.assertEqual(mock_info.MOCK_TOKEN_ID,
-                         context['access']['token']["id"])
-        self.assertIsNotNone(context['access']['serviceCatalog'])
-
-    @mock.patch.object(VimDriverUtils, 'get_vim_info')
-    @mock.patch.object(VimDriverUtils, 'get_session')
-    @mock.patch.object(VimDriverUtils, 'get_auth_state')
-    @mock.patch.object(VimDriverUtils, 'update_token_cache')
-    def test_token_with_tenantname(self, mock_update_token_cache, mock_get_auth_state,
-                                   mock_get_session, mock_get_vim_info):
-        '''
-                test API: get token
-        :param mock_update_token_cache:
-        :param mock_get_auth_state:
-        :param mock_get_session:
-        :param mock_get_vim_info:
-        :return:
-        '''
-
-        # mock VimDriverUtils APIs
-        mock_session_specs = ["get"]
-        mock_session_get_response = {'status': 200}
-        mock_session = mock.Mock(name='mock_session',
-                                 spec=mock_session_specs)
-        mock_session.get.return_value = mock_session_get_response
-
-        mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO
-        mock_get_session.return_value = mock_session
-        mock_get_auth_state.return_value = json.dumps(MOCK_AUTH_STATE)
-        mock_update_token_cache.return_value = mock_info.MOCK_TOKEN_ID
-
-        # simulate client to make the request
-        token_data = {
-            "auth": {
-                "identity": {
-                    "methods": ["password"],
-                    "password": {
-                        "user": {
-                            "name": "demo",
-                            "domain": {"name": "Default"},
-                            "password": "demo"
-                        }
-                    }
-                },
-                "scope": {
-                    "project": {
-                        "domain": {"name": "Default"},
-                        "name": "Integration"
-                    }
-                }
-            }
-        }
-
-        response = self.client.post(
-            "/api/multicloud-pike/v0/pike_RegionOne/identity/v3/auth/tokens",
-            data=json.dumps(token_data), content_type='application/json')
-        self.assertEqual(status.HTTP_201_CREATED,
-                         response.status_code)
-        context = response.json()
-
-        self.assertEqual(mock_info.MOCK_TOKEN_ID,
-                         response['X-Subject-Token'])
-        self.assertIsNotNone(context['token']['catalog'])
-
-    @mock.patch.object(VimDriverUtils, 'get_vim_info')
-    @mock.patch.object(VimDriverUtils, 'get_session')
-    @mock.patch.object(VimDriverUtils, 'get_auth_state')
-    @mock.patch.object(VimDriverUtils, 'update_token_cache')
-    def test_tokensV2_with_tenantname(self, mock_update_token_cache, mock_get_auth_state,
-                                      mock_get_session, mock_get_vim_info):
-        '''
-                test API: get token
-        :param mock_update_token_cache:
-        :param mock_get_auth_state:
-        :param mock_get_session:
-        :param mock_get_vim_info:
-        :return:
-        '''
-
-        # mock VimDriverUtils APIs
-        mock_session_specs = ["get"]
-        mock_session_get_response = {'status': 200}
-        mock_session = mock.Mock(name='mock_session',
-                                 spec=mock_session_specs)
-        mock_session.get.return_value = mock_session_get_response
-
-        mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO
-        mock_get_session.return_value = mock_session
-        mock_get_auth_state.return_value = json.dumps(MOCK_AUTH_STATE)
-        mock_update_token_cache.return_value = mock_info.MOCK_TOKEN_ID
-
-        # simulate client to make the request
-        token_data = {
-            "auth": {
-                "tenantName": "Integration",
-                "passwordCredentials": {
-                    "username": "demo",
-                    "password": "demo"
-                }
-            }
-        }
-
-        response = self.client.post(
-            "/api/multicloud-pike/v0/pike_RegionOne/identity/v2.0/tokens",
-            data=json.dumps(token_data), content_type='application/json')
-        self.assertEqual(status.HTTP_200_OK,
-                         response.status_code)
-        context = response.json()
-
-        self.assertIsNotNone(context['access']['token'])
-        self.assertEqual(mock_info.MOCK_TOKEN_ID,
-                         context['access']['token']["id"])
-        self.assertIsNotNone(context['access']['serviceCatalog'])
-
-    @mock.patch.object(VimDriverUtils, 'get_vim_info')
-    @mock.patch.object(VimDriverUtils, 'get_session')
-    @mock.patch.object(VimDriverUtils, 'get_auth_state')
-    @mock.patch.object(VimDriverUtils, 'update_token_cache')
-    def test_token_with_projectid(self, mock_update_token_cache, mock_get_auth_state,
-                                  mock_get_session, mock_get_vim_info):
-        '''
-                test API: get token
-        :param mock_update_token_cache:
-        :param mock_get_auth_state:
-        :param mock_get_session:
-        :param mock_get_vim_info:
-        :return:
-        '''
-
-        # mock VimDriverUtils APIs
-        mock_session_specs = ["get"]
-        mock_session_get_response = {'status': 200}
-        mock_session = mock.Mock(name='mock_session',
-                                 spec=mock_session_specs)
-        mock_session.get.return_value = mock_session_get_response
-
-        mock_get_vim_info.return_value = mock_info.MOCK_VIM_INFO
-        mock_get_session.return_value = mock_session
-        mock_get_auth_state.return_value = json.dumps(MOCK_AUTH_STATE)
-        mock_update_token_cache.return_value = mock_info.MOCK_TOKEN_ID
-
-        # simulate client to make the request
-        token_data = {
-            "auth": {
-                "identity": {
-                    "methods": ["password"],
-                    "password": {
-                        "user": {
-                            "name": "demo",
-                            "password": "demo"
-                        }
-                    }
-                },
-                "scope": {
-                    "project": {"id": "dd327af0542e47d7853e0470fe9ad625"}
-                }
-            }
-        }
-
-        response = self.client.post(
-            "/api/multicloud-pike/v0/pike_RegionOne/identity/v3/auth/tokens",
-            data=json.dumps(token_data), content_type='application/json')
-        self.assertEqual(status.HTTP_201_CREATED,
-                         response.status_code)
-        context = response.json()
-
-        self.assertEqual(mock_info.MOCK_TOKEN_ID,
-                         response['X-Subject-Token'])
-        self.assertIsNotNone(context['token']['catalog'])
-
-
 class MockResponse(object):
     status_code = 200
     content = ''
@@ -989,27 +714,24 @@ class TestServiceProxy(unittest.TestCase):
 
         mock_get_vim_info.return_value = MOCK_VIM_INFO
         mock_get_session.return_value = mock_session
-        mock_get_token_cache.return_value = (json.dumps(MOCK_AUTH_STATE),
-                                             json.dumps(MOCK_INTERNAL_METADATA_CATALOG))
+        mock_get_token_cache.return_value = (json.dumps(MOCK_AUTH_STATE), json.dumps(MOCK_INTERNAL_METADATA_CATALOG))
         response = self.client.head(
-            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/"
-            "fcca3cc49d5e42caae15459e27103efc/servers",
+            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/fcca3cc49d5e42caae15459e27103efc/servers",
             {}, HTTP_X_AUTH_TOKEN=MOCK_TOKEN_ID)
         self.assertEqual(status.HTTP_200_OK, response.status_code)
 
     def test_unauthorized_access(self):
         response = self.client.get(
-            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/"
-            "fcca3cc49d5e42caae15459e27103efc/servers")
+            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/fcca3cc49d5e42caae15459e27103efc/servers")
         self.assertEqual(status.HTTP_403_FORBIDDEN, response.status_code)
 
     @mock.patch.object(VimDriverUtils, 'get_vim_info')
     def test_expired_auth_token(self, mock_get_vim_info):
         mock_get_vim_info.return_value = MOCK_VIM_INFO
 
-        response = self.client.get("/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/"
-                                   "fcca3cc49d5e42caae15459e27103efc/servers",
-                                   {}, HTTP_X_AUTH_TOKEN=MOCK_TOKEN_ID)
+        response = self.client.get(
+            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/fcca3cc49d5e42caae15459e27103efc/servers",
+            {}, HTTP_X_AUTH_TOKEN=MOCK_TOKEN_ID)
         self.assertEqual(status.HTTP_403_FORBIDDEN, response.status_code)
 
     @mock.patch.object(VimDriverUtils, 'get_token_cache')
@@ -1018,16 +740,15 @@ class TestServiceProxy(unittest.TestCase):
         mock_get_vim_info.return_value = MOCK_VIM_INFO
         mock_get_token_cache.return_value = (json.dumps(MOCK_AUTH_STATE), {})
         servicetype = "compute"
-        base_url = "/api/multicloud-pike/v0/pike_RegionOne/"
-        server_url = "/v2.1/fcca3cc49d5e42caae15459e27103efc/servers"
-        url = (base_url + servicetype + server_url)
+        url_part1 = "/api/multicloud-pike/v0/pike_RegionOne/"
+        url_part3 = "/v2.1/fcca3cc49d5e42caae15459e27103efc/servers"
+        url = (url_part1 + servicetype + url_part3)
         response = self.client.get(url, {}, HTTP_X_AUTH_TOKEN=MOCK_TOKEN_ID)
         self.assertEqual(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code)
 
         metadata_catalog = copy.deepcopy(MOCK_INTERNAL_METADATA_CATALOG)
         metadata_catalog[servicetype] = None
-        mock_get_token_cache.return_value = (json.dumps(MOCK_AUTH_STATE),
-                                             json.dumps(metadata_catalog))
+        mock_get_token_cache.return_value = (json.dumps(MOCK_AUTH_STATE), json.dumps(metadata_catalog))
 
         response = self.client.get(url, {}, HTTP_X_AUTH_TOKEN=MOCK_TOKEN_ID)
         self.assertEqual(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code)
@@ -1035,8 +756,7 @@ class TestServiceProxy(unittest.TestCase):
         metadata_catalog = copy.deepcopy(MOCK_INTERNAL_METADATA_CATALOG)
         metadata_catalog[servicetype]['prefix'] = None
         metadata_catalog[servicetype]['proxy_prefix'] = None
-        mock_get_token_cache.return_value = (json.dumps(MOCK_AUTH_STATE),
-                                             json.dumps(metadata_catalog))
+        mock_get_token_cache.return_value = (json.dumps(MOCK_AUTH_STATE), json.dumps(metadata_catalog))
 
         response = self.client.get(url, {}, HTTP_X_AUTH_TOKEN=MOCK_TOKEN_ID)
         self.assertEqual(status.HTTP_500_INTERNAL_SERVER_ERROR, response.status_code)
@@ -1046,8 +766,9 @@ class TestServiceProxy(unittest.TestCase):
     @mock.patch.object(VimDriverUtils, 'get_auth_state')
     @mock.patch.object(VimDriverUtils, 'update_token_cache')
     @mock.patch.object(VimDriverUtils, 'get_token_cache')
-    def test_crud_resources(self, mock_get_token_cache, mock_update_token_cache,
-                            mock_get_auth_state, mock_get_session, mock_get_vim_info):
+    def test_crud_resources(
+            self, mock_get_token_cache, mock_update_token_cache,
+            mock_get_auth_state, mock_get_session, mock_get_vim_info):
         '''
         Test service proxy API: GET
 
@@ -1090,13 +811,11 @@ class TestServiceProxy(unittest.TestCase):
         mock_get_session.return_value = mock_session
         mock_get_auth_state.return_value = json.dumps(MOCK_AUTH_STATE)
         mock_update_token_cache.return_value = MOCK_TOKEN_ID
-        mock_get_token_cache.return_value = (json.dumps(MOCK_AUTH_STATE),
-                                             json.dumps(MOCK_INTERNAL_METADATA_CATALOG))
+        mock_get_token_cache.return_value = (json.dumps(MOCK_AUTH_STATE), json.dumps(MOCK_INTERNAL_METADATA_CATALOG))
 
         # Create resource
         response = self.client.post(
-            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/"
-            "fcca3cc49d5e42caae15459e27103efc/servers",
+            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/fcca3cc49d5e42caae15459e27103efc/servers",
             MOCK_POST_SERVER_REQUEST, HTTP_X_AUTH_TOKEN=MOCK_TOKEN_ID)
 
         self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
@@ -1106,8 +825,7 @@ class TestServiceProxy(unittest.TestCase):
 
         # Retrieve resource
         response = self.client.get(
-            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/"
-            "fcca3cc49d5e42caae15459e27103efc/servers",
+            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/fcca3cc49d5e42caae15459e27103efc/servers",
             {}, HTTP_X_AUTH_TOKEN=MOCK_TOKEN_ID)
         self.assertEqual(status.HTTP_200_OK, response.status_code)
         context = response.json()
@@ -1117,8 +835,7 @@ class TestServiceProxy(unittest.TestCase):
 
         # Update resource
         response = self.client.get(
-            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/"
-            "fcca3cc49d5e42caae15459e27103efc/servers",
+            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/fcca3cc49d5e42caae15459e27103efc/servers",
             {}, HTTP_X_AUTH_TOKEN=MOCK_TOKEN_ID)
         self.assertEqual(status.HTTP_200_OK, response.status_code)
         context = response.json()
@@ -1128,8 +845,7 @@ class TestServiceProxy(unittest.TestCase):
 
         # simulate client to make the request
         response = self.client.delete(
-            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/"
-            "fcca3cc49d5e42caae15459e27103efc/servers/324dfb7d-f4a9-419a-9a19-237df04b443b",
+            "/api/multicloud-pike/v0/pike_RegionOne/compute/v2.1/fcca3cc49d5e42caae15459e27103efc/servers/324dfb7d-f4a9-419a-9a19-237df04b443b",
             HTTP_X_AUTH_TOKEN=MOCK_TOKEN_ID)
 
         self.assertEqual(status.HTTP_204_NO_CONTENT, response.status_code)
index a102021..a116bb0 100644 (file)
 from django.conf.urls import url
 from rest_framework.urlpatterns import format_suffix_patterns
 
-from pike.proxy.views import identity_v3
+from pike.proxy.views import identityV3
 from pike.proxy.views import services
 from newton_base.proxy import dnsaasdelegate
 
 URLPATTERNS = [
     url(r'^identity/v3/auth/tokens/?$',
-        identity_v3.Tokens.as_view()),
+        identityV3.Tokens.as_view()),
     url(r'^identity/v3/?$',
-        identity_v3.Tokens.as_view()),
+        identityV3.Tokens.as_view()),
     url(r'^identity/v2.0/?',
-        identity_v3.TokensV2.as_view()),
+        identityV3.TokensV2.as_view()),
     url(r'^identity/v2.0/tokens/?$',
-        identity_v3.TokensV2.as_view()),
+        identityV3.TokensV2.as_view()),
     url(r'^identity/v2.0/tenants/?$',
         services.GetTenants.as_view()),
     url(r'dns-delegate/(?P<requri>[0-9a-zA-Z./_-]*)$',
index 8d2fa66..adfbfdf 100644 (file)
 from django.conf.urls import url
 from rest_framework.urlpatterns import format_suffix_patterns
 
-from pike.proxy.views import identity_v3
+from pike.proxy.views import identityV3
 from pike.proxy.views import services
 from newton_base.proxy import dnsaasdelegate
 
 URLPATTERNS = [
     url(r'^identity/v3/auth/tokens/?$',
-        identity_v3.APIv1Tokens.as_view()),
+        identityV3.APIv1Tokens.as_view()),
     url(r'^identity/v3/?$',
-        identity_v3.APIv1Tokens.as_view()),
+        identityV3.APIv1Tokens.as_view()),
     url(r'^identity/v2.0/?$',
-        identity_v3.APIv1TokensV2.as_view()),
+        identityV3.APIv1TokensV2.as_view()),
     url(r'^identity/v2.0/tokens/?$',
-        identity_v3.APIv1TokensV2.as_view()),
+        identityV3.APIv1TokensV2.as_view()),
     url(r'^identity/v2.0/tenants/?$',
         services.APIv1GetTenants.as_view()),
     url(r'dns-delegate/(?P<requri>[0-9a-zA-Z./_-]*)$',
similarity index 80%
rename from pike/pike/proxy/views/identity_v3.py
rename to pike/pike/proxy/views/identityV3.py
index 9a87a5e..397a00c 100644 (file)
@@ -1,7 +1,4 @@
-'''
-identity v3
-'''
-# Copyright (c) 2018 Intel Corporation.
+# Copyright (c) 2019 Intel Corporation.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -21,23 +18,24 @@ from django.conf import settings
 from newton_base.proxy import identityV3 as newton_identityV3
 from common.msapi import extsys
 
-LOGGER = logging.getLogger(__name__)
+logger = logging.getLogger(__name__)
+
 
 # DEBUG=True
 
 
 class Tokens(newton_identityV3.Tokens):
-
     def __init__(self):
+        super(Tokens, self).__init__()
         self.proxy_prefix = settings.MULTICLOUD_PREFIX
-        self._logger = LOGGER
+        # self._logger = logger
 
 
 class TokensV2(newton_identityV3.TokensV2):
-
     def __init__(self):
+        super(TokensV2, self).__init__()
         self.proxy_prefix = settings.MULTICLOUD_PREFIX
-        self._logger = LOGGER
+        # self._logger = logger
 
 
 class APIv1Tokens(Tokens):
@@ -47,7 +45,7 @@ class APIv1Tokens(Tokens):
         # self._logger = logger
 
     def get(self, request, cloud_owner="", cloud_region_id=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
         # self._logger.debug("META> %s" % request.META)
         # self._logger.debug("data> %s" % request.data)
 
@@ -55,7 +53,7 @@ class APIv1Tokens(Tokens):
         return super(APIv1Tokens, self).get(request, vimid)
 
     def post(self, request, cloud_owner="", cloud_region_id=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
         # self._logger.debug("META> %s" % request.META)
         # self._logger.debug("data> %s" % request.data)
 
@@ -64,17 +62,13 @@ class APIv1Tokens(Tokens):
 
 
 class APIv1TokensV2(TokensV2):
-    '''
-    API v1 Tokens V2
-    '''
-
     def __init__(self):
         super(APIv1TokensV2, self).__init__()
         self.proxy_prefix = settings.MULTICLOUD_API_V1_PREFIX
         # self._logger = logger
 
     def get(self, request, cloud_owner="", cloud_region_id=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
         # self._logger.debug("META> %s" % request.META)
         # self._logger.debug("data> %s" % request.data)
 
@@ -82,7 +76,7 @@ class APIv1TokensV2(TokensV2):
         return super(APIv1TokensV2, self).get(request, vimid)
 
     def post(self, request, cloud_owner="", cloud_region_id=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
         # self._logger.debug("META> %s" % request.META)
         # self._logger.debug("data> %s" % request.data)
 
index 7fe6d60..d5bfd52 100644 (file)
@@ -1,7 +1,4 @@
-'''
-services
-'''
-# Copyright (c) 2018 Intel Corporation.
+# Copyright (c) 2019 Intel Corporation.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -17,21 +14,22 @@ services
 
 import logging
 
+# from rest_framework import status
+
+# from django.conf import settings
 from newton_base.proxy import services as newton_services
 from common.msapi import extsys
 
-LOGGER = logging.getLogger(__name__)
+logger = logging.getLogger(__name__)
 
 # DEBUG=True
 
 
 class Services(newton_services.Services):
-    '''
-    class services
-    '''
 
     def __init__(self):
-        self._logger = LOGGER
+        super(Services, self).__init__()
+        # self._logger = logger
 
 
 class GetTenants(newton_services.GetTenants):
@@ -40,13 +38,12 @@ class GetTenants(newton_services.GetTenants):
     '''
 
     def __init__(self):
-        self._logger = LOGGER
+        super(GetTenants, self).__init__()
+        # self._logger = logger
 
     def get(self, request, vimid="", servicetype="identity", requri='v3/projects'):
-        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))
+        self._logger.info("vimid: %s" % (vimid))
+        self._logger.debug("with servicetype, requri> %s,%s" % (servicetype, requri))
 
         return super(GetTenants, self).get(request, vimid, servicetype, requri)
 
@@ -55,10 +52,10 @@ class APIv1Services(Services):
 
     def __init__(self):
         super(APIv1Services, self).__init__()
-        # self._logger = loggier
+        # self._logger = logger
 
     def head(self, request, cloud_owner="", cloud_region_id="", servicetype="", requri=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
         # self._logger.info("servicetype, requri> %s,%s" % (servicetype, requri))
         # self._logger.debug("META, data> %s , %s" % (request.META, request.data))
 
@@ -66,31 +63,31 @@ class APIv1Services(Services):
         return super(APIv1Services, self).head(request, vimid, servicetype, requri)
 
     def get(self, request, cloud_owner="", cloud_region_id="", servicetype="", requri=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
 
         vimid = extsys.encode_vim_id(cloud_owner, cloud_region_id)
         return super(APIv1Services, self).get(request, vimid, servicetype, requri)
 
     def post(self, request, cloud_owner="", cloud_region_id="", servicetype="", requri=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
 
         vimid = extsys.encode_vim_id(cloud_owner, cloud_region_id)
         return super(APIv1Services, self).post(request, vimid, servicetype, requri)
 
     def put(self, request, cloud_owner="", cloud_region_id="", servicetype="", requri=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
 
         vimid = extsys.encode_vim_id(cloud_owner, cloud_region_id)
         return super(APIv1Services, self).put(request, vimid, servicetype, requri)
 
     def patch(self, request, cloud_owner="", cloud_region_id="", servicetype="", requri=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
 
         vimid = extsys.encode_vim_id(cloud_owner, cloud_region_id)
         return super(APIv1Services, self).patch(request, vimid, servicetype, requri)
 
     def delete(self, request, cloud_owner="", cloud_region_id="", servicetype="", requri=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
 
         vimid = extsys.encode_vim_id(cloud_owner, cloud_region_id)
         return super(APIv1Services, self).delete(request, vimid, servicetype, requri)
@@ -106,16 +103,15 @@ class APIv1GetTenants(GetTenants):
         # self._logger = logger
 
     def head(self, request, cloud_owner="", cloud_region_id="", servicetype="identity", requri=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
         # self._logger.info("servicetype, requri> %s,%s" % (servicetype, requri))
         # self._logger.debug("META, data> %s , %s" % (request.META, request.data))
 
         vimid = extsys.encode_vim_id(cloud_owner, cloud_region_id)
         return super(APIv1GetTenants, self).head(request, vimid, servicetype, requri)
 
-    def get(self, request, cloud_owner="", cloud_region_id="", servicetype="identity",
-            requri='v3/projects'):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+    def get(self, request, cloud_owner="", cloud_region_id="", servicetype="identity", requri='v3/projects'):
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
         #        self._logger.debug("with servicetype, requri> %s,%s" % (servicetype, requri))
         #        self._logger.debug("with META> %s" % request.META)
 
@@ -123,7 +119,7 @@ class APIv1GetTenants(GetTenants):
         return super(APIv1GetTenants, self).get(request, vimid, servicetype, requri)
 
     def post(self, request, cloud_owner="", cloud_region_id="", servicetype="identity", requri=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
         #        self._logger.debug("with servicetype, requri> %s,%s" % (servicetype, requri))
         #        self._logger.debug("with META> %s" % request.META)
         #        self._logger.debug("with data> %s" % request.data)
@@ -132,20 +128,19 @@ class APIv1GetTenants(GetTenants):
         return super(APIv1GetTenants, self).post(request, vimid, servicetype, requri)
 
     def put(self, request, cloud_owner="", cloud_region_id="", servicetype="identity", requri=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
 
         vimid = extsys.encode_vim_id(cloud_owner, cloud_region_id)
         return super(APIv1GetTenants, self).put(request, vimid, servicetype, requri)
 
     def patch(self, request, cloud_owner="", cloud_region_id="", servicetype="identity", requri=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
 
         vimid = extsys.encode_vim_id(cloud_owner, cloud_region_id)
         return super(APIv1GetTenants, self).patch(request, vimid, servicetype, requri)
 
-    def delete(self, request, cloud_owner="", cloud_region_id="", servicetype="identity",
-               requri=""):
-        self._logger.debug("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
+    def delete(self, request, cloud_owner="", cloud_region_id="", servicetype="identity", requri=""):
+        self._logger.info("cloud_owner,cloud_region_id: %s,%s" % (cloud_owner, cloud_region_id))
 
         vimid = extsys.encode_vim_id(cloud_owner, cloud_region_id)
         return super(APIv1GetTenants, self).delete(request, vimid, servicetype, requri)