def _flavor_get_by_name_from_db(context, name): """Returns a dict describing specific flavor.""" result = Flavor._flavor_get_query_from_db(context).\ filter_by(name=name).\ first() if not result: raise exception.FlavorNotFoundByName(flavor_name=name) return db_api._dict_with_extra_specs(result)
def destroy(name): """Marks flavor as deleted.""" try: if not name: raise ValueError() db.flavor_destroy(context.get_admin_context(), name) except (ValueError, exception.NotFound): LOG.exception(_LE('Instance type %s not found for deletion'), name) raise exception.FlavorNotFoundByName(flavor_name=name)
def _flavor_destroy(context, flavor_id=None, name=None): query = context.session.query(api_models.Flavors) if flavor_id is not None: query = query.filter(api_models.Flavors.id == flavor_id) else: query = query.filter(api_models.Flavors.name == name) result = query.first() if not result: if flavor_id is not None: raise exception.FlavorNotFound(flavor_id=flavor_id) else: raise exception.FlavorNotFoundByName(flavor_name=name) context.session.query(api_models.FlavorProjects).\ filter_by(flavor_id=result.id).delete() context.session.query(api_models.FlavorExtraSpecs).\ filter_by(flavor_id=result.id).delete() context.session.delete(result)