aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2018-01-31 13:41:47 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2018-01-31 13:42:34 +0800
commitb2676d9017f13d55e73c9d4ef3125fc6a5dbe4b6 (patch)
treee7df385b37334e8dd85d31c5603a68fa4d540489
parent1362afd5acc7d771cc4912c6d38d6d42fd520441 (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.py25
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)