def _destroy_vnf_resource(context, id): now = timeutils.utcnow() updated_values = {'deleted': True, 'deleted_at': now} api.model_query(context, models.VnfResource).\ filter_by(id=id). \ update(updated_values, synchronize_session=False)
def _vnf_package_vnfd_delete(context, id): try: api.model_query( context, models.VnfPackageVnfd).filter_by(package_uuid=id).delete() except Exception: LOG.error("delete vnf_package_vnfd failed")
def _vnf_lcm_op_occ_update(context, values): update = { 'operation_state': values.operation_state, 'state_entered_time': values.state_entered_time, 'error_point': values.error_point, 'updated_at': datetime.utcnow() } LOG.debug('values %s', values) if 'resource_changes' in values: if values.resource_changes: update.update({ 'resource_changes': jsonutils.dumps(values.resource_changes.to_dict()) }) if 'error' in values: if values.error: update.update({'error': jsonutils.dumps(values.error.to_dict())}) if 'changed_info' in values: if values.changed_info: update.update({ 'changed_info': jsonutils.dumps(values.changed_info.to_dict()) }) api.model_query(context, models.VnfLcmOpOccs). \ filter_by(id=values.id). \ update(update, synchronize_session=False)
def _vnfd_destroy(context, id): now = timeutils.utcnow() updated_values = {'deleted_at': now} try: api.model_query(context, vnfm_db.VNFD).\ filter_by(id=id).\ update(updated_values, synchronize_session=False) except Exception: LOG.info("destroy vnfdfailed")
def _destroy_vnf_lcm_subscription(context, subscriptionId): now = timeutils.utcnow() updated_values = {'deleted': 1, 'deleted_at': now} try: api.model_query(context, models.VnfLcmSubscriptions). \ filter_by(id=subscriptionId). \ update(updated_values, synchronize_session=False) except Exception as e: raise e
def _destroy_vnf_instance(context, uuid): now = timeutils.utcnow() updated_values = {'deleted': True, 'deleted_at': now} api.model_query(context, models.VnfInstantiatedInfo). \ filter_by(vnf_instance_id=uuid). \ update(updated_values, synchronize_session=False) api.model_query(context, models.VnfInstance).\ filter_by(id=uuid). \ update(updated_values, synchronize_session=False)
def _vnf_package_list_by_filters(context, read_deleted=None, filters=None): query = api.model_query(context, models.VnfPackage, read_deleted=read_deleted, project_only=True).options(joinedload('_metadata')) if filters: # Need to join VnfDeploymentFlavour, VnfSoftwareImage and # VnfSoftwareImageMetadata db table explicitly # only when filters contains one of the column matching # from VnfSoftwareImage or VnfSoftwareImageMetadata db table. filter_data = json.dumps(filters) if 'VnfSoftwareImageMetadata' in filter_data: query = query.join(models.VnfDeploymentFlavour).join( models.VnfSoftwareImage).join(models.VnfSoftwareImageMetadata) elif 'VnfSoftwareImage' in filter_data: query = query.join(models.VnfDeploymentFlavour).join( models.VnfSoftwareImage) if 'VnfPackageArtifactInfo' in filter_data: query = query.join(models.VnfPackageArtifactInfo) query = apply_filters(query, filters) return query.all()
def _vnf_package_list(context, columns_to_join=None): query = api.model_query(context, models.VnfPackage, read_deleted="no", project_only=True).options(joinedload('_metadata')) if columns_to_join: for column in columns_to_join: query = query.options(joinedload(column)) return query.all()
def _check_vnfd(context, id): try: vnfd = api.model_query(context, vnfm_db.VNFD).filter_by(id=id).first() except Exception: LOG.info("select vnfd failed") if vnfd: return "TRUE" else: return "FALSE"
def _vnf_package_list_by_filters(context, read_deleted=None, **filters): query = api.model_query(context, models.VnfPackage, read_deleted=read_deleted, project_only=True) for key, value in filters.items(): filter_obj = getattr(models.VnfPackage, key) if key == 'deleted_at': query = query.filter(filter_obj >= value) else: query = query.filter(filter_obj == value) return query.all()
def _vnf_instance_get(context, vnfd_id, columns_to_join=None): query = api.model_query(context, models.VnfInstance, read_deleted="no", project_only=True).filter_by(vnfd_id=vnfd_id) if columns_to_join: for column in columns_to_join: query = query.options(joinedload(column)) return query.first()
def _vnf_instance_list(context, columns_to_join=None): query = api.model_query(context, models.VnfInstance, read_deleted="no", project_only=True) if columns_to_join: for column in columns_to_join: query = query.options(joinedload(column)) return query.all()
def _get_vnfd_id(context, id): try: vnf_package_vnfd = \ api.model_query(context, models.VnfPackageVnfd).\ filter_by(package_uuid=id).first() except Exception: LOG.info("select vnfd_attribute failed") if vnf_package_vnfd: return vnf_package_vnfd.vnfd_id else: return None
def _check_vnfd_attribute(context, id): try: vnfd_attribute = \ api.model_query(context, vnfm_db.VNFDAttribute).\ filter_by(vnfd_id=id).first() except Exception: LOG.info("select vnfd_attribute failed") if vnfd_attribute: return "TRUE" else: return "FALSE"
def _vnf_package_vnfd_get_by_vnfdId(context, vnfdId): query = api.model_query(context, models.VnfPackageVnfd, read_deleted="no", project_only=True).filter_by(vnfd_id=vnfdId) result = query.first() if not result: return None return result
def _vnf_lcm_op_occs_get_by_id(context, vnf_lcm_op_occ_id): query = api.model_query(context, models.VnfLcmOpOccs, read_deleted="no", project_only=True). \ filter_by(id=vnf_lcm_op_occ_id) result = query.first() if not result: raise exceptions.NotFound(resource='table', name='vnf_lcm_op_occs') return result
def _vnf_resource_get_by_id(context, id): query = api.model_query(context, models.VnfResource, read_deleted="no", project_only=True). \ filter_by(id=id) result = query.first() if not result: raise exceptions.VnfResourceNotFound(id=id) return result
def _vnf_get(context, id, columns_to_join=None): vnf_data = api.model_query(context, vnfm_db.VNF).filter_by( id=id).filter_by(deleted_at='0001-01-01 00:00:00').first() if vnf_data: vnf_data = vnf_data.__dict__ vnf_attribute_data = api.model_query( context, vnfm_db.VNFAttribute).filter_by(vnf_id=vnf_data.get('id')).first() vnf_data['vnf_attribute'] = vnf_attribute_data.__dict__ vnfd_data = api.model_query( context, vnfm_db.VNFD).filter_by(id=vnf_data.get('vnfd_id')).first() vnf_data['vnfd'] = vnfd_data.__dict__ vnfd_attribute_data = api.model_query( context, vnfm_db.VNFDAttribute).filter_by( vnfd_id=vnf_data.get('vnfd_id')).first() vnf_data['vnfd_attribute'] = vnfd_attribute_data.__dict__ else: vnf_data = "" return vnf_data
def _vnf_sw_image_get_by_id(context, id): query = api.model_query(context, models.VnfSoftwareImage, read_deleted="no").filter_by(id=id).options( joinedload('_metadata')) result = query.first() if not result: raise exceptions.VnfSoftwareImageNotFound(id=id) return result
def _vnf_deployment_flavour_get_by_id(context, id, columns_to_join=None): query = api.model_query(context, models.VnfDeploymentFlavour, read_deleted="no").filter_by(id=id) if columns_to_join: for column in columns_to_join: query = query.options(joinedload(column)) result = query.first() if not result: raise exceptions.VnfDeploymentFlavourNotFound(id=id) return result
def _get_vnf_package_vnfd(context, id, package_uuid=None, del_flg=None): if package_uuid and not del_flg: query = api.model_query(context, models.VnfPackageVnfd).filter_by( package_uuid=id).filter_by(deleted=0) elif package_uuid and del_flg: query = api.model_query( context, models.VnfPackageVnfd).filter_by(package_uuid=id) else: query = api.model_query( context, models.VnfPackageVnfd).filter_by(vnfd_id=id).filter_by(deleted=0) try: result = query.all() result_line = "" for line in result: result_line = line except Exception: LOG.error("select vnf_package_vnfd failed") if result_line: return result_line else: return None
def _vnf_instance_get_by_id(context, vnf_instance_id, columns_to_join=None): query = api.model_query(context, models.VnfInstance, read_deleted="no", project_only=True). \ filter_by(id=vnf_instance_id) if columns_to_join: for column in columns_to_join: query = query.options(joinedload(column)) result = query.first() if not result: raise exceptions.VnfInstanceNotFound(id=vnf_instance_id) return result
def _vnf_package_get_by_id(context, package_uuid, columns_to_join=None): query = api.model_query(context, models.VnfPackage, read_deleted="no", project_only=True). \ filter_by(id=package_uuid).options(joinedload('_metadata')) if columns_to_join: for column in columns_to_join: query = query.options(joinedload(column)) result = query.first() if not result: raise exceptions.VnfPackageNotFound(id=package_uuid) return result
def _vnf_package_vnfd_get_by_id(context, vnfd_id): query = api.model_query(context, models.VnfPackageVnfd, read_deleted="no", project_only=False). \ filter_by(vnfd_id=vnfd_id).\ join((models.VnfPackage, models.VnfPackage.id == models.VnfPackageVnfd.package_uuid)) if tacker.context.is_user_context(context): query = query.filter(models.VnfPackage.tenant_id == context.project_id) result = query.first() if not result: raise exceptions.VnfPackageVnfdNotFound(id=vnfd_id) return result
def _instantiate_vnf_info_update(context, vnf_instance_id, values): vnf_info = api.model_query(context, models.VnfInstantiatedInfo). \ filter_by(vnf_instance_id=vnf_instance_id).first() needs_create = False if vnf_info and vnf_info['deleted']: raise exceptions.VnfInstantiatedInfoNotFound( vnf_instance_id=vnf_instance_id) elif not vnf_info: values['vnf_instance_id'] = vnf_instance_id vnf_info = models.VnfInstantiatedInfo(**values) needs_create = True if needs_create: vnf_info.save(session=context.session) else: vnf_info.update(values) vnf_info.save(session=context.session) return vnf_info
def _destroy_vnf_deployment_flavour(context, flavour_uuid): now = timeutils.utcnow() updated_values = {'deleted': True, 'deleted_at': now } software_images_query = api.model_query( context, models.VnfSoftwareImage, (models.VnfSoftwareImage.id,)).filter_by(flavour_uuid=flavour_uuid) api.model_query(context, models.VnfSoftwareImageMetadata). \ filter(models.VnfSoftwareImageMetadata.image_uuid. in_(software_images_query.subquery())).update( updated_values, synchronize_session=False) api.model_query(context, models.VnfSoftwareImage). \ filter_by(flavour_uuid=flavour_uuid). \ update(updated_values, synchronize_session=False) api.model_query(context, models.VnfDeploymentFlavour). \ filter_by(id=flavour_uuid). \ update(updated_values, synchronize_session=False)
def _vnf_update(context, values): update = {'status': values.status, 'updated_at': values.updated_at} api.model_query(context, vnfm_db.VNF). \ filter_by(id=values.id). \ update(update, synchronize_session=False)
def _vnfd_attribute_delete(context, id): try: api.model_query(context, vnfm_db.VNFDAttribute).\ filter_by(vnfd_id=id).delete() except Exception: LOG.info("delete vnfd_attribute failed")
def _update_vnf_instances(context, vnf_lcm_opoccs, body_data, vnfd_pkg_data, vnfd_id): updated_values = {} updated_values['vnf_instance_name'] = body_data.get('vnf_instance_name') updated_values['vnf_instance_description'] = body_data.get( 'vnf_instance_description') # get vnf_instances vnf_instance = _get_vnf_instance(context, vnfd_id) if body_data.get('metadata'): vnf_instance.vnf_metadata.update(body_data.get('metadata')) updated_values['vnf_metadata'] = vnf_instance.vnf_metadata if body_data.get('vim_connection_info'): merge_vim_connection_info = _merge_vim_connection_info( vnf_instance.vim_connection_info, body_data.get('vim_connection_info')) updated_values['vim_connection_info'] = merge_vim_connection_info if vnfd_pkg_data and len(vnfd_pkg_data) > 0: updated_values['vnfd_id'] = vnfd_pkg_data.get('vnfd_id') updated_values['vnf_provider'] = vnfd_pkg_data.get('vnf_provider') updated_values['vnf_product_name'] = vnfd_pkg_data.get( 'vnf_product_name') updated_values['vnf_software_version'] = vnfd_pkg_data.get( 'vnf_software_version') updated_values['vnf_pkg_id'] = vnfd_pkg_data.get('package_uuid') api.model_query(context, models.VnfInstance). \ filter_by(id=vnf_lcm_opoccs.get('vnf_instance_id')). \ update(updated_values, synchronize_session=False) vnf_now = timeutils.utcnow() if (body_data.get('vnfd_id') or body_data.get('vnf_pkg_id')): # update vnf if body_data.get('vnfd_id'): updated_values = { 'vnfd_id': body_data.get('vnfd_id'), 'updated_at': vnf_now } elif body_data.get('vnf_pkg_id'): updated_values = { 'vnfd_id': vnfd_pkg_data.get('vnfd_id'), 'updated_at': vnf_now } api.model_query(context, vnfm_db.VNF).\ filter_by(id=vnf_lcm_opoccs.get('vnf_instance_id')). \ update(updated_values, synchronize_session=False) # get vnf_packages id = vnfd_pkg_data.get('package_uuid') try: vnf_package = vnf_package_obj.VnfPackage.get_by_id(context, id) except exceptions.VnfPackageNotFound: raise exceptions.VnfPackageNotFound(id=id) if vnf_package.usage_state == 'NOT_IN_USE': # update vnf_packages now = timeutils.utcnow() updated_values = {'usage_state': 'IN_USE', 'updated_at': now} api.model_query(context, models.VnfPackage).\ filter_by(id=id). \ update(updated_values, synchronize_session=False) # get vnf_instances vnf_instance = _get_vnf_instance(context, vnfd_id) if not vnf_instance: # get vnf_package_vnfd vnfd_data = vnf_package_vnfd.VnfPackageVnfd.get_by_vnfdId( context, vnfd_id) # update vnf_packages now = timeutils.utcnow() updated_values = {'usage_state': 'NOT_IN_USE', 'updated_at': now} api.model_query(context, models.VnfPackage).\ filter_by(id=vnfd_data.package_uuid). \ update(updated_values, synchronize_session=False) return vnf_now
def _destroy_vnf_notify(context, uuid): now = timeutils.utcnow() updated_values = {'deleted': True, 'deleted_at': now} api.model_query(context, models.VnfLcmOpOccs). \ filter_by(id=uuid). \ update(updated_values, synchronize_session=False)