artifact = sdc.get_artifact(sdc.ASSETTYPE_RESOURCES, self.csar_id)
local_path = os.path.join(CATALOG_ROOT_PATH, self.csar_id)
csar_name = "%s.csar" % artifact.get("name", self.csar_id)
- local_file_name = sdc.download_artifacts(artifact["toscaModelURL"],
- local_path, csar_name)
-
+ local_file_name = sdc.download_artifacts(artifact["toscaModelURL"], local_path, csar_name)
+
vnfd_json = toscaparser.parse_vnfd(local_file_name)
vnfd = json.JSONDecoder().decode(vnfd_json)
"vnfdId": nf_pkg.vnfdId
})
return [0, csars]
-
+
def get_csar(self, csar_id):
pkg_info = {}
nf_pkg = VnfPackageModel.objects.filter(vnfPackageId=csar_id)
artifact = sdc.get_artifact(sdc.ASSETTYPE_SERVICES, csar_id)
local_path = os.path.join(CATALOG_ROOT_PATH, csar_id)
csar_name = "%s.csar" % artifact.get("name", csar_id)
- local_file_name = sdc.download_artifacts(artifact["toscaModelURL"],
- local_path, csar_name)
-
+ local_file_name = sdc.download_artifacts(artifact["toscaModelURL"], local_path, csar_name)
+
nsd_json = toscaparser.parse_nsd(local_file_name)
nsd = json.JSONDecoder().decode(nsd_json)
"vimIds": ["1"]
}, format='json')
self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED)
-
+
def test_nf_pkg_distribute_when_csar_already_exist(self):
VnfPackageModel(vnfPackageId="1", vnfdId="vcpe_vfw_zte_1_0").save()
NfDistributeThread(csar_id="1",
lab_vim_id="",
job_id="2").run()
self.assert_job_result("2", 255, "NFD(zte-hss-1.0) already exists.")
-
+
@mock.patch.object(restcall, 'call_req')
@mock.patch.object(sdc, 'download_artifacts')
@mock.patch.object(toscaparser, 'parse_vnfd')
def test_nf_pkg_delete_normal(self, mock_run):
resp = self.client.delete("/api/catalog/v1/vnfpackages/1")
self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED)
-
+
def test_nf_pkg_normal_delete(self):
VnfPackageModel(vnfPackageId="2", vnfdId="vcpe_vfw_zte_1_0").save()
NfPkgDeleteThread(csar_id="2", job_id="2").run()
self.assertEqual({"csars": [{"csarId":"3", "vnfdId": "4"}]}, resp.data)
def test_nf_pkg_get_one(self):
- VnfPackageModel(vnfPackageId="4", vnfdId="5", vnfVendor="6",
- vnfdVersion="7", vnfSoftwareVersion="8", vnfPackageUri="4.csar").save()
+ VnfPackageModel(vnfPackageId="4", vnfdId="5", vnfVendor="6",
+ vnfdVersion="7", vnfSoftwareVersion="8", vnfPackageUri="4.csar").save()
resp = self.client.get("/api/catalog/v1/vnfpackages/4")
self.assertEqual(resp.status_code, status.HTTP_200_OK)
- self.assertEqual({"csarId": "4",
+ expect_data = {
+ "csarId": "4",
"packageInfo": {
"vnfdId": "5",
"vnfdProvider": "6",
"vnfVersion": "8",
"csarName": "4.csar",
"downloadUrl": "http://127.0.0.1:8806/static/catalog/4/4.csar"
- },
- "imageInfo": []}, resp.data)
+ },
+ "imageInfo": []
+ }
+ self.assertEqual(expect_data, resp.data)
###############################################################################################################
def test_vnfd_parse_normal(self, mock_parse_vnfd):
VnfPackageModel(vnfPackageId="8", vnfdId="10").save()
mock_parse_vnfd.return_value = json.JSONEncoder().encode({"c": "d"})
- resp = self.client.post("/api/catalog/v1/parservnfd",
- {"csarId": "8", "inputs": []}, format='json')
+ req_data = {"csarId": "8", "inputs": []}
+ resp = self.client.post("/api/catalog/v1/parservnfd", req_data, format='json')
self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED)
self.assertEqual({"model": '{"c": "d"}'}, resp.data)
def test_vnfd_parse_when_csar_not_exist(self):
- resp = self.client.post("/api/catalog/v1/parservnfd",
- {"csarId": "1", "inputs": []}, format='json')
+ req_data = {"csarId": "1", "inputs": []}
+ resp = self.client.post("/api/catalog/v1/parservnfd", req_data, format='json')
self.assertEqual(resp.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
self.assertEqual(resp.data, {"error": "VNF CSAR(1) does not exist."})
resp = self.client.get("/api/catalog/v1/nspackages")
self.assertEqual(resp.status_code, status.HTTP_200_OK)
- self.assertEqual({"csars": [{"csarId":"13", "nsdId": "2",
- "nsdProvider": "3", "nsdVersion": "4"}]}, resp.data)
+ expect_data = {
+ "csars": [
+ {
+ "csarId": "13",
+ "nsdId": "2",
+ "nsdProvider": "3",
+ "nsdVersion": "4"
+ }
+ ]
+ }
+ self.assertEqual(expect_data, resp.data)
def test_ns_pkg_get_one(self):
- NSPackageModel(nsPackageId="14", nsdId="2", nsdDesginer="3",
- nsdVersion="4", nsPackageUri="14.csar").save()
-
+ NSPackageModel(nsPackageId="14", nsdId="2", nsdDesginer="3", nsdVersion="4", nsPackageUri="14.csar").save()
resp = self.client.get("/api/catalog/v1/nspackages/14")
self.assertEqual(resp.status_code, status.HTTP_200_OK)
- self.assertEqual({"csarId": "14",
+ expect_data = {
+ "csarId": "14",
"packageInfo": {
"nsdId": "2",
"nsdProvider": "3",
"nsdVersion": "4",
"csarName": "14.csar",
"downloadUrl": "http://127.0.0.1:8806/static/catalog/14/14.csar"
- }}, resp.data)
+ }
+ }
+ self.assertEqual(expect_data, resp.data)
###############################################################################################################
def test_nsd_parse_normal(self, mock_parse_nsd):
NSPackageModel(nsPackageId="18", nsdId="12").save()
mock_parse_nsd.return_value = json.JSONEncoder().encode({"a": "b"})
- resp = self.client.post("/api/catalog/v1/parsernsd",
- {"csarId": "18", "inputs": []}, format='json')
+ req_data = {"csarId": "18", "inputs": []}
+ resp = self.client.post("/api/catalog/v1/parsernsd", req_data, format='json')
self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED)
self.assertEqual({"model": '{"a": "b"}'}, resp.data)
def test_nsd_parse_when_csar_not_exist(self):
- resp = self.client.post("/api/catalog/v1/parsernsd",
- {"csarId": "1", "inputs": []}, format='json')
+ req_data = {"csarId": "1", "inputs": []}
+ resp = self.client.post("/api/catalog/v1/parsernsd", req_data, format='json')
self.assertEqual(resp.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
self.assertEqual(resp.data, {"error": "NS CSAR(1) does not exist."})
additional_headers = {
'X-ECOMP-InstanceID': 'VFC',
}
- return restcall.call_req(base_url=SDC_BASE_URL,
- user=SDC_USER,
- passwd=SDC_PASSWD,
- auth_type=restcall.rest_no_auth,
- resource=resource,
- method=method,
- content=content,
- additional_headers=additional_headers)
+ return restcall.call_req(base_url=SDC_BASE_URL,
+ user=SDC_USER,
+ passwd=SDC_PASSWD,
+ auth_type=restcall.rest_no_auth,
+ resource=resource,
+ method=method,
+ content=content,
+ additional_headers=additional_headers)
"""
'X-ECOMP-InstanceID': 'VFC',
'accept': 'application/octet-stream'
}
- ret = restcall.call_req(base_url=SDC_BASE_URL,
- user=SDC_USER,
- passwd=SDC_PASSWD,
- auth_type=restcall.rest_no_auth,
- resource=download_url,
- method="GET",
- additional_headers=additional_headers)
+ ret = restcall.call_req(base_url=SDC_BASE_URL,
+ user=SDC_USER,
+ passwd=SDC_PASSWD,
+ auth_type=restcall.rest_no_auth,
+ resource=download_url,
+ method="GET",
+ additional_headers=additional_headers)
if ret[0] != 0:
logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
raise CatalogException("Failed to download %s from sdc." % download_url)
headers = {'Content-Type': 'application/octet-stream'}
full_url = "http://%s:%s/%s" % (MSB_SERVICE_IP, MSB_SERVICE_PORT, resource)
http = httplib2.Http()
- resp, resp_content = http.request(full_url,
- method=method.upper(), body=file_data, headers=headers)
+ resp, resp_content = http.request(full_url, method=method.upper(), body=file_data, headers=headers)
resp_status, resp_body = resp['status'], resp_content.decode('UTF-8')
if resp_status not in status_ok_list:
logger.error("Status code is %s, detail is %s.", resp_status, resp_body)
capabilities = json.dumps(nodeTemplate.entity_tpl.get('capabilities', None))
match = re.findall(r'\{"get_input":\s*"([\w|\-]+)"\}',capabilities)
for m in match:
- aa = [input_def for input_def in inputs
- if m == input_def.name][0]
+ aa = [input_def for input_def in inputs if m == input_def.name][0]
capabilities = re.sub(r'\{"get_input":\s*"([\w|\-]+)"\}', json.dumps(aa.default), capabilities,1)
if capabilities != 'null':
ret['capabilities'] = json.loads(capabilities)
artifacts = json.dumps(nodeTemplate.entity_tpl.get('artifacts', None))
match = re.findall(r'\{"get_input":\s*"([\w|\-]+)"\}',artifacts)
for m in match:
- aa = [input_def for input_def in inputs
- if m == input_def.name][0]
+ aa = [input_def for input_def in inputs if m == input_def.name][0]
artifacts = re.sub(r'\{"get_input":\s*"([\w|\-]+)"\}', json.dumps(aa.default), artifacts,1)
if artifacts != 'null':
ret['artifacts'] = json.loads(artifacts)
return float(value)
except Exception:
ExceptionCollector.appendException(ValueError(('"%s" is not an float.') % value))
-
return DataEntity.validate_datatype(type, value, entry_schema, custom_def)
return value
logger.debug("End delete model %s", name)
except:
logger.error(traceback.format_exc())
- return Response(data={"error": "failed"},
- status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+ return Response(data={"error": "failed"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
return Response(data={}, status=status.HTTP_204_NO_CONTENT)
def get(self, request, modelName):
count = len(model_obj.filter())
except:
logger.error(traceback.format_exc())
- return Response(data={"error": "failed"},
- status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+ return Response(data={"error": "failed"}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
return Response(data={"count": count}, status=status.HTTP_200_OK)
downloadcache = ~/cache/pip
[flake8]
-ignore = E501,E231,E128,W291,W293
+ignore = E501,E231,W291
exclude = ./venv-tox,./.tox
[testenv]