X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fnf%2Fviews%2Finstantiate_vnf_view.py;h=23a979aeef00236a362f64cdac48f12821d12cba;hb=b10195f3df9535641c6a142dfededf770b201ad0;hp=b285cc8c81368eec8300bda368149f8b1f79b5b8;hpb=8f09fb9cf1574253117957bf3f780ce21bf17a67;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/nf/views/instantiate_vnf_view.py b/lcm/lcm/nf/views/instantiate_vnf_view.py index b285cc8c..23a979ae 100644 --- a/lcm/lcm/nf/views/instantiate_vnf_view.py +++ b/lcm/lcm/nf/views/instantiate_vnf_view.py @@ -23,7 +23,10 @@ from rest_framework.views import APIView from lcm.nf.serializers.instantiate_vnf_request import InstantiateVnfRequestSerializer from lcm.nf.serializers.job_identifier import JobIdentifierSerializer from lcm.pub.exceptions import NFLCMException +from lcm.pub.exceptions import NFLCMExceptionNotFound +from lcm.pub.exceptions import NFLCMExceptionConflict from lcm.pub.utils.jobutil import JobUtil +from lcm.pub.database.models import NfInstModel from .common import view_safe_call_with_log logger = logging.getLogger(__name__) @@ -45,6 +48,12 @@ class InstantiateVnfView(APIView): if not instantiate_vnf_request_serializer.is_valid(): raise NFLCMException(instantiate_vnf_request_serializer.errors) + vnf_insts = NfInstModel.objects.filter(nfinstid=instanceid) + if not vnf_insts.exists(): + raise NFLCMExceptionNotFound("VNF instanceid(%s) does not exist." % instanceid) + if vnf_insts[0].status == 'INSTANTIATED': + raise NFLCMExceptionConflict('VNF(%s) is already INSTANTIATED.' % instanceid) + job_id = JobUtil.create_job('NF', 'INSTANTIATE', instanceid) JobUtil.add_job_status(job_id, 0, "INST_VNF_READY") InstantiateVnf(instantiate_vnf_request_serializer.data, instanceid, job_id).start()