aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorying.yunlong <ying.yunlong@zte.com.cn>2017-09-08 09:48:17 +0800
committerying.yunlong <ying.yunlong@zte.com.cn>2017-09-08 09:48:17 +0800
commit9b7ccbd778edbe84fb7d83c1b280b7ba2320461d (patch)
treebfc088b78eb878178cfb4b5af899bf9269e1dc99
parentffd4c835081dd04f0f56e54a3f6bf27f7ca0ae59 (diff)
Update query vim api and unit test
Change-Id: Ic14adb33e8527af0792c870a80027da41d0645b4 Issue-ID: VFC-314 Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
-rw-r--r--lcm/ns/tests/vls/tests.py48
-rw-r--r--lcm/pub/msapi/aai.py11
-rw-r--r--lcm/pub/msapi/extsys.py35
3 files changed, 72 insertions, 22 deletions
diff --git a/lcm/ns/tests/vls/tests.py b/lcm/ns/tests/vls/tests.py
index 78514cea..3c99bfbc 100644
--- a/lcm/ns/tests/vls/tests.py
+++ b/lcm/ns/tests/vls/tests.py
@@ -23,6 +23,42 @@ from lcm.pub.database.models import VLInstModel, NSInstModel, VNFFGInstModel
from lcm.pub.nfvi.vim import vimadaptor
from lcm.pub.utils import restcall
+vim_info = {"cloud-owner": "example-cloud-owner-val-97336",
+ "cloud-region-id": "example-cloud-region-id-val-35532",
+ "cloud-type": "example-cloud-type-val-18046",
+ "owner-defined-type": "example-owner-defined-type-val-9413",
+ "cloud-region-version": "example-cloud-region-version-val-85706",
+ "identity-url": "example-identity-url-val-71252",
+ "cloud-zone": "example-cloud-zone-val-27112",
+ "complex-name": "example-complex-name-val-85283",
+ "sriov-automation": True,
+ "cloud-extra-info": "example-cloud-extra-info-val-90854",
+ "cloud-epa-caps": "example-cloud-epa-caps-val-2409",
+ "resource-version": "example-resource-version-val-42094",
+ "esr-system-info-list": {
+ "esr-system-info": [
+ {
+ "esr-system-info-id": "example-esr-system-info-id-val-7713",
+ "system-name": "example-system-name-val-19801",
+ "type": "example-type-val-24477",
+ "vendor": "example-vendor-val-50079",
+ "version": "example-version-val-93146",
+ "service-url": "example-service-url-val-68090",
+ "user-name": "example-user-name-val-14470",
+ "password": "example-password-val-84190",
+ "system-type": "example-system-type-val-42773",
+ "protocal": "example-protocal-val-85736",
+ "ssl-cacert": "example-ssl-cacert-val-33989",
+ "ssl-insecure": True,
+ "ip-address": "example-ip-address-val-99038",
+ "port": "example-port-val-27323",
+ "cloud-domain": "example-cloud-domain-val-55163",
+ "default-tenant": "example-default-tenant-val-99383",
+ "resource-version": "example-resource-version-val-15424"
+ }
+ ]
+ }
+ }
class TestVlViews(TestCase):
def setUp(self):
@@ -67,9 +103,7 @@ class TestVlViews(TestCase):
"res_type": 1,
"subnet_list": [
{"id": subnetwork_id, "name": "subnet1", "res_type": 1}]}]
- mock_req_by_rest.return_value = [0,
- '{"test":"test_name","name":"vim_name","type":"type_name","url":"url_add"'
- ',"userName":"user_name","password":"password","tenant":"tenant"}']
+ mock_req_by_rest.return_value = [0, json.JSONEncoder().encode(vim_info), '200']
self.create_vl(self.vl_id_1)
self.create_vl(self.vl_id_2)
@@ -100,9 +134,7 @@ class TestVlViews(TestCase):
"context": json.JSONEncoder().encode(self.context),
"vlindex": self.vl_id_1}
mock_uuid4.return_value = '999'
- mock_req_by_rest.return_value = [0,
- '{"test":"test_name","name":"vim_name","type":"type_name","url":"url_add"'
- ',"userName":"user_name","password":"password","tenant":"tenant"}']
+ mock_req_by_rest.return_value = [0, json.JSONEncoder().encode(vim_info), '200']
mock_create_network.return_value = [1, (1)]
response = self.client.post("/api/nslcm/v1/ns/vls", data=req_data)
retinfo = {"detail": "vl instantiation failed, detail message: Send post vl request to vim failed."}
@@ -131,9 +163,7 @@ class TestVlDetailViews(TestCase):
@mock.patch.object(vimadaptor.VimAdaptor, "delete_network")
@mock.patch.object(vimadaptor.VimAdaptor, "delete_subnet")
def test_delete_vl(self, mock_delete_subnet, mock_delete_network, mock_req_by_rest):
- mock_req_by_rest.return_value = [0,
- '{"test":"test_name","name":"vim_name","type":"type_name","url":"url_add"'
- ',"userName":"user_name","password":"password","tenant":"tenant"}']
+ mock_req_by_rest.return_value = [0, json.JSONEncoder().encode(vim_info), '200']
response = self.client.delete("/api/nslcm/v1/ns/vls/%s" % self.vl_inst_id)
self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code)
expect_resp_data = {"result": 0, "detail": "delete vl success"}
diff --git a/lcm/pub/msapi/aai.py b/lcm/pub/msapi/aai.py
index 2666807f..6779e1d0 100644
--- a/lcm/pub/msapi/aai.py
+++ b/lcm/pub/msapi/aai.py
@@ -214,17 +214,6 @@ def convert_vnfm_info(vnfm_info_aai):
return vnfm_info
-def get_vim_by_id(vim_id):
- cloud_owner, cloud_region = split_vim_to_owner_region(vim_id)
- ret = call_aai("/cloud-infrastructure/cloud-regions/cloud-region/%s/%s" % (cloud_owner, cloud_region), "GET")
- if ret[0] != 0:
- logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
- raise NSLCMException("Failed to query vim(%s) from extsys." % vim_id)
- # convert vim_info_aai to internal vim_info
- vim_info_aai = json.JSONDecoder().decode(ret[1])
- vim_info = convert_vim_info(vim_info_aai)
- return vim_info
-
def split_vim_to_owner_region(vim_id):
split_vim = vim_id.split('_')
cloud_owner = split_vim[0]
diff --git a/lcm/pub/msapi/extsys.py b/lcm/pub/msapi/extsys.py
index 296f4cba..001a9ca8 100644
--- a/lcm/pub/msapi/extsys.py
+++ b/lcm/pub/msapi/extsys.py
@@ -32,11 +32,42 @@ def get_vims():
def get_vim_by_id(vim_id):
- ret = req_by_msb("/api/aai-esr-server/v1/vims/%s" % vim_id, "GET")
+ cloud_owner, cloud_region = split_vim_to_owner_region(vim_id)
+ ret = call_aai("/cloud-infrastructure/cloud-regions/cloud-region/%s/%s" % (cloud_owner, cloud_region), "GET")
if ret[0] != 0:
logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
raise NSLCMException("Failed to query vim(%s) from extsys." % vim_id)
- return json.JSONDecoder().decode(ret[1])
+ # convert vim_info_aai to internal vim_info
+ vim_info_aai = json.JSONDecoder().decode(ret[1])
+ vim_info = convert_vim_info(vim_info_aai)
+ return vim_info
+
+def split_vim_to_owner_region(vim_id):
+ split_vim = vim_id.split('_')
+ cloud_owner = split_vim[0]
+ cloud_region = "".join(split_vim[1:])
+ return cloud_owner, cloud_region
+
+def convert_vim_info(vim_info_aai):
+ vim_id = vim_info_aai["cloud-owner"] + "_" + vim_info_aai["cloud-region-id"]
+ esr_system_info = ignore_case_get(ignore_case_get(vim_info_aai, "esr-system-info-list"), "esr-system-info")
+ # tenants = ignore_case_get(vim_info_aai, "tenants")
+ vim_info = {
+ "vimId": vim_id,
+ "name": vim_id,
+ "url": ignore_case_get(esr_system_info[0], "service-url"),
+ "userName": ignore_case_get(esr_system_info[0], "user-name"),
+ "password": ignore_case_get(esr_system_info[0], "password"),
+ # "tenant": ignore_case_get(tenants[0], "tenant-id"),
+ "tenant": ignore_case_get(esr_system_info[0], "default-tenant"),
+ "vendor": ignore_case_get(esr_system_info[0], "vendor"),
+ "version": ignore_case_get(esr_system_info[0], "version"),
+ "description": "vim",
+ "domain": "",
+ "type": ignore_case_get(esr_system_info[0], "type"),
+ "createTime": "2016-07-18 12:22:53"
+ }
+ return vim_info
def get_sdn_controller_by_id(sdn_ontroller_id):