summaryrefslogtreecommitdiffstats
path: root/newton/newton/pub
diff options
context:
space:
mode:
authorBin Yang <bin.yang@windriver.com>2017-10-11 17:47:54 +0800
committerBin Yang <bin.yang@windriver.com>2017-10-11 17:47:54 +0800
commit1edcf2d1278419ec8862362b7dd9686169a4f654 (patch)
treea699c1eaefb8fe4251b9c69d6fd00c53e1e8a9ce /newton/newton/pub
parent32a106d589916760dd2232c6a8570aa57c0ee893 (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.py10
-rw-r--r--newton/newton/pub/tests/test_extsys.py14
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)