def _get_vnf_db(self, context, vnf_id, current_statuses, new_status): try: vnf_db = (self._model_query(context, VNF).filter( VNF.id == vnf_id).filter(VNF.status.in_( current_statuses)).with_lockmode('update').one()) except orm_exc.NoResultFound: raise vnfm.VNFNotFound(vnf_id=vnf_id) if vnf_db.status == constants.PENDING_UPDATE: raise vnfm.VNFInUse(vnf_id=vnf_id) vnf_db.update({'status': new_status}) return vnf_db
def _get_resource(self, context, model, id): try: return self._get_by_id(context, model, id) except orm_exc.NoResultFound: if issubclass(model, VNFD): raise vnfm.VNFDNotFound(vnfd_id=id) elif issubclass(model, ServiceType): raise vnfm.ServiceTypeNotFound(service_type_id=id) if issubclass(model, VNF): raise vnfm.VNFNotFound(vnf_id=id) else: raise
def _get_vnf_db(self, context, vnf_id, current_statuses, new_status): try: vnf_db = (self._model_query(context, VNF).filter( VNF.id == vnf_id).filter(VNF.status.in_( current_statuses)).with_lockmode('update').one()) except orm_exc.NoResultFound: raise vnfm.VNFNotFound(vnf_id=vnf_id) if vnf_db.status == constants.PENDING_DELETE: error_reason = _("Operation on PENDING_DELETE VNF " "is not permited. Please contact your " "Administrator.") raise vnfm.VNFDeleteFailed(reason=error_reason) if vnf_db.status == constants.PENDING_UPDATE: raise vnfm.VNFInUse(vnf_id=vnf_id) # TODO(dkushwaha): status check/update will be moved out from here. vnf_db.update({'status': new_status}) return vnf_db
def vnf_respawning_event(self, context, vnf_id): LOG.debug('vnf respawning event called sucesfully: %s', vnf_id) vnf = None with context.session.begin(subtransactions=True): try: query = context.session.query( vnfm_db.VNF).filter_by(id=vnf_id).first() LOG.info('log: query is %s', query) ### status = query['status'] LOG.info('log: VNF status is %s', status) ### #query = context.session.query(vnfm_db.VNF) #vnf = query.filter(vnfm_db.VNF.id == vnf_id).filter( # vnfm_db.VNF.status.in_(constants.ACTIVE)).one() # To be constants.PENDING_CREATE except orm_exc.NoResultFound: raise vnfm.VNFNotFound(vnf_id=vnf_id) return status