Class DefaultOfferServiceImpl
- java.lang.Object
-
- fr.gouv.vitam.storage.offers.core.DefaultOfferServiceImpl
-
- All Implemented Interfaces:
DefaultOfferService
public class DefaultOfferServiceImpl extends java.lang.Object implements DefaultOfferService
-
-
Field Summary
-
Fields inherited from interface fr.gouv.vitam.storage.offers.core.DefaultOfferService
STORAGE_CONF_FILE_NAME
-
-
Constructor Summary
Constructors Constructor Description DefaultOfferServiceImpl(ContentAddressableStorage defaultStorage, ReadRequestReferentialRepository readRequestReferentialRepository, OfferLogCompactionDatabaseService offerLogCompactionDatabaseService, OfferLogDatabaseService offerDatabaseService, OfferSequenceDatabaseService offerSequenceDatabaseService, StorageConfiguration configuration, OfferLogCompactionConfiguration offerLogCompactionConfig, OfferLogAndCompactedOfferLogService offerLogAndCompactedOfferLogService, int maxBatchThreadPoolSize, int batchMetadataComputationTimeout)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StorageBulkPutResultbulkPutObjects(java.lang.String containerName, java.util.List<java.lang.String> objectIds, MultiplexedStreamReader multiplexedStreamReader, DataCategory type, DigestType digestType)voidcompactOfferLogs()java.lang.StringcreateObject(java.lang.String containerName, java.lang.String objectId, java.io.InputStream objectPart, DataCategory type, java.lang.Long size, DigestType digestType)Create object on container with objectId Receive object part of object.java.util.Optional<TapeReadRequestReferentialEntity>createReadOrderRequest(java.lang.String containerName, java.util.List<java.lang.String> objectsIds)create read order (asynchronous read from tape to local FS) for the given @containerName and objects list.voiddeleteObject(java.lang.String containerName, java.lang.String objectId, DataCategory type)Deletes a object representing the data at location containerName/objectNameStorageBulkMetadataResultgetBulkMetadata(java.lang.String containerName, java.util.List<java.lang.String> objectIds, java.lang.Boolean noCache)ContainerInformationgetCapacity(java.lang.String containerName)Get container capacityStorageMetadataResultgetMetadata(java.lang.String containerName, java.lang.String objectId, boolean noCache)Get MetadataObjectContentgetObject(java.lang.String containerName, java.lang.String objectId)Get object on offer as an inputStreamjava.lang.StringgetObjectDigest(java.lang.String containerName, java.lang.String objectId, DigestType digestAlgorithm)Get offer storage digest of objectjava.util.List<OfferLog>getOfferLogs(java.lang.String containerName, java.lang.Long offset, int limit, Order order)Get the offer log of objects created in offer containerjava.util.Optional<TapeReadRequestReferentialEntity>getReadOrderRequest(java.lang.String readRequestID)booleanisObjectExist(java.lang.String containerName, java.lang.String objectId)Check if object existsvoidlistObjects(java.lang.String containerName, ObjectListingListener objectListingListener)List container objectsvoidlog(com.google.common.base.Stopwatch timer, java.lang.String action, java.lang.String task)voidremoveReadOrderRequest(java.lang.String readRequestID)
-
-
-
Constructor Detail
-
DefaultOfferServiceImpl
public DefaultOfferServiceImpl(ContentAddressableStorage defaultStorage, ReadRequestReferentialRepository readRequestReferentialRepository, OfferLogCompactionDatabaseService offerLogCompactionDatabaseService, OfferLogDatabaseService offerDatabaseService, OfferSequenceDatabaseService offerSequenceDatabaseService, StorageConfiguration configuration, OfferLogCompactionConfiguration offerLogCompactionConfig, OfferLogAndCompactedOfferLogService offerLogAndCompactedOfferLogService, int maxBatchThreadPoolSize, int batchMetadataComputationTimeout)
-
-
Method Detail
-
getObjectDigest
public java.lang.String getObjectDigest(java.lang.String containerName, java.lang.String objectId, DigestType digestAlgorithm) throws ContentAddressableStorageExceptionDescription copied from interface:DefaultOfferServiceGet offer storage digest of object- Specified by:
getObjectDigestin interfaceDefaultOfferService- Parameters:
containerName- the container with the objectobjectId- the object name / iddigestAlgorithm- the digest algorithm- Returns:
- the offer computed digest
- Throws:
ContentAddressableStorageException- thrown on storage error
-
getObject
public ObjectContent getObject(java.lang.String containerName, java.lang.String objectId) throws ContentAddressableStorageException
Description copied from interface:DefaultOfferServiceGet object on offer as an inputStream- Specified by:
getObjectin interfaceDefaultOfferService- Parameters:
containerName- the container containing the objectobjectId- the object id- Returns:
- the object included in a response
- Throws:
ContentAddressableStorageNotFoundException- thrown when object does not existsContentAddressableStorageException- thrown when a server error occurs
-
createReadOrderRequest
public java.util.Optional<TapeReadRequestReferentialEntity> createReadOrderRequest(java.lang.String containerName, java.util.List<java.lang.String> objectsIds) throws ContentAddressableStorageException
Description copied from interface:DefaultOfferServicecreate read order (asynchronous read from tape to local FS) for the given @containerName and objects list. Return read order ID- Specified by:
createReadOrderRequestin interfaceDefaultOfferService- Parameters:
containerName- the container containing the objectobjectsIds- the objects ids- Returns:
- readOrder entity
- Throws:
ContentAddressableStorageNotFoundException- thrown when object does not existsContentAddressableStorageException- thrown when a server error occurs
-
getReadOrderRequest
public java.util.Optional<TapeReadRequestReferentialEntity> getReadOrderRequest(java.lang.String readRequestID) throws ContentAddressableStorageException
- Specified by:
getReadOrderRequestin interfaceDefaultOfferService- Throws:
ContentAddressableStorageException
-
removeReadOrderRequest
public void removeReadOrderRequest(java.lang.String readRequestID) throws ContentAddressableStorageException- Specified by:
removeReadOrderRequestin interfaceDefaultOfferService- Throws:
ContentAddressableStorageException
-
createObject
public java.lang.String createObject(java.lang.String containerName, java.lang.String objectId, java.io.InputStream objectPart, DataCategory type, java.lang.Long size, DigestType digestType) throws ContentAddressableStorageExceptionDescription copied from interface:DefaultOfferServiceCreate object on container with objectId Receive object part of object. Actually these parts HAVE TO be send in the great order.- Specified by:
createObjectin interfaceDefaultOfferService- Parameters:
containerName- the container nameobjectId- the offer objectId to createobjectPart- the part of the object to create (chunk style)type- the object type to createsize- inputstream sizedigestType- digest of object- Returns:
- the digest of the complete file or the digest of the chunk
- Throws:
ContentAddressableStorageException- if the container does not exist
-
bulkPutObjects
public StorageBulkPutResult bulkPutObjects(java.lang.String containerName, java.util.List<java.lang.String> objectIds, MultiplexedStreamReader multiplexedStreamReader, DataCategory type, DigestType digestType) throws ContentAddressableStorageException, java.io.IOException
- Specified by:
bulkPutObjectsin interfaceDefaultOfferService- Throws:
ContentAddressableStorageExceptionjava.io.IOException
-
isObjectExist
public boolean isObjectExist(java.lang.String containerName, java.lang.String objectId) throws ContentAddressableStorageExceptionDescription copied from interface:DefaultOfferServiceCheck if object exists- Specified by:
isObjectExistin interfaceDefaultOfferService- Parameters:
containerName- the container suppose to contain the objectobjectId- the objectId to check- Returns:
- true if object exists, false otherwise
- Throws:
ContentAddressableStorageServerExceptionContentAddressableStorageException
-
getCapacity
public ContainerInformation getCapacity(java.lang.String containerName) throws ContentAddressableStorageException
Description copied from interface:DefaultOfferServiceGet container capacity- Specified by:
getCapacityin interfaceDefaultOfferService- Parameters:
containerName- the container name- Returns:
- Json with usableSpace information
- Throws:
ContentAddressableStorageNotFoundException- thrown if the container does not existContentAddressableStorageServerExceptionContentAddressableStorageException
-
deleteObject
public void deleteObject(java.lang.String containerName, java.lang.String objectId, DataCategory type) throws ContentAddressableStorageExceptionDescription copied from interface:DefaultOfferServiceDeletes a object representing the data at location containerName/objectName- Specified by:
deleteObjectin interfaceDefaultOfferService- Parameters:
containerName- container where this exists.objectId- the objectId to deletetype- the object type to delete- Throws:
ContentAddressableStorageNotFoundException- Thrown when the container cannot be located or the blob cannot be located in the container.ContentAddressableStorageException- Thrown when delete action failed due some other failure
-
getMetadata
public StorageMetadataResult getMetadata(java.lang.String containerName, java.lang.String objectId, boolean noCache) throws ContentAddressableStorageException
Description copied from interface:DefaultOfferServiceGet Metadata- Specified by:
getMetadatain interfaceDefaultOfferService- Returns:
- StorageMetadataResult
- Throws:
ContentAddressableStorageException
-
getBulkMetadata
public StorageBulkMetadataResult getBulkMetadata(java.lang.String containerName, java.util.List<java.lang.String> objectIds, java.lang.Boolean noCache) throws ContentAddressableStorageException
- Specified by:
getBulkMetadatain interfaceDefaultOfferService- Throws:
ContentAddressableStorageException
-
listObjects
public void listObjects(java.lang.String containerName, ObjectListingListener objectListingListener) throws java.io.IOException, ContentAddressableStorageExceptionDescription copied from interface:DefaultOfferServiceList container objects- Specified by:
listObjectsin interfaceDefaultOfferService- Parameters:
containerName- the container nameobjectListingListener- a listener to which are reported found object entries- Throws:
java.io.IOExceptionContentAddressableStorageException
-
getOfferLogs
public java.util.List<OfferLog> getOfferLogs(java.lang.String containerName, java.lang.Long offset, int limit, Order order) throws ContentAddressableStorageDatabaseException
Description copied from interface:DefaultOfferServiceGet the offer log of objects created in offer container- Specified by:
getOfferLogsin interfaceDefaultOfferService- Parameters:
containerName- container the container nameoffset- the offset of the object before the wanted listlimit- number of objects wantedorder- order of search- Returns:
- list of object informations
- Throws:
ContentAddressableStorageDatabaseException- Database error
-
compactOfferLogs
public void compactOfferLogs() throws java.lang.Exception- Specified by:
compactOfferLogsin interfaceDefaultOfferService- Throws:
java.lang.Exception
-
log
public void log(com.google.common.base.Stopwatch timer, java.lang.String action, java.lang.String task)
-
-