diff options
author | HÃ¥kon Hallingstad <hakon@oath.com> | 2017-11-01 09:07:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-01 09:07:23 +0100 |
commit | c4e121b78594bb81f894fcfff1cb1ab4b4b8edcb (patch) | |
tree | bdd9291916b5da8898cb55ca3846bd3d96f3ecdf | |
parent | 4df7c5ccc390a4082f0321855039a6763ef31708 (diff) | |
parent | 3524bba5c95b3b1bc8fa96fc1245dc23da846940 (diff) |
Merge pull request #3958 from vespa-engine/hmusum/throw-if-configserverdefinitions-and-serverdbdir-are-equal
Validate configserver directories structure
4 files changed, 14 insertions, 10 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerDB.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerDB.java index 03b1635951d..33718774228 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerDB.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerDB.java @@ -26,6 +26,9 @@ public class ConfigServerDB { private final ConfigserverConfig configserverConfig; public ConfigServerDB(ConfigserverConfig configserverConfig) { + if (configserverConfig.configDefinitionsDir().equals(configserverConfig.configServerDBDir())) + throw new IllegalArgumentException("configDefinitionsDir and configServerDBDir cannot be equal ('" + + configserverConfig.configDefinitionsDir() + "')"); this.configserverConfig = configserverConfig; this.serverDB = new File(Defaults.getDefaults().underVespaHome(configserverConfig.configServerDBDir())); createDirectory(serverdefs()); @@ -63,7 +66,7 @@ public class ConfigServerDB { private void initialize(List<String> pluginDirectories) throws IOException { IOUtils.recursiveDeleteDir(serverdefs()); - IOUtils.copyDirectory(classes(), serverdefs()); + IOUtils.copyDirectory(classes(), serverdefs(), 1); ConfigDefinitionDir configDefinitionDir = new ConfigDefinitionDir(serverdefs()); ArrayList<Bundle> bundles = new ArrayList<>(); for (String pluginDirectory : pluginDirectories) { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java index 2b5aeaeab15..faf310f9106 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java @@ -89,10 +89,10 @@ public class TestComponentRegistry implements GlobalComponentRegistry { private Curator curator = new MockCurator(); private Optional<ConfigCurator> configCurator = Optional.empty(); private Metrics metrics = Metrics.createTestMetrics(); - private String configserverTempDir = Files.createTempDir().getAbsolutePath(); - private ConfigserverConfig configserverConfig = new ConfigserverConfig(new ConfigserverConfig.Builder() - .configServerDBDir(configserverTempDir) - .configDefinitionsDir(configserverTempDir)); + private ConfigserverConfig configserverConfig = new ConfigserverConfig( + new ConfigserverConfig.Builder() + .configServerDBDir(Files.createTempDir().getAbsolutePath()) + .configDefinitionsDir(Files.createTempDir().getAbsolutePath())); private ConfigDefinitionRepo defRepo = new StaticConfigDefinitionRepo(); private TenantRequestHandlerTest.MockReloadListener reloadListener = new TenantRequestHandlerTest.MockReloadListener(); private MockTenantListener tenantListener = new MockTenantListener(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/application/PermanentApplicationPackageTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/application/PermanentApplicationPackageTest.java index 0798983bd0d..950067a556b 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/application/PermanentApplicationPackageTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/application/PermanentApplicationPackageTest.java @@ -19,7 +19,8 @@ import static org.junit.Assert.assertTrue; public class PermanentApplicationPackageTest { @Test public void testNonexistingApplication() { - PermanentApplicationPackage permanentApplicationPackage = new PermanentApplicationPackage(new ConfigserverConfig(new ConfigserverConfig.Builder().applicationDirectory("_no_such_dir"))); + PermanentApplicationPackage permanentApplicationPackage = new PermanentApplicationPackage( + new ConfigserverConfig(new ConfigserverConfig.Builder().applicationDirectory("_no_such_dir"))); assertFalse(permanentApplicationPackage.applicationPackage().isPresent()); } @@ -29,7 +30,8 @@ public class PermanentApplicationPackageTest { @Test public void testExistingApplication() throws IOException { File tmpDir = folder.newFolder(); - PermanentApplicationPackage permanentApplicationPackage = new PermanentApplicationPackage(new ConfigserverConfig(new ConfigserverConfig.Builder().applicationDirectory(tmpDir.getAbsolutePath()))); + PermanentApplicationPackage permanentApplicationPackage = new PermanentApplicationPackage( + new ConfigserverConfig(new ConfigserverConfig.Builder().applicationDirectory(tmpDir.getAbsolutePath()))); assertTrue(permanentApplicationPackage.applicationPackage().isPresent()); } } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java index a3aa1df050e..e4b498242c1 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java @@ -126,10 +126,9 @@ public class HostedDeployTest { } private static ConfigserverConfig createConfigserverConfig() { - String tempDir = Files.createTempDir().getAbsolutePath(); return new ConfigserverConfig(new ConfigserverConfig.Builder() - .configServerDBDir(tempDir) - .configDefinitionsDir(tempDir) + .configServerDBDir(Files.createTempDir().getAbsolutePath()) + .configDefinitionsDir(Files.createTempDir().getAbsolutePath()) .dockerRegistry(dockerRegistry) .dockerVespaBaseImage(dockerVespaBaseImage) .hostedVespa(true) |