return ret
def parser_vnfmodel(csar_id,inputs):
- ret = None
+ ret= None
try:
nf_pkg = NfPackageModel.objects.filter(nfpackageid=csar_id)
if nf_pkg:
csar_path=nf_pkg["vnfd_path"]
- ret=toscaparser.parse_vnfd(csar_path,inputs)
+ ret={"model":toscaparser.parse_vnfd(csar_path,inputs)}
except CatalogException as e:
return [1, e.message]
except:
logger.error(traceback.format_exc())
return [1, str(sys.exc_info())]
- return ret
+ return [0,ret]
#####################################################################################
class NfDistributeThread(threading.Thread):
return [1, str(sys.exc_info())]
return ret
-def parser_nsmodel(csar_id,inputs):
- ret = None
+def parser_nsdmodel(csar_id,inputs):
+ ret= None
try:
nf_pkg = NSDModel.objects.filter(id=csar_id)
if nf_pkg:
csar_path=nf_pkg["nsd_path"]
- ret=toscaparser.parse_nsd(csar_path,inputs)
+ ret={"model":toscaparser.parse_nsd(csar_path,inputs)}
except CatalogException as e:
return [1, e.message]
except:
logger.error(traceback.format_exc())
return [1, str(sys.exc_info())]
- return ret
+ return [0,ret]
###############################################################################################################
"csarId": ns.id,
"nsdId": ns.nsd_id
})
- return [0, csars]
+ return [0,csars]
def get_csar(self, csar_id):
package_info = {}
"csarId": str(self.ns_csarId)
}
+ self.csars= [
+ {
+ "csarId": "1",
+ "nsdId": "1"
+ },
+ {
+ "csarId": "2",
+ "nsdId": "2"
+ }
+ ]
+
self.nfdata = {
"csarId": str(self.nf_csarId)
}
def tearDown(self):
pass
+ @mock.patch.object(NsPackage, 'get_csars')
+ def test_nspackages_get(self,mock_get_csars):
+
+ mock_get_csars.return_value = [0,self.csars]
- def test_nspackages_get(self):
response = self.client.get("/api/catalog/v1/nspackages")
- print response
self.assertEqual(status.HTTP_200_OK, response.status_code, response.content)
- self.assertEquals([],response.data)
+ self.assertEquals(self.csars,response.data)
@mock.patch.object(NsPackage,'get_nsd')
def test_ns_distribute_2(self, mock_get_nsd):
self.assertEquals(size, len(vnfdmodels))
-
def test_nf_package_parser(self):
- # reqdata={"csarId":"1"}
- # response = self.client.post("api/catalog/v1/vnfpackages/model",reqdata)
- # self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
- pass
+ reqdata={"csarId":"1"}
+ response = self.client.post("/api/catalog/v1/vnfpackagemodel",reqdata)
+ self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
def test_ns_package_parser(self):
- # reqdata={"csarId":"1"}
- # response = self.client.post("api/catalog/v1/nspackages/model",reqdata)
- # self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
- pass
\ No newline at end of file
+ reqdata = {"csarId": "1"}
+ response = self.client.post("/api/catalog/v1/nspackagemodel",reqdata)
+ self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
\ No newline at end of file
url(r'^api/catalog/v1/nspackages/(?P<csarId>[0-9a-zA-Z\-\_]+)$', views.ns_rd_csar, name='nspackage_rd'),
url(r'^api/catalog/v1/vnfpackages$', views.nfpackages_rc, name='nfpackages_rc'),
url(r'^api/catalog/v1/vnfpackages/(?P<csarId>[0-9a-zA-Z\-\_]+)$', views.nf_rd_csar, name='nfpackage_rd'),
- url(r'^api/catalog/v1/nspackages/model', views.ns_model_parser, name='ns_model_parser'),
- url(r'^api/catalog/v1/vnfpackages/model', views.vnf_model_parser, name='vnf_model_parser')
+ url(r'^api/catalog/v1/nspackagemodel$', views.ns_model_parser, name='nsmodelparser_rc'),
+ url(r'^api/catalog/v1/vnfpackagemodel$', views.vnf_model_parser, name='vnfmodelparser_rc'),
]
csar_id = ignore_case_get(kwargs, "csarId")
inputs = ignore_case_get(kwargs, "inputs")
if request.method == 'POST':
- ret = ns_package.parser_nsmodel(csar_id,inputs)
- normal_status = status.HTTP_200_OK
+ ret = ns_package.parser_nsdmodel(csar_id,inputs)
+ normal_status = status.HTTP_202_ACCEPTED
logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
if ret[0] != 0:
csar_id = ignore_case_get(kwargs, "csarId")
inputs = ignore_case_get(kwargs, "inputs")
if request.method == 'POST':
- ret = nf_package.parser_nfmodel(csar_id,inputs)
- normal_status = status.HTTP_200_OK
+ ret = nf_package.parser_vnfmodel(csar_id,inputs)
+ normal_status = status.HTTP_202_ACCEPTED
logger.info("Leave %s, Return value is %s", fun_name(), str(ret))
if ret[0] != 0:
method=method,
content=content)
+def get_nsInstances(csarid):
+ nsInstances=call_lcm("/nlcm/v1/ns ","get")
+
+
+
# Mock code because the REST API from nfvolcm to delete ns instance is not implemented
def delete_ns_inst_mock():
return [0,'success']
def test_sample(self):
response = self.client.get("/api/catalog/v1/swagger.json")
- print response
self.assertEqual(status.HTTP_200_OK, response.status_code, response.content)
# resp_data = json.loads(response.content)
# self.assertEqual({"status": "active"}, resp_data)
}\r
}\r
},\r
+ "/nspackagemodel": {\r
+ "post": {\r
+ "tags": [\r
+ "model"\r
+ ],\r
+ "summary": "ns package model",\r
+ "description": "ns package model",\r
+ "operationId": "ms_model_parser",\r
+ "consumes": [\r
+ "application/json"\r
+ ],\r
+ "produces": [\r
+ "application/json"\r
+ ],\r
+ "parameters": [\r
+ {\r
+ "in": "body",\r
+ "name": "body",\r
+ "description": "distribute request param",\r
+ "required": true,\r
+ "schema": {\r
+ "$ref": "#/definitions/modelParserRequest"\r
+ }\r
+ }\r
+ ],\r
+ "responses": {\r
+ "202": {\r
+ "description": "",\r
+ "schema": {\r
+ "$ref": "#/definitions/modelParserResponse"\r
+ }\r
+ },\r
+ "500": {\r
+ "description": "internal error"\r
+ }\r
+ }\r
+ }\r
+ },\r
"/vnfpackages": {\r
"get": {\r
"tags": [\r
}\r
}\r
}\r
- }\r
+ },\r
+ "/vnfpackagemodel": {\r
+ "post": {\r
+ "tags": [\r
+ "model"\r
+ ],\r
+ "summary": "vnf package model",\r
+ "description": "vnf package model",\r
+ "operationId": "vnf_model_parser",\r
+ "consumes": [\r
+ "application/json"\r
+ ],\r
+ "produces": [\r
+ "application/json"\r
+ ],\r
+ "parameters": [\r
+ {\r
+ "in": "body",\r
+ "name": "body",\r
+ "description": "distribute request param",\r
+ "required": true,\r
+ "schema": {\r
+ "$ref": "#/definitions/modelParserRequest"\r
+ }\r
+ }\r
+ ],\r
+ "responses": {\r
+ "202": {\r
+ "description": "",\r
+ "schema": {\r
+ "$ref": "#/definitions/modelParserResponse"\r
+ }\r
+ },\r
+ "500": {\r
+ "description": "internal error"\r
+ }\r
+ }\r
+ }\r
+ }\r
},\r
"definitions": {\r
"NsPkgDistributeRequest": {\r
"description": "image file path in the csar or image url in external repository"\r
}\r
}\r
+ },\r
+ "modelParserRequest":{\r
+ "type": "object",\r
+ "properties": {\r
+ "csarId": {\r
+ "type": "string",\r
+ "description": "csar Package Id"\r
+ },\r
+ "inputs": {\r
+ "type": "string",\r
+ "description": "csar package inputs"\r
+ }\r
+ }\r
+ },\r
+ "modelParserResponse":{\r
+ "type": "object",\r
+ "properties": {\r
+ "model": {\r
+ "type": "string",\r
+ "description": "model json data"\r
+ }\r
+ }\r
}\r
+\r
}\r
}
\ No newline at end of file