Class ReadOnlyShieldStorageDistribution
- java.lang.Object
-
- fr.gouv.vitam.storage.engine.server.distribution.impl.ReadOnlyShieldStorageDistribution
-
- All Implemented Interfaces:
VitamAutoCloseable,StorageDistribution,java.lang.AutoCloseable
public class ReadOnlyShieldStorageDistribution extends java.lang.Object implements StorageDistribution
Proxy StorageDistribution implementation that prevents write operations on ReadOnly deployments (secondary site)
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BulkObjectStoreResponsebulkCreateFromWorkspace(java.lang.String strategyId, BulkObjectStoreRequest bulkObjectStoreRequest, java.lang.String requester)java.util.Map<java.lang.String,AccessRequestStatus>checkAccessRequestStatuses(java.lang.String strategyId, java.lang.String offerId, java.util.List<java.lang.String> accessRequestIds, boolean adminCrossTenantAccessRequestAllowed)booleancheckObjectAvailability(java.lang.String strategyId, java.lang.String offerId, DataCategory dataCategory, java.util.List<java.lang.String> objectsNames)java.util.Map<java.lang.String,java.lang.Boolean>checkObjectExisting(java.lang.String strategyId, java.lang.String objectId, DataCategory category, java.util.List<java.lang.String> offerIds)Verify if object exists.voidclose()StoredInfoResultcopyObjectFromOfferToOffer(DataContext context, java.lang.String sourceOffer, java.lang.String destinationOffer)copy object from on offer to an anotherjava.util.Optional<java.lang.String>createAccessRequestIfRequired(java.lang.String strategyId, java.lang.String offerId, DataCategory dataCategory, java.util.List<java.lang.String> objectsNames)voiddeleteObjectInAllOffers(java.lang.String strategyId, DataContext context)Delete an objectvoiddeleteObjectInOffers(java.lang.String strategyId, DataContext context, java.util.List<java.lang.String> offers)Delete an object in offersjava.util.List<BatchObjectInformationResponse>getBatchObjectInformation(java.lang.String strategyId, DataCategory type, java.util.List<java.lang.String> objectIds, java.util.List<java.lang.String> offerIds)javax.ws.rs.core.ResponsegetContainerByCategory(java.lang.String strategyId, java.lang.String origin, java.lang.String objectId, DataCategory category, AccessLogInfoModel logInformation)Get a specific Object binary data as an input streamjavax.ws.rs.core.ResponsegetContainerByCategory(java.lang.String strategyId, java.lang.String origin, java.lang.String objectId, DataCategory category, java.lang.String offerId)Get a specific Object binary data as an input streamcom.fasterxml.jackson.databind.JsonNodegetContainerInformation(java.lang.String strategyId)Get Storage Information (availability and capacity) for the requested tenant + strategycom.fasterxml.jackson.databind.JsonNodegetContainerInformation(java.lang.String strategyId, DataCategory type, java.lang.String objectId, java.util.List<java.lang.String> offerIds, boolean noCache)Get a specific Object informationjava.util.List<java.lang.String>getOfferIds(java.lang.String strategyId)get offer ids listRequestResponse<OfferLog>getOfferLogs(java.lang.String strategyId, DataCategory category, java.lang.Long offset, int limit, Order order)Get offer log from referentRequestResponse<OfferLog>getOfferLogsByOfferId(java.lang.String strategyId, java.lang.String offerId, DataCategory category, java.lang.Long offset, int limit, Order order)Get offer log from the given offerjava.lang.StringgetReferentOffer(java.lang.String strategyId)java.util.Map<java.lang.String,StorageStrategy>getStrategies()Retrieve all the available storage strategiesjavax.ws.rs.core.ResponselaunchOfferLogCompaction(java.lang.String offerReferenceId, java.lang.Integer tenantId)CloseableIterator<ObjectEntry>listContainerObjects(java.lang.String strategyId, DataCategory category)List container objectsCloseableIterator<ObjectEntry>listContainerObjectsForOffer(DataCategory category, java.lang.String offerId, boolean includeDisabled)voidremoveAccessRequest(java.lang.String strategyId, java.lang.String offerId, java.lang.String accessRequestId, boolean adminCrossTenantAccessRequestAllowed)StoredInfoResultstoreDataInAllOffers(java.lang.String strategyId, java.lang.String objectId, ObjectDescription createObjectDescription, DataCategory category, java.lang.String requester)Store data of any type for given tenant on storage offers associated to given strategyStoredInfoResultstoreDataInOffers(java.lang.String strategyId, java.lang.String origin, StreamAndInfo streamAndInfo, java.lang.String objectId, DataCategory category, java.lang.String requester, java.util.List<java.lang.String> offerIds)StoredInfoResultstoreDataInOffers(java.lang.String strategyId, java.lang.String origin, java.lang.String objectId, DataCategory category, java.lang.String requester, java.util.List<java.lang.String> offerIds, javax.ws.rs.core.Response response)Store data of any type for given tenant on the given storage offer.
-
-
-
Method Detail
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfaceVitamAutoCloseable
-
copyObjectFromOfferToOffer
public StoredInfoResult copyObjectFromOfferToOffer(DataContext context, java.lang.String sourceOffer, java.lang.String destinationOffer)
Description copied from interface:StorageDistributioncopy object from on offer to an another- Specified by:
copyObjectFromOfferToOfferin interfaceStorageDistribution- Parameters:
context- the contextsourceOffer- source offerdestinationOffer- destination Offer- Returns:
- StoredInfoResult Object
-
storeDataInAllOffers
public StoredInfoResult storeDataInAllOffers(java.lang.String strategyId, java.lang.String objectId, ObjectDescription createObjectDescription, DataCategory category, java.lang.String requester)
Description copied from interface:StorageDistributionStore data of any type for given tenant on storage offers associated to given strategy- Specified by:
storeDataInAllOffersin interfaceStorageDistribution- Parameters:
strategyId- id of the strategyobjectId- the workspace URI of the data to be retrieve (and stored in offer)createObjectDescription- object additional informationscategory- the category of the data to store (unit, object...)requester- the requester information- Returns:
- a StoredInfoResult containing informations about the created Data
-
storeDataInOffers
public StoredInfoResult storeDataInOffers(java.lang.String strategyId, java.lang.String origin, java.lang.String objectId, DataCategory category, java.lang.String requester, java.util.List<java.lang.String> offerIds, javax.ws.rs.core.Response response)
Description copied from interface:StorageDistributionStore data of any type for given tenant on the given storage offer.- Specified by:
storeDataInOffersin interfaceStorageDistribution- Parameters:
strategyId- id of the strategyorigin- origin of the transaction (normal, bulk, offer_sync)objectId- the workspace URI of the data to be retrieve (and stored incategory- the category of the data to store (unit, object...)requester- the requester informationofferIds- offer identifiersresponse- the response- Returns:
- a StoredInfoResult containing information about the created Data
-
storeDataInOffers
public StoredInfoResult storeDataInOffers(java.lang.String strategyId, java.lang.String origin, StreamAndInfo streamAndInfo, java.lang.String objectId, DataCategory category, java.lang.String requester, java.util.List<java.lang.String> offerIds)
- Specified by:
storeDataInOffersin interfaceStorageDistribution- Parameters:
strategyId- id of the strategyorigin- origin of the transaction (normal, bulk, offer_sync)streamAndInfo- streamAndInfoobjectId- id of the objectcategory- the object type to listrequester- the requester informationofferIds- offer identfiers- Returns:
- StoredInfoResult
-
getOfferIds
public java.util.List<java.lang.String> getOfferIds(java.lang.String strategyId) throws StorageExceptionDescription copied from interface:StorageDistributionget offer ids list- Specified by:
getOfferIdsin interfaceStorageDistribution- Parameters:
strategyId- strategy id- Returns:
- offers ids list
- Throws:
StorageException
-
getContainerInformation
public com.fasterxml.jackson.databind.JsonNode getContainerInformation(java.lang.String strategyId) throws StorageExceptionDescription copied from interface:StorageDistributionGet Storage Information (availability and capacity) for the requested tenant + strategy- Specified by:
getContainerInformationin interfaceStorageDistribution- Parameters:
strategyId- id of the strategy- Returns:
- a JsonNode containing informations about the storage
- Throws:
StorageNotFoundException- Thrown if the Container does not existStorageTechnicalException- Thrown in case of any technical problemStorageException
-
listContainerObjects
public CloseableIterator<ObjectEntry> listContainerObjects(java.lang.String strategyId, DataCategory category) throws StorageException
Description copied from interface:StorageDistributionList container objects- Specified by:
listContainerObjectsin interfaceStorageDistribution- Parameters:
strategyId- the strategy id to get offerscategory- the object type to list- Returns:
- a response with object listing
- Throws:
StorageException- thrown in case of any technical problem
-
listContainerObjectsForOffer
public CloseableIterator<ObjectEntry> listContainerObjectsForOffer(DataCategory category, java.lang.String offerId, boolean includeDisabled) throws StorageException
- Specified by:
listContainerObjectsForOfferin interfaceStorageDistribution- Throws:
StorageException
-
getOfferLogs
public RequestResponse<OfferLog> getOfferLogs(java.lang.String strategyId, DataCategory category, java.lang.Long offset, int limit, Order order) throws StorageException
Description copied from interface:StorageDistributionGet offer log from referent- Specified by:
getOfferLogsin interfaceStorageDistribution- Parameters:
strategyId- the strategy id to get offerscategory- the object type to listoffset- offset of the excluded objectlimit- the number of result wantedorder- order- Returns:
- list of offer log
- Throws:
StorageException- thrown in case of any technical problem
-
getOfferLogsByOfferId
public RequestResponse<OfferLog> getOfferLogsByOfferId(java.lang.String strategyId, java.lang.String offerId, DataCategory category, java.lang.Long offset, int limit, Order order) throws StorageException
Description copied from interface:StorageDistributionGet offer log from the given offer- Specified by:
getOfferLogsByOfferIdin interfaceStorageDistribution- Parameters:
strategyId- the strategy id to get offerscategory- the object type to listoffset- offset of the excluded objectlimit- the number of result wantedorder- order- Returns:
- list of offer log
- Throws:
StorageException- thrown in case of any technical problem
-
getContainerByCategory
public javax.ws.rs.core.Response getContainerByCategory(java.lang.String strategyId, java.lang.String origin, java.lang.String objectId, DataCategory category, AccessLogInfoModel logInformation) throws StorageExceptionDescription copied from interface:StorageDistributionGet a specific Object binary data as an input stream- Specified by:
getContainerByCategoryin interfaceStorageDistribution- Parameters:
strategyId- id of the strategyorigin- originobjectId- id of the objectcategory- category of the objectlogInformation- information for accessLog- Returns:
- an object as a Response with an InputStream
- Throws:
StorageNotFoundException- Thrown if the Container or the object does not existStorageTechnicalException- thrown if a technical error happenedStorageException
-
getContainerByCategory
public javax.ws.rs.core.Response getContainerByCategory(java.lang.String strategyId, java.lang.String origin, java.lang.String objectId, DataCategory category, java.lang.String offerId) throws StorageExceptionDescription copied from interface:StorageDistributionGet a specific Object binary data as an input stream- Specified by:
getContainerByCategoryin interfaceStorageDistribution- Parameters:
strategyId- id of the strategyorigin- originobjectId- id of the objectcategory- categoryofferId- offer identfier- Returns:
- an object as a Response with an InputStream
- Throws:
StorageNotFoundException- Thrown if the Container or the object does not existStorageTechnicalException- thrown if a technical error happenedStorageException
-
getContainerInformation
public com.fasterxml.jackson.databind.JsonNode getContainerInformation(java.lang.String strategyId, DataCategory type, java.lang.String objectId, java.util.List<java.lang.String> offerIds, boolean noCache) throws StorageExceptionDescription copied from interface:StorageDistributionGet a specific Object information- Specified by:
getContainerInformationin interfaceStorageDistribution- Parameters:
strategyId- id of the strategytype- data categoryobjectId- id of the objectofferIds- list id of offers- Returns:
- JsonNode containing informations about the requested object
- Throws:
StorageException
-
checkObjectExisting
public java.util.Map<java.lang.String,java.lang.Boolean> checkObjectExisting(java.lang.String strategyId, java.lang.String objectId, DataCategory category, java.util.List<java.lang.String> offerIds) throws StorageExceptionDescription copied from interface:StorageDistributionVerify if object exists. If an offer is not in hot offers in strategy, it is considered as not existing.- Specified by:
checkObjectExistingin interfaceStorageDistribution- Parameters:
strategyId- id of the strategyobjectId- id of the objectcategory- categoryofferIds- list id of offers- Returns:
- list of result existence by offerId
- Throws:
StorageException- StorageException
-
deleteObjectInAllOffers
public void deleteObjectInAllOffers(java.lang.String strategyId, DataContext context)Description copied from interface:StorageDistributionDelete an object- Specified by:
deleteObjectInAllOffersin interfaceStorageDistribution- Parameters:
strategyId- id of the strategy
-
deleteObjectInOffers
public void deleteObjectInOffers(java.lang.String strategyId, DataContext context, java.util.List<java.lang.String> offers)Description copied from interface:StorageDistributionDelete an object in offers- Specified by:
deleteObjectInOffersin interfaceStorageDistribution- Parameters:
strategyId- id of the strategycontext- contextoffers- offers
-
getBatchObjectInformation
public java.util.List<BatchObjectInformationResponse> getBatchObjectInformation(java.lang.String strategyId, DataCategory type, java.util.List<java.lang.String> objectIds, java.util.List<java.lang.String> offerIds) throws StorageException
- Specified by:
getBatchObjectInformationin interfaceStorageDistribution- Throws:
StorageException
-
bulkCreateFromWorkspace
public BulkObjectStoreResponse bulkCreateFromWorkspace(java.lang.String strategyId, BulkObjectStoreRequest bulkObjectStoreRequest, java.lang.String requester)
- Specified by:
bulkCreateFromWorkspacein interfaceStorageDistribution
-
getStrategies
public java.util.Map<java.lang.String,StorageStrategy> getStrategies() throws StorageException
Description copied from interface:StorageDistributionRetrieve all the available storage strategies- Specified by:
getStrategiesin interfaceStorageDistribution- Returns:
- all storage strategies by id
- Throws:
StorageException- if any unwanted technical issue happens
-
createAccessRequestIfRequired
public java.util.Optional<java.lang.String> createAccessRequestIfRequired(java.lang.String strategyId, java.lang.String offerId, DataCategory dataCategory, java.util.List<java.lang.String> objectsNames) throws StorageException- Specified by:
createAccessRequestIfRequiredin interfaceStorageDistribution- Throws:
StorageException
-
checkAccessRequestStatuses
public java.util.Map<java.lang.String,AccessRequestStatus> checkAccessRequestStatuses(java.lang.String strategyId, java.lang.String offerId, java.util.List<java.lang.String> accessRequestIds, boolean adminCrossTenantAccessRequestAllowed) throws StorageException
- Specified by:
checkAccessRequestStatusesin interfaceStorageDistribution- Throws:
StorageException
-
removeAccessRequest
public void removeAccessRequest(java.lang.String strategyId, java.lang.String offerId, java.lang.String accessRequestId, boolean adminCrossTenantAccessRequestAllowed) throws StorageException- Specified by:
removeAccessRequestin interfaceStorageDistribution- Throws:
StorageException
-
checkObjectAvailability
public boolean checkObjectAvailability(java.lang.String strategyId, java.lang.String offerId, DataCategory dataCategory, java.util.List<java.lang.String> objectsNames) throws StorageException- Specified by:
checkObjectAvailabilityin interfaceStorageDistribution- Throws:
StorageException
-
getReferentOffer
public java.lang.String getReferentOffer(java.lang.String strategyId) throws StorageTechnicalException, StorageNotFoundException- Specified by:
getReferentOfferin interfaceStorageDistribution- Throws:
StorageTechnicalExceptionStorageNotFoundException
-
launchOfferLogCompaction
public javax.ws.rs.core.Response launchOfferLogCompaction(java.lang.String offerReferenceId, java.lang.Integer tenantId) throws StorageException- Specified by:
launchOfferLogCompactionin interfaceStorageDistribution- Throws:
StorageException
-
-