summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-10-18 01:03:22 +0200
committerHarald Musum <musum@oath.com>2018-10-18 01:03:22 +0200
commitb51a7d046f1fff521c1f71f4645b4cd695efcd49 (patch)
tree9dac0d80fa722060557e09ef2f0317ae08d1d7e1 /configserver
parent474dc26a6be41eb6a59b2d35ad3fccb392238d1d (diff)
Move test and use higher-level APIs
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java50
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java32
2 files changed, 49 insertions, 33 deletions
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 9fec88b285e..9d6c191ae4f 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
@@ -1,9 +1,15 @@
// 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.collect.ImmutableSet;
import com.google.common.io.Files;
import com.yahoo.cloud.config.ConfigserverConfig;
+import com.yahoo.config.model.api.ConfigChangeAction;
+import com.yahoo.config.model.api.ModelContext;
+import com.yahoo.config.model.api.ModelCreateResult;
import com.yahoo.config.model.api.ModelFactory;
+import com.yahoo.config.model.api.ServiceInfo;
+import com.yahoo.config.model.api.ValidationParameters;
import com.yahoo.config.model.provision.Host;
import com.yahoo.config.model.provision.Hosts;
import com.yahoo.config.model.provision.InMemoryProvisioner;
@@ -13,8 +19,11 @@ import com.yahoo.config.provision.RegionName;
import com.yahoo.config.provision.Version;
import com.yahoo.config.provision.Zone;
import com.yahoo.test.ManualClock;
-import static com.yahoo.vespa.config.server.deploy.DeployTester.CountingModelFactory;
+import com.yahoo.vespa.config.server.configchange.MockRestartAction;
+import com.yahoo.vespa.config.server.configchange.RestartActions;
+import com.yahoo.vespa.config.server.http.v2.PrepareResult;
+import com.yahoo.vespa.config.server.model.TestModelFactory;
import com.yahoo.vespa.config.server.session.LocalSession;
import org.junit.Test;
@@ -24,13 +33,18 @@ import java.time.Instant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
+import static com.yahoo.vespa.config.server.deploy.DeployTester.CountingModelFactory;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -208,6 +222,24 @@ public class HostedDeployTest {
}
}
+ @Test
+ public void testThatConfigChangeActionsAreCollectedFromAllModels() {
+ List<ServiceInfo> services = Collections.singletonList(
+ new ServiceInfo("serviceName", "serviceType", null, new HashMap<>(), "configId", "hostName"));
+
+ List<ModelFactory> modelFactories = Arrays.asList(
+ new ConfigChangeActionsModelFactory(Version.fromIntValues(6, 1, 0), new MockRestartAction("change", services)),
+ new ConfigChangeActionsModelFactory(Version.fromIntValues(6, 2, 0), new MockRestartAction("other change", services)));
+
+ DeployTester tester = new DeployTester(modelFactories, createConfigserverConfig());
+ PrepareResult prepareResult = tester.deployApp("src/test/apps/hosted/", "6.2.0", Instant.now());
+
+ assertEquals(3, tester.getAllocatedHostsOf(tester.applicationId()).getHosts().size());
+ List<RestartActions.Entry> actions = prepareResult.configChangeActions().getRestartActions().getEntries();
+ assertThat(actions.size(), is(1));
+ assertThat(actions.get(0).getMessages(), equalTo(ImmutableSet.of("change", "other change")));
+ }
+
private static ConfigserverConfig createConfigserverConfig() {
return new ConfigserverConfig(new ConfigserverConfig.Builder()
.configServerDBDir(Files.createTempDir().getAbsolutePath())
@@ -224,4 +256,20 @@ public class HostedDeployTest {
return new Host(hostname, Collections.emptyList(), Optional.empty(), Optional.empty());
}
+ private static class ConfigChangeActionsModelFactory extends TestModelFactory {
+
+ private final ConfigChangeAction action;
+
+ ConfigChangeActionsModelFactory(Version vespaVersion, ConfigChangeAction action) {
+ super(vespaVersion);
+ this.action = action;
+ }
+
+ @Override
+ public ModelCreateResult createAndValidateModel(ModelContext modelContext, ValidationParameters validationParameters) {
+ ModelCreateResult result = super.createAndValidateModel(modelContext, validationParameters);
+ return new ModelCreateResult(result.getModel(), Arrays.asList(action));
+ }
+ }
+
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java
index a221a496e0c..07e61048611 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java
@@ -1,12 +1,9 @@
// 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.collect.ImmutableSet;
import com.yahoo.config.application.api.DeployLogger;
-import com.yahoo.config.model.api.ConfigChangeAction;
import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.api.ModelCreateResult;
-import com.yahoo.config.model.api.ServiceInfo;
import com.yahoo.config.model.api.ValidationParameters;
import com.yahoo.config.model.application.provider.*;
import com.yahoo.config.provision.ApplicationName;
@@ -23,8 +20,6 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.vespa.config.server.application.MemoryTenantApplications;
import com.yahoo.vespa.config.server.application.PermanentApplicationPackage;
import com.yahoo.vespa.config.server.configchange.ConfigChangeActions;
-import com.yahoo.vespa.config.server.configchange.MockRestartAction;
-import com.yahoo.vespa.config.server.configchange.RestartActions;
import com.yahoo.vespa.config.server.deploy.DeployHandlerLogger;
import com.yahoo.vespa.config.server.host.HostRegistry;
import com.yahoo.vespa.config.server.http.InvalidApplicationException;
@@ -45,7 +40,6 @@ import java.io.IOException;
import java.time.Instant;
import java.util.*;
-import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.Matchers.contains;
import static org.junit.Assert.*;
@@ -60,7 +54,6 @@ public class SessionPreparerTest {
private static final File testApp = new File("src/test/apps/app");
private static final File invalidTestApp = new File("src/test/apps/illegalApp");
private static final Version version123 = Version.fromIntValues(1, 2, 3);
- private static final Version version124 = Version.fromIntValues(1, 2, 4);
private static final Version version321 = Version.fromIntValues(3, 2, 1);
private static final Version version323 = Version.fromIntValues(3, 2, 3);
@@ -186,18 +179,6 @@ public class SessionPreparerTest {
assertThat(zkc.readApplicationId(), is(origId));
}
- @Test
- public void require_that_config_change_actions_are_collected_from_all_models() throws IOException {
- ServiceInfo service = new ServiceInfo("serviceName", "serviceType", null, new HashMap<>(), "configId", "hostName");
- ModelFactoryRegistry modelFactoryRegistry = new ModelFactoryRegistry(Arrays.asList(
- new ConfigChangeActionsModelFactory(version123, new MockRestartAction("change", Arrays.asList(service))),
- new ConfigChangeActionsModelFactory(version124, new MockRestartAction("other change", Arrays.asList(service)))));
- preparer = createPreparer(modelFactoryRegistry, HostProvisionerProvider.empty());
- List<RestartActions.Entry> actions = prepare(testApp).getRestartActions().getEntries();
- assertThat(actions.size(), is(1));
- assertThat(actions.get(0).getMessages(), equalTo(ImmutableSet.of("change", "other change")));
- }
-
private Set<Rotation> readRotationsFromZK(ApplicationId applicationId) {
return new Rotations(curator, tenantPath).readRotationsFromZooKeeper(applicationId);
}
@@ -278,17 +259,4 @@ public class SessionPreparerTest {
ApplicationName.from(applicationName), InstanceName.defaultName());
}
- private static class ConfigChangeActionsModelFactory extends TestModelFactory {
- private final ConfigChangeAction action;
- ConfigChangeActionsModelFactory(Version vespaVersion, ConfigChangeAction action) {
- super(vespaVersion);
- this.action = action;
- }
-
- @Override
- public ModelCreateResult createAndValidateModel(ModelContext modelContext, ValidationParameters validationParameters) {
- ModelCreateResult result = super.createAndValidateModel(modelContext, validationParameters);
- return new ModelCreateResult(result.getModel(), Arrays.asList(action));
- }
- }
}