- logger.debug("UpdateSingleVnf--patch::> %s, %s", instanceid, request.data)
- try:
- upd_vnf_serializer = VnfInfoModificationsSerializer(data=request.data)
- if not upd_vnf_serializer.is_valid():
- raise NFLCMException(upd_vnf_serializer.errors)
-
- job_id = JobUtil.create_job('NF', 'UPDATE', instanceid)
- JobUtil.add_job_status(job_id, 0, "UPDATE_VNF_READY")
-
- vnf_insts = NfInstModel.objects.filter(nfinstid=instanceid)
- if not vnf_insts.exists():
- raise NFLCMExceptionNotFound("VNF(%s) does not exist." % instanceid)
- vnf_insts.update(status=VNF_STATUS.UPDATING)
-
- JobUtil.add_job_status(job_id, 15, 'Nf updating pre-check finish')
- UpdateVnf(request.data, instanceid, job_id).start()
-
- return Response(data=None, status=status.HTTP_202_ACCEPTED)
- except NFLCMException as e:
- logger.error(e.message)
- logger.error('Update VNF instance[%s] failed' % instanceid)
- return Response(data={'error': '%s' % e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
- except Exception as e:
- logger.error(e.message)
- logger.error(traceback.format_exc())
- logger.error('Update VNF instance[%s] failed' % instanceid)
- return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+ return deal_vnf_action(
+ logger=logger,
+ opt_type=OPERATION_TYPE.MODIFY_INFO,
+ opt_status=VNF_STATUS.UPDATING,
+ instid=instanceid,
+ req=request,
+ req_serializer=VnfInfoModificationsSerializer,
+ act_task=UpdateVnf
+ )