Skip to content

Commit

Permalink
Move directory instead of file
Browse files Browse the repository at this point in the history
  • Loading branch information
TadCordle committed Oct 4, 2019
1 parent 4743e68 commit 3ce33ae
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,11 @@ Optional<CachedLayer> retrieveTarLayer(DescriptorDigest diffId)
Optional<ContainerConfigurationTemplate> retrieveLocalConfig(DescriptorDigest imageId)
throws IOException {
Path configPath =
cacheStorageFiles.getLocalDirectory().resolve("config").resolve(imageId.getHash());
cacheStorageFiles
.getLocalDirectory()
.resolve("config")
.resolve(imageId.getHash())
.resolve("config.json");
if (!Files.exists(configPath)) {
return Optional.empty();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,9 +342,24 @@ void writeMetadata(ImageReference imageReference, V21ManifestTemplate manifestTe
void writeLocalConfig(
DescriptorDigest imageId, ContainerConfigurationTemplate containerConfiguration)
throws IOException {
Path configDirectory = cacheStorageFiles.getLocalDirectory().resolve("config");
Files.createDirectories(configDirectory);
writeMetadata(containerConfiguration, configDirectory.resolve(imageId.getHash()));
Files.createDirectories(cacheStorageFiles.getLocalDirectory().resolve("config"));
Files.createDirectories(cacheStorageFiles.getTemporaryDirectory());
try (TempDirectoryProvider tempDirectoryProvider = new TempDirectoryProvider()) {
Path temporaryLayerDirectory =
tempDirectoryProvider.newDirectory(cacheStorageFiles.getTemporaryDirectory());
Path temporaryConfig = temporaryLayerDirectory.resolve("config.json");
temporaryConfig.toFile().deleteOnExit();

try (OutputStream outputStream = Files.newOutputStream(temporaryConfig)) {
JsonTemplateMapper.writeTo(containerConfiguration, outputStream);
}

// Moves the temporary directory to directory named with image ID
// (temp/config.json -> <imageID>/config.json)
Path destination =
cacheStorageFiles.getLocalDirectory().resolve("config").resolve(imageId.getHash());
moveIfDoesNotExist(temporaryLayerDirectory, destination);
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -251,12 +251,15 @@ public void testRetrieveTarLayer() throws IOException, CacheCorruptedException {
@Test
public void testRetrieveLocalConfig() throws IOException, URISyntaxException, DigestException {
Path cacheDirectory = temporaryFolder.newFolder().toPath();
Path configDirectory = cacheDirectory.resolve("local").resolve("config");
Path configDirectory =
cacheDirectory
.resolve("local")
.resolve("config")
.resolve("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
Files.createDirectories(configDirectory);
Files.copy(
Paths.get(Resources.getResource("core/json/containerconfig.json").toURI()),
configDirectory.resolve(
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"));
configDirectory.resolve("config.json"));

CacheStorageFiles cacheStorageFiles = new CacheStorageFiles(cacheDirectory);
CacheStorageReader cacheStorageReader = new CacheStorageReader(cacheStorageFiles);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,8 @@ public void testWriteLocalConfig() throws IOException, URISyntaxException, Diges
cacheStorageFiles
.getLocalDirectory()
.resolve("config")
.resolve("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
.resolve("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
.resolve("config.json");
Assert.assertTrue(Files.exists(savedConfigPath));
ContainerConfigurationTemplate savedContainerConfig =
JsonTemplateMapper.readJsonFromFile(savedConfigPath, ContainerConfigurationTemplate.class);
Expand Down

0 comments on commit 3ce33ae

Please sign in to comment.