aboutsummaryrefslogtreecommitdiffstats
path: root/lcm/ns/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'lcm/ns/views.py')
-rw-r--r--lcm/ns/views.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/lcm/ns/views.py b/lcm/ns/views.py
index b07f21ef..429df521 100644
--- a/lcm/ns/views.py
+++ b/lcm/ns/views.py
@@ -38,6 +38,7 @@ from lcm.ns.serializers import InstantNsReqSerializer
from lcm.ns.serializers import TerminateNsReqSerializer
from lcm.ns.serializers import HealNsReqSerializer
from lcm.ns.serializers import InstNsPostDealReqSerializer
+from lcm.ns.serializers import ManualScaleNsReqSerializer
from lcm.pub.exceptions import NSLCMException
logger = logging.getLogger(__name__)
@@ -282,14 +283,30 @@ class NSInstPostDealView(APIView):
class NSManualScaleView(APIView):
+ @swagger_auto_schema(
+ request_body=ManualScaleNsReqSerializer(help_text="NS manual scale"),
+ responses={
+ status.HTTP_202_ACCEPTED: NsOperateJobSerializer(),
+ status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error"
+ }
+ )
def post(self, request, ns_instance_id):
logger.debug("Enter NSManualScaleView::post %s, %s", request.data, ns_instance_id)
job_id = JobUtil.create_job("NS", JOB_TYPE.MANUAL_SCALE_VNF, ns_instance_id)
try:
+ req_serializer = ManualScaleNsReqSerializer(data=request.data)
+ if not req_serializer.is_valid():
+ raise NSLCMException(req_serializer.errors)
+
NSManualScaleService(ns_instance_id, request.data, job_id).start()
+
+ resp_serializer = NsOperateJobSerializer(data={'jobId': job_id})
+ if not resp_serializer.is_valid():
+ raise NSLCMException(resp_serializer.errors)
+
+ return Response(data=resp_serializer.data, status=status.HTTP_202_ACCEPTED)
except Exception as e:
logger.error(traceback.format_exc())
JobUtil.add_job_status(job_id, 255, 'NS scale failed: %s' % e.message)
return Response(data={'error': 'NS scale failed: %s' % ns_instance_id},
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
- return Response(data={'jobId': job_id}, status=status.HTTP_202_ACCEPTED)