def get_chassis(self, chassis): query = model_query(models.Chassis) query = add_identity_filter(query, chassis) try: return query.one() except NoResultFound: raise exception.ChassisNotFound(chassis=chassis)
def update_chassis(self, chassis, values): session = get_session() with session.begin(): query = model_query(models.Chassis, session=session) query = add_identity_filter(query, chassis) count = query.update(values) if count != 1: raise exception.ChassisNotFound(chassis=chassis) ref = query.one() return ref
def update_chassis(self, chassis_id, values): # NOTE(dtantsur): this can lead to very strange errors if 'uuid' in values: msg = _("Cannot overwrite UUID for an existing Chassis.") raise exception.InvalidParameterValue(err=msg) with _session_for_write(): query = model_query(models.Chassis) query = add_identity_filter(query, chassis_id) count = query.update(values) if count != 1: raise exception.ChassisNotFound(chassis=chassis_id) ref = query.one() return ref
def destroy_chassis(self, chassis_id): def chassis_not_empty(): """Checks whether the chassis does not have nodes.""" query = model_query(models.Node) query = add_node_filter_by_chassis(query, chassis_id) return query.count() != 0 with _session_for_write(): if chassis_not_empty(): raise exception.ChassisNotEmpty(chassis=chassis_id) query = model_query(models.Chassis) query = add_identity_filter(query, chassis_id) count = query.delete() if count != 1: raise exception.ChassisNotFound(chassis=chassis_id)
def destroy_chassis(self, chassis): def chassis_not_empty(session): """Checks whether the chassis does not have nodes.""" query = model_query(models.Node, session=session) query = add_node_filter_by_chassis(query, chassis) return query.count() != 0 session = get_session() with session.begin(): if chassis_not_empty(session): raise exception.ChassisNotEmpty(chassis=chassis) query = model_query(models.Chassis, session=session) query = add_identity_filter(query, chassis) count = query.delete() if count != 1: raise exception.ChassisNotFound(chassis=chassis)
def get_chassis_by_uuid(self, chassis_uuid): query = model_query(models.Chassis).filter_by(uuid=chassis_uuid) try: return query.one() except NoResultFound: raise exception.ChassisNotFound(chassis=chassis_uuid)