X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=lcm%2Flcm%2Fnf%2Fvnfs%2Fvnf_cancel%2Fdelete_vnf_identifier.py;h=3ae64458ad96de901655c5e0e0c08d5660ef1230;hb=e2e3b79adf202e4fd0a7f82c00cdda8f654e9c08;hp=c5a92c088a1af2067454476e2e28beb4251ebfde;hpb=cf4883f5f2b1588f802d2c25231dd5cc27821b5b;p=vfc%2Fgvnfm%2Fvnflcm.git diff --git a/lcm/lcm/nf/vnfs/vnf_cancel/delete_vnf_identifier.py b/lcm/lcm/nf/vnfs/vnf_cancel/delete_vnf_identifier.py index c5a92c08..3ae64458 100644 --- a/lcm/lcm/nf/vnfs/vnf_cancel/delete_vnf_identifier.py +++ b/lcm/lcm/nf/vnfs/vnf_cancel/delete_vnf_identifier.py @@ -11,10 +11,13 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. + import logging -from lcm.pub.database.models import NfInstModel +from lcm.pub.config.config import REPORT_TO_AAI +from lcm.pub.database.models import NfInstModel, NfvoRegInfoModel from lcm.pub.exceptions import NFLCMException +from lcm.pub.msapi.aai import query_vnf_aai, delete_vnf_aai logger = logging.getLogger(__name__) @@ -25,10 +28,40 @@ class DeleteVnf: self.nf_inst_id = instanceid def do_biz(self): + try: + self.check_parameter() + self.delete_info_from_db() + if REPORT_TO_AAI: + self.delete_vnf_in_aai() + except NFLCMException as e: + logger.debug('Delete VNF instance[%s] from AAI failed' % self.nf_inst_id) + except: + logger.debug('Delete VNF instance[%s] failed' % self.nf_inst_id) + + def check_parameter(self): vnf_insts = NfInstModel.objects.filter(nfinstid=self.nf_inst_id) if not vnf_insts.exists(): - raise NFLCMException('VnfInst(%s) does not exist' % self.nf_inst_id) - sel_vnf = vnf_insts[0] - if sel_vnf.status != 'VNF_INSTANTIATED': - raise NFLCMException("Don't allow to delete vnf(status:[%s])" % sel_vnf.status) + logger.warn('VnfInst(%s) does not exist' % self.nf_inst_id) + return + # sel_vnf = vnf_insts[0] + # if sel_vnf.status != 'NOT_INSTANTIATED': + # raise NFLCMException("Don't allow to delete vnf(status:[%s])" % sel_vnf.status) + + def delete_info_from_db(self): NfInstModel.objects.filter(nfinstid=self.nf_inst_id).delete() + NfvoRegInfoModel.objects.filter(nfvoid=self.nf_inst_id).delete() + + def delete_vnf_in_aai(self): + logger.debug("DeleteVnf::delete_vnf_in_aai::delete vnf instance[%s] in aai." % self.nf_inst_id) + + # query vnf instance in aai, get resource_version + customer_info = query_vnf_aai(self.nf_inst_id) + resource_version = customer_info["resource-version"] + + # delete vnf instance from aai + resp_data, resp_status = delete_vnf_aai(self.nf_inst_id, resource_version) + if resp_data: + logger.debug("Fail to delete vnf instance[%s] from aai, resp_status: [%s]." % (self.nf_inst_id, resp_status)) + else: + logger.debug( + "Success to delete vnf instance[%s] from aai, resp_status: [%s]." % (self.nf_inst_id, resp_status))