Example #1
0
    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)
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
 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)