self.client = Client()
self.vnf_lcm_op_occ_id = "99442b18-a5c7-11e8-998c-bf1755941f16"
VNFLcmOpOccModel.objects.all().delete()
- self.test_single_vnf_lcm_op = [{
+ self.test_single_vnf_lcm_op = {
"id": "99442b18-a5c7-11e8-998c-bf1755941f16",
"operationState": "STARTING",
"stateEnteredTime": "2018-07-09",
"self": "demo",
"vnfInstance": "demo"
}
- }]
+ }
self.test_vnflcmop_with_exclude_default = [{
"id": "99442b18-a5c7-11e8-998c-bf1755941f16",
"operationState": "STARTING",
}
}]
self.test_multiple_vnf_lcm_op.append(
- self.test_single_vnf_lcm_op[0])
+ self.test_single_vnf_lcm_op)
def tearDown(self):
pass
- def test_get_vnflcmopocc(self):
+ def test_get_vnflcmopoccs(self):
lcm_op_id = "99442b18-a5c7-11e8-998c-bf1755941f16"
vnf_instance_id = "cd552c9c-ab6f-11e8-b354-236c32aa91a1"
VNFLcmOpOccModel(id=lcm_op_id, operation_state="STARTING",
links=json.dumps({"self": "demo", "vnfInstance": "demo"})).save()
response = self.client.get("/api/vnflcm/v1/vnf_lcm_op_occs", format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
- self.assertEqual(self.test_single_vnf_lcm_op, response.data)
+ self.assertEqual([self.test_single_vnf_lcm_op], response.data)
- def test_get_vnflcmopocc_with_id_not_exist(self):
+ def test_get_vnflcmopoccs_with_id_not_exist(self):
response = self.client.get("/api/vnflcm/v1/vnf_lcm_op_occs?id=dummy", format='json')
self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
expected_data = {
}
self.assertEqual(expected_data, response.data)
- def test_get_vnflcmopocc_with_filters(self):
+ def test_get_vnflcmopoccs_with_filters(self):
lcm_op_id = "a6b9415c-ab99-11e8-9d37-dbb5e0378955"
vnf_instance_id = "cd552c9c-ab6f-11e8-b354-236c32aa91a1"
VNFLcmOpOccModel(id=lcm_op_id, operation_state="STARTING",
response = self.client.get("/api/vnflcm/v1/vnf_lcm_op_occs?operation=SCALE", format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
- self.assertEqual(self.test_single_vnf_lcm_op, response.data)
+ self.assertEqual([self.test_single_vnf_lcm_op], response.data)
response = self.client.get("/api/vnflcm/v1/vnf_lcm_op_occs?vnfInstanceId=%s" % vnf_instance_id, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(self.test_multiple_vnf_lcm_op, response.data)
- def test_get_vnflcmopocc_with_extra_flags(self):
+ def test_get_vnflcmopoccs_with_extra_flags(self):
lcm_op_id = "99442b18-a5c7-11e8-998c-bf1755941f16"
vnf_instance_id = "cd552c9c-ab6f-11e8-b354-236c32aa91a1"
VNFLcmOpOccModel(id=lcm_op_id, operation_state="STARTING",
response = self.client.get("/api/vnflcm/v1/vnf_lcm_op_occs?exclude_default", format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(self.test_vnflcmop_with_exclude_default, response.data)
+
+ def test_get_vnflcmopocc_with_id(self):
+ lcm_op_id = "99442b18-a5c7-11e8-998c-bf1755941f16"
+ vnf_instance_id = "cd552c9c-ab6f-11e8-b354-236c32aa91a1"
+ VNFLcmOpOccModel(id=lcm_op_id, operation_state="STARTING",
+ state_entered_time="2018-07-09", start_time="2018-07-09",
+ vnf_instance_id=vnf_instance_id,
+ grant_id=None, operation="SCALE", is_automatic_invocation=False,
+ operation_params='{}', is_cancel_pending=False, cancel_mode=None,
+ error=None, resource_changes=None, changed_ext_connectivity=None,
+ links=json.dumps({"self": "demo", "vnfInstance": "demo"})).save()
+ response = self.client.get("/api/vnflcm/v1/vnf_lcm_op_occs/" + lcm_op_id, format='json')
+ self.assertEqual(response.status_code, status.HTTP_200_OK)
+ self.assertEqual(self.test_single_vnf_lcm_op, response.data)
+
+ def test_single_vnflcmopocc_with_unknown_id(self):
+ lcm_op_id = "99442b18-a5c7-11e8-998c-bf1755941f16"
+ response = self.client.get("/api/vnflcm/v1/vnf_lcm_op_occs/" + lcm_op_id, format='json')
+ self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+ expected_data = {
+ "status": 500,
+ "detail": "LCM Operation Occurance does not exist"
+ }
+ self.assertEqual(expected_data, response.data)
from lcm.nf.biz.query_vnf_lcm_op_occ import QueryVnfLcmOpOcc
from lcm.nf.serializers.response import ProblemDetailsSerializer
+from lcm.nf.serializers.vnf_lcm_op_occ import VNFLCMOpOccSerializer
from lcm.nf.serializers.vnf_lcm_op_occs import VNFLCMOpOccsSerializer
from lcm.pub.exceptions import NFLCMException
logger.error(traceback.format_exc())
problem_details_serializer = get_problem_details_serializer(status.HTTP_500_INTERNAL_SERVER_ERROR, e.message)
return Response(data=problem_details_serializer.data, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+
+
+class QuerySingleVnfLcmOpOcc(APIView):
+ @swagger_auto_schema(
+ responses={
+ status.HTTP_200_OK: VNFLCMOpOccSerializer(),
+ status.HTTP_500_INTERNAL_SERVER_ERROR: ProblemDetailsSerializer()
+ }
+ )
+ def get(self, request, lcmopoccid):
+ logger.debug("QuerySingleVnfLcmOpOcc--get::> %s" % request.query_params)
+ try:
+ resp_data = QueryVnfLcmOpOcc(request.query_params, lcm_op_occ_id=lcmopoccid).query_single_vnf_lcm_op_occ()
+
+ vnf_lcm_op_occ_serializer = VNFLCMOpOccSerializer(data=resp_data)
+ if not vnf_lcm_op_occ_serializer.is_valid():
+ raise NFLCMException(vnf_lcm_op_occ_serializer.errors)
+
+ return Response(data=vnf_lcm_op_occ_serializer.data, status=status.HTTP_200_OK)
+ except NFLCMException as e:
+ logger.error(e.message)
+ problem_details_serializer = get_problem_details_serializer(status.HTTP_500_INTERNAL_SERVER_ERROR, e.message)
+ return Response(data=problem_details_serializer.data, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+ except Exception as e:
+ logger.error(e.message)
+ logger.error(traceback.format_exc())
+ problem_details_serializer = get_problem_details_serializer(status.HTTP_500_INTERNAL_SERVER_ERROR, e.message)
+ return Response(data=problem_details_serializer.data, status=status.HTTP_500_INTERNAL_SERVER_ERROR)