/** * Gets the filename for the layer file. The filename is in the form {@code <layer diff * ID>.layer}. * * @param layerDiffId the layer's diff ID * @return the layer filename */ String getLayerFilename(DescriptorDigest layerDiffId) { return layerDiffId.getHash(); }
/** * Resolves a selector file. * * @param selector the selector digest * @return the selector file */ Path getSelectorFile(DescriptorDigest selector) { return cacheDirectory.resolve(SELECTORS_DIRECTORY).resolve(selector.getHash()); }
/** * Gets the directory for the layer with digest {@code layerDigest}. * * @param layerDigest the digest of the layer * @return the directory for that {@code layerDigest} */ Path getLayerDirectory(DescriptorDigest layerDigest) { return getLayersDirectory().resolve(layerDigest.getHash()); }
+ selectorFile + "` for selector `" + selector.getHash() + "`, but got: " + selectorFileContents);
Blobs.writeToFileWithLock(Blobs.from(layerDigest.getHash()), temporarySelectorFile);
throw new CacheCorruptedException( "Multiple layer files found for layer with digest " + layerDigest.getHash() + " in directory: " + layerDirectory);
public Blob toTarballBlob(ImageReference imageReference) throws IOException { TarStreamBuilder tarStreamBuilder = new TarStreamBuilder(); DockerLoadManifestEntryTemplate manifestTemplate = new DockerLoadManifestEntryTemplate(); // Adds all the layers to the tarball and manifest. for (Layer layer : image.getLayers()) { String layerName = layer.getBlobDescriptor().getDigest().getHash() + LAYER_FILE_EXTENSION; tarStreamBuilder.addBlobEntry( layer.getBlob(), layer.getBlobDescriptor().getSize(), layerName); manifestTemplate.addLayerFile(layerName); } // Adds the container configuration to the tarball. Blob containerConfigurationBlob = new ImageToJsonTranslator(image).getContainerConfigurationBlob(); tarStreamBuilder.addByteEntry( Blobs.writeToByteArray(containerConfigurationBlob), CONTAINER_CONFIGURATION_JSON_FILE_NAME); // Adds the manifest to tarball. manifestTemplate.setRepoTags(imageReference.toStringWithTag()); tarStreamBuilder.addByteEntry( Blobs.writeToByteArray( JsonTemplateMapper.toBlob(Collections.singletonList(manifestTemplate))), MANIFEST_JSON_FILE_NAME); return tarStreamBuilder.toBlob(); } }
/** * Gets the filename for the layer file. The filename is in the form {@code <layer diff * ID>.layer}. * * @param layerDiffId the layer's diff ID * @return the layer filename */ String getLayerFilename(DescriptorDigest layerDiffId) { return layerDiffId.getHash(); }
/** * Gets the filename for the layer file. The filename is in the form {@code <layer diff * ID>.layer}. * * @param layerDiffId the layer's diff ID * @return the layer filename */ String getLayerFilename(DescriptorDigest layerDiffId) { return layerDiffId.getHash(); }
/** * Resolves a selector file. * * @param selector the selector digest * @return the selector file */ Path getSelectorFile(DescriptorDigest selector) { return cacheDirectory.resolve(SELECTORS_DIRECTORY).resolve(selector.getHash()); }
/** * Resolves a selector file. * * @param selector the selector digest * @return the selector file */ Path getSelectorFile(DescriptorDigest selector) { return cacheDirectory.resolve(SELECTORS_DIRECTORY).resolve(selector.getHash()); }
/** * Gets the directory for the layer with digest {@code layerDigest}. * * @param layerDigest the digest of the layer * @return the directory for that {@code layerDigest} */ Path getLayerDirectory(DescriptorDigest layerDigest) { return getLayersDirectory().resolve(layerDigest.getHash()); }
/** * Gets the directory for the layer with digest {@code layerDigest}. * * @param layerDigest the digest of the layer * @return the directory for that {@code layerDigest} */ Path getLayerDirectory(DescriptorDigest layerDigest) { return getLayersDirectory().resolve(layerDigest.getHash()); }
+ selectorFile + "` for selector `" + selector.getHash() + "`, but got: " + selectorFileContents);
Blobs.writeToFileWithLock(Blobs.from(layerDigest.getHash()), temporarySelectorFile);
+ selectorFile + "` for selector `" + selector.getHash() + "`, but got: " + selectorFileContents);
Blobs.writeToFileWithLock(Blobs.from(layerDigest.getHash()), temporarySelectorFile);
throw new CacheCorruptedException( "Multiple layer files found for layer with digest " + layerDigest.getHash() + " in directory: " + layerDirectory);
public Blob toTarballBlob(ImageReference imageReference) throws IOException { TarStreamBuilder tarStreamBuilder = new TarStreamBuilder(); DockerLoadManifestEntryTemplate manifestTemplate = new DockerLoadManifestEntryTemplate(); // Adds all the layers to the tarball and manifest. for (Layer layer : image.getLayers()) { String layerName = layer.getBlobDescriptor().getDigest().getHash() + LAYER_FILE_EXTENSION; tarStreamBuilder.addBlobEntry( layer.getBlob(), layer.getBlobDescriptor().getSize(), layerName); manifestTemplate.addLayerFile(layerName); } // Adds the container configuration to the tarball. Blob containerConfigurationBlob = new ImageToJsonTranslator(image).getContainerConfigurationBlob(); tarStreamBuilder.addByteEntry( Blobs.writeToByteArray(containerConfigurationBlob), CONTAINER_CONFIGURATION_JSON_FILE_NAME); // Adds the manifest to tarball. manifestTemplate.setRepoTags(imageReference.toStringWithTag()); tarStreamBuilder.addByteEntry( Blobs.writeToByteArray( JsonTemplateMapper.toBlob(Collections.singletonList(manifestTemplate))), MANIFEST_JSON_FILE_NAME); return tarStreamBuilder.toBlob(); } }
public Blob toTarballBlob(ImageReference imageReference) throws IOException { TarStreamBuilder tarStreamBuilder = new TarStreamBuilder(); DockerLoadManifestEntryTemplate manifestTemplate = new DockerLoadManifestEntryTemplate(); // Adds all the layers to the tarball and manifest. for (Layer layer : image.getLayers()) { String layerName = layer.getBlobDescriptor().getDigest().getHash() + LAYER_FILE_EXTENSION; tarStreamBuilder.addBlobEntry( layer.getBlob(), layer.getBlobDescriptor().getSize(), layerName); manifestTemplate.addLayerFile(layerName); } // Adds the container configuration to the tarball. Blob containerConfigurationBlob = new ImageToJsonTranslator(image).getContainerConfigurationBlob(); tarStreamBuilder.addByteEntry( Blobs.writeToByteArray(containerConfigurationBlob), CONTAINER_CONFIGURATION_JSON_FILE_NAME); // Adds the manifest to tarball. manifestTemplate.setRepoTags(imageReference.toStringWithTag()); tarStreamBuilder.addByteEntry( Blobs.writeToByteArray( JsonTemplateMapper.toBlob(Collections.singletonList(manifestTemplate))), MANIFEST_JSON_FILE_NAME); return tarStreamBuilder.toBlob(); } }