def destroy_volume_connector(self, ident): with _session_for_write(): query = model_query(models.VolumeConnector) query = add_identity_filter(query, ident) count = query.delete() if count == 0: raise exception.VolumeConnectorNotFound(connector=ident)
def get_volume_connector_by_uuid(self, connector_uuid): query = model_query( models.VolumeConnector).filter_by(uuid=connector_uuid) try: return query.one() except NoResultFound: raise exception.VolumeConnectorNotFound(connector=connector_uuid)
def update_volume_connector(self, ident, connector_info): if 'uuid' in connector_info: msg = _("Cannot overwrite UUID for an existing Volume Connector.") raise exception.InvalidParameterValue(err=msg) try: with _session_for_write() as session: query = model_query(models.VolumeConnector) query = add_identity_filter(query, ident) ref = query.one() orig_type = ref['type'] orig_connector_id = ref['connector_id'] ref.update(connector_info) session.flush() except db_exc.DBDuplicateEntry: raise exception.VolumeConnectorTypeAndIdAlreadyExists( type=connector_info.get('type', orig_type), connector_id=connector_info.get('connector_id', orig_connector_id)) except NoResultFound: raise exception.VolumeConnectorNotFound(connector=ident) return ref