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)
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
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)