diff options
author | fujinhua <fu.jinhua@zte.com.cn> | 2018-01-31 13:41:47 +0800 |
---|---|---|
committer | fujinhua <fu.jinhua@zte.com.cn> | 2018-01-31 13:42:34 +0800 |
commit | b2676d9017f13d55e73c9d4ef3125fc6a5dbe4b6 (patch) | |
tree | e7df385b37334e8dd85d31c5603a68fa4d540489 | |
parent | 1362afd5acc7d771cc4912c6d38d6d42fd520441 (diff) |
Refactor create sfc swagger generate logic
Change-Id: Ice5209b88e2fb887581f20e88672d2082a19f235
Issue-ID: VFC-694
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r-- | lcm/ns/sfcs/views.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/lcm/ns/sfcs/views.py b/lcm/ns/sfcs/views.py index ca34b5dd..4aed6da7 100644 --- a/lcm/ns/sfcs/views.py +++ b/lcm/ns/sfcs/views.py @@ -31,6 +31,7 @@ from lcm.ns.sfcs.create_sfc_worker import CreateSfcWorker from lcm.ns.sfcs.sfc_instance import SfcInstance from lcm.ns.sfcs.utils import get_fp_id, ignorcase_get from lcm.ns.sfcs.serializers import CreateSfcInstReqSerializer, CreateSfcInstRespSerializer +from lcm.ns.sfcs.serializers import CreateSfcReqSerializer, CreateSfcRespSerializer logger = logging.getLogger(__name__) @@ -96,25 +97,35 @@ class PortChainView(APIView): class SfcView(APIView): + @swagger_auto_schema( + request_body=CreateSfcReqSerializer(), + responses={ + status.HTTP_200_OK: CreateSfcRespSerializer() + } + ) def post(self, request): try: logger.info("Create Service Function Chain start") logger.info("service_function_chain_request: %s" % json.dumps(request.data)) logger.info("service_function_chain_context : %s" % json.dumps(request.data['context'])) logger.info("service_function_chain_context : %s" % request.data['context']) - logger.info("service_function_chain_instanceid : %s" % ignorcase_get(request.data, 'nsinstanceid')) - logger.info("service_function_chain_sdncontrollerid : %s" % ignorcase_get(request.data, 'sdncontrollerid')) + logger.info("service_function_chain_instanceid : %s" % ignorcase_get(request.data, 'nsInstanceId')) + logger.info("service_function_chain_sdncontrollerid : %s" % ignorcase_get(request.data, 'sdnControllerId')) logger.info("service_function_chain_fpindex : %s" % ignorcase_get(request.data, 'fpindex')) ns_model_data = request.data['context'] + + req_serializer = CreateSfcReqSerializer(data=request.data) + if not req_serializer.is_valid(): + raise Exception(req_serializer.errors) except Exception as e: logger.error("Exception occurs: %s", e.message) logger.error(traceback.format_exc()) data = { - 'nsinstid': ignorcase_get(request.data, 'nsinstanceid'), + 'nsinstid': ignorcase_get(request.data, 'nsInstanceId'), "ns_model_data": ns_model_data, 'fpindex': get_fp_id(ignorcase_get(request.data, 'fpindex'), ns_model_data), 'fpinstid': str(uuid.uuid4()), - 'sdncontrollerid': ignorcase_get(request.data, 'sdncontrollerid') + 'sdncontrollerid': ignorcase_get(request.data, 'sdnControllerId') } logger.info("Save FPInstModel start: ") SfcInstance(data).do_biz() @@ -126,6 +137,12 @@ class SfcView(APIView): time.sleep(2) logger.info("Service Function Chain Thread Sleep end: %s" % time.ctime()) logger.info("Create Service Function Chain end") + + resp_serializer = CreateSfcRespSerializer(data={"jobId": job_id, + "sfcInstId": data["fpinstid"]}) + if not resp_serializer.is_valid(): + logger.error(resp_serializer.errors) + return Response(data={"jobId": job_id, "sfcInstId": data["fpinstid"]}, status=status.HTTP_200_OK) |