Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
    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