def delete_cascade(context, name, session): """Raise if not found, has references or not visible""" namespace_rec = _get_by_name(context, name, session) with session.begin(): try: metadef_api.tag.delete_namespace_content( context, namespace_rec.id, session) metadef_api.object.delete_namespace_content( context, namespace_rec.id, session) metadef_api.property.delete_namespace_content( context, namespace_rec.id, session) metadef_api.resource_type_association.delete_namespace_content( context, namespace_rec.id, session) session.delete(namespace_rec) session.flush() except db_exc.DBError as e: if isinstance(e.inner_exception, sa_exc.IntegrityError): msg = ("Metadata definition namespace=%s not deleted." " Other records still refer to it." % name) LOG.debug(msg) raise exc.MetadefIntegrityError( record_type='namespace', record_name=name) else: raise e return namespace_rec.to_dict()
def delete(context, name, session): """Delete a resource type or raise if not found or is protected""" db_rec = get(context, name, session) if db_rec.protected is True: msg = ("Delete forbidden. Metadata definition resource-type %s is a" " seeded-system type and can not be deleted.") % name LOG.debug(msg) raise exc.ProtectedMetadefResourceTypeSystemDelete( resource_type_name=name) try: session.delete(db_rec) session.flush() except db_exc.DBError as e: if isinstance(e.inner_exception, sa_exc.IntegrityError): msg = ("Could not delete Metadata definition resource-type %s" ". It still has content") % name LOG.debug(msg) raise exc.MetadefIntegrityError( record_type='resource-type', record_name=name) else: raise e return db_rec.to_dict()
def delete(context, name, session): """Raise if not found, has references or not visible""" namespace_rec = _get_by_name(context, name, session) try: session.delete(namespace_rec) session.flush() except db_exc.DBError as e: if isinstance(e.inner_exception, sa_exc.IntegrityError): msg = ("Metadata definition namespace=%s not deleted." " Other records still refer to it." % name) LOG.debug(msg) raise exc.MetadefIntegrityError( record_type='namespace', record_name=name) else: raise e return namespace_rec.to_dict()