Пример #1
0
 def destroy_volume_target(self, ident):
     with _session_for_write():
         query = model_query(models.VolumeTarget)
         query = add_identity_filter(query, ident)
         count = query.delete()
         if count == 0:
             raise exception.VolumeTargetNotFound(target=ident)
Пример #2
0
    def update_volume_target(self, ident, target_info):
        if 'uuid' in target_info:
            msg = _("Cannot overwrite UUID for an existing Volume Target.")
            raise exception.InvalidParameterValue(err=msg)

        try:
            with _session_for_write() as session:
                query = model_query(models.VolumeTarget)
                query = add_identity_filter(query, ident)
                ref = query.one()
                orig_boot_index = ref['boot_index']
                ref.update(target_info)
                session.flush()
        except db_exc.DBDuplicateEntry:
            raise exception.VolumeTargetBootIndexAlreadyExists(
                boot_index=target_info.get('boot_index', orig_boot_index))
        except NoResultFound:
            raise exception.VolumeTargetNotFound(target=ident)
        return ref
Пример #3
0
 def get_volume_target_by_uuid(self, uuid):
     query = model_query(models.VolumeTarget).filter_by(uuid=uuid)
     try:
         return query.one()
     except NoResultFound:
         raise exception.VolumeTargetNotFound(target=uuid)