From: fujinhua Date: Wed, 10 Apr 2019 04:09:09 +0000 (+0800) Subject: Refactor codes for ns scale X-Git-Tag: 1.3.0~42^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=3bd58a8918d6b70cbdec37bfc96da8bf59f71d41;p=vfc%2Fnfvo%2Flcm.git Refactor codes for ns scale Change-Id: I1bf66c5d95fd9148a2e427c1a0e6c0b2fa11c00c Issue-ID: VFC-1306 Signed-off-by: fujinhua --- diff --git a/lcm/ns/tests/test_sol_ns_scale_api.py b/lcm/ns/tests/test_sol_ns_scale_api.py index d11570a5..b8e17482 100644 --- a/lcm/ns/tests/test_sol_ns_scale_api.py +++ b/lcm/ns/tests/test_sol_ns_scale_api.py @@ -209,7 +209,7 @@ class TestScaleNsApi(TestCase): self.ns_inst_id, data={}) self.assertEqual( response.status_code, - status.HTTP_500_INTERNAL_SERVER_ERROR) + status.HTTP_400_BAD_REQUEST) @mock.patch.object(NSManualScaleService, 'start') def test_ns_manual_scale_when_ns_not_exist(self, mock_start): diff --git a/lcm/ns/views/sol/scale_ns_views.py b/lcm/ns/views/sol/scale_ns_views.py index 07de7d4c..708c3942 100644 --- a/lcm/ns/views/sol/scale_ns_views.py +++ b/lcm/ns/views/sol/scale_ns_views.py @@ -19,11 +19,11 @@ from rest_framework.response import Response from rest_framework.views import APIView from lcm.ns.biz.ns_manual_scale import NSManualScaleService from lcm.ns.serializers.sol.scale_ns_serializers import ScaleNsRequestSerializer -from lcm.pub.exceptions import NSLCMException from lcm.pub.utils.jobutil import JobUtil, JOB_TYPE from lcm.ns.const import NS_OCC_BASE_URI from lcm.pub.exceptions import BadRequestException from lcm.ns.serializers.sol.pub_serializers import ProblemDetailsSerializer +from .common import view_safe_call_with_log logger = logging.getLogger(__name__) @@ -36,27 +36,20 @@ class ScaleNSView(APIView): status.HTTP_500_INTERNAL_SERVER_ERROR: ProblemDetailsSerializer() } ) + @view_safe_call_with_log(logger=logger) def post(self, request, ns_instance_id): logger.debug("Enter ScaleNSView::post %s, %s", request.data, ns_instance_id) + + req_serializer = ScaleNsRequestSerializer(data=request.data) + if not req_serializer.is_valid(): + raise BadRequestException(req_serializer.errors) + job_id = JobUtil.create_job("NS", JOB_TYPE.MANUAL_SCALE_VNF, ns_instance_id) - try: - req_serializer = ScaleNsRequestSerializer(data=request.data) - if not req_serializer.is_valid(): - raise NSLCMException(req_serializer.errors) - nsManualScaleService = NSManualScaleService(ns_instance_id, request.data, job_id) - nsManualScaleService.start() - response = Response(data={}, status=status.HTTP_202_ACCEPTED) - logger.debug("Location: %s" % nsManualScaleService.occ_id) - response["Location"] = NS_OCC_BASE_URI % nsManualScaleService.occ_id - logger.debug("Leave ScaleNSView") - return response - except BadRequestException as e: - logger.error("Exception in ScaleNSView: %s", e.message) - JobUtil.add_job_status(job_id, 255, 'NS scale failed: %s' % e.message) - data = {'status': status.HTTP_400_BAD_REQUEST, 'detail': e.message} - return Response(data=data, status=status.HTTP_400_BAD_REQUEST) - except Exception as e: - logger.error("Exception in ScaleNSView: %s", e.message) - JobUtil.add_job_status(job_id, 255, 'NS scale failed: %s' % e.message) - data = {'status': status.HTTP_500_INTERNAL_SERVER_ERROR, 'detail': e.message} - return Response(data=data, status=status.HTTP_500_INTERNAL_SERVER_ERROR) + + nsManualScaleService = NSManualScaleService(ns_instance_id, request.data, job_id) + nsManualScaleService.start() + response = Response(data={}, status=status.HTTP_202_ACCEPTED) + logger.debug("Location: %s" % nsManualScaleService.occ_id) + response["Location"] = NS_OCC_BASE_URI % nsManualScaleService.occ_id + logger.debug("Leave ScaleNSView") + return response