diff options
author | Harald Musum <musum@oath.com> | 2018-10-18 01:03:22 +0200 |
---|---|---|
committer | Harald Musum <musum@oath.com> | 2018-10-18 01:03:22 +0200 |
commit | b51a7d046f1fff521c1f71f4645b4cd695efcd49 (patch) | |
tree | 9dac0d80fa722060557e09ef2f0317ae08d1d7e1 /configserver | |
parent | 474dc26a6be41eb6a59b2d35ad3fccb392238d1d (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.java | 50 | ||||
-rw-r--r-- | configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java | 32 |
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)); - } - } } |