@Test public void getObjectDigestExistingObject() throws Exception { doReturn(Optional.of( new TapeObjectReferentialEntity(new TapeLibraryObjectReferentialId("containerName", "objectName"), 0L, "SHA-512", "digest", "storageId", null, null, null)) ).when(objectReferentialRepository).find(any(), any()); String digest = tapeLibraryContentAddressableStorage .getObjectDigest("containerName", "objectName", DigestType.SHA512, true); assertThat(digest).isEqualTo("digest"); verify(objectReferentialRepository).find("containerName", "objectName"); Mockito.verifyNoMoreInteractions(basicFileStorage, objectReferentialRepository, archiveReferentialRepository, fileBucketTarCreatorManager, readWriteQueueRepository, tapeCatalogService); }
@Override public String getObjectDigest(String containerName, String objectName, DigestType algo, boolean noCache) throws ContentAddressableStorageException { LOGGER.debug(String.format("Get digest of object %s in container %s", objectName, containerName)); try { Optional<TapeObjectReferentialEntity> objectReferentialEntity = objectReferentialRepository.find(containerName, objectName); if (!objectReferentialEntity.isPresent()) { throw new ContentAddressableStorageNotFoundException( String.format("No such object %s in container %s", objectName, containerName)); } if (!algo.getName().equals(objectReferentialEntity.get().getDigestType())) { throw new ContentAddressableStorageNotFoundException( String.format("Digest algorithm mismatch for object %s in container %s. Expected %s, found %s", objectName, containerName, algo.getName(), objectReferentialEntity.get().getDigestType())); } return objectReferentialEntity.get().getDigest(); } catch (ObjectReferentialException ex) { throw new ContentAddressableStorageServerException( String.format("Could not get digest of object %s in container %s", objectName, containerName), ex); } }
TapeLibraryContentAddressableStorage implements ContentAddressableStorage { @Override public String getObjectDigest(String containerName, String objectName, DigestType algo, boolean noCache) throws ContentAddressableStorageException { LOGGER.debug(String.format("Get digest of object %s in container %s", objectName, containerName)); try { Optional<TapeObjectReferentialEntity> objectReferentialEntity = objectReferentialRepository.find(containerName, objectName); if (!objectReferentialEntity.isPresent()) { throw new ContentAddressableStorageNotFoundException( String.format("No such object %s in container %s", objectName, containerName)); } if (!algo.getName().equals(objectReferentialEntity.get().getDigestType())) { throw new ContentAddressableStorageNotFoundException( String.format("Digest algorithm mismatch for object %s in container %s. Expected %s, found %s", objectName, containerName, algo.getName(), objectReferentialEntity.get().getDigestType())); } return objectReferentialEntity.get().getDigest(); } catch (ObjectReferentialException ex) { throw new ContentAddressableStorageServerException( String.format("Could not get digest of object %s in container %s", objectName, containerName), ex); } } }
TapeLibraryContentAddressableStorage implements ContentAddressableStorage { @Override public String getObjectDigest(String containerName, String objectName, DigestType algo, boolean noCache) throws ContentAddressableStorageException { LOGGER.debug(String.format("Get digest of object %s in container %s", objectName, containerName)); try { Optional<TapeObjectReferentialEntity> objectReferentialEntity = objectReferentialRepository.find(containerName, objectName); if (!objectReferentialEntity.isPresent()) { throw new ContentAddressableStorageNotFoundException( String.format("No such object %s in container %s", objectName, containerName)); } if (!algo.getName().equals(objectReferentialEntity.get().getDigestType())) { throw new ContentAddressableStorageNotFoundException( String.format("Digest algorithm mismatch for object %s in container %s. Expected %s, found %s", objectName, containerName, algo.getName(), objectReferentialEntity.get().getDigestType())); } return objectReferentialEntity.get().getDigest(); } catch (ObjectReferentialException ex) { throw new ContentAddressableStorageServerException( String.format("Could not get digest of object %s in container %s", objectName, containerName), ex); } } TapeLibraryContentAddressableStorage(
        BasicFileStorage basicFileStorage,
        ObjectReferentialRepository objectReferentialRepository,
        ArchiveReferentialRepository archiveReferentialRepository,
        ReadRequestReferentialRepository readRequestReferentialRepository,
        FileBucketTarCreatorManager fileBucketTarCreatorManager,
        QueueRepository readWriteQueue, TapeCatalogService tapeCatalogService,
        String outputTarStorageFolder,
        ArchiveOutputRetentionPolicy archiveOutputRetentionPolicy); }
TapeLibraryContentAddressableStorage implements ContentAddressableStorage { @Override public String getObjectDigest(String containerName, String objectName, DigestType algo, boolean noCache) throws ContentAddressableStorageException { LOGGER.debug(String.format("Get digest of object %s in container %s", objectName, containerName)); try { Optional<TapeObjectReferentialEntity> objectReferentialEntity = objectReferentialRepository.find(containerName, objectName); if (!objectReferentialEntity.isPresent()) { throw new ContentAddressableStorageNotFoundException( String.format("No such object %s in container %s", objectName, containerName)); } if (!algo.getName().equals(objectReferentialEntity.get().getDigestType())) { throw new ContentAddressableStorageNotFoundException( String.format("Digest algorithm mismatch for object %s in container %s. Expected %s, found %s", objectName, containerName, algo.getName(), objectReferentialEntity.get().getDigestType())); } return objectReferentialEntity.get().getDigest(); } catch (ObjectReferentialException ex) { throw new ContentAddressableStorageServerException( String.format("Could not get digest of object %s in container %s", objectName, containerName), ex); } } TapeLibraryContentAddressableStorage(
        BasicFileStorage basicFileStorage,
        ObjectReferentialRepository objectReferentialRepository,
        ArchiveReferentialRepository archiveReferentialRepository,
        ReadRequestReferentialRepository readRequestReferentialRepository,
        FileBucketTarCreatorManager fileBucketTarCreatorManager,
        QueueRepository readWriteQueue, TapeCatalogService tapeCatalogService,
        String outputTarStorageFolder,
        ArchiveOutputRetentionPolicy archiveOutputRetentionPolicy); @Override void createContainer(String containerName); @Override boolean isExistingContainer(String containerName); @Override String putObject(String containerName, String objectName, InputStream stream, DigestType digestType,
        Long size); @Override ObjectContent getObject(String containerName, String objectName); @Override String createReadOrderRequest(String containerName, List<String> objectsIds); @Override void removeReadOrderRequest(String readRequestID); @Override void deleteObject(String containerName, String objectName); @Override boolean isExistingObject(String containerName, String objectName); @Override String getObjectDigest(String containerName, String objectName, DigestType algo, boolean noCache); @Override ContainerInformation getContainerInformation(String containerName); @Override MetadatasObject getObjectMetadata(String containerName, String objectName, boolean noCache); @Override void listContainer(String containerName, ObjectListingListener objectListingListener); @Override void close(); }
TapeLibraryContentAddressableStorage implements ContentAddressableStorage { @Override public String getObjectDigest(String containerName, String objectName, DigestType algo, boolean noCache) throws ContentAddressableStorageException { LOGGER.debug(String.format("Get digest of object %s in container %s", objectName, containerName)); try { Optional<TapeObjectReferentialEntity> objectReferentialEntity = objectReferentialRepository.find(containerName, objectName); if (!objectReferentialEntity.isPresent()) { throw new ContentAddressableStorageNotFoundException( String.format("No such object %s in container %s", objectName, containerName)); } if (!algo.getName().equals(objectReferentialEntity.get().getDigestType())) { throw new ContentAddressableStorageNotFoundException( String.format("Digest algorithm mismatch for object %s in container %s. Expected %s, found %s", objectName, containerName, algo.getName(), objectReferentialEntity.get().getDigestType())); } return objectReferentialEntity.get().getDigest(); } catch (ObjectReferentialException ex) { throw new ContentAddressableStorageServerException( String.format("Could not get digest of object %s in container %s", objectName, containerName), ex); } } TapeLibraryContentAddressableStorage(
        BasicFileStorage basicFileStorage,
        ObjectReferentialRepository objectReferentialRepository,
        ArchiveReferentialRepository archiveReferentialRepository,
        ReadRequestReferentialRepository readRequestReferentialRepository,
        FileBucketTarCreatorManager fileBucketTarCreatorManager,
        QueueRepository readWriteQueue, TapeCatalogService tapeCatalogService,
        String outputTarStorageFolder,
        ArchiveOutputRetentionPolicy archiveOutputRetentionPolicy); @Override void createContainer(String containerName); @Override boolean isExistingContainer(String containerName); @Override String putObject(String containerName, String objectName, InputStream stream, DigestType digestType,
        Long size); @Override ObjectContent getObject(String containerName, String objectName); @Override String createReadOrderRequest(String containerName, List<String> objectsIds); @Override void removeReadOrderRequest(String readRequestID); @Override void deleteObject(String containerName, String objectName); @Override boolean isExistingObject(String containerName, String objectName); @Override String getObjectDigest(String containerName, String objectName, DigestType algo, boolean noCache); @Override ContainerInformation getContainerInformation(String containerName); @Override MetadatasObject getObjectMetadata(String containerName, String objectName, boolean noCache); @Override void listContainer(String containerName, ObjectListingListener objectListingListener); @Override void close();  }