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, 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 StorageBulkPutResult
bulkPutObjects(java.lang.String containerName, java.util.List<java.lang.String> objectIds, MultiplexedStreamReader multiplexedStreamReader, DataCategory type, DigestType digestType)
java.util.Map<java.lang.String,AccessRequestStatus>
checkAccessRequestStatuses(java.util.List<java.lang.String> accessRequestIds, boolean adminCrossTenantAccessRequestAllowed)
boolean
checkObjectAvailability(java.lang.String containerName, java.util.List<java.lang.String> objectNames)
void
compactOfferLogs()
java.lang.String
createAccessRequest(java.lang.String containerName, java.util.List<java.lang.String> objectNames)
Create access request (asynchronous read from tape to local FS) for the given @containerName and objects list.java.lang.String
createObject(java.lang.String containerName, java.lang.String objectId, java.io.InputStream objectPart, DataCategory type, long size, DigestType digestType)
Create object on container with objectId Receive object part of object.void
deleteObject(java.lang.String containerName, java.lang.String objectId, DataCategory type)
Deletes a object representing the data at location containerName/objectNameStorageBulkMetadataResult
getBulkMetadata(java.lang.String containerName, java.util.List<java.lang.String> objectIds, java.lang.Boolean noCache)
ContainerInformation
getCapacity(java.lang.String containerName)
Get container capacityStorageMetadataResult
getMetadata(java.lang.String containerName, java.lang.String objectId, boolean noCache)
Get MetadataObjectContent
getObject(java.lang.String containerName, java.lang.String objectId)
Get object on offer as an inputStreamjava.lang.String
getObjectDigest(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 containerboolean
isObjectExist(java.lang.String containerName, java.lang.String objectId)
Check if object existsvoid
listObjects(java.lang.String containerName, ObjectListingListener objectListingListener)
List container objectsvoid
log(com.google.common.base.Stopwatch timer, java.lang.String action, java.lang.String task)
void
removeAccessRequest(java.lang.String accessRequestId, boolean adminCrossTenantAccessRequestAllowed)
-
-
-
Constructor Detail
-
DefaultOfferServiceImpl
public DefaultOfferServiceImpl(ContentAddressableStorage defaultStorage, 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 ContentAddressableStorageException
Description copied from interface:DefaultOfferService
Get offer storage digest of object- Specified by:
getObjectDigest
in 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:DefaultOfferService
Get object on offer as an inputStream- Specified by:
getObject
in 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
-
createAccessRequest
public java.lang.String createAccessRequest(java.lang.String containerName, java.util.List<java.lang.String> objectNames) throws ContentAddressableStorageException
Description copied from interface:DefaultOfferService
Create access request (asynchronous read from tape to local FS) for the given @containerName and objects list. Return access request id- Specified by:
createAccessRequest
in interfaceDefaultOfferService
- Parameters:
containerName
- the container containing the objectobjectNames
- the objects ids- Returns:
- acess request id
- Throws:
ContentAddressableStorageNotFoundException
- thrown when object does not existsContentAddressableStorageException
- thrown when a server error occurs
-
checkAccessRequestStatuses
public java.util.Map<java.lang.String,AccessRequestStatus> checkAccessRequestStatuses(java.util.List<java.lang.String> accessRequestIds, boolean adminCrossTenantAccessRequestAllowed) throws ContentAddressableStorageException
- Specified by:
checkAccessRequestStatuses
in interfaceDefaultOfferService
- Throws:
ContentAddressableStorageException
-
removeAccessRequest
public void removeAccessRequest(java.lang.String accessRequestId, boolean adminCrossTenantAccessRequestAllowed) throws ContentAddressableStorageException
- Specified by:
removeAccessRequest
in interfaceDefaultOfferService
- Throws:
ContentAddressableStorageException
-
checkObjectAvailability
public boolean checkObjectAvailability(java.lang.String containerName, java.util.List<java.lang.String> objectNames) throws ContentAddressableStorageException
- Specified by:
checkObjectAvailability
in interfaceDefaultOfferService
- Throws:
ContentAddressableStorageException
-
createObject
public java.lang.String createObject(java.lang.String containerName, java.lang.String objectId, java.io.InputStream objectPart, DataCategory type, long size, DigestType digestType) throws ContentAddressableStorageException
Description copied from interface:DefaultOfferService
Create object on container with objectId Receive object part of object. Actually these parts HAVE TO be send in the great order.- Specified by:
createObject
in 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:
bulkPutObjects
in interfaceDefaultOfferService
- Throws:
ContentAddressableStorageException
java.io.IOException
-
isObjectExist
public boolean isObjectExist(java.lang.String containerName, java.lang.String objectId) throws ContentAddressableStorageException
Description copied from interface:DefaultOfferService
Check if object exists- Specified by:
isObjectExist
in interfaceDefaultOfferService
- Parameters:
containerName
- the container suppose to contain the objectobjectId
- the objectId to check- Returns:
- true if object exists, false otherwise
- Throws:
ContentAddressableStorageServerException
ContentAddressableStorageException
-
getCapacity
public ContainerInformation getCapacity(java.lang.String containerName) throws ContentAddressableStorageException
Description copied from interface:DefaultOfferService
Get container capacity- Specified by:
getCapacity
in interfaceDefaultOfferService
- Parameters:
containerName
- the container name- Returns:
- Json with usableSpace information
- Throws:
ContentAddressableStorageNotFoundException
- thrown if the container does not existContentAddressableStorageServerException
ContentAddressableStorageException
-
deleteObject
public void deleteObject(java.lang.String containerName, java.lang.String objectId, DataCategory type) throws ContentAddressableStorageException
Description copied from interface:DefaultOfferService
Deletes a object representing the data at location containerName/objectName- Specified by:
deleteObject
in 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:DefaultOfferService
Get Metadata- Specified by:
getMetadata
in 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:
getBulkMetadata
in interfaceDefaultOfferService
- Throws:
ContentAddressableStorageException
-
listObjects
public void listObjects(java.lang.String containerName, ObjectListingListener objectListingListener) throws java.io.IOException, ContentAddressableStorageException
Description copied from interface:DefaultOfferService
List container objects- Specified by:
listObjects
in interfaceDefaultOfferService
- Parameters:
containerName
- the container nameobjectListingListener
- a listener to which are reported found object entries- Throws:
java.io.IOException
ContentAddressableStorageException
-
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:DefaultOfferService
Get the offer log of objects created in offer container- Specified by:
getOfferLogs
in 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:
compactOfferLogs
in interfaceDefaultOfferService
- Throws:
java.lang.Exception
-
log
public void log(com.google.common.base.Stopwatch timer, java.lang.String action, java.lang.String task)
-
-