def datastore_version_find(cls, datastore_name, datastore_version_name, version_number=None): """ Helper to find a datastore version id for a given datastore and datastore version name. """ db_api.configure_db(CONF) db_ds_record = DBDatastore.find_by( name=datastore_name ) if not version_number: db_dsv_records = DBDatastoreVersion.find_all( datastore_id=db_ds_record.id, name=datastore_version_name, ) if db_dsv_records.count() == 0: raise exception.DatastoreVersionNotFound( version=datastore_version_name) if db_dsv_records.count() > 1: raise exception.DatastoreVersionsNoUniqueMatch( name=datastore_version_name) db_dsv_record = db_dsv_records.first() else: db_dsv_record = DBDatastoreVersion.find_by( datastore_id=db_ds_record.id, name=datastore_version_name, version=version_number ) return db_dsv_record.id
def load(cls, id_or_name): try: return cls(DBDatastoreVersion.find_by(id=id_or_name)) except exception.ModelNotFoundError: try: return cls(DBDatastoreVersion.find_by(name=id_or_name)) except exception.ModelNotFoundError: raise exception.DatastoreVersionNotFound(version=id_or_name)
def load(cls, datastore, id_or_name): try: return cls(DBDatastoreVersion.find_by(datastore_id=datastore.id, id=id_or_name)) except exception.ModelNotFoundError: versions = DBDatastoreVersion.find_all(datastore_id=datastore.id, name=id_or_name) if versions.count() == 0: raise exception.DatastoreVersionNotFound(version=id_or_name) if versions.count() > 1: raise exception.NoUniqueMatch(name=id_or_name) return cls(versions.first())
def load(cls, datastore, id_or_name, version=None): if uuidutils.is_uuid_like(id_or_name): return cls(DBDatastoreVersion.find_by(datastore_id=datastore.id, id=id_or_name)) if not version: versions = DBDatastoreVersion.find_all(datastore_id=datastore.id, name=id_or_name) if versions.count() == 0: raise exception.DatastoreVersionNotFound(version=id_or_name) if versions.count() > 1: raise exception.DatastoreVersionsNoUniqueMatch(name=id_or_name) db_version = versions.first() else: try: db_version = DBDatastoreVersion.find_by( datastore_id=datastore.id, name=id_or_name, version=version) except exception.ModelNotFoundError: raise exception.DatastoreVersionNotFound(version=version) return cls(db_version)
def load_by_uuid(cls, uuid): try: return cls(DBDatastoreVersion.find_by(id=uuid)) except exception.ModelNotFoundError: raise exception.DatastoreVersionNotFound(version=uuid)