summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-05-29 14:24:50 +0200
committerHarald Musum <musum@oath.com>2018-05-29 14:24:50 +0200
commit8c2db62342f378c70db71406b535caf7d38a916e (patch)
treedd26687f53f0fe4a7cda927b65dd218ab417faf4 /configserver
parentb627c768085aa04e1613fd21c1337306b3eadc15 (diff)
Refactor creation of ConfigServerDB
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerDB.java14
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java1
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java5
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/TenantFileSystemDirs.java13
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java9
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/ConfigServerDBTest.java18
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java10
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java6
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java3
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionRepoTest.java3
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java6
11 files changed, 32 insertions, 56 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 33718774228..72a470cf937 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
@@ -17,8 +17,7 @@ import java.util.List;
* Config server db is the maintainer of the serverdb directory containing def files and the file system sessions.
* See also {@link com.yahoo.vespa.config.server.deploy.TenantFileSystemDirs} which maintains directories per tenant.
*
- * @author lulf
- * @since 5.1
+ * @author Ulf Lilleengen
*/
public class ConfigServerDB {
private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(ConfigServerDB.class.getName());
@@ -41,17 +40,13 @@ public class ConfigServerDB {
}
}
- public static ConfigServerDB createTestConfigServerDb(String dbDir, String definitionsDir) {
- return new ConfigServerDB(new ConfigserverConfig(new ConfigserverConfig.Builder()
- .configServerDBDir(dbDir)
- .configDefinitionsDir(definitionsDir)));
- }
-
// The config definitions shipped with Vespa
public File classes() { return new File(Defaults.getDefaults().underVespaHome(configserverConfig.configDefinitionsDir()));}
public File serverdefs() { return new File(serverDB, "serverdefs"); }
+ public File path() { return serverDB; }
+
public static void createDirectory(File d) {
if (d.exists()) {
if (!d.isDirectory()) {
@@ -81,7 +76,4 @@ public class ConfigServerDB {
}
}
- public ConfigserverConfig getConfigserverConfig() {
- return configserverConfig;
- }
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java b/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java
index b6e8f013fd1..6828204b17c 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java
@@ -27,7 +27,6 @@ public interface GlobalComponentRegistry {
Curator getCurator();
ConfigCurator getConfigCurator();
Metrics getMetrics();
- ConfigServerDB getServerDB();
SessionPreparer getSessionPreparer();
ConfigserverConfig getConfigserverConfig();
TenantListener getTenantListener();
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java b/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java
index d0b830aceaa..88f54e569df 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java
@@ -31,7 +31,6 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry
private final ConfigCurator configCurator;
private final Metrics metrics;
private final ModelFactoryRegistry modelFactoryRegistry;
- private final ConfigServerDB serverDB;
private final SessionPreparer sessionPreparer;
private final RpcServer rpcServer;
private final ConfigserverConfig configserverConfig;
@@ -47,7 +46,6 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry
ConfigCurator configCurator,
Metrics metrics,
ModelFactoryRegistry modelFactoryRegistry,
- ConfigServerDB serverDB,
SessionPreparer sessionPreparer,
RpcServer rpcServer,
ConfigserverConfig configserverConfig,
@@ -61,7 +59,6 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry
this.configCurator = configCurator;
this.metrics = metrics;
this.modelFactoryRegistry = modelFactoryRegistry;
- this.serverDB = serverDB;
this.sessionPreparer = sessionPreparer;
this.rpcServer = rpcServer;
this.configserverConfig = configserverConfig;
@@ -80,8 +77,6 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry
@Override
public Metrics getMetrics() { return metrics; }
@Override
- public ConfigServerDB getServerDB() { return serverDB; }
- @Override
public SessionPreparer getSessionPreparer() { return sessionPreparer; }
@Override
public ConfigserverConfig getConfigserverConfig() { return configserverConfig; }
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/TenantFileSystemDirs.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/TenantFileSystemDirs.java
index 93cd68f6dd6..293f35558cb 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/TenantFileSystemDirs.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/TenantFileSystemDirs.java
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.server.deploy;
-import com.google.common.io.Files;
+import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.config.provision.TenantName;
import com.yahoo.io.IOUtils;
import com.yahoo.path.Path;
@@ -12,23 +12,24 @@ import java.io.File;
/*
* Holds file system directories for a tenant
*
- * @author tonytv
+ * @author Tony Vaagenes
*/
public class TenantFileSystemDirs {
private final File serverDB;
private final TenantName tenant;
+ public TenantFileSystemDirs(ConfigserverConfig configserverConfig, TenantName tenant) {
+ this(new ConfigServerDB(configserverConfig).path(), tenant);
+ }
+
+ // For testing
public TenantFileSystemDirs(File dir, TenantName tenant) {
this.serverDB = dir;
this.tenant = tenant;
ConfigServerDB.createDirectory(sessionsPath());
}
- public static TenantFileSystemDirs createTestDirs(TenantName tenantName) {
- return new TenantFileSystemDirs(Files.createTempDir(), tenantName);
- }
-
public File sessionsPath() {
return new File(serverDB, Path.fromString("tenants").append(tenant.value()).append("sessions").getRelative());
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java
index 69721ed01d4..ad967f49964 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java
@@ -14,9 +14,7 @@ import com.yahoo.vespa.config.server.application.ZKTenantApplications;
import com.yahoo.vespa.config.server.deploy.TenantFileSystemDirs;
import com.yahoo.vespa.config.server.monitoring.Metrics;
import com.yahoo.vespa.config.server.session.*;
-import com.yahoo.vespa.defaults.Defaults;
-import java.io.File;
import java.time.Clock;
import java.util.Collections;
@@ -162,12 +160,7 @@ public class TenantBuilder {
private void createServerDbDirs() {
if (tenantFileSystemDirs == null) {
- tenantFileSystemDirs = new TenantFileSystemDirs(new File(
- Defaults.getDefaults().underVespaHome(componentRegistry
- .getServerDB()
- .getConfigserverConfig()
- .configServerDBDir())),
- tenant);
+ tenantFileSystemDirs = new TenantFileSystemDirs(componentRegistry.getConfigserverConfig(), tenant);
}
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ConfigServerDBTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ConfigServerDBTest.java
index c34f6512f29..ccec9666a3c 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/ConfigServerDBTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ConfigServerDBTest.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.config.server;
import com.google.common.io.Files;
+import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.io.IOUtils;
import org.junit.Before;
import org.junit.Test;
@@ -13,25 +14,26 @@ import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
/**
- * @author lulf
- * @since 5.1
+ * @author Ulf Lilleengen
*/
public class ConfigServerDBTest {
private ConfigServerDB serverDB;
- private File dbDir;
- private File definitionsDir;
+ private ConfigserverConfig configserverConfig;
@Before
public void setup() {
- dbDir = Files.createTempDir();
- definitionsDir = Files.createTempDir();
- serverDB = ConfigServerDB.createTestConfigServerDb(dbDir.getAbsolutePath(), definitionsDir.getAbsolutePath());
+ File dbDir = Files.createTempDir();
+ File definitionsDir = Files.createTempDir();
+ configserverConfig = new ConfigserverConfig(new ConfigserverConfig.Builder()
+ .configServerDBDir(dbDir.getAbsolutePath())
+ .configDefinitionsDir(definitionsDir.getAbsolutePath()));
+ serverDB = new ConfigServerDB(configserverConfig);
}
private void createInitializer() throws IOException {
File existingDef = new File(serverDB.classes(), "test.def");
IOUtils.writeFile(existingDef, "hello", false);
- ConfigServerDB.createTestConfigServerDb(dbDir.getAbsolutePath(), definitionsDir.getAbsolutePath());
+ new ConfigServerDB(configserverConfig);
}
@Test
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java
index dec9dd991de..de27a185aef 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java
@@ -31,14 +31,12 @@ import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
/**
- * @author lulf
- * @since 5.1
+ * @author Ulf Lilleengen
*/
public class InjectedGlobalComponentRegistryTest {
private Curator curator;
private Metrics metrics;
- private ConfigServerDB serverDB;
private SessionPreparer sessionPreparer;
private ConfigserverConfig configserverConfig;
private RpcServer rpcServer;
@@ -60,7 +58,6 @@ public class InjectedGlobalComponentRegistryTest {
new ConfigserverConfig.Builder()
.configServerDBDir(Files.createTempDir().getAbsolutePath())
.configDefinitionsDir(Files.createTempDir().getAbsolutePath()));
- serverDB = new ConfigServerDB(configserverConfig);
sessionPreparer = new SessionTest.MockSessionPreparer();
rpcServer = new RpcServer(configserverConfig, null, Metrics.createTestMetrics(),
new HostRegistries(), new ConfigRequestHostLivenessTracker(), new FileServer(FileDistribution.getDefaultFileDBPath()));
@@ -70,13 +67,14 @@ public class InjectedGlobalComponentRegistryTest {
hostRegistries = new HostRegistries();
HostProvisionerProvider hostProvisionerProvider = HostProvisionerProvider.withProvisioner(new SessionHandlerTest.MockProvisioner());
zone = Zone.defaultZone();
- globalComponentRegistry = new InjectedGlobalComponentRegistry(curator, configCurator, metrics, modelFactoryRegistry, serverDB, sessionPreparer, rpcServer, configserverConfig, generationCounter, defRepo, permanentApplicationPackage, hostRegistries, hostProvisionerProvider, zone);
+ globalComponentRegistry =
+ new InjectedGlobalComponentRegistry(curator, configCurator, metrics, modelFactoryRegistry, sessionPreparer, rpcServer, configserverConfig,
+ generationCounter, defRepo, permanentApplicationPackage, hostRegistries, hostProvisionerProvider, zone);
}
@Test
public void testThatAllComponentsAreSetup() {
assertThat(globalComponentRegistry.getModelFactoryRegistry(), is(modelFactoryRegistry));
- assertThat(globalComponentRegistry.getServerDB(), is(serverDB));
assertThat(globalComponentRegistry.getSessionPreparer(), is(sessionPreparer));
assertThat(globalComponentRegistry.getMetrics(), is(metrics));
assertThat(globalComponentRegistry.getCurator(), is(curator));
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 d026989a43e..feb3ddae4ca 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
@@ -37,7 +37,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry {
private final Curator curator;
private final ConfigCurator configCurator;
private final Metrics metrics;
- private final ConfigServerDB serverDB;
private final SessionPreparer sessionPreparer;
private final ConfigserverConfig configserverConfig;
private final SuperModelGenerationCounter superModelGenerationCounter;
@@ -57,7 +56,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry {
PermanentApplicationPackage permanentApplicationPackage,
FileDistributionFactory fileDistributionFactory,
SuperModelGenerationCounter superModelGenerationCounter,
- ConfigServerDB configServerDB,
HostRegistries hostRegistries,
ConfigserverConfig configserverConfig,
SessionPreparer sessionPreparer,
@@ -71,7 +69,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry {
this.configCurator = configCurator;
this.metrics = metrics;
this.configserverConfig = configserverConfig;
- this.serverDB = configServerDB;
this.reloadListener = reloadListener;
this.tenantListener = tenantListener;
this.superModelGenerationCounter = superModelGenerationCounter;
@@ -168,7 +165,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry {
permApp,
fileDistributionFactory,
new SuperModelGenerationCounter(curator),
- new ConfigServerDB(configserverConfig),
hostRegistries, configserverConfig, sessionPreparer,
hostProvisioner, defRepo, reloadListener,
tenantListener, zone, clock);
@@ -182,8 +178,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry {
@Override
public Metrics getMetrics() { return metrics; }
@Override
- public ConfigServerDB getServerDB() { return serverDB; }
- @Override
public SessionPreparer getSessionPreparer() { return sessionPreparer; }
@Override
public ConfigserverConfig getConfigserverConfig() { return configserverConfig; }
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java
index e14e59b9fe7..f8c96ebef3a 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.server.http.v2;
+import com.google.common.io.Files;
import com.yahoo.config.application.api.ApplicationMetaData;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.NullConfigModelRegistry;
@@ -223,7 +224,7 @@ public class SessionActiveHandlerTest extends SessionHandlerTest {
private void addLocalSession(long sessionId, DeployData deployData, SessionZooKeeperClient zkc) {
writeApplicationId(zkc, deployData.getApplicationName());
- TenantFileSystemDirs tenantFileSystemDirs = TenantFileSystemDirs.createTestDirs(tenantName);
+ TenantFileSystemDirs tenantFileSystemDirs = new TenantFileSystemDirs(Files.createTempDir(), tenantName);
ApplicationPackage app = FilesApplicationPackage.fromFileWithDeployData(testApp, deployData);
localRepo.addSession(new LocalSession(tenantName, sessionId, new SessionTest.MockSessionPreparer(),
new SessionContext(app, zkc, new File(tenantFileSystemDirs.sessionsPath(), String.valueOf(sessionId)),
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionRepoTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionRepoTest.java
index 73caf770512..cde0e1d0f53 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionRepoTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionRepoTest.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.server.session;
+import com.google.common.io.Files;
import com.yahoo.config.model.application.provider.FilesApplicationPackage;
import com.yahoo.test.ManualClock;
import com.yahoo.config.provision.TenantName;
@@ -41,7 +42,7 @@ public class LocalSessionRepoTest extends TestWithCurator {
private void setupSessions(TenantName tenantName, boolean createInitialSessions) throws Exception {
GlobalComponentRegistry globalComponentRegistry = new TestComponentRegistry.Builder().curator(curator).build();
- TenantFileSystemDirs tenantFileSystemDirs = TenantFileSystemDirs.createTestDirs(tenantName);
+ TenantFileSystemDirs tenantFileSystemDirs = new TenantFileSystemDirs(Files.createTempDir(), tenantName);
if (createInitialSessions) {
IOUtils.copyDirectory(testApp, new File(tenantFileSystemDirs.sessionsPath(), "1"));
IOUtils.copyDirectory(testApp, new File(tenantFileSystemDirs.sessionsPath(), "2"));
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java
index bd5cfdf3a0e..316c439a3cd 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.config.server.session;
import com.google.common.io.Files;
+import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.config.application.api.ApplicationFile;
import com.yahoo.config.provision.*;
import com.yahoo.path.Path;
@@ -29,8 +30,7 @@ import static org.hamcrest.core.Is.is;
import static org.junit.Assert.*;
/**
- * @author lulf
- * @since 5.1
+ * @author Ulf Lilleengen
*/
public class LocalSessionTest {
@@ -41,7 +41,7 @@ public class LocalSessionTest {
private SuperModelGenerationCounter superModelGenerationCounter;
@Before
- public void setupTest() throws Exception {
+ public void setupTest() {
curator = new MockCurator();
configCurator = ConfigCurator.create(curator);
superModelGenerationCounter = new SuperModelGenerationCounter(curator);