diff options
author | Bin Yang <bin.yang@windriver.com> | 2017-10-11 17:47:54 +0800 |
---|---|---|
committer | Bin Yang <bin.yang@windriver.com> | 2017-10-11 17:47:54 +0800 |
commit | 1edcf2d1278419ec8862362b7dd9686169a4f654 (patch) | |
tree | a699c1eaefb8fe4251b9c69d6fd00c53e1e8a9ce /newton/newton/pub | |
parent | 32a106d589916760dd2232c6a8570aa57c0ee893 (diff) |
Fix registration error
Change-Id: I6d4cd20fbd913eb21a78247434e79d4d50276dda
Issue-Id: MULTICLOUD-111
Signed-off-by: Bin Yang <bin.yang@windriver.com>
Diffstat (limited to 'newton/newton/pub')
-rw-r--r-- | newton/newton/pub/msapi/extsys.py | 10 | ||||
-rw-r--r-- | newton/newton/pub/tests/test_extsys.py | 14 |
2 files changed, 19 insertions, 5 deletions
diff --git a/newton/newton/pub/msapi/extsys.py b/newton/newton/pub/msapi/extsys.py index 0f08adb4..bd8b1e4e 100644 --- a/newton/newton/pub/msapi/extsys.py +++ b/newton/newton/pub/msapi/extsys.py @@ -51,6 +51,7 @@ def get_vim_by_id(vim_id): 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') @@ -73,9 +74,14 @@ def get_vim_by_id(vim_id): 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" - % ( cloud_owner, cloud_region_id), "DELETE") + 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( diff --git a/newton/newton/pub/tests/test_extsys.py b/newton/newton/pub/tests/test_extsys.py index 533910f9..9e67dcc0 100644 --- a/newton/newton/pub/tests/test_extsys.py +++ b/newton/newton/pub/tests/test_extsys.py @@ -31,10 +31,12 @@ MOCK_ESR_SYSTEM_INFO = { "service-url": "http://localhost", "default-tenant": "demo", "ssl-cacert": None, - "ssl-insecure": None + "ssl-insecure": None, + "resource-version":"1978882" } MOCK_VIM_INFO = { + "resource-version":"1978883", "cloud-type": "openstack", "complex-name": "complex", "cloud-region-version": "Regionv1", @@ -49,6 +51,7 @@ MOCK_VIM_INFO = { } + def returnList(items): def func(): for item in items: @@ -111,7 +114,12 @@ class TestEpaCaps(unittest.TestCase): self.assertEquals(MOCK_ESR_SYSTEM_INFO['ssl-insecure'], viminfo['insecure']) def test_delete_vim_by_id(self): - values = [(1, "test_content", 500),(0, None, None)] + values = [ + (0, json.dumps(MOCK_VIM_INFO), None), + (1, "test_content", 500), + (0, json.dumps(MOCK_VIM_INFO), None), + (0, None, None) + ] restcall.req_to_aai = mock.Mock(side_effect=returnList(values)) self.assertRaises(VimDriverNewtonException, extsys.delete_vim_by_id, self.vim_id) @@ -120,4 +128,4 @@ class TestEpaCaps(unittest.TestCase): def test_decode_vim_id_successfuly(self): owner, region_id = extsys.decode_vim_id(self.vim_id) self.assertEquals(self.cloud_onwer, owner) - self.assertEquals(self.cloud_region_id, region_id)
\ No newline at end of file + self.assertEquals(self.cloud_region_id, region_id) |