From e01d121d3bdc736fcf8c75011c2dc5eff2941c27 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 8 Dec 2017 13:33:29 +0100 Subject: Inline and streamline Zone constructors --- .../src/main/java/com/yahoo/config/provision/Zone.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index 92e38b402e3..6315e05c9de 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -33,17 +33,12 @@ public class Zone { /** Create from environment and region */ public Zone(Environment environment, RegionName region) { - this(SystemName.defaultSystem(), environment, region, "default"); + this(SystemName.defaultSystem(), environment, region); } /** Create from system, environment and region */ public Zone(SystemName systemName, Environment environment, RegionName region) { - this(systemName, environment, region, "default"); - } - - /** Create from environment and region. Useful for testing. */ - public Zone(SystemName system, Environment environment, RegionName region, String defaultFlavor) { - this(system, environment, region, new FlavorDefaults(defaultFlavor), null); + this(systemName, environment, region, new FlavorDefaults("default"), null); } private Zone(SystemName systemName, -- cgit v1.2.3 From e5f2b434d614b49bef40038ec1fe1d391db62e1e Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 8 Dec 2017 14:08:40 +0100 Subject: Factory constructor with region/env --- .../preprocessor/ApplicationPreprocessor.java | 2 +- .../provider/FilesApplicationPackageTest.java | 6 +-- .../com/yahoo/vespa/model/admin/AdminTestCase.java | 4 +- .../container/xml/ContainerModelBuilderTest.java | 2 +- .../model/container/xml/RoutingBuilderTest.java | 2 +- .../com/yahoo/vespa/model/content/ClusterTest.java | 4 +- .../main/java/com/yahoo/config/provision/Zone.java | 6 ++- .../http/v2/ListApplicationsHandlerTest.java | 2 +- .../server/model/LbServicesProducerTest.java | 6 +-- .../controller/api/identifiers/IdentifierTest.java | 2 +- .../controller/application/DeploymentJobs.java | 5 +-- .../controller/deployment/DeploymentOrder.java | 2 +- .../persistence/ApplicationSerializer.java | 4 +- .../restapi/application/ApplicationApiHandler.java | 20 ++++----- .../vespa/hosted/controller/ControllerTest.java | 4 +- .../vespa/hosted/controller/ControllerTester.java | 6 +-- .../vespa/hosted/controller/ZoneRegistryMock.java | 2 +- .../maintenance/DeploymentExpirerTest.java | 2 +- .../controller/maintenance/UpgraderTest.java | 2 +- .../persistence/ApplicationSerializerTest.java | 4 +- .../application/ServiceApiResponseTest.java | 10 ++--- .../restapi/deployment/DeploymentApiTest.java | 10 ++--- .../restapi/screwdriver/ScrewdriverApiTest.java | 4 +- .../controller/restapi/zone/v1/ZoneApiTest.java | 10 ++--- .../controller/restapi/zone/v2/ZoneApiTest.java | 10 ++--- .../maintenance/InactiveAndFailedExpirerTest.java | 6 +-- .../provision/maintenance/MaintenanceTester.java | 2 +- .../provision/maintenance/NodeFailTester.java | 2 +- .../provision/maintenance/NodeRetirerTester.java | 2 +- .../OperatorChangeApplicationMaintainerTest.java | 2 +- .../PeriodicApplicationMaintainerTest.java | 2 +- .../provision/maintenance/RetiredExpirerTest.java | 6 +-- .../provisioning/DockerProvisioningTest.java | 4 +- .../DynamicDockerProvisioningTest.java | 20 ++++----- .../provisioning/MultigroupProvisioningTest.java | 12 +++--- .../provisioning/NodeTypeProvisioningTest.java | 3 +- .../provision/provisioning/ProvisioningTest.java | 50 +++++++++++----------- .../provisioning/VirtualNodeProvisioningTest.java | 2 +- .../monitor/internal/ModelGeneratorTest.java | 4 +- 39 files changed, 125 insertions(+), 123 deletions(-) diff --git a/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java b/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java index e879acef3bb..f48968ad919 100644 --- a/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java +++ b/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java @@ -39,7 +39,7 @@ public class ApplicationPreprocessor { FilesApplicationPackage.Builder applicationPackageBuilder = new FilesApplicationPackage.Builder(applicationDir); outputDir.ifPresent(applicationPackageBuilder::preprocessedDir); ApplicationPackage preprocessed = applicationPackageBuilder.build().preprocess( - new Zone(environment.orElse(Environment.defaultEnvironment()), region.orElse(RegionName.defaultName())), + Zone.from(environment.orElse(Environment.defaultEnvironment()), region.orElse(RegionName.defaultName())), (a, b) -> { }, logger); preprocessed.validateXML(); diff --git a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java index c12a9ad0d06..59950375ee7 100644 --- a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java @@ -41,13 +41,13 @@ public class FilesApplicationPackageTest { assertTrue(new File(appDir, "hosts.xml").exists()); FilesApplicationPackage app = FilesApplicationPackage.fromFile(appDir); - ApplicationPackage processed = app.preprocess(new Zone(Environment.dev, RegionName.defaultName()), - new RuleConfigDeriver() { + ApplicationPackage processed = app.preprocess(Zone.from(Environment.dev, RegionName.defaultName()), + new RuleConfigDeriver() { @Override public void derive(String ruleBaseDir, String outputDir) throws Exception { } }, - new BaseDeployLogger()); + new BaseDeployLogger()); assertTrue(new File(appDir, ".preprocessed").exists()); String expectedServices = "\n" + " \n" + diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java index fed9000f72b..6d46993175c 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java @@ -148,7 +148,7 @@ public class AdminTestCase { public void testTenantAndAppInSentinelConfig() { DeployState state = new DeployState.Builder().properties( new DeployProperties.Builder(). - zone(new Zone(Environment.dev, RegionName.from("baz"))). + zone(Zone.from(Environment.dev, RegionName.from("baz"))). applicationId(new ApplicationId.Builder(). tenant("quux"). applicationName("foo").instanceName("bim").build()).build()).build(); @@ -311,7 +311,7 @@ public class AdminTestCase { .disableFiledistributor(true) .properties( new DeployProperties.Builder(). - zone(new Zone(Environment.dev, RegionName.from("baz"))). + zone(Zone.from(Environment.dev, RegionName.from("baz"))). applicationId(new ApplicationId.Builder(). tenant("quux"). applicationName("foo").instanceName("bim").build()).build()).build(); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java index 5e093bdb32a..44a575936a5 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java @@ -511,7 +511,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase { " ", ""); - DeployState deployState = new DeployState.Builder().zone(new Zone(Environment.dev, RegionName.from("us-east-1"))).build(); + DeployState deployState = new DeployState.Builder().zone(Zone.from(Environment.dev, RegionName.from("us-east-1"))).build(); createModel(root, deployState, clusterElem); assertEquals(0, getContainerCluster("default").serviceAliases().size()); assertEquals(0, getContainerCluster("default").endpointAliases().size()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/RoutingBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/RoutingBuilderTest.java index a2f32694340..2a60672470e 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/RoutingBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/RoutingBuilderTest.java @@ -66,7 +66,7 @@ public class RoutingBuilderTest extends ContainerModelBuilderTestBase { private Container getContainer(ApplicationPackage applicationPackage, String region, Element clusterElem) throws IOException, SAXException { DeployState deployState = new DeployState.Builder() .applicationPackage(applicationPackage) - .zone(new Zone(Environment.prod, RegionName.from(region))) + .zone(Zone.from(Environment.prod, RegionName.from(region))) .build(); root = new MockRoot("root", deployState); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java index 0c41b8ecc0b..7d9ec9d68d6 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java @@ -483,10 +483,10 @@ public class ClusterTest extends ContentBaseTest { public void testZoneDependentDistributionBits() throws Exception { String xml = new ContentClusterBuilder().docTypes("test").getXml(); - ContentCluster prodWith16Bits = createWithZone(xml, new Zone(Environment.prod, RegionName.from("us-east-3"))); + ContentCluster prodWith16Bits = createWithZone(xml, Zone.from(Environment.prod, RegionName.from("us-east-3"))); assertDistributionBitsInConfig(prodWith16Bits, 16); - ContentCluster stagingNot16Bits = createWithZone(xml, new Zone(Environment.staging, RegionName.from("us-east-3"))); + ContentCluster stagingNot16Bits = createWithZone(xml, Zone.from(Environment.staging, RegionName.from("us-east-3"))); assertDistributionBitsInConfig(stagingNot16Bits, 8); } @Test diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index 6315e05c9de..7d7215690e9 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -32,7 +32,7 @@ public class Zone { } /** Create from environment and region */ - public Zone(Environment environment, RegionName region) { + private Zone(Environment environment, RegionName region) { this(SystemName.defaultSystem(), environment, region); } @@ -53,6 +53,10 @@ public class Zone { this.nodeFlavors = Optional.ofNullable(nodeFlavors); } + public static Zone from(Environment environment, RegionName region) { + return new Zone(environment, region); + } + /** Returns the current environment */ public Environment environment() { return environment; } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java index 9e7853a8fdf..7700dd9392e 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java @@ -42,7 +42,7 @@ public class ListApplicationsHandlerTest { handler = new ListApplicationsHandler(Runnable::run, AccessLog.voidAccessLog(), tenants, - new Zone(Environment.dev, RegionName.from("us-east"))); + Zone.from(Environment.dev, RegionName.from("us-east"))); } @Test diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java index df8ed405fe3..5e7886f0d2f 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java @@ -87,11 +87,11 @@ public class LbServicesProducerTest { } private LbServicesConfig createModelAndGetLbServicesConfig(RegionName regionName) throws IOException, SAXException { - final Zone zone = new Zone(Environment.prod, regionName); + final Zone zone = Zone.from(Environment.prod, regionName); Map> testModel = createTestModel(new DeployState.Builder() .properties(new DeployProperties.Builder().zone(zone).build()) .zone(zone)); - return getLbServicesConfig(new Zone(Environment.prod, regionName), testModel); + return getLbServicesConfig(Zone.from(Environment.prod, regionName), testModel); } private LbServicesConfig getLbServicesConfig(Zone zone, Map> testModel) { @@ -105,7 +105,7 @@ public class LbServicesProducerTest { public void testConfigAliasesWithRotations() throws IOException, SAXException { Map> testModel = createTestModel(new DeployState.Builder().rotations(rotations)); RegionName regionName = RegionName.from("us-east-1"); - LbServicesConfig conf = getLbServicesConfig(new Zone(Environment.prod, regionName), testModel); + LbServicesConfig conf = getLbServicesConfig(Zone.from(Environment.prod, regionName), testModel); final LbServicesConfig.Tenants.Applications.Hosts.Services services = conf.tenants("foo").applications("foo:prod:" + regionName.value() + ":default").hosts("foo.foo.yahoo.com").services("qrserver"); assertThat(services.servicealiases().size(), is(1)); assertThat(services.endpointaliases().size(), is(4)); diff --git a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java index 7e4d543fd18..8e98e50b951 100644 --- a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java +++ b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java @@ -147,7 +147,7 @@ public class IdentifierTest { @Test public void application_instance_id_dotted_string_is_subindentifers_concatinated_with_dots() { DeploymentId id = new DeploymentId(com.yahoo.config.provision.ApplicationId.from("tenant", "application", "instance"), - new Zone(Environment.prod, RegionName.from("region"))); + Zone.from(Environment.prod, RegionName.from("region"))); assertEquals("tenant.application.prod.region.instance", id.dottedString()); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java index 98f8c2a3d99..754a3386d89 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java @@ -13,7 +13,6 @@ import com.yahoo.vespa.hosted.controller.api.integration.organization.IssueId; import java.time.Instant; import java.util.Collection; -import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; @@ -229,7 +228,7 @@ public class DeploymentJobs { case test: return Optional.of(systemTest); case staging: return Optional.of(stagingTest); } - return from(system, new Zone(environment, region)); + return from(system, Zone.from(environment, region)); } private static Zone zone(SystemName system, String environment, String region) { @@ -237,7 +236,7 @@ public class DeploymentJobs { } private static Zone zone(String environment, String region) { - return new Zone(Environment.from(environment), RegionName.from(region)); + return Zone.from(Environment.from(environment), RegionName.from(region)); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java index aa4d07634db..59da90d033a 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java @@ -107,7 +107,7 @@ public class DeploymentOrder { public List sortBy(List zones, Collection deployments) { List productionZones = zones.stream() .filter(z -> z.region().isPresent()) - .map(z -> new Zone(z.environment(), z.region().get())) + .map(z -> Zone.from(z.environment(), z.region().get())) .collect(toList()); return deployments.stream() .sorted(comparingInt(deployment -> productionZones.indexOf(deployment.zone()))) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java index c71409aaba9..6df856d7ee2 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java @@ -339,8 +339,8 @@ public class ApplicationSerializer { } private Zone zoneFromSlime(Inspector object) { - return new Zone(Environment.from(object.field(environmentField).asString()), - RegionName.from(object.field(regionField).asString())); + return Zone.from(Environment.from(object.field(environmentField).asString()), + RegionName.from(object.field(regionField).asString())); } private Optional applicationRevisionFromSlime(Inspector object) { diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java index d64f07906ab..a5a368b62f6 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java @@ -423,7 +423,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { .orElseThrow(() -> new NotExistsException(id + " not found")); DeploymentId deploymentId = new DeploymentId(application.id(), - new Zone(Environment.from(environment), RegionName.from(region))); + Zone.from(Environment.from(environment), RegionName.from(region))); Deployment deployment = application.deployments().get(deploymentId.zone()); if (deployment == null) @@ -514,7 +514,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { // DeploymentId identifies the zone and application we are dealing with DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new Zone(Environment.from(environment), RegionName.from(region))); + Zone.from(Environment.from(environment), RegionName.from(region))); try { List rotations = controller.applications().setGlobalRotationStatus(deploymentId, endPointStatus); return new MessageResponse(String.format("Rotations %s successfully set to %s service", rotations.toString(), inService ? "in" : "out of")); @@ -526,7 +526,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse getGlobalRotationOverride(String tenantName, String applicationName, String instanceName, String environment, String region) { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new Zone(Environment.from(environment), RegionName.from(region))); + Zone.from(Environment.from(environment), RegionName.from(region))); Slime slime = new Slime(); Cursor c1 = slime.setObject().setArray("globalrotationoverride"); @@ -571,13 +571,13 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse waitForConvergence(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { return new JacksonJsonResponse(controller.waitForConfigConvergence(new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new Zone(Environment.from(environment), RegionName.from(region))), + Zone.from(Environment.from(environment), RegionName.from(region))), asLong(request.getProperty("timeout"), 1000))); } private HttpResponse services(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { ApplicationView applicationView = controller.getApplicationView(tenantName, applicationName, instanceName, environment, region); - ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.from(environment), RegionName.from(region)), + ServiceApiResponse response = new ServiceApiResponse(Zone.from(Environment.from(environment), RegionName.from(region)), new ApplicationId.Builder().tenant(tenantName).applicationName(applicationName).instanceName(instanceName).build(), controller.getConfigServerUris(Environment.from(environment), RegionName.from(region)), request.getUri()); @@ -587,7 +587,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse service(String tenantName, String applicationName, String instanceName, String environment, String region, String serviceName, String restPath, HttpRequest request) { Map result = controller.getServiceApiResponse(tenantName, applicationName, instanceName, environment, region, serviceName, restPath); - ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.from(environment), RegionName.from(region)), + ServiceApiResponse response = new ServiceApiResponse(Zone.from(Environment.from(environment), RegionName.from(region)), new ApplicationId.Builder().tenant(tenantName).applicationName(applicationName).instanceName(instanceName).build(), controller.getConfigServerUris(Environment.from(environment), RegionName.from(region)), request.getUri()); @@ -737,7 +737,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { /** Schedule restart of deployment, or specific host in a deployment */ private HttpResponse restart(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new Zone(Environment.from(environment), RegionName.from(region))); + Zone.from(Environment.from(environment), RegionName.from(region))); // TODO: Propagate all filters Optional hostname = Optional.ofNullable(request.getProperty("hostname")).map(Hostname::new); controller.applications().restart(deploymentId, hostname); @@ -758,7 +758,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse log(String tenantName, String applicationName, String instanceName, String environment, String region) { try { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new Zone(Environment.from(environment), RegionName.from(region))); + Zone.from(Environment.from(environment), RegionName.from(region))); return new JacksonJsonResponse(controller.grabLog(deploymentId)); } catch (RuntimeException e) { @@ -770,7 +770,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse deploy(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { ApplicationId applicationId = ApplicationId.from(tenantName, applicationName, instanceName); - Zone zone = new Zone(Environment.from(environment), RegionName.from(region)); + Zone zone = Zone.from(Environment.from(environment), RegionName.from(region)); Map dataParts = new MultipartParser().parse(request); if ( ! dataParts.containsKey("deployOptions")) @@ -821,7 +821,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse deactivate(String tenantName, String applicationName, String instanceName, String environment, String region) { Application application = controller.applications().require(ApplicationId.from(tenantName, applicationName, instanceName)); - Zone zone = new Zone(Environment.from(environment), RegionName.from(region)); + Zone zone = Zone.from(Environment.from(environment), RegionName.from(region)); Deployment deployment = application.deployments().get(zone); if (deployment == null) { // Attempt to deactivate application even if the deployment is not known by the controller diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java index c41fc20d5c2..94241d7934d 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java @@ -526,7 +526,7 @@ public class ControllerTest { application = application.withDeploying(Optional.of(new Change.VersionChange(Version.fromString("6.3")))); applications.store(application); try { - tester.deploy(app, new Zone(Environment.prod, RegionName.from("us-east-3"))); + tester.deploy(app, Zone.from(Environment.prod, RegionName.from("us-east-3"))); fail("Expected exception"); } catch (IllegalArgumentException e) { assertEquals("Rejecting deployment of application 'tenant1.app1' to zone prod.us-east-3 as version change to 6.3 is not tested", e.getMessage()); @@ -626,7 +626,7 @@ public class ControllerTest { Application app = tester.createApplication("app1", "tenant1", 1, 2L); // Direct deploy is allowed when project ID is missing - Zone zone = new Zone(Environment.prod, RegionName.from("cd-us-central-1")); + Zone zone = Zone.from(Environment.prod, RegionName.from("cd-us-central-1")); // Same options as used in our integration tests DeployOptions options = new DeployOptions(Optional.empty(), Optional.empty(), false, false); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java index bdb8160a3f6..8ed4ae9ec19 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java @@ -165,9 +165,9 @@ public final class ControllerTester { public Zone toZone(Environment environment) { switch (environment) { - case dev: case test: return new Zone(environment, RegionName.from("us-east-1")); - case staging: return new Zone(environment, RegionName.from("us-east-3")); - default: return new Zone(environment, RegionName.from("us-west-1")); + case dev: case test: return Zone.from(environment, RegionName.from("us-east-1")); + case staging: return Zone.from(environment, RegionName.from("us-east-3")); + default: return Zone.from(environment, RegionName.from("us-west-1")); } } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java index 18332942c24..fb05552ba38 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java @@ -88,7 +88,7 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry @Override public Optional getDeploymentTimeToLive(Environment environment, RegionName region) { - return Optional.ofNullable(deploymentTimeToLive.get(new Zone(environment, region))); + return Optional.ofNullable(deploymentTimeToLive.get(Zone.from(environment, region))); } @Override diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java index ef0b05f9bb2..bc3a89f911d 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java @@ -35,7 +35,7 @@ public class DeploymentExpirerTest { @Test public void testDeploymentExpiry() throws IOException, InterruptedException { tester.controllerTester().zoneRegistry().setDeploymentTimeToLive( - new Zone(Environment.dev, RegionName.from("us-east-1")), + Zone.from(Environment.dev, RegionName.from("us-east-1")), Duration.ofDays(14) ); DeploymentExpirer expirer = new DeploymentExpirer(tester.controller(), Duration.ofDays(10), diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java index 8839f6a5a18..7fc3f323353 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java @@ -692,7 +692,7 @@ public class UpgraderTest { // Dev deployment which should be ignored Application dev0 = tester.createApplication("dev0", "tenant1", 7, 1L); - tester.controllerTester().deploy(dev0, new Zone(Environment.dev, RegionName.from("dev-region"))); + tester.controllerTester().deploy(dev0, Zone.from(Environment.dev, RegionName.from("dev-region"))); // New version is released and canaries upgrade version = Version.fromString("5.1"); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java index bf869230e8d..e3d477cefeb 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java @@ -48,8 +48,8 @@ public class ApplicationSerializerTest { private static final ApplicationSerializer applicationSerializer = new ApplicationSerializer(); - private static final Zone zone1 = new Zone(Environment.from("prod"), RegionName.from("us-west-1")); - private static final Zone zone2 = new Zone(Environment.from("prod"), RegionName.from("us-east-3")); + private static final Zone zone1 = Zone.from(Environment.from("prod"), RegionName.from("us-west-1")); + private static final Zone zone2 = Zone.from(Environment.from("prod"), RegionName.from("us-east-3")); @Test public void testSerialization() { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java index 6cf90905679..c5a413847d8 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java @@ -32,10 +32,10 @@ public class ServiceApiResponseTest { @Test public void testServiceViewResponse() throws URISyntaxException, IOException { - ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.prod, RegionName.from("us-west-1")), - ApplicationId.from("tenant1", "application1", "default"), - Collections.singletonList(new URI("config-server1")), - new URI("http://server1:4080/request/path?foo=bar")); + ServiceApiResponse response = new ServiceApiResponse(Zone.from(Environment.prod, RegionName.from("us-west-1")), + ApplicationId.from("tenant1", "application1", "default"), + Collections.singletonList(new URI("config-server1")), + new URI("http://server1:4080/request/path?foo=bar")); ApplicationView applicationView = new ApplicationView(); ClusterView clusterView = new ClusterView(); clusterView.type = "container"; @@ -63,7 +63,7 @@ public class ServiceApiResponseTest { @Test public void testServiceViewResponseWithURLs() throws URISyntaxException, IOException { - ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.prod, RegionName.from("us-west-1")), + ServiceApiResponse response = new ServiceApiResponse(Zone.from(Environment.prod, RegionName.from("us-west-1")), ApplicationId.from("tenant2", "application2", "default"), Collections.singletonList(new URI("http://cfg1.test/")), new URI("http://cfg1.test/serviceview/v1/tenant/tenant2/application/application2/environment/prod/region/us-west-1/instance/default/service/searchnode-9dujk1pa0vufxrj6n4yvmi8uc/state/v1")); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java index 55a4b46f4a7..75101e62754 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java @@ -95,14 +95,14 @@ public class DeploymentApiTest extends ControllerContainerTest { private void deployCompletely(Application application, ApplicationPackage applicationPackage, long projectId, boolean success) { tester.notifyJobCompletion(application.id(), projectId, true, component); - tester.deploy(application, applicationPackage, new Zone(Environment.test, - RegionName.from("us-east-1")), projectId); + tester.deploy(application, applicationPackage, Zone.from(Environment.test, + RegionName.from("us-east-1")), projectId); tester.notifyJobCompletion(application.id(), projectId, true, systemTest); - tester.deploy(application, applicationPackage, new Zone(Environment.staging, - RegionName.from("us-east-3")), projectId); + tester.deploy(application, applicationPackage, Zone.from(Environment.staging, + RegionName.from("us-east-3")), projectId); tester.notifyJobCompletion(application.id(), projectId, success, stagingTest); if (success) { - tester.deploy(application, applicationPackage, new Zone(Environment.prod,RegionName.from("corp-us-east-1")), + tester.deploy(application, applicationPackage, Zone.from(Environment.prod, RegionName.from("corp-us-east-1")), projectId); tester.notifyJobCompletion(application.id(), projectId, true, productionCorpUsEast1); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java index e2c3725ea5f..3e1a324918e 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java @@ -39,8 +39,8 @@ import static org.junit.Assert.assertTrue; public class ScrewdriverApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/responses/"; - private static final Zone testZone = new Zone(Environment.test, RegionName.from("us-east-1")); - private static final Zone stagingZone = new Zone(Environment.staging, RegionName.from("us-east-3")); + private static final Zone testZone = Zone.from(Environment.test, RegionName.from("us-east-1")); + private static final Zone stagingZone = Zone.from(Environment.staging, RegionName.from("us-east-3")); @Test public void testGetReleaseStatus() throws Exception { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java index a00665b77cb..af99ff9de15 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java @@ -22,11 +22,11 @@ public class ZoneApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/"; private static final List zones = Arrays.asList( - new Zone(Environment.prod, RegionName.from("us-north-1")), - new Zone(Environment.dev, RegionName.from("us-north-2")), - new Zone(Environment.test, RegionName.from("us-north-3")), - new Zone(Environment.staging, RegionName.from("us-north-4")) - ); + Zone.from(Environment.prod, RegionName.from("us-north-1")), + Zone.from(Environment.dev, RegionName.from("us-north-2")), + Zone.from(Environment.test, RegionName.from("us-north-3")), + Zone.from(Environment.staging, RegionName.from("us-north-4")) + ); private ContainerControllerTester tester; diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java index 63899d808f9..f887a449149 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java @@ -27,11 +27,11 @@ public class ZoneApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/responses/"; private static final List zones = Arrays.asList( - new Zone(Environment.prod, RegionName.from("us-north-1")), - new Zone(Environment.dev, RegionName.from("us-north-2")), - new Zone(Environment.test, RegionName.from("us-north-3")), - new Zone(Environment.staging, RegionName.from("us-north-4")) - ); + Zone.from(Environment.prod, RegionName.from("us-north-1")), + Zone.from(Environment.dev, RegionName.from("us-north-2")), + Zone.from(Environment.test, RegionName.from("us-north-3")), + Zone.from(Environment.staging, RegionName.from("us-north-4")) + ); private ContainerControllerTester tester; private ConfigServerProxyMock proxy; diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java index 704ded54479..a5c96b2b131 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java @@ -41,7 +41,7 @@ public class InactiveAndFailedExpirerTest { @Test public void inactive_and_failed_times_out() throws InterruptedException { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); List nodes = tester.makeReadyNodes(2, "default"); // Allocate then deallocate 2 nodes @@ -79,7 +79,7 @@ public class InactiveAndFailedExpirerTest { @Test public void reboot_generation_is_increased_when_node_moves_to_dirty() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); List nodes = tester.makeReadyNodes(1, "default"); // Allocate and deallocate a single node @@ -110,7 +110,7 @@ public class InactiveAndFailedExpirerTest { @Test public void node_that_wants_to_retire_is_moved_to_parked() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Version.fromString("6.42")); tester.makeReadyNodes(5, "default"); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java index 4dec3f9bde5..8b6eb3c3ba8 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java @@ -30,7 +30,7 @@ public class MaintenanceTester { private final Curator curator = new MockCurator(); public final ManualClock clock = new ManualClock(Instant.ofEpochMilli(0L)); // determinism - private final Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); + private final Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); private final NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default"); public final NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone, new MockNameResolver().mockAnyLookup(), diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java index 0e0195a5bed..8dac22f92e1 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java @@ -54,7 +54,7 @@ public class NodeFailTester { public static final ApplicationId app1 = ApplicationId.from(TenantName.from("foo1"), ApplicationName.from("bar"), InstanceName.from("fuz")); public static final ApplicationId app2 = ApplicationId.from(TenantName.from("foo2"), ApplicationName.from("bar"), InstanceName.from("fuz")); public static final NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default", "docker"); - private static final Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); + private static final Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); private static final Duration downtimeLimitOneHour = Duration.ofMinutes(60); // Components with state diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTester.java index 04e782c5562..86c3dba03ec 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTester.java @@ -46,7 +46,7 @@ import static org.mockito.Mockito.when; * @author freva */ public class NodeRetirerTester { - public static final Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); + public static final Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); // Components with state public final ManualClock clock = new ManualClock(); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java index d2ec5865a0c..b07d364528e 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java @@ -53,7 +53,7 @@ public class OperatorChangeApplicationMaintainerTest { public void test_application_maintenance() throws InterruptedException { ManualClock clock = new ManualClock(); Curator curator = new MockCurator(); - Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); + Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); this.nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone, new MockNameResolver().mockAnyLookup(), new DockerImage("docker-registry.domain.tld:8080/dist/vespa")); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java index d9a6b62bbe9..351ce453a70 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java @@ -54,7 +54,7 @@ public class PeriodicApplicationMaintainerTest { @Before public void before() { Curator curator = new MockCurator(); - Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); + Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); this.nodeRepository = new NodeRepository(nodeFlavors, curator, new ManualClock(), zone, new MockNameResolver().mockAnyLookup(), new DockerImage("docker-registry.domain.tld:8080/dist/vespa")); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java index 8195321be03..961b0f64b04 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java @@ -54,7 +54,7 @@ public class RetiredExpirerTest { @Test public void ensure_retired_nodes_time_out() throws InterruptedException { ManualClock clock = new ManualClock(); - Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); + Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default"); NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone, new MockNameResolver().mockAnyLookup(), @@ -94,7 +94,7 @@ public class RetiredExpirerTest { @Test public void ensure_retired_groups_time_out() throws InterruptedException { ManualClock clock = new ManualClock(); - Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); + Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default"); NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone, new MockNameResolver().mockAnyLookup(), @@ -130,7 +130,7 @@ public class RetiredExpirerTest { @Test public void ensure_early_inactivation() throws OrchestrationException { ManualClock clock = new ManualClock(); - Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); + Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default"); NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone, new MockNameResolver().mockAnyLookup(), diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java index a6760ef37ce..f906f47e6d0 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java @@ -28,7 +28,7 @@ public class DockerProvisioningTest { @Test public void docker_application_deployment() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); for (int i = 1; i < 10; i++) { @@ -61,7 +61,7 @@ public class DockerProvisioningTest { // In dev, test and staging you get nodes with default flavor, but we should get specified flavor for docker nodes @Test public void get_specified_flavor_not_default_flavor_for_docker() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.test, RegionName.from("corp-us-east-1"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.test, RegionName.from("corp-us-east-1"))); ApplicationId application1 = tester.makeApplicationId(); tester.makeReadyDockerNodes(1, dockerFlavor, "dockerHost"); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java index 75d5862f010..45565cc8547 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java @@ -61,7 +61,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void relocate_nodes_from_headroom_hosts() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); enableDynamicAllocation(tester); tester.makeReadyNodes(4, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -109,7 +109,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void relocate_nodes_from_spare_hosts() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeReadyNodes(4, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -155,7 +155,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void new_docker_nodes_are_marked_as_headroom_violations() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); enableDynamicAllocation(tester); tester.makeReadyNodes(4, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -211,7 +211,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void only_preferred_container_is_moved_from_hosts_with_headroom_violations() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); enableDynamicAllocation(tester); tester.makeReadyNodes(4, "host-medium", NodeType.host, 32); deployZoneApp(tester); @@ -280,7 +280,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void reloacte_failed_nodes() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeReadyNodes(5, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -339,7 +339,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void do_not_relocate_nodes_from_spare_if_no_where_to_reloacte_them() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeReadyNodes(2, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -367,7 +367,7 @@ public class DynamicDockerProvisioningTest { @Test(expected = OutOfCapacityException.class) public void multiple_groups_are_on_separate_parent_hosts() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeReadyNodes(5, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -390,7 +390,7 @@ public class DynamicDockerProvisioningTest { // Fail one node and redeploy, Verify that one less node is empty. // Setup test - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); ApplicationId application1 = tester.makeApplicationId(); tester.makeReadyNodes(5, "host-small", NodeType.host, 32); @@ -430,7 +430,7 @@ public class DynamicDockerProvisioningTest { @Test public void non_prod_do_not_have_spares() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.perf, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.perf, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeReadyNodes(3, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -448,7 +448,7 @@ public class DynamicDockerProvisioningTest { @Test(expected = OutOfCapacityException.class) public void allocation_should_fail_when_host_is_not_active() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeProvisionedNodes(3, "host-small", NodeType.host, 32); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java index 4a20cb3e318..51866f82c52 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java @@ -35,7 +35,7 @@ public class MultigroupProvisioningTest { @Test public void test_provisioning_of_multiple_groups() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -67,7 +67,7 @@ public class MultigroupProvisioningTest { */ @Test @Ignore public void test_provisioning_of_groups_with_asymmetry() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -80,7 +80,7 @@ public class MultigroupProvisioningTest { @Test public void test_provisioning_of_multiple_groups_after_flavor_migration() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -94,7 +94,7 @@ public class MultigroupProvisioningTest { @Test public void test_one_node_and_group_to_two() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -106,7 +106,7 @@ public class MultigroupProvisioningTest { @Test public void test_one_node_and_group_to_two_with_flavor_migration() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -119,7 +119,7 @@ public class MultigroupProvisioningTest { @Test public void test_provisioning_of_multiple_groups_after_flavor_migration_and_exiration() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java index 873193ac3b8..b0896b10fb3 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java @@ -16,7 +16,6 @@ import org.junit.Test; import java.util.HashSet; import java.util.List; -import java.util.Optional; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -30,7 +29,7 @@ public class NodeTypeProvisioningTest { @Test public void proxy_deployment() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); tester.makeReadyNodes( 1, "small", NodeType.proxy); tester.makeReadyNodes( 3, "small", NodeType.host); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java index afdce0d25cc..8b1907fce86 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java @@ -56,7 +56,7 @@ public class ProvisioningTest { @Test public void application_deployment_constant_application_size() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); ApplicationId application2 = tester.makeApplicationId(); @@ -137,7 +137,7 @@ public class ProvisioningTest { @Test public void application_deployment_variable_application_size() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -204,7 +204,7 @@ public class ProvisioningTest { @Test public void application_deployment_multiple_flavors() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -233,7 +233,7 @@ public class ProvisioningTest { @Test public void application_deployment_with_inplace_downsize() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -281,7 +281,7 @@ public class ProvisioningTest { @Test public void application_deployment_multiple_flavors_with_replacement() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -324,7 +324,7 @@ public class ProvisioningTest { @Test public void application_deployment_above_then_at_capacity_limit() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -349,7 +349,7 @@ public class ProvisioningTest { @Test public void dev_deployment_size() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.dev, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.dev, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(4, "default"); @@ -360,7 +360,7 @@ public class ProvisioningTest { @Test public void deploy_specific_vespa_version() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.dev, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.dev, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(4, "default"); @@ -371,7 +371,7 @@ public class ProvisioningTest { @Test public void test_deployment_size() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.test, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.test, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(4, "default"); @@ -383,7 +383,7 @@ public class ProvisioningTest { @Ignore // TODO: Re-activate when the check is reactivate in CapacityPolicies @Test(expected = IllegalArgumentException.class) public void prod_deployment_requires_redundancy() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(10, "default"); @@ -393,7 +393,7 @@ public class ProvisioningTest { /** Dev always uses the zone default flavor */ @Test public void dev_deployment_flavor() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.dev, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.dev, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(4, "default"); @@ -405,7 +405,7 @@ public class ProvisioningTest { /** Test always uses the zone default flavor */ @Test public void test_deployment_flavor() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.test, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.test, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(4, "default"); @@ -416,7 +416,7 @@ public class ProvisioningTest { @Test public void staging_deployment_size() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.staging, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.staging, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(14, "default"); @@ -427,7 +427,7 @@ public class ProvisioningTest { @Test public void activate_after_reservation_timeout() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); tester.makeReadyNodes(10, "default"); ApplicationId application = tester.makeApplicationId(); @@ -449,7 +449,7 @@ public class ProvisioningTest { @Test public void out_of_capacity() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); tester.makeReadyNodes(9, "default"); // need 2+2+3+3=10 ApplicationId application = tester.makeApplicationId(); @@ -464,7 +464,7 @@ public class ProvisioningTest { @Test public void out_of_desired_flavor() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); tester.makeReadyNodes(10, "small"); // need 2+2+3+3=10 tester.makeReadyNodes( 9, "large"); // need 2+2+3+3=10 @@ -489,7 +489,7 @@ public class ProvisioningTest { Flavor.Type.BARE_METAL).cost(2); b.addReplaces(flavorToRetire, newDefault); - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), b.build()); ApplicationId application = tester.makeApplicationId(); @@ -504,7 +504,7 @@ public class ProvisioningTest { @Test public void out_of_capacity_all_nodes_want_to_retire() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); // Flag all nodes for retirement @@ -521,7 +521,7 @@ public class ProvisioningTest { @Test public void nonexisting_flavor() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); try { @@ -535,7 +535,7 @@ public class ProvisioningTest { @Test public void highest_node_indexes_are_retired_first() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -586,7 +586,7 @@ public class ProvisioningTest { FlavorConfigBuilder b = new FlavorConfigBuilder(); b.addFlavor("default", 1., 1., 10, Flavor.Type.BARE_METAL).cost(2); - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), b.build(), curator, nameResolver); tester.makeReadyNodes(4, flavorToRetire); SystemState state = prepare(application, 2, 0, 2, 0, @@ -603,7 +603,7 @@ public class ProvisioningTest { Flavor.Type.BARE_METAL).cost(2); b.addReplaces(flavorToRetire, newDefault); - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), b.build(), curator, nameResolver); // Add nodes with "new-default" flavor @@ -632,7 +632,7 @@ public class ProvisioningTest { Flavor.Type.BARE_METAL).cost(2); b.addReplaces(flavorToRetire, newDefault); - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), b.build()); ApplicationId application = tester.makeApplicationId(); @@ -652,7 +652,7 @@ public class ProvisioningTest { @Test public void application_deployment_retires_nodes_that_want_to_retire() { - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(10, "default"); @@ -687,7 +687,7 @@ public class ProvisioningTest { FlavorsConfig.Flavor.Builder largeVariantVariant = b.addFlavor("large-variant-variant", 4., 9., 101, Flavor.Type.BARE_METAL).cost(11); b.addReplaces("large-variant", largeVariantVariant); - ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), b.build()); + ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), b.build()); tester.makeReadyNodes(6, "large"); //cost = 10 tester.makeReadyNodes(6, "large-variant"); //cost = 9 tester.makeReadyNodes(6, "large-variant-variant"); //cost = 11 diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java index 4366cd641ec..521090783d5 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java @@ -40,7 +40,7 @@ public class VirtualNodeProvisioningTest { @Before public void setup() { - tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); + tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); applicationId = tester.makeApplicationId(); } diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java index cf07c39950c..eaea006d429 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java @@ -38,7 +38,7 @@ public class ModelGeneratorTest { ExampleModel.createExampleSuperModelWithOneRpcPort(HOSTNAME, PORT); ModelGenerator modelGenerator = new ModelGenerator(); - Zone zone = new Zone(Environment.from(ENVIRONMENT), RegionName.from(REGION)); + Zone zone = Zone.from(Environment.from(ENVIRONMENT), RegionName.from(REGION)); List configServerHosts = Stream.of("cfg1", "cfg2", "cfg3") .collect(Collectors.toList()); @@ -83,7 +83,7 @@ public class ModelGeneratorTest { ExampleModel.createExampleSuperModelWithOneRpcPort(HOSTNAME, PORT); ModelGenerator modelGenerator = new ModelGenerator(); - Zone zone = new Zone(Environment.from(ENVIRONMENT), RegionName.from(REGION)); + Zone zone = Zone.from(Environment.from(ENVIRONMENT), RegionName.from(REGION)); List configServerHosts = Collections.emptyList(); -- cgit v1.2.3 From 666eaba7f5d3aff8934e222ee71cdf82b0342bb2 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 8 Dec 2017 14:23:26 +0100 Subject: Revert "Factory constructor with region/env" This reverts commit e5f2b434d614b49bef40038ec1fe1d391db62e1e. --- .../preprocessor/ApplicationPreprocessor.java | 2 +- .../provider/FilesApplicationPackageTest.java | 6 +-- .../com/yahoo/vespa/model/admin/AdminTestCase.java | 4 +- .../container/xml/ContainerModelBuilderTest.java | 2 +- .../model/container/xml/RoutingBuilderTest.java | 2 +- .../com/yahoo/vespa/model/content/ClusterTest.java | 4 +- .../main/java/com/yahoo/config/provision/Zone.java | 6 +-- .../http/v2/ListApplicationsHandlerTest.java | 2 +- .../server/model/LbServicesProducerTest.java | 6 +-- .../controller/api/identifiers/IdentifierTest.java | 2 +- .../controller/application/DeploymentJobs.java | 5 ++- .../controller/deployment/DeploymentOrder.java | 2 +- .../persistence/ApplicationSerializer.java | 4 +- .../restapi/application/ApplicationApiHandler.java | 20 ++++----- .../vespa/hosted/controller/ControllerTest.java | 4 +- .../vespa/hosted/controller/ControllerTester.java | 6 +-- .../vespa/hosted/controller/ZoneRegistryMock.java | 2 +- .../maintenance/DeploymentExpirerTest.java | 2 +- .../controller/maintenance/UpgraderTest.java | 2 +- .../persistence/ApplicationSerializerTest.java | 4 +- .../application/ServiceApiResponseTest.java | 10 ++--- .../restapi/deployment/DeploymentApiTest.java | 10 ++--- .../restapi/screwdriver/ScrewdriverApiTest.java | 4 +- .../controller/restapi/zone/v1/ZoneApiTest.java | 10 ++--- .../controller/restapi/zone/v2/ZoneApiTest.java | 10 ++--- .../maintenance/InactiveAndFailedExpirerTest.java | 6 +-- .../provision/maintenance/MaintenanceTester.java | 2 +- .../provision/maintenance/NodeFailTester.java | 2 +- .../provision/maintenance/NodeRetirerTester.java | 2 +- .../OperatorChangeApplicationMaintainerTest.java | 2 +- .../PeriodicApplicationMaintainerTest.java | 2 +- .../provision/maintenance/RetiredExpirerTest.java | 6 +-- .../provisioning/DockerProvisioningTest.java | 4 +- .../DynamicDockerProvisioningTest.java | 20 ++++----- .../provisioning/MultigroupProvisioningTest.java | 12 +++--- .../provisioning/NodeTypeProvisioningTest.java | 3 +- .../provision/provisioning/ProvisioningTest.java | 50 +++++++++++----------- .../provisioning/VirtualNodeProvisioningTest.java | 2 +- .../monitor/internal/ModelGeneratorTest.java | 4 +- 39 files changed, 123 insertions(+), 125 deletions(-) diff --git a/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java b/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java index f48968ad919..e879acef3bb 100644 --- a/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java +++ b/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java @@ -39,7 +39,7 @@ public class ApplicationPreprocessor { FilesApplicationPackage.Builder applicationPackageBuilder = new FilesApplicationPackage.Builder(applicationDir); outputDir.ifPresent(applicationPackageBuilder::preprocessedDir); ApplicationPackage preprocessed = applicationPackageBuilder.build().preprocess( - Zone.from(environment.orElse(Environment.defaultEnvironment()), region.orElse(RegionName.defaultName())), + new Zone(environment.orElse(Environment.defaultEnvironment()), region.orElse(RegionName.defaultName())), (a, b) -> { }, logger); preprocessed.validateXML(); diff --git a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java index 59950375ee7..c12a9ad0d06 100644 --- a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java @@ -41,13 +41,13 @@ public class FilesApplicationPackageTest { assertTrue(new File(appDir, "hosts.xml").exists()); FilesApplicationPackage app = FilesApplicationPackage.fromFile(appDir); - ApplicationPackage processed = app.preprocess(Zone.from(Environment.dev, RegionName.defaultName()), - new RuleConfigDeriver() { + ApplicationPackage processed = app.preprocess(new Zone(Environment.dev, RegionName.defaultName()), + new RuleConfigDeriver() { @Override public void derive(String ruleBaseDir, String outputDir) throws Exception { } }, - new BaseDeployLogger()); + new BaseDeployLogger()); assertTrue(new File(appDir, ".preprocessed").exists()); String expectedServices = "\n" + " \n" + diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java index 6d46993175c..fed9000f72b 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java @@ -148,7 +148,7 @@ public class AdminTestCase { public void testTenantAndAppInSentinelConfig() { DeployState state = new DeployState.Builder().properties( new DeployProperties.Builder(). - zone(Zone.from(Environment.dev, RegionName.from("baz"))). + zone(new Zone(Environment.dev, RegionName.from("baz"))). applicationId(new ApplicationId.Builder(). tenant("quux"). applicationName("foo").instanceName("bim").build()).build()).build(); @@ -311,7 +311,7 @@ public class AdminTestCase { .disableFiledistributor(true) .properties( new DeployProperties.Builder(). - zone(Zone.from(Environment.dev, RegionName.from("baz"))). + zone(new Zone(Environment.dev, RegionName.from("baz"))). applicationId(new ApplicationId.Builder(). tenant("quux"). applicationName("foo").instanceName("bim").build()).build()).build(); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java index 44a575936a5..5e093bdb32a 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java @@ -511,7 +511,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase { " ", ""); - DeployState deployState = new DeployState.Builder().zone(Zone.from(Environment.dev, RegionName.from("us-east-1"))).build(); + DeployState deployState = new DeployState.Builder().zone(new Zone(Environment.dev, RegionName.from("us-east-1"))).build(); createModel(root, deployState, clusterElem); assertEquals(0, getContainerCluster("default").serviceAliases().size()); assertEquals(0, getContainerCluster("default").endpointAliases().size()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/RoutingBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/RoutingBuilderTest.java index 2a60672470e..a2f32694340 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/RoutingBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/RoutingBuilderTest.java @@ -66,7 +66,7 @@ public class RoutingBuilderTest extends ContainerModelBuilderTestBase { private Container getContainer(ApplicationPackage applicationPackage, String region, Element clusterElem) throws IOException, SAXException { DeployState deployState = new DeployState.Builder() .applicationPackage(applicationPackage) - .zone(Zone.from(Environment.prod, RegionName.from(region))) + .zone(new Zone(Environment.prod, RegionName.from(region))) .build(); root = new MockRoot("root", deployState); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java index 7d9ec9d68d6..0c41b8ecc0b 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ClusterTest.java @@ -483,10 +483,10 @@ public class ClusterTest extends ContentBaseTest { public void testZoneDependentDistributionBits() throws Exception { String xml = new ContentClusterBuilder().docTypes("test").getXml(); - ContentCluster prodWith16Bits = createWithZone(xml, Zone.from(Environment.prod, RegionName.from("us-east-3"))); + ContentCluster prodWith16Bits = createWithZone(xml, new Zone(Environment.prod, RegionName.from("us-east-3"))); assertDistributionBitsInConfig(prodWith16Bits, 16); - ContentCluster stagingNot16Bits = createWithZone(xml, Zone.from(Environment.staging, RegionName.from("us-east-3"))); + ContentCluster stagingNot16Bits = createWithZone(xml, new Zone(Environment.staging, RegionName.from("us-east-3"))); assertDistributionBitsInConfig(stagingNot16Bits, 8); } @Test diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index 7d7215690e9..6315e05c9de 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -32,7 +32,7 @@ public class Zone { } /** Create from environment and region */ - private Zone(Environment environment, RegionName region) { + public Zone(Environment environment, RegionName region) { this(SystemName.defaultSystem(), environment, region); } @@ -53,10 +53,6 @@ public class Zone { this.nodeFlavors = Optional.ofNullable(nodeFlavors); } - public static Zone from(Environment environment, RegionName region) { - return new Zone(environment, region); - } - /** Returns the current environment */ public Environment environment() { return environment; } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java index 7700dd9392e..9e7853a8fdf 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java @@ -42,7 +42,7 @@ public class ListApplicationsHandlerTest { handler = new ListApplicationsHandler(Runnable::run, AccessLog.voidAccessLog(), tenants, - Zone.from(Environment.dev, RegionName.from("us-east"))); + new Zone(Environment.dev, RegionName.from("us-east"))); } @Test diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java index 5e7886f0d2f..df8ed405fe3 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/model/LbServicesProducerTest.java @@ -87,11 +87,11 @@ public class LbServicesProducerTest { } private LbServicesConfig createModelAndGetLbServicesConfig(RegionName regionName) throws IOException, SAXException { - final Zone zone = Zone.from(Environment.prod, regionName); + final Zone zone = new Zone(Environment.prod, regionName); Map> testModel = createTestModel(new DeployState.Builder() .properties(new DeployProperties.Builder().zone(zone).build()) .zone(zone)); - return getLbServicesConfig(Zone.from(Environment.prod, regionName), testModel); + return getLbServicesConfig(new Zone(Environment.prod, regionName), testModel); } private LbServicesConfig getLbServicesConfig(Zone zone, Map> testModel) { @@ -105,7 +105,7 @@ public class LbServicesProducerTest { public void testConfigAliasesWithRotations() throws IOException, SAXException { Map> testModel = createTestModel(new DeployState.Builder().rotations(rotations)); RegionName regionName = RegionName.from("us-east-1"); - LbServicesConfig conf = getLbServicesConfig(Zone.from(Environment.prod, regionName), testModel); + LbServicesConfig conf = getLbServicesConfig(new Zone(Environment.prod, regionName), testModel); final LbServicesConfig.Tenants.Applications.Hosts.Services services = conf.tenants("foo").applications("foo:prod:" + regionName.value() + ":default").hosts("foo.foo.yahoo.com").services("qrserver"); assertThat(services.servicealiases().size(), is(1)); assertThat(services.endpointaliases().size(), is(4)); diff --git a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java index 8e98e50b951..7e4d543fd18 100644 --- a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java +++ b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java @@ -147,7 +147,7 @@ public class IdentifierTest { @Test public void application_instance_id_dotted_string_is_subindentifers_concatinated_with_dots() { DeploymentId id = new DeploymentId(com.yahoo.config.provision.ApplicationId.from("tenant", "application", "instance"), - Zone.from(Environment.prod, RegionName.from("region"))); + new Zone(Environment.prod, RegionName.from("region"))); assertEquals("tenant.application.prod.region.instance", id.dottedString()); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java index 754a3386d89..98f8c2a3d99 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java @@ -13,6 +13,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.organization.IssueId; import java.time.Instant; import java.util.Collection; +import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; @@ -228,7 +229,7 @@ public class DeploymentJobs { case test: return Optional.of(systemTest); case staging: return Optional.of(stagingTest); } - return from(system, Zone.from(environment, region)); + return from(system, new Zone(environment, region)); } private static Zone zone(SystemName system, String environment, String region) { @@ -236,7 +237,7 @@ public class DeploymentJobs { } private static Zone zone(String environment, String region) { - return Zone.from(Environment.from(environment), RegionName.from(region)); + return new Zone(Environment.from(environment), RegionName.from(region)); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java index 59da90d033a..aa4d07634db 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java @@ -107,7 +107,7 @@ public class DeploymentOrder { public List sortBy(List zones, Collection deployments) { List productionZones = zones.stream() .filter(z -> z.region().isPresent()) - .map(z -> Zone.from(z.environment(), z.region().get())) + .map(z -> new Zone(z.environment(), z.region().get())) .collect(toList()); return deployments.stream() .sorted(comparingInt(deployment -> productionZones.indexOf(deployment.zone()))) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java index 6df856d7ee2..c71409aaba9 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java @@ -339,8 +339,8 @@ public class ApplicationSerializer { } private Zone zoneFromSlime(Inspector object) { - return Zone.from(Environment.from(object.field(environmentField).asString()), - RegionName.from(object.field(regionField).asString())); + return new Zone(Environment.from(object.field(environmentField).asString()), + RegionName.from(object.field(regionField).asString())); } private Optional applicationRevisionFromSlime(Inspector object) { diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java index a5a368b62f6..d64f07906ab 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java @@ -423,7 +423,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { .orElseThrow(() -> new NotExistsException(id + " not found")); DeploymentId deploymentId = new DeploymentId(application.id(), - Zone.from(Environment.from(environment), RegionName.from(region))); + new Zone(Environment.from(environment), RegionName.from(region))); Deployment deployment = application.deployments().get(deploymentId.zone()); if (deployment == null) @@ -514,7 +514,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { // DeploymentId identifies the zone and application we are dealing with DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - Zone.from(Environment.from(environment), RegionName.from(region))); + new Zone(Environment.from(environment), RegionName.from(region))); try { List rotations = controller.applications().setGlobalRotationStatus(deploymentId, endPointStatus); return new MessageResponse(String.format("Rotations %s successfully set to %s service", rotations.toString(), inService ? "in" : "out of")); @@ -526,7 +526,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse getGlobalRotationOverride(String tenantName, String applicationName, String instanceName, String environment, String region) { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - Zone.from(Environment.from(environment), RegionName.from(region))); + new Zone(Environment.from(environment), RegionName.from(region))); Slime slime = new Slime(); Cursor c1 = slime.setObject().setArray("globalrotationoverride"); @@ -571,13 +571,13 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse waitForConvergence(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { return new JacksonJsonResponse(controller.waitForConfigConvergence(new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - Zone.from(Environment.from(environment), RegionName.from(region))), + new Zone(Environment.from(environment), RegionName.from(region))), asLong(request.getProperty("timeout"), 1000))); } private HttpResponse services(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { ApplicationView applicationView = controller.getApplicationView(tenantName, applicationName, instanceName, environment, region); - ServiceApiResponse response = new ServiceApiResponse(Zone.from(Environment.from(environment), RegionName.from(region)), + ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.from(environment), RegionName.from(region)), new ApplicationId.Builder().tenant(tenantName).applicationName(applicationName).instanceName(instanceName).build(), controller.getConfigServerUris(Environment.from(environment), RegionName.from(region)), request.getUri()); @@ -587,7 +587,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse service(String tenantName, String applicationName, String instanceName, String environment, String region, String serviceName, String restPath, HttpRequest request) { Map result = controller.getServiceApiResponse(tenantName, applicationName, instanceName, environment, region, serviceName, restPath); - ServiceApiResponse response = new ServiceApiResponse(Zone.from(Environment.from(environment), RegionName.from(region)), + ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.from(environment), RegionName.from(region)), new ApplicationId.Builder().tenant(tenantName).applicationName(applicationName).instanceName(instanceName).build(), controller.getConfigServerUris(Environment.from(environment), RegionName.from(region)), request.getUri()); @@ -737,7 +737,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { /** Schedule restart of deployment, or specific host in a deployment */ private HttpResponse restart(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - Zone.from(Environment.from(environment), RegionName.from(region))); + new Zone(Environment.from(environment), RegionName.from(region))); // TODO: Propagate all filters Optional hostname = Optional.ofNullable(request.getProperty("hostname")).map(Hostname::new); controller.applications().restart(deploymentId, hostname); @@ -758,7 +758,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse log(String tenantName, String applicationName, String instanceName, String environment, String region) { try { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - Zone.from(Environment.from(environment), RegionName.from(region))); + new Zone(Environment.from(environment), RegionName.from(region))); return new JacksonJsonResponse(controller.grabLog(deploymentId)); } catch (RuntimeException e) { @@ -770,7 +770,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse deploy(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { ApplicationId applicationId = ApplicationId.from(tenantName, applicationName, instanceName); - Zone zone = Zone.from(Environment.from(environment), RegionName.from(region)); + Zone zone = new Zone(Environment.from(environment), RegionName.from(region)); Map dataParts = new MultipartParser().parse(request); if ( ! dataParts.containsKey("deployOptions")) @@ -821,7 +821,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse deactivate(String tenantName, String applicationName, String instanceName, String environment, String region) { Application application = controller.applications().require(ApplicationId.from(tenantName, applicationName, instanceName)); - Zone zone = Zone.from(Environment.from(environment), RegionName.from(region)); + Zone zone = new Zone(Environment.from(environment), RegionName.from(region)); Deployment deployment = application.deployments().get(zone); if (deployment == null) { // Attempt to deactivate application even if the deployment is not known by the controller diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java index 94241d7934d..c41fc20d5c2 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java @@ -526,7 +526,7 @@ public class ControllerTest { application = application.withDeploying(Optional.of(new Change.VersionChange(Version.fromString("6.3")))); applications.store(application); try { - tester.deploy(app, Zone.from(Environment.prod, RegionName.from("us-east-3"))); + tester.deploy(app, new Zone(Environment.prod, RegionName.from("us-east-3"))); fail("Expected exception"); } catch (IllegalArgumentException e) { assertEquals("Rejecting deployment of application 'tenant1.app1' to zone prod.us-east-3 as version change to 6.3 is not tested", e.getMessage()); @@ -626,7 +626,7 @@ public class ControllerTest { Application app = tester.createApplication("app1", "tenant1", 1, 2L); // Direct deploy is allowed when project ID is missing - Zone zone = Zone.from(Environment.prod, RegionName.from("cd-us-central-1")); + Zone zone = new Zone(Environment.prod, RegionName.from("cd-us-central-1")); // Same options as used in our integration tests DeployOptions options = new DeployOptions(Optional.empty(), Optional.empty(), false, false); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java index 8ed4ae9ec19..bdb8160a3f6 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java @@ -165,9 +165,9 @@ public final class ControllerTester { public Zone toZone(Environment environment) { switch (environment) { - case dev: case test: return Zone.from(environment, RegionName.from("us-east-1")); - case staging: return Zone.from(environment, RegionName.from("us-east-3")); - default: return Zone.from(environment, RegionName.from("us-west-1")); + case dev: case test: return new Zone(environment, RegionName.from("us-east-1")); + case staging: return new Zone(environment, RegionName.from("us-east-3")); + default: return new Zone(environment, RegionName.from("us-west-1")); } } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java index fb05552ba38..18332942c24 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java @@ -88,7 +88,7 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry @Override public Optional getDeploymentTimeToLive(Environment environment, RegionName region) { - return Optional.ofNullable(deploymentTimeToLive.get(Zone.from(environment, region))); + return Optional.ofNullable(deploymentTimeToLive.get(new Zone(environment, region))); } @Override diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java index bc3a89f911d..ef0b05f9bb2 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java @@ -35,7 +35,7 @@ public class DeploymentExpirerTest { @Test public void testDeploymentExpiry() throws IOException, InterruptedException { tester.controllerTester().zoneRegistry().setDeploymentTimeToLive( - Zone.from(Environment.dev, RegionName.from("us-east-1")), + new Zone(Environment.dev, RegionName.from("us-east-1")), Duration.ofDays(14) ); DeploymentExpirer expirer = new DeploymentExpirer(tester.controller(), Duration.ofDays(10), diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java index 7fc3f323353..8839f6a5a18 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java @@ -692,7 +692,7 @@ public class UpgraderTest { // Dev deployment which should be ignored Application dev0 = tester.createApplication("dev0", "tenant1", 7, 1L); - tester.controllerTester().deploy(dev0, Zone.from(Environment.dev, RegionName.from("dev-region"))); + tester.controllerTester().deploy(dev0, new Zone(Environment.dev, RegionName.from("dev-region"))); // New version is released and canaries upgrade version = Version.fromString("5.1"); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java index e3d477cefeb..bf869230e8d 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java @@ -48,8 +48,8 @@ public class ApplicationSerializerTest { private static final ApplicationSerializer applicationSerializer = new ApplicationSerializer(); - private static final Zone zone1 = Zone.from(Environment.from("prod"), RegionName.from("us-west-1")); - private static final Zone zone2 = Zone.from(Environment.from("prod"), RegionName.from("us-east-3")); + private static final Zone zone1 = new Zone(Environment.from("prod"), RegionName.from("us-west-1")); + private static final Zone zone2 = new Zone(Environment.from("prod"), RegionName.from("us-east-3")); @Test public void testSerialization() { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java index c5a413847d8..6cf90905679 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java @@ -32,10 +32,10 @@ public class ServiceApiResponseTest { @Test public void testServiceViewResponse() throws URISyntaxException, IOException { - ServiceApiResponse response = new ServiceApiResponse(Zone.from(Environment.prod, RegionName.from("us-west-1")), - ApplicationId.from("tenant1", "application1", "default"), - Collections.singletonList(new URI("config-server1")), - new URI("http://server1:4080/request/path?foo=bar")); + ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.prod, RegionName.from("us-west-1")), + ApplicationId.from("tenant1", "application1", "default"), + Collections.singletonList(new URI("config-server1")), + new URI("http://server1:4080/request/path?foo=bar")); ApplicationView applicationView = new ApplicationView(); ClusterView clusterView = new ClusterView(); clusterView.type = "container"; @@ -63,7 +63,7 @@ public class ServiceApiResponseTest { @Test public void testServiceViewResponseWithURLs() throws URISyntaxException, IOException { - ServiceApiResponse response = new ServiceApiResponse(Zone.from(Environment.prod, RegionName.from("us-west-1")), + ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.prod, RegionName.from("us-west-1")), ApplicationId.from("tenant2", "application2", "default"), Collections.singletonList(new URI("http://cfg1.test/")), new URI("http://cfg1.test/serviceview/v1/tenant/tenant2/application/application2/environment/prod/region/us-west-1/instance/default/service/searchnode-9dujk1pa0vufxrj6n4yvmi8uc/state/v1")); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java index 75101e62754..55a4b46f4a7 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java @@ -95,14 +95,14 @@ public class DeploymentApiTest extends ControllerContainerTest { private void deployCompletely(Application application, ApplicationPackage applicationPackage, long projectId, boolean success) { tester.notifyJobCompletion(application.id(), projectId, true, component); - tester.deploy(application, applicationPackage, Zone.from(Environment.test, - RegionName.from("us-east-1")), projectId); + tester.deploy(application, applicationPackage, new Zone(Environment.test, + RegionName.from("us-east-1")), projectId); tester.notifyJobCompletion(application.id(), projectId, true, systemTest); - tester.deploy(application, applicationPackage, Zone.from(Environment.staging, - RegionName.from("us-east-3")), projectId); + tester.deploy(application, applicationPackage, new Zone(Environment.staging, + RegionName.from("us-east-3")), projectId); tester.notifyJobCompletion(application.id(), projectId, success, stagingTest); if (success) { - tester.deploy(application, applicationPackage, Zone.from(Environment.prod, RegionName.from("corp-us-east-1")), + tester.deploy(application, applicationPackage, new Zone(Environment.prod,RegionName.from("corp-us-east-1")), projectId); tester.notifyJobCompletion(application.id(), projectId, true, productionCorpUsEast1); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java index 3e1a324918e..e2c3725ea5f 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java @@ -39,8 +39,8 @@ import static org.junit.Assert.assertTrue; public class ScrewdriverApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/responses/"; - private static final Zone testZone = Zone.from(Environment.test, RegionName.from("us-east-1")); - private static final Zone stagingZone = Zone.from(Environment.staging, RegionName.from("us-east-3")); + private static final Zone testZone = new Zone(Environment.test, RegionName.from("us-east-1")); + private static final Zone stagingZone = new Zone(Environment.staging, RegionName.from("us-east-3")); @Test public void testGetReleaseStatus() throws Exception { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java index af99ff9de15..a00665b77cb 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java @@ -22,11 +22,11 @@ public class ZoneApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/"; private static final List zones = Arrays.asList( - Zone.from(Environment.prod, RegionName.from("us-north-1")), - Zone.from(Environment.dev, RegionName.from("us-north-2")), - Zone.from(Environment.test, RegionName.from("us-north-3")), - Zone.from(Environment.staging, RegionName.from("us-north-4")) - ); + new Zone(Environment.prod, RegionName.from("us-north-1")), + new Zone(Environment.dev, RegionName.from("us-north-2")), + new Zone(Environment.test, RegionName.from("us-north-3")), + new Zone(Environment.staging, RegionName.from("us-north-4")) + ); private ContainerControllerTester tester; diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java index f887a449149..63899d808f9 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java @@ -27,11 +27,11 @@ public class ZoneApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/responses/"; private static final List zones = Arrays.asList( - Zone.from(Environment.prod, RegionName.from("us-north-1")), - Zone.from(Environment.dev, RegionName.from("us-north-2")), - Zone.from(Environment.test, RegionName.from("us-north-3")), - Zone.from(Environment.staging, RegionName.from("us-north-4")) - ); + new Zone(Environment.prod, RegionName.from("us-north-1")), + new Zone(Environment.dev, RegionName.from("us-north-2")), + new Zone(Environment.test, RegionName.from("us-north-3")), + new Zone(Environment.staging, RegionName.from("us-north-4")) + ); private ContainerControllerTester tester; private ConfigServerProxyMock proxy; diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java index a5c96b2b131..704ded54479 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/InactiveAndFailedExpirerTest.java @@ -41,7 +41,7 @@ public class InactiveAndFailedExpirerTest { @Test public void inactive_and_failed_times_out() throws InterruptedException { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); List nodes = tester.makeReadyNodes(2, "default"); // Allocate then deallocate 2 nodes @@ -79,7 +79,7 @@ public class InactiveAndFailedExpirerTest { @Test public void reboot_generation_is_increased_when_node_moves_to_dirty() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); List nodes = tester.makeReadyNodes(1, "default"); // Allocate and deallocate a single node @@ -110,7 +110,7 @@ public class InactiveAndFailedExpirerTest { @Test public void node_that_wants_to_retire_is_moved_to_parked() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ClusterSpec cluster = ClusterSpec.request(ClusterSpec.Type.content, ClusterSpec.Id.from("test"), Version.fromString("6.42")); tester.makeReadyNodes(5, "default"); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java index 8b6eb3c3ba8..4dec3f9bde5 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MaintenanceTester.java @@ -30,7 +30,7 @@ public class MaintenanceTester { private final Curator curator = new MockCurator(); public final ManualClock clock = new ManualClock(Instant.ofEpochMilli(0L)); // determinism - private final Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); + private final Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); private final NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default"); public final NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone, new MockNameResolver().mockAnyLookup(), diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java index 8dac22f92e1..0e0195a5bed 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailTester.java @@ -54,7 +54,7 @@ public class NodeFailTester { public static final ApplicationId app1 = ApplicationId.from(TenantName.from("foo1"), ApplicationName.from("bar"), InstanceName.from("fuz")); public static final ApplicationId app2 = ApplicationId.from(TenantName.from("foo2"), ApplicationName.from("bar"), InstanceName.from("fuz")); public static final NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default", "docker"); - private static final Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); + private static final Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); private static final Duration downtimeLimitOneHour = Duration.ofMinutes(60); // Components with state diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTester.java index 86c3dba03ec..04e782c5562 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRetirerTester.java @@ -46,7 +46,7 @@ import static org.mockito.Mockito.when; * @author freva */ public class NodeRetirerTester { - public static final Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); + public static final Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); // Components with state public final ManualClock clock = new ManualClock(); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java index b07d364528e..d2ec5865a0c 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/OperatorChangeApplicationMaintainerTest.java @@ -53,7 +53,7 @@ public class OperatorChangeApplicationMaintainerTest { public void test_application_maintenance() throws InterruptedException { ManualClock clock = new ManualClock(); Curator curator = new MockCurator(); - Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); + Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); this.nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone, new MockNameResolver().mockAnyLookup(), new DockerImage("docker-registry.domain.tld:8080/dist/vespa")); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java index 351ce453a70..d9a6b62bbe9 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainerTest.java @@ -54,7 +54,7 @@ public class PeriodicApplicationMaintainerTest { @Before public void before() { Curator curator = new MockCurator(); - Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); + Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); this.nodeRepository = new NodeRepository(nodeFlavors, curator, new ManualClock(), zone, new MockNameResolver().mockAnyLookup(), new DockerImage("docker-registry.domain.tld:8080/dist/vespa")); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java index 961b0f64b04..8195321be03 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/RetiredExpirerTest.java @@ -54,7 +54,7 @@ public class RetiredExpirerTest { @Test public void ensure_retired_nodes_time_out() throws InterruptedException { ManualClock clock = new ManualClock(); - Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); + Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default"); NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone, new MockNameResolver().mockAnyLookup(), @@ -94,7 +94,7 @@ public class RetiredExpirerTest { @Test public void ensure_retired_groups_time_out() throws InterruptedException { ManualClock clock = new ManualClock(); - Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); + Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default"); NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone, new MockNameResolver().mockAnyLookup(), @@ -130,7 +130,7 @@ public class RetiredExpirerTest { @Test public void ensure_early_inactivation() throws OrchestrationException { ManualClock clock = new ManualClock(); - Zone zone = Zone.from(Environment.prod, RegionName.from("us-east")); + Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); NodeFlavors nodeFlavors = FlavorConfigBuilder.createDummies("default"); NodeRepository nodeRepository = new NodeRepository(nodeFlavors, curator, clock, zone, new MockNameResolver().mockAnyLookup(), diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java index f906f47e6d0..a6760ef37ce 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DockerProvisioningTest.java @@ -28,7 +28,7 @@ public class DockerProvisioningTest { @Test public void docker_application_deployment() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); for (int i = 1; i < 10; i++) { @@ -61,7 +61,7 @@ public class DockerProvisioningTest { // In dev, test and staging you get nodes with default flavor, but we should get specified flavor for docker nodes @Test public void get_specified_flavor_not_default_flavor_for_docker() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.test, RegionName.from("corp-us-east-1"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.test, RegionName.from("corp-us-east-1"))); ApplicationId application1 = tester.makeApplicationId(); tester.makeReadyDockerNodes(1, dockerFlavor, "dockerHost"); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java index 45565cc8547..75d5862f010 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/DynamicDockerProvisioningTest.java @@ -61,7 +61,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void relocate_nodes_from_headroom_hosts() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); enableDynamicAllocation(tester); tester.makeReadyNodes(4, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -109,7 +109,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void relocate_nodes_from_spare_hosts() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeReadyNodes(4, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -155,7 +155,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void new_docker_nodes_are_marked_as_headroom_violations() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); enableDynamicAllocation(tester); tester.makeReadyNodes(4, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -211,7 +211,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void only_preferred_container_is_moved_from_hosts_with_headroom_violations() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.perf, RegionName.from("us-east")), flavorsConfig(true)); enableDynamicAllocation(tester); tester.makeReadyNodes(4, "host-medium", NodeType.host, 32); deployZoneApp(tester); @@ -280,7 +280,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void reloacte_failed_nodes() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeReadyNodes(5, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -339,7 +339,7 @@ public class DynamicDockerProvisioningTest { */ @Test public void do_not_relocate_nodes_from_spare_if_no_where_to_reloacte_them() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeReadyNodes(2, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -367,7 +367,7 @@ public class DynamicDockerProvisioningTest { @Test(expected = OutOfCapacityException.class) public void multiple_groups_are_on_separate_parent_hosts() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeReadyNodes(5, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -390,7 +390,7 @@ public class DynamicDockerProvisioningTest { // Fail one node and redeploy, Verify that one less node is empty. // Setup test - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); ApplicationId application1 = tester.makeApplicationId(); tester.makeReadyNodes(5, "host-small", NodeType.host, 32); @@ -430,7 +430,7 @@ public class DynamicDockerProvisioningTest { @Test public void non_prod_do_not_have_spares() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.perf, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.perf, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeReadyNodes(3, "host-small", NodeType.host, 32); deployZoneApp(tester); @@ -448,7 +448,7 @@ public class DynamicDockerProvisioningTest { @Test(expected = OutOfCapacityException.class) public void allocation_should_fail_when_host_is_not_active() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), flavorsConfig()); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), flavorsConfig()); enableDynamicAllocation(tester); tester.makeProvisionedNodes(3, "host-small", NodeType.host, 32); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java index 51866f82c52..4a20cb3e318 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/MultigroupProvisioningTest.java @@ -35,7 +35,7 @@ public class MultigroupProvisioningTest { @Test public void test_provisioning_of_multiple_groups() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -67,7 +67,7 @@ public class MultigroupProvisioningTest { */ @Test @Ignore public void test_provisioning_of_groups_with_asymmetry() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -80,7 +80,7 @@ public class MultigroupProvisioningTest { @Test public void test_provisioning_of_multiple_groups_after_flavor_migration() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -94,7 +94,7 @@ public class MultigroupProvisioningTest { @Test public void test_one_node_and_group_to_two() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -106,7 +106,7 @@ public class MultigroupProvisioningTest { @Test public void test_one_node_and_group_to_two_with_flavor_migration() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -119,7 +119,7 @@ public class MultigroupProvisioningTest { @Test public void test_provisioning_of_multiple_groups_after_flavor_migration_and_exiration() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java index b0896b10fb3..873193ac3b8 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/NodeTypeProvisioningTest.java @@ -16,6 +16,7 @@ import org.junit.Test; import java.util.HashSet; import java.util.List; +import java.util.Optional; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -29,7 +30,7 @@ public class NodeTypeProvisioningTest { @Test public void proxy_deployment() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); tester.makeReadyNodes( 1, "small", NodeType.proxy); tester.makeReadyNodes( 3, "small", NodeType.host); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java index 8b1907fce86..afdce0d25cc 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java @@ -56,7 +56,7 @@ public class ProvisioningTest { @Test public void application_deployment_constant_application_size() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); ApplicationId application2 = tester.makeApplicationId(); @@ -137,7 +137,7 @@ public class ProvisioningTest { @Test public void application_deployment_variable_application_size() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -204,7 +204,7 @@ public class ProvisioningTest { @Test public void application_deployment_multiple_flavors() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -233,7 +233,7 @@ public class ProvisioningTest { @Test public void application_deployment_with_inplace_downsize() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -281,7 +281,7 @@ public class ProvisioningTest { @Test public void application_deployment_multiple_flavors_with_replacement() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -324,7 +324,7 @@ public class ProvisioningTest { @Test public void application_deployment_above_then_at_capacity_limit() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -349,7 +349,7 @@ public class ProvisioningTest { @Test public void dev_deployment_size() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.dev, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.dev, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(4, "default"); @@ -360,7 +360,7 @@ public class ProvisioningTest { @Test public void deploy_specific_vespa_version() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.dev, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.dev, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(4, "default"); @@ -371,7 +371,7 @@ public class ProvisioningTest { @Test public void test_deployment_size() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.test, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.test, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(4, "default"); @@ -383,7 +383,7 @@ public class ProvisioningTest { @Ignore // TODO: Re-activate when the check is reactivate in CapacityPolicies @Test(expected = IllegalArgumentException.class) public void prod_deployment_requires_redundancy() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(10, "default"); @@ -393,7 +393,7 @@ public class ProvisioningTest { /** Dev always uses the zone default flavor */ @Test public void dev_deployment_flavor() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.dev, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.dev, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(4, "default"); @@ -405,7 +405,7 @@ public class ProvisioningTest { /** Test always uses the zone default flavor */ @Test public void test_deployment_flavor() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.test, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.test, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(4, "default"); @@ -416,7 +416,7 @@ public class ProvisioningTest { @Test public void staging_deployment_size() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.staging, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.staging, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(14, "default"); @@ -427,7 +427,7 @@ public class ProvisioningTest { @Test public void activate_after_reservation_timeout() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); tester.makeReadyNodes(10, "default"); ApplicationId application = tester.makeApplicationId(); @@ -449,7 +449,7 @@ public class ProvisioningTest { @Test public void out_of_capacity() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); tester.makeReadyNodes(9, "default"); // need 2+2+3+3=10 ApplicationId application = tester.makeApplicationId(); @@ -464,7 +464,7 @@ public class ProvisioningTest { @Test public void out_of_desired_flavor() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); tester.makeReadyNodes(10, "small"); // need 2+2+3+3=10 tester.makeReadyNodes( 9, "large"); // need 2+2+3+3=10 @@ -489,7 +489,7 @@ public class ProvisioningTest { Flavor.Type.BARE_METAL).cost(2); b.addReplaces(flavorToRetire, newDefault); - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), b.build()); ApplicationId application = tester.makeApplicationId(); @@ -504,7 +504,7 @@ public class ProvisioningTest { @Test public void out_of_capacity_all_nodes_want_to_retire() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); // Flag all nodes for retirement @@ -521,7 +521,7 @@ public class ProvisioningTest { @Test public void nonexisting_flavor() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); try { @@ -535,7 +535,7 @@ public class ProvisioningTest { @Test public void highest_node_indexes_are_retired_first() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application1 = tester.makeApplicationId(); @@ -586,7 +586,7 @@ public class ProvisioningTest { FlavorConfigBuilder b = new FlavorConfigBuilder(); b.addFlavor("default", 1., 1., 10, Flavor.Type.BARE_METAL).cost(2); - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), b.build(), curator, nameResolver); tester.makeReadyNodes(4, flavorToRetire); SystemState state = prepare(application, 2, 0, 2, 0, @@ -603,7 +603,7 @@ public class ProvisioningTest { Flavor.Type.BARE_METAL).cost(2); b.addReplaces(flavorToRetire, newDefault); - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), b.build(), curator, nameResolver); // Add nodes with "new-default" flavor @@ -632,7 +632,7 @@ public class ProvisioningTest { Flavor.Type.BARE_METAL).cost(2); b.addReplaces(flavorToRetire, newDefault); - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), b.build()); ApplicationId application = tester.makeApplicationId(); @@ -652,7 +652,7 @@ public class ProvisioningTest { @Test public void application_deployment_retires_nodes_that_want_to_retire() { - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); ApplicationId application = tester.makeApplicationId(); tester.makeReadyNodes(10, "default"); @@ -687,7 +687,7 @@ public class ProvisioningTest { FlavorsConfig.Flavor.Builder largeVariantVariant = b.addFlavor("large-variant-variant", 4., 9., 101, Flavor.Type.BARE_METAL).cost(11); b.addReplaces("large-variant", largeVariantVariant); - ProvisioningTester tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east")), b.build()); + ProvisioningTester tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east")), b.build()); tester.makeReadyNodes(6, "large"); //cost = 10 tester.makeReadyNodes(6, "large-variant"); //cost = 9 tester.makeReadyNodes(6, "large-variant-variant"); //cost = 11 diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java index 521090783d5..4366cd641ec 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/VirtualNodeProvisioningTest.java @@ -40,7 +40,7 @@ public class VirtualNodeProvisioningTest { @Before public void setup() { - tester = new ProvisioningTester(Zone.from(Environment.prod, RegionName.from("us-east"))); + tester = new ProvisioningTester(new Zone(Environment.prod, RegionName.from("us-east"))); applicationId = tester.makeApplicationId(); } diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java index eaea006d429..cf07c39950c 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java @@ -38,7 +38,7 @@ public class ModelGeneratorTest { ExampleModel.createExampleSuperModelWithOneRpcPort(HOSTNAME, PORT); ModelGenerator modelGenerator = new ModelGenerator(); - Zone zone = Zone.from(Environment.from(ENVIRONMENT), RegionName.from(REGION)); + Zone zone = new Zone(Environment.from(ENVIRONMENT), RegionName.from(REGION)); List configServerHosts = Stream.of("cfg1", "cfg2", "cfg3") .collect(Collectors.toList()); @@ -83,7 +83,7 @@ public class ModelGeneratorTest { ExampleModel.createExampleSuperModelWithOneRpcPort(HOSTNAME, PORT); ModelGenerator modelGenerator = new ModelGenerator(); - Zone zone = Zone.from(Environment.from(ENVIRONMENT), RegionName.from(REGION)); + Zone zone = new Zone(Environment.from(ENVIRONMENT), RegionName.from(REGION)); List configServerHosts = Collections.emptyList(); -- cgit v1.2.3 From 879cbe9dfe5fa5646ed3735a39083acb19db732e Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 8 Dec 2017 14:25:54 +0100 Subject: Extract superclass with environment and region --- .../main/java/com/yahoo/config/provision/Zone.java | 32 ++----------------- .../java/com/yahoo/config/provision/ZoneId.java | 37 ++++++++++++++++++++++ .../controller/api/identifiers/DeploymentId.java | 8 ++--- .../controller/api/integration/MetricsService.java | 6 ++-- .../api/integration/zone/ZoneRegistry.java | 6 ++-- .../yahoo/vespa/hosted/controller/Application.java | 18 +++++------ .../hosted/controller/ApplicationController.java | 17 +++++----- .../vespa/hosted/controller/LockedApplication.java | 17 +++++----- .../controller/application/DeploymentJobs.java | 16 +++++----- .../controller/deployment/DeploymentOrder.java | 3 +- .../controller/deployment/DeploymentTrigger.java | 4 +-- .../maintenance/ClusterUtilizationMaintainer.java | 4 +-- .../persistence/ApplicationSerializer.java | 3 +- .../proxy/ConfigServerRestExecutorImpl.java | 6 ++-- .../restapi/application/ApplicationApiHandler.java | 3 +- .../restapi/application/ServiceApiResponse.java | 6 ++-- .../controller/restapi/zone/v1/ZoneApiHandler.java | 6 ++-- .../controller/restapi/zone/v2/ZoneApiHandler.java | 4 +-- .../vespa/hosted/controller/ControllerTest.java | 3 +- .../vespa/hosted/controller/ZoneRegistryMock.java | 13 ++++---- .../controller/integration/MockMetricsService.java | 6 ++-- .../controller/restapi/zone/v1/ZoneApiTest.java | 5 +-- .../controller/restapi/zone/v2/ZoneApiTest.java | 5 +-- 23 files changed, 123 insertions(+), 105 deletions(-) create mode 100644 config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index 6315e05c9de..1868db8fe7f 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -14,10 +14,8 @@ import java.util.Optional; * * @author bratseth */ -public class Zone { +public class Zone extends ZoneId { - private final Environment environment; - private final RegionName region; private final SystemName systemName; private final FlavorDefaults flavorDefaults; private final Optional nodeFlavors; @@ -46,19 +44,12 @@ public class Zone { RegionName region, FlavorDefaults flavorDefaults, NodeFlavors nodeFlavors) { - this.environment = environment; - this.region = region; + super(environment, region); this.flavorDefaults = flavorDefaults; this.systemName = systemName; this.nodeFlavors = Optional.ofNullable(nodeFlavors); } - /** Returns the current environment */ - public Environment environment() { return environment; } - - /** Returns the current region */ - public RegionName region() { return region; } - /** Returns the current system */ public SystemName system() { return systemName; } @@ -73,25 +64,6 @@ public class Zone { return new Zone(SystemName.defaultSystem(), Environment.defaultEnvironment(), RegionName.defaultName()); } - @Override - public String toString() { - return "zone " + environment + "." + region; - } - - @Override - public int hashCode() { return environment().hashCode() + 7 * region.hashCode();} - - @Override - public boolean equals(Object o) { - if (o == this) return true; - if ( ! (o instanceof Zone)) return false; - - Zone other = (Zone)o; - if ( this.environment() != other.environment()) return false; - if ( ! this.region.equals(other.region)) return false; - return true; - } - private static class FlavorDefaults { /** The default default flavor */ diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java new file mode 100644 index 00000000000..07a4b8c4d79 --- /dev/null +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java @@ -0,0 +1,37 @@ +package com.yahoo.config.provision; + +public class ZoneId { + + protected final Environment environment; + protected final RegionName region; + + public ZoneId(Environment environment, RegionName region) { + this.environment = environment; + this.region = region; + } + + /** Returns the current environment */ + public Environment environment() { return environment; } + + /** Returns the current region */ + public RegionName region() { return region; } + + @Override + public String toString() { + return "zone " + environment + "." + region; + } + + @Override + public int hashCode() { return environment().hashCode() + 7 * region.hashCode();} + + @Override + public boolean equals(Object o) { + if (o == this) return true; + if ( ! (o instanceof Zone)) return false; + + ZoneId other = (ZoneId)o; + if ( this.environment() != other.environment()) return false; + if ( ! this.region.equals(other.region)) return false; + return true; + } +} diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/DeploymentId.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/DeploymentId.java index 80fe98a4489..c0bebf54803 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/DeploymentId.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/DeploymentId.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.hosted.controller.api.identifiers; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; /** * Application + zone. @@ -12,9 +12,9 @@ import com.yahoo.config.provision.Zone; public class DeploymentId { private final com.yahoo.config.provision.ApplicationId application; - private final Zone zone; + private final ZoneId zone; - public DeploymentId(com.yahoo.config.provision.ApplicationId application, Zone zone) { + public DeploymentId(com.yahoo.config.provision.ApplicationId application, ZoneId zone) { this.application = application; this.zone = zone; } @@ -22,7 +22,7 @@ public class DeploymentId { public com.yahoo.config.provision.ApplicationId applicationId() { return application; } - public Zone zone() { return zone; } + public ZoneId zone() { return zone; } public String dottedString() { diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/MetricsService.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/MetricsService.java index 1ceb064ad44..d3e1b881bbd 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/MetricsService.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/MetricsService.java @@ -2,7 +2,7 @@ package com.yahoo.vespa.hosted.controller.api.integration; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import java.util.Map; @@ -15,9 +15,9 @@ public interface MetricsService { ApplicationMetrics getApplicationMetrics(ApplicationId application); - DeploymentMetrics getDeploymentMetrics(ApplicationId application, Zone zone); + DeploymentMetrics getDeploymentMetrics(ApplicationId application, ZoneId zone); - Map getSystemMetrics(ApplicationId application, Zone zone); + Map getSystemMetrics(ApplicationId application, ZoneId zone); class DeploymentMetrics { diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java index df6f023f6af..3318bf783d8 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/zone/ZoneRegistry.java @@ -5,7 +5,7 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.SystemName; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import java.net.URI; import java.time.Duration; @@ -20,8 +20,8 @@ import java.util.Optional; public interface ZoneRegistry { SystemName system(); - List zones(); - Optional getZone(Environment environment, RegionName region); + List zones(); + Optional getZone(Environment environment, RegionName region); List getConfigServerUris(Environment environment, RegionName region); Optional getLogServerUri(Environment environment, RegionName region); Optional getDeploymentTimeToLive(Environment environment, RegionName region); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java index 9a7ce69f62a..ae2de96f511 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Application.java @@ -7,7 +7,7 @@ import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.application.api.ValidationOverrides; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Environment; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.api.integration.MetricsService.ApplicationMetrics; import com.yahoo.vespa.hosted.controller.api.integration.organization.IssueId; import com.yahoo.vespa.hosted.controller.application.ApplicationRotation; @@ -40,7 +40,7 @@ public class Application { private final ApplicationId id; private final DeploymentSpec deploymentSpec; private final ValidationOverrides validationOverrides; - private final Map deployments; + private final Map deployments; private final DeploymentJobs deploymentJobs; private final Optional deploying; private final boolean outstandingChange; @@ -67,7 +67,7 @@ public class Application { } Application(ApplicationId id, DeploymentSpec deploymentSpec, ValidationOverrides validationOverrides, - Map deployments, DeploymentJobs deploymentJobs, Optional deploying, + Map deployments, DeploymentJobs deploymentJobs, Optional deploying, boolean outstandingChange, Optional ownershipIssueId, ApplicationMetrics metrics, Optional rotation) { Objects.requireNonNull(id, "id cannot be null"); @@ -106,13 +106,13 @@ public class Application { public ValidationOverrides validationOverrides() { return validationOverrides; } /** Returns an immutable map of the current deployments of this */ - public Map deployments() { return deployments; } + public Map deployments() { return deployments; } /** * Returns an immutable map of the current *production* deployments of this * (deployments also includes manually deployed environments) */ - public Map productionDeployments() { + public Map productionDeployments() { return ImmutableMap.copyOf(deployments.values().stream() .filter(deployment -> deployment.zone().environment() == Environment.prod) .collect(Collectors.toMap(Deployment::zone, Function.identity()))); @@ -151,7 +151,7 @@ public class Application { } /** Returns the version a new deployment to this zone should use for this application */ - public Version deployVersionIn(Zone zone, Controller controller) { + public Version deployVersionIn(ZoneId zone, Controller controller) { if (deploying().isPresent() && deploying().get() instanceof VersionChange) return ((Change.VersionChange) deploying().get()).version(); @@ -159,13 +159,13 @@ public class Application { } /** Returns the current version this application has, or if none; should use, in the given zone */ - public Version versionIn(Zone zone, Controller controller) { + public Version versionIn(ZoneId zone, Controller controller) { return Optional.ofNullable(deployments().get(zone)).map(Deployment::version) // Already deployed in this zone: Use that version .orElse(oldestDeployedVersion().orElse(controller.systemVersion())); } /** Returns the revision a new deployment to this zone should use for this application, or empty if we don't know */ - public Optional deployRevisionIn(Zone zone) { + public Optional deployRevisionIn(ZoneId zone) { if (deploying().isPresent() && deploying().get() instanceof Change.ApplicationChange) return ((Change.ApplicationChange) deploying().get()).revision(); @@ -173,7 +173,7 @@ public class Application { } /** Returns the revision this application is or should be deployed with in the given zone, or empty if unknown. */ - public Optional revisionIn(Zone zone) { + public Optional revisionIn(ZoneId zone) { return Optional.ofNullable(deployments().get(zone)).map(Deployment::revision); } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java index ea917147970..b9f0f5664a3 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java @@ -8,6 +8,7 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.curator.Lock; import com.yahoo.vespa.hosted.controller.api.ActivateResult; import com.yahoo.vespa.hosted.controller.api.InstanceEndpoints; @@ -368,7 +369,7 @@ public class ApplicationController { } } - private ActivateResult unexpectedDeployment(ApplicationId applicationId, Zone zone, ApplicationPackage applicationPackage) { + private ActivateResult unexpectedDeployment(ApplicationId applicationId, ZoneId zone, ApplicationPackage applicationPackage) { Log logEntry = new Log(); logEntry.level = "WARNING"; logEntry.time = clock.instant().toEpochMilli(); @@ -405,9 +406,9 @@ public class ApplicationController { private LockedApplication deleteUnreferencedDeploymentJobs(LockedApplication application) { for (DeploymentJobs.JobType job : application.deploymentJobs().jobStatus().keySet()) { - Optional zone = job.zone(controller.system()); + Optional zone = job.zone(controller.system()); - if ( ! job.isProduction() || (zone.isPresent() && application.deploymentSpec().includes(zone.get().environment(), zone.map(Zone::region)))) + if ( ! job.isProduction() || (zone.isPresent() && application.deploymentSpec().includes(zone.get().environment(), zone.map(ZoneId::region)))) continue; application = application.withoutDeploymentJob(job); } @@ -466,7 +467,7 @@ public class ApplicationController { } /** Get an available rotation, if deploying to a production zone and a service ID is specified */ - private Optional getRotation(Application application, Zone zone, RotationLock lock) { + private Optional getRotation(Application application, ZoneId zone, RotationLock lock) { if (zone.environment() != Environment.prod || !application.deploymentSpec().globalServiceId().isPresent()) { return Optional.empty(); @@ -581,7 +582,7 @@ public class ApplicationController { } /** Deactivate application in the given zone */ - public void deactivate(Application application, Zone zone) { + public void deactivate(Application application, ZoneId zone) { deactivate(application, zone, Optional.empty(), false); } @@ -590,7 +591,7 @@ public class ApplicationController { deactivate(application, deployment.zone(), Optional.of(deployment), requireThatDeploymentHasExpired); } - private void deactivate(Application application, Zone zone, Optional deployment, + private void deactivate(Application application, ZoneId zone, Optional deployment, boolean requireThatDeploymentHasExpired) { if (requireThatDeploymentHasExpired && deployment.isPresent() && ! DeploymentExpirer.hasExpired(controller.zoneRegistry(), deployment.get(), clock.instant())) @@ -605,7 +606,7 @@ public class ApplicationController { * * @return the application with the deployment in the given zone removed */ - private LockedApplication deactivate(LockedApplication application, Zone zone) { + private LockedApplication deactivate(LockedApplication application, ZoneId zone) { try { configserverClient.deactivate(new DeploymentId(application.id(), zone)); } @@ -635,7 +636,7 @@ public class ApplicationController { } /** Returns whether a direct deployment to given zone is allowed */ - private static boolean canDeployDirectlyTo(Zone zone, DeployOptions options) { + private static boolean canDeployDirectlyTo(ZoneId zone, DeployOptions options) { return ! options.screwdriverBuildJob.isPresent() || options.screwdriverBuildJob.get().screwdriverId == null || zone.environment().isManuallyDeployed(); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java index d96739dd0a0..afc1ece8074 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java @@ -6,6 +6,7 @@ import com.yahoo.config.application.api.ValidationOverrides; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.curator.Lock; import com.yahoo.vespa.hosted.controller.api.integration.MetricsService; import com.yahoo.vespa.hosted.controller.api.integration.MetricsService.ApplicationMetrics; @@ -78,27 +79,27 @@ public class LockedApplication extends Application { return with(newDeployment); } - public LockedApplication withClusterUtilization(Zone zone, Map clusterUtilization) { + public LockedApplication withClusterUtilization(ZoneId zone, Map clusterUtilization) { Deployment deployment = deployments().get(zone); if (deployment == null) return this; // No longer deployed in this zone. return with(deployment.withClusterUtils(clusterUtilization)); } - public LockedApplication withClusterInfo(Zone zone, Map clusterInfo) { + public LockedApplication withClusterInfo(ZoneId zone, Map clusterInfo) { Deployment deployment = deployments().get(zone); if (deployment == null) return this; // No longer deployed in this zone. return with(deployment.withClusterInfo(clusterInfo)); } - public LockedApplication with(Zone zone, DeploymentMetrics deploymentMetrics) { + public LockedApplication with(ZoneId zone, DeploymentMetrics deploymentMetrics) { Deployment deployment = deployments().get(zone); if (deployment == null) return this; // No longer deployed in this zone. return with(deployment.withMetrics(deploymentMetrics)); } - public LockedApplication withoutDeploymentIn(Zone zone) { - Map deployments = new LinkedHashMap<>(deployments()); + public LockedApplication withoutDeploymentIn(ZoneId zone) { + Map deployments = new LinkedHashMap<>(deployments()); deployments.remove(zone); return new LockedApplication(new Builder(this).with(deployments)); } @@ -149,7 +150,7 @@ public class LockedApplication extends Application { /** Don't expose non-leaf sub-objects. */ private LockedApplication with(Deployment deployment) { - Map deployments = new LinkedHashMap<>(deployments()); + Map deployments = new LinkedHashMap<>(deployments()); deployments.put(deployment.zone(), deployment); return new LockedApplication(new Builder(this).with(deployments)); } @@ -160,7 +161,7 @@ public class LockedApplication extends Application { private final ApplicationId applicationId; private DeploymentSpec deploymentSpec; private ValidationOverrides validationOverrides; - private Map deployments; + private Map deployments; private DeploymentJobs deploymentJobs; private Optional deploying; private boolean hasOutstandingChange; @@ -191,7 +192,7 @@ public class LockedApplication extends Application { return this; } - private Builder with(Map deployments) { + private Builder with(Map deployments) { this.deployments = deployments; return this; } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java index 98f8c2a3d99..49e688a8b0e 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java @@ -8,12 +8,12 @@ import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Controller; import com.yahoo.vespa.hosted.controller.api.integration.organization.IssueId; import java.time.Instant; import java.util.Collection; -import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; @@ -177,9 +177,9 @@ public class DeploymentJobs { productionCdUsCentral2 ("production-cd-us-central-2", zone(SystemName.cd, "prod", "cd-us-central-2")); private final String jobName; - private final ImmutableMap zones; + private final ImmutableMap zones; - JobType(String jobName, Zone... zones) { + JobType(String jobName, ZoneId... zones) { this.jobName = jobName; this.zones = ImmutableMap.copyOf(Stream.of(zones).collect(Collectors.toMap(zone -> zone.system(), zone -> zone))); @@ -188,7 +188,7 @@ public class DeploymentJobs { public String jobName() { return jobName; } /** Returns the zone for this job in the given system, or empty if this job does not have a zone */ - public Optional zone(SystemName system) { + public Optional zone(SystemName system) { return Optional.ofNullable(zones.get(system)); } @@ -207,7 +207,7 @@ public class DeploymentJobs { /** Returns the region of this job type, or null if it does not have a region */ public Optional region(SystemName system) { - return zone(system).map(Zone::region); + return zone(system).map(ZoneId::region); } public static JobType fromJobName(String jobName) { @@ -217,7 +217,7 @@ public class DeploymentJobs { } /** Returns the job type for the given zone */ - public static Optional from(SystemName system, Zone zone) { + public static Optional from(SystemName system, ZoneId zone) { return Stream.of(values()) .filter(job -> job.zone(system).filter(zone::equals).isPresent()) .findAny(); @@ -232,11 +232,11 @@ public class DeploymentJobs { return from(system, new Zone(environment, region)); } - private static Zone zone(SystemName system, String environment, String region) { + private static ZoneId zone(SystemName system, String environment, String region) { return new Zone(system, Environment.from(environment), RegionName.from(region)); } - private static Zone zone(String environment, String region) { + private static ZoneId zone(String environment, String region) { return new Zone(Environment.from(environment), RegionName.from(region)); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java index aa4d07634db..01d4ed4506a 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java @@ -3,6 +3,7 @@ package com.yahoo.vespa.hosted.controller.deployment; import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.Controller; import com.yahoo.vespa.hosted.controller.LockedApplication; @@ -105,7 +106,7 @@ public class DeploymentOrder { /** Returns deployments sorted according to declared zones */ public List sortBy(List zones, Collection deployments) { - List productionZones = zones.stream() + List productionZones = zones.stream() .filter(z -> z.region().isPresent()) .map(z -> new Zone(z.environment(), z.region().get())) .collect(toList()); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java index dada11ca436..f0c950b024b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentTrigger.java @@ -4,7 +4,7 @@ package com.yahoo.vespa.hosted.controller.deployment; import com.yahoo.component.Version; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.SystemName; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.ApplicationController; import com.yahoo.vespa.hosted.controller.Controller; @@ -358,7 +358,7 @@ public class DeploymentTrigger { */ private boolean isOnNewerVersionInProductionThan(Version version, Application application, JobType job) { if ( ! job.isProduction()) return false; - Optional zone = job.zone(controller.system()); + Optional zone = job.zone(controller.system()); if ( ! zone.isPresent()) return false; Deployment existingDeployment = application.deployments().get(zone.get()); if (existingDeployment == null) return false; diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterUtilizationMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterUtilizationMaintainer.java index 0d472ab0910..58e32344372 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterUtilizationMaintainer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterUtilizationMaintainer.java @@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.controller.maintenance; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterSpec; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.Controller; import com.yahoo.vespa.hosted.controller.api.integration.MetricsService; @@ -29,7 +29,7 @@ public class ClusterUtilizationMaintainer extends Maintainer { this.controller = controller; } - private Map getUpdatedClusterUtilizations(ApplicationId app, Zone zone) { + private Map getUpdatedClusterUtilizations(ApplicationId app, ZoneId zone) { Map systemMetrics = controller.metricsService().getSystemMetrics(app, zone); Map utilizationMap = new HashMap<>(); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java index c71409aaba9..12441504ca2 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java @@ -9,6 +9,7 @@ import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.slime.ArrayTraverser; import com.yahoo.slime.Cursor; import com.yahoo.slime.Inspector; @@ -194,7 +195,7 @@ public class ApplicationSerializer { object.setDouble(clusterUtilsDiskBusyField, utils.getDiskBusy()); } - private void zoneToSlime(Zone zone, Cursor object) { + private void zoneToSlime(ZoneId zone, Cursor object) { object.setString(environmentField, zone.environment().value()); object.setString(regionField, zone.region().value()); } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/proxy/ConfigServerRestExecutorImpl.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/proxy/ConfigServerRestExecutorImpl.java index e8b68d0c55a..c9ce0b76520 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/proxy/ConfigServerRestExecutorImpl.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/proxy/ConfigServerRestExecutorImpl.java @@ -5,7 +5,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.io.IOUtils; import com.yahoo.jdisc.http.HttpRequest.Method; import com.yahoo.vespa.hosted.controller.api.integration.zone.ZoneRegistry; @@ -83,8 +83,8 @@ public class ConfigServerRestExecutorImpl implements ConfigServerRestExecutor { ObjectMapper mapper = new ObjectMapper(); DiscoveryResponseStructure responseStructure = new DiscoveryResponseStructure(); - List zones = zoneRegistry.zones(); - for (Zone zone : zones) { + List zones = zoneRegistry.zones(); + for (ZoneId zone : zones) { if (!"".equals(proxyRequest.getEnvironment()) && !proxyRequest.getEnvironment().equals(zone.environment().value())) { continue; diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java index d64f07906ab..08d973dba52 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java @@ -11,6 +11,7 @@ import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.LoggingRequestHandler; @@ -821,7 +822,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse deactivate(String tenantName, String applicationName, String instanceName, String environment, String region) { Application application = controller.applications().require(ApplicationId.from(tenantName, applicationName, instanceName)); - Zone zone = new Zone(Environment.from(environment), RegionName.from(region)); + ZoneId zone = new Zone(Environment.from(environment), RegionName.from(region)); Deployment deployment = application.deployments().get(zone); if (deployment == null) { // Attempt to deactivate application even if the deployment is not known by the controller diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponse.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponse.java index 6a448e475c5..0b0a2c3ad52 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponse.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponse.java @@ -2,7 +2,7 @@ package com.yahoo.vespa.hosted.controller.restapi.application; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.slime.Cursor; import com.yahoo.slime.JsonFormat; @@ -30,7 +30,7 @@ import java.util.regex.Pattern; */ class ServiceApiResponse extends HttpResponse { - private final Zone zone; + private final ZoneId zone; private final ApplicationId application; private final List configServerURIs; private final Slime slime; @@ -40,7 +40,7 @@ class ServiceApiResponse extends HttpResponse { private String serviceName = null; private String restPath = null; - public ServiceApiResponse(Zone zone, ApplicationId application, List configServerURIs, URI requestUri) { + public ServiceApiResponse(ZoneId zone, ApplicationId application, List configServerURIs, URI requestUri) { super(200); this.zone = zone; this.application = application; diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiHandler.java index 3a3fd445bcf..aecd3847653 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiHandler.java @@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.controller.restapi.zone.v1; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.LoggingRequestHandler; @@ -70,7 +70,7 @@ public class ZoneApiHandler extends LoggingRequestHandler { private HttpResponse root(HttpRequest request) { List environments = zoneRegistry.zones().stream() - .map(Zone::environment) + .map(ZoneId::environment) .distinct() .sorted(Comparator.comparing(Environment::value)) .collect(Collectors.toList()); @@ -89,7 +89,7 @@ public class ZoneApiHandler extends LoggingRequestHandler { } private HttpResponse environment(HttpRequest request, Environment environment) { - List zones = zoneRegistry.zones().stream() + List zones = zoneRegistry.zones().stream() .filter(zone -> zone.environment() == environment) .collect(Collectors.toList()); Slime slime = new Slime(); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiHandler.java index 529b2b25785..3f85b0116ad 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiHandler.java @@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.controller.restapi.zone.v2; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.LoggingRequestHandler; @@ -81,7 +81,7 @@ public class ZoneApiHandler extends LoggingRequestHandler { } Environment environment = Environment.from(path.get("environment")); RegionName region = RegionName.from(path.get("region")); - Optional zone = zoneRegistry.getZone(environment, region); + Optional zone = zoneRegistry.getZone(environment, region); if (!zone.isPresent()) { throw new IllegalArgumentException("No such zone: " + environment.value() + "." + region.value()); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java index c41fc20d5c2..eca381754d6 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java @@ -11,6 +11,7 @@ import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.config.SlimeUtils; import com.yahoo.vespa.hosted.controller.api.Tenant; import com.yahoo.vespa.hosted.controller.api.application.v4.model.DeployOptions; @@ -493,7 +494,7 @@ public class ControllerTest { public void testGlobalRotations() throws IOException { // Setup tester and app def ControllerTester tester = new ControllerTester(); - Zone zone = Zone.defaultZone(); + ZoneId zone = Zone.defaultZone(); ApplicationId appId = tester.applicationId("tenant", "app1", "default"); DeploymentId deployId = new DeploymentId(appId, zone); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java index 18332942c24..b4f06f3b423 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java @@ -8,6 +8,7 @@ import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.api.integration.zone.ZoneRegistry; import java.net.URI; @@ -24,9 +25,9 @@ import java.util.Optional; */ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry { - private final Map deploymentTimeToLive = new HashMap<>(); + private final Map deploymentTimeToLive = new HashMap<>(); private final Map defaultRegionForEnvironment = new HashMap<>(); - private List zones = new ArrayList<>(); + private List zones = new ArrayList<>(); private SystemName system = SystemName.main; @Inject @@ -36,7 +37,7 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry this.zones.add(new Zone(SystemName.main, Environment.from("prod"), RegionName.from("us-west-1"))); } - public ZoneRegistryMock setDeploymentTimeToLive(Zone zone, Duration duration) { + public ZoneRegistryMock setDeploymentTimeToLive(ZoneId zone, Duration duration) { deploymentTimeToLive.put(zone, duration); return this; } @@ -46,7 +47,7 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry return this; } - public ZoneRegistryMock setZones(List zones) { + public ZoneRegistryMock setZones(List zones) { this.zones = zones; return this; } @@ -62,12 +63,12 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry } @Override - public List zones() { + public List zones() { return Collections.unmodifiableList(zones); } @Override - public Optional getZone(Environment environment, RegionName region) { + public Optional getZone(Environment environment, RegionName region) { return zones().stream().filter(z -> z.environment().equals(environment) && z.region().equals(region)).findFirst(); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/MockMetricsService.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/MockMetricsService.java index 2dc6471effb..a58d2d0fa39 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/MockMetricsService.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/MockMetricsService.java @@ -2,7 +2,7 @@ package com.yahoo.vespa.hosted.controller.integration; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import java.util.HashMap; import java.util.Map; @@ -18,12 +18,12 @@ public class MockMetricsService implements com.yahoo.vespa.hosted.controller.api } @Override - public DeploymentMetrics getDeploymentMetrics(ApplicationId application, Zone zone) { + public DeploymentMetrics getDeploymentMetrics(ApplicationId application, ZoneId zone) { return new DeploymentMetrics(1, 2, 3, 4, 5); } @Override - public Map getSystemMetrics(ApplicationId application, Zone zone) { + public Map getSystemMetrics(ApplicationId application, ZoneId zone) { Map result = new HashMap<>(); SystemMetrics system = new SystemMetrics(55.54, 69.90, 34.59); result.put("default", system); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java index a00665b77cb..e03a550686f 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java @@ -5,6 +5,7 @@ import com.yahoo.application.container.handler.Request; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.ZoneRegistryMock; import com.yahoo.vespa.hosted.controller.restapi.ContainerControllerTester; import com.yahoo.vespa.hosted.controller.restapi.ControllerContainerTest; @@ -21,12 +22,12 @@ import java.util.List; public class ZoneApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/"; - private static final List zones = Arrays.asList( + private static final List zones = Arrays.asList( new Zone(Environment.prod, RegionName.from("us-north-1")), new Zone(Environment.dev, RegionName.from("us-north-2")), new Zone(Environment.test, RegionName.from("us-north-3")), new Zone(Environment.staging, RegionName.from("us-north-4")) - ); + ); private ContainerControllerTester tester; diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java index 63899d808f9..3874d50f0ed 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java @@ -5,6 +5,7 @@ import com.yahoo.application.container.handler.Request.Method; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.text.Utf8; import com.yahoo.vespa.hosted.controller.ConfigServerProxyMock; import com.yahoo.vespa.hosted.controller.ZoneRegistryMock; @@ -26,12 +27,12 @@ import static org.junit.Assert.assertFalse; public class ZoneApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/responses/"; - private static final List zones = Arrays.asList( + private static final List zones = Arrays.asList( new Zone(Environment.prod, RegionName.from("us-north-1")), new Zone(Environment.dev, RegionName.from("us-north-2")), new Zone(Environment.test, RegionName.from("us-north-3")), new Zone(Environment.staging, RegionName.from("us-north-4")) - ); + ); private ContainerControllerTester tester; private ConfigServerProxyMock proxy; -- cgit v1.2.3 From 8ef0a9b90637daa49d5673fdd5541b8d81120aff Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 8 Dec 2017 14:29:00 +0100 Subject: Freshed up ZoneId --- .../main/java/com/yahoo/config/provision/Zone.java | 1 + .../java/com/yahoo/config/provision/ZoneId.java | 63 ++++++++++++++++------ 2 files changed, 48 insertions(+), 16 deletions(-) diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index 1868db8fe7f..56bbd82c761 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -118,3 +118,4 @@ public class Zone extends ZoneId { } } + diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java index 07a4b8c4d79..169c5133130 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java @@ -1,37 +1,68 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.config.provision; +import java.util.Objects; + +/** + * Unique identifier for a Zone; use when referencing them. + * + * Serialised form is 'environment.region'. + * + * @author jvenstad + */ public class ZoneId { protected final Environment environment; protected final RegionName region; public ZoneId(Environment environment, RegionName region) { - this.environment = environment; - this.region = region; + this.environment = Objects.requireNonNull(environment); + this.region = Objects.requireNonNull(region); } - /** Returns the current environment */ - public Environment environment() { return environment; } + public static ZoneId from(Environment environment, RegionName region) { + return new ZoneId(environment, region); + } - /** Returns the current region */ - public RegionName region() { return region; } + public static ZoneId from(String environment, String region) { + return from(Environment.from(environment), RegionName.from(region)); + } - @Override - public String toString() { - return "zone " + environment + "." + region; + public static ZoneId from(String value) { + String[] parts = value.split("\\."); + return from(parts[0], parts[1]); + } + + public Environment environment() { + return environment; + } + + public RegionName region() { + return region; + } + + public String value() { + return environment + "." + region; } @Override - public int hashCode() { return environment().hashCode() + 7 * region.hashCode();} + public String toString() { + return "zone " + value(); + } @Override public boolean equals(Object o) { - if (o == this) return true; - if ( ! (o instanceof Zone)) return false; + if (this == o) return true; + if ( ! (o instanceof ZoneId)) return false; + ZoneId id = (ZoneId) o; + return environment == id.environment && + Objects.equals(region, id.region); + } - ZoneId other = (ZoneId)o; - if ( this.environment() != other.environment()) return false; - if ( ! this.region.equals(other.region)) return false; - return true; + @Override + public int hashCode() { + return Objects.hash(environment, region); } + } + -- cgit v1.2.3 From ecc30dbc982a14afd44bb56bc1d08ba115fa7477 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 8 Dec 2017 15:03:03 +0100 Subject: Replaced instantiation of Zone with ZoneId where applicable --- .../controller/api/identifiers/IdentifierTest.java | 2 +- .../hosted/controller/ApplicationController.java | 2 +- .../vespa/hosted/controller/LockedApplication.java | 2 +- .../hosted/controller/application/Deployment.java | 9 +++++---- .../controller/application/DeploymentJobs.java | 6 +++--- .../controller/deployment/DeploymentOrder.java | 2 +- .../persistence/ApplicationSerializer.java | 17 ++++++++--------- .../restapi/application/ApplicationApiHandler.java | 21 ++++++++++----------- .../vespa/hosted/controller/ControllerTest.java | 4 ++-- .../vespa/hosted/controller/ControllerTester.java | 20 ++++++++++---------- .../vespa/hosted/controller/ZoneRegistryMock.java | 2 +- .../maintenance/DeploymentExpirerTest.java | 3 ++- .../hosted/controller/maintenance/UpgraderTest.java | 3 ++- .../persistence/ApplicationSerializerTest.java | 5 +++-- .../restapi/ContainerControllerTester.java | 4 +++- .../restapi/application/ServiceApiResponseTest.java | 6 +++--- .../restapi/deployment/DeploymentApiTest.java | 9 +++++---- .../restapi/screwdriver/ScrewdriverApiTest.java | 5 +++-- .../controller/restapi/zone/v1/ZoneApiTest.java | 9 ++++----- .../controller/restapi/zone/v2/ZoneApiTest.java | 9 ++++----- 20 files changed, 72 insertions(+), 68 deletions(-) diff --git a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java index 7e4d543fd18..85b2b7e2fab 100644 --- a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java +++ b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java @@ -147,7 +147,7 @@ public class IdentifierTest { @Test public void application_instance_id_dotted_string_is_subindentifers_concatinated_with_dots() { DeploymentId id = new DeploymentId(com.yahoo.config.provision.ApplicationId.from("tenant", "application", "instance"), - new Zone(Environment.prod, RegionName.from("region"))); + new com.yahoo.config.provision.ZoneId(Environment.prod, RegionName.from("region"))); assertEquals("tenant.application.prod.region.instance", id.dottedString()); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java index b9f0f5664a3..b00e76a331a 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java @@ -268,7 +268,7 @@ public class ApplicationController { /** Deploys an application. If the application does not exist it is created. */ // TODO: Get rid of the options arg - public ActivateResult deployApplication(ApplicationId applicationId, Zone zone, + public ActivateResult deployApplication(ApplicationId applicationId, ZoneId zone, ApplicationPackage applicationPackage, DeployOptions options) { try (Lock lock = lock(applicationId)) { // TODO: Shouldn't this go through the above method? Seems you can cheat the checks here ... ? diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java index afc1ece8074..72ed1a42435 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedApplication.java @@ -69,7 +69,7 @@ public class LockedApplication extends Application { return new LockedApplication(new Builder(this).with(deploymentJobs().withTriggering(type, change, version, revision, reason, triggerTime))); } - public LockedApplication withNewDeployment(Zone zone, ApplicationRevision revision, Version version, Instant instant) { + public LockedApplication withNewDeployment(ZoneId zone, ApplicationRevision revision, Version version, Instant instant) { // Use info from previous deployment if available, otherwise create a new one. Deployment previousDeployment = deployments().getOrDefault(zone, new Deployment(zone, revision, version, instant)); Deployment newDeployment = new Deployment(zone, revision, version, instant, diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Deployment.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Deployment.java index 98ae5ed1762..b9d07249cb2 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Deployment.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Deployment.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.controller.application; import com.yahoo.component.Version; import com.yahoo.config.provision.ClusterSpec.Id; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import java.time.Instant; import java.util.HashMap; @@ -18,7 +19,7 @@ import java.util.Objects; */ public class Deployment { - private final Zone zone; + private final ZoneId zone; private final ApplicationRevision revision; private final Version version; private final Instant deployTime; @@ -26,11 +27,11 @@ public class Deployment { private final Map clusterInfo; private final DeploymentMetrics metrics; - public Deployment(Zone zone, ApplicationRevision revision, Version version, Instant deployTime) { + public Deployment(ZoneId zone, ApplicationRevision revision, Version version, Instant deployTime) { this(zone, revision, version, deployTime, new HashMap<>(), new HashMap<>(), new DeploymentMetrics()); } - public Deployment(Zone zone, ApplicationRevision revision, Version version, Instant deployTime, + public Deployment(ZoneId zone, ApplicationRevision revision, Version version, Instant deployTime, Map clusterUtils, Map clusterInfo, DeploymentMetrics metrics) { Objects.requireNonNull(zone, "zone cannot be null"); Objects.requireNonNull(revision, "revision cannot be null"); @@ -49,7 +50,7 @@ public class Deployment { } /** Returns the zone this was deployed to */ - public Zone zone() { return zone; } + public ZoneId zone() { return zone; } /** Returns the revision of the application which was deployed */ public ApplicationRevision revision() { return revision; } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java index 49e688a8b0e..47b2cb94d12 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java @@ -179,7 +179,7 @@ public class DeploymentJobs { private final String jobName; private final ImmutableMap zones; - JobType(String jobName, ZoneId... zones) { + JobType(String jobName, Zone... zones) { this.jobName = jobName; this.zones = ImmutableMap.copyOf(Stream.of(zones).collect(Collectors.toMap(zone -> zone.system(), zone -> zone))); @@ -232,11 +232,11 @@ public class DeploymentJobs { return from(system, new Zone(environment, region)); } - private static ZoneId zone(SystemName system, String environment, String region) { + private static Zone zone(SystemName system, String environment, String region) { return new Zone(system, Environment.from(environment), RegionName.from(region)); } - private static ZoneId zone(String environment, String region) { + private static Zone zone(String environment, String region) { return new Zone(Environment.from(environment), RegionName.from(region)); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java index 01d4ed4506a..2b92bcad644 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java @@ -108,7 +108,7 @@ public class DeploymentOrder { public List sortBy(List zones, Collection deployments) { List productionZones = zones.stream() .filter(z -> z.region().isPresent()) - .map(z -> new Zone(z.environment(), z.region().get())) + .map(z -> new ZoneId(z.environment(), z.region().get())) .collect(toList()); return deployments.stream() .sorted(comparingInt(deployment -> productionZones.indexOf(deployment.zone()))) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java index 12441504ca2..8627744c73f 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java @@ -8,7 +8,6 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.slime.ArrayTraverser; import com.yahoo.slime.Cursor; @@ -143,7 +142,7 @@ public class ApplicationSerializer { } private void deploymentToSlime(Deployment deployment, Cursor object) { - zoneToSlime(deployment.zone(), object.setObject(zoneField)); + zoneIdToSlime(deployment.zone(), object.setObject(zoneField)); object.setString(versionField, deployment.version().toString()); object.setLong(deployTimeField, deployment.at().toEpochMilli()); toSlime(deployment.revision(), object.setObject(applicationPackageRevisionField)); @@ -195,7 +194,7 @@ public class ApplicationSerializer { object.setDouble(clusterUtilsDiskBusyField, utils.getDiskBusy()); } - private void zoneToSlime(ZoneId zone, Cursor object) { + private void zoneIdToSlime(ZoneId zone, Cursor object) { object.setString(environmentField, zone.environment().value()); object.setString(regionField, zone.region().value()); } @@ -284,13 +283,13 @@ public class ApplicationSerializer { } private Deployment deploymentFromSlime(Inspector deploymentObject) { - return new Deployment(zoneFromSlime(deploymentObject.field(zoneField)), + return new Deployment(zoneIdFromSlime(deploymentObject.field(zoneField)), applicationRevisionFromSlime(deploymentObject.field(applicationPackageRevisionField)).get(), Version.fromString(deploymentObject.field(versionField).asString()), Instant.ofEpochMilli(deploymentObject.field(deployTimeField).asLong()), - clusterUtilsMapFromSlime(deploymentObject.field(clusterUtilsField)), - clusterInfoMapFromSlime(deploymentObject.field(clusterInfoField)), - deploymentMetricsFromSlime(deploymentObject.field(deploymentMetricsField))); + clusterUtilsMapFromSlime(deploymentObject.field(clusterUtilsField)), + clusterInfoMapFromSlime(deploymentObject.field(clusterInfoField)), + deploymentMetricsFromSlime(deploymentObject.field(deploymentMetricsField))); } private DeploymentMetrics deploymentMetricsFromSlime(Inspector object) { @@ -339,8 +338,8 @@ public class ApplicationSerializer { return new ClusterInfo(flavor, cost, flavorCpu, flavorMem, flavorDisk, ClusterSpec.Type.from(type), hostnames); } - private Zone zoneFromSlime(Inspector object) { - return new Zone(Environment.from(object.field(environmentField).asString()), + private ZoneId zoneIdFromSlime(Inspector object) { + return new ZoneId(Environment.from(object.field(environmentField).asString()), RegionName.from(object.field(regionField).asString())); } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java index 08d973dba52..4b2f0f88d5b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java @@ -10,7 +10,6 @@ import com.yahoo.config.provision.ApplicationName; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.TenantName; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; @@ -424,7 +423,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { .orElseThrow(() -> new NotExistsException(id + " not found")); DeploymentId deploymentId = new DeploymentId(application.id(), - new Zone(Environment.from(environment), RegionName.from(region))); + new ZoneId(Environment.from(environment), RegionName.from(region))); Deployment deployment = application.deployments().get(deploymentId.zone()); if (deployment == null) @@ -515,7 +514,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { // DeploymentId identifies the zone and application we are dealing with DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new Zone(Environment.from(environment), RegionName.from(region))); + new ZoneId(Environment.from(environment), RegionName.from(region))); try { List rotations = controller.applications().setGlobalRotationStatus(deploymentId, endPointStatus); return new MessageResponse(String.format("Rotations %s successfully set to %s service", rotations.toString(), inService ? "in" : "out of")); @@ -527,7 +526,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse getGlobalRotationOverride(String tenantName, String applicationName, String instanceName, String environment, String region) { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new Zone(Environment.from(environment), RegionName.from(region))); + new ZoneId(Environment.from(environment), RegionName.from(region))); Slime slime = new Slime(); Cursor c1 = slime.setObject().setArray("globalrotationoverride"); @@ -572,13 +571,13 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse waitForConvergence(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { return new JacksonJsonResponse(controller.waitForConfigConvergence(new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new Zone(Environment.from(environment), RegionName.from(region))), + new ZoneId(Environment.from(environment), RegionName.from(region))), asLong(request.getProperty("timeout"), 1000))); } private HttpResponse services(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { ApplicationView applicationView = controller.getApplicationView(tenantName, applicationName, instanceName, environment, region); - ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.from(environment), RegionName.from(region)), + ServiceApiResponse response = new ServiceApiResponse(new ZoneId(Environment.from(environment), RegionName.from(region)), new ApplicationId.Builder().tenant(tenantName).applicationName(applicationName).instanceName(instanceName).build(), controller.getConfigServerUris(Environment.from(environment), RegionName.from(region)), request.getUri()); @@ -588,7 +587,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse service(String tenantName, String applicationName, String instanceName, String environment, String region, String serviceName, String restPath, HttpRequest request) { Map result = controller.getServiceApiResponse(tenantName, applicationName, instanceName, environment, region, serviceName, restPath); - ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.from(environment), RegionName.from(region)), + ServiceApiResponse response = new ServiceApiResponse(new ZoneId(Environment.from(environment), RegionName.from(region)), new ApplicationId.Builder().tenant(tenantName).applicationName(applicationName).instanceName(instanceName).build(), controller.getConfigServerUris(Environment.from(environment), RegionName.from(region)), request.getUri()); @@ -738,7 +737,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { /** Schedule restart of deployment, or specific host in a deployment */ private HttpResponse restart(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new Zone(Environment.from(environment), RegionName.from(region))); + new ZoneId(Environment.from(environment), RegionName.from(region))); // TODO: Propagate all filters Optional hostname = Optional.ofNullable(request.getProperty("hostname")).map(Hostname::new); controller.applications().restart(deploymentId, hostname); @@ -759,7 +758,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse log(String tenantName, String applicationName, String instanceName, String environment, String region) { try { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new Zone(Environment.from(environment), RegionName.from(region))); + new ZoneId(Environment.from(environment), RegionName.from(region))); return new JacksonJsonResponse(controller.grabLog(deploymentId)); } catch (RuntimeException e) { @@ -771,7 +770,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse deploy(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { ApplicationId applicationId = ApplicationId.from(tenantName, applicationName, instanceName); - Zone zone = new Zone(Environment.from(environment), RegionName.from(region)); + ZoneId zone = new ZoneId(Environment.from(environment), RegionName.from(region)); Map dataParts = new MultipartParser().parse(request); if ( ! dataParts.containsKey("deployOptions")) @@ -822,7 +821,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse deactivate(String tenantName, String applicationName, String instanceName, String environment, String region) { Application application = controller.applications().require(ApplicationId.from(tenantName, applicationName, instanceName)); - ZoneId zone = new Zone(Environment.from(environment), RegionName.from(region)); + ZoneId zone = new ZoneId(Environment.from(environment), RegionName.from(region)); Deployment deployment = application.deployments().get(zone); if (deployment == null) { // Attempt to deactivate application even if the deployment is not known by the controller diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java index eca381754d6..11c918fcd83 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java @@ -527,7 +527,7 @@ public class ControllerTest { application = application.withDeploying(Optional.of(new Change.VersionChange(Version.fromString("6.3")))); applications.store(application); try { - tester.deploy(app, new Zone(Environment.prod, RegionName.from("us-east-3"))); + tester.deploy(app, new ZoneId(Environment.prod, RegionName.from("us-east-3"))); fail("Expected exception"); } catch (IllegalArgumentException e) { assertEquals("Rejecting deployment of application 'tenant1.app1' to zone prod.us-east-3 as version change to 6.3 is not tested", e.getMessage()); @@ -627,7 +627,7 @@ public class ControllerTest { Application app = tester.createApplication("app1", "tenant1", 1, 2L); // Direct deploy is allowed when project ID is missing - Zone zone = new Zone(Environment.prod, RegionName.from("cd-us-central-1")); + ZoneId zone = new ZoneId(Environment.prod, RegionName.from("cd-us-central-1")); // Same options as used in our integration tests DeployOptions options = new DeployOptions(Optional.empty(), Optional.empty(), false, false); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java index bdb8160a3f6..d592e57dfc6 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java @@ -7,7 +7,7 @@ import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.TenantName; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.slime.Slime; import com.yahoo.test.ManualClock; import com.yahoo.vespa.curator.Lock; @@ -130,7 +130,7 @@ public final class ControllerTester { /** Creates the given tenant and application and deploys it */ public Application createAndDeploy(String tenantName, String domainName, String applicationName, - String instanceName, Zone zone, long projectId, Long propertyId) { + String instanceName, ZoneId zone, long projectId, Long propertyId) { TenantId tenant = createTenant(tenantName, domainName, propertyId); Application application = createApplication(tenant, applicationName, instanceName, projectId); deploy(application, zone); @@ -144,7 +144,7 @@ public final class ControllerTester { } /** Creates the given tenant and application and deploys it */ - public Application createAndDeploy(String tenantName, String domainName, String applicationName, Zone zone, long projectId, Long propertyId) { + public Application createAndDeploy(String tenantName, String domainName, String applicationName, ZoneId zone, long projectId, Long propertyId) { return createAndDeploy(tenantName, domainName, applicationName, "default", zone, projectId, propertyId); } @@ -163,11 +163,11 @@ public final class ControllerTester { return application; } - public Zone toZone(Environment environment) { + public ZoneId toZone(Environment environment) { switch (environment) { - case dev: case test: return new Zone(environment, RegionName.from("us-east-1")); - case staging: return new Zone(environment, RegionName.from("us-east-3")); - default: return new Zone(environment, RegionName.from("us-west-1")); + case dev: case test: return new ZoneId(environment, RegionName.from("us-east-1")); + case staging: return new ZoneId(environment, RegionName.from("us-east-3")); + default: return new ZoneId(environment, RegionName.from("us-west-1")); } } @@ -197,15 +197,15 @@ public final class ControllerTester { return controller().applications().require(applicationId); } - public void deploy(Application application, Zone zone) { + public void deploy(Application application, ZoneId zone) { deploy(application, zone, new ApplicationPackage(new byte[0])); } - public void deploy(Application application, Zone zone, ApplicationPackage applicationPackage) { + public void deploy(Application application, ZoneId zone, ApplicationPackage applicationPackage) { deploy(application, zone, applicationPackage, false); } - public void deploy(Application application, Zone zone, ApplicationPackage applicationPackage, boolean deployCurrentVersion) { + public void deploy(Application application, ZoneId zone, ApplicationPackage applicationPackage, boolean deployCurrentVersion) { ScrewdriverId app1ScrewdriverId = new ScrewdriverId(String.valueOf(application.deploymentJobs().projectId().get())); GitRevision app1RevisionId = new GitRevision(new GitRepository("repo"), new GitBranch("master"), new GitCommit("commit1")); controller().applications().deployApplication(application.id(), diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java index b4f06f3b423..e2475ef6c87 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java @@ -89,7 +89,7 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry @Override public Optional getDeploymentTimeToLive(Environment environment, RegionName region) { - return Optional.ofNullable(deploymentTimeToLive.get(new Zone(environment, region))); + return Optional.ofNullable(deploymentTimeToLive.get(new ZoneId(environment, region))); } @Override diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java index ef0b05f9bb2..37bb553d905 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.controller.maintenance; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.application.ApplicationPackage; import com.yahoo.vespa.hosted.controller.application.Deployment; @@ -35,7 +36,7 @@ public class DeploymentExpirerTest { @Test public void testDeploymentExpiry() throws IOException, InterruptedException { tester.controllerTester().zoneRegistry().setDeploymentTimeToLive( - new Zone(Environment.dev, RegionName.from("us-east-1")), + new ZoneId(Environment.dev, RegionName.from("us-east-1")), Duration.ofDays(14) ); DeploymentExpirer expirer = new DeploymentExpirer(tester.controller(), Duration.ofDays(10), diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java index 8839f6a5a18..7304880b1c2 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java @@ -5,6 +5,7 @@ import com.yahoo.component.Version; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.test.ManualClock; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.ControllerTester; @@ -692,7 +693,7 @@ public class UpgraderTest { // Dev deployment which should be ignored Application dev0 = tester.createApplication("dev0", "tenant1", 7, 1L); - tester.controllerTester().deploy(dev0, new Zone(Environment.dev, RegionName.from("dev-region"))); + tester.controllerTester().deploy(dev0, new ZoneId(Environment.dev, RegionName.from("dev-region"))); // New version is released and canaries upgrade version = Version.fromString("5.1"); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java index bf869230e8d..ca16e1e02ba 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java @@ -9,6 +9,7 @@ import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.slime.Slime; import com.yahoo.vespa.config.SlimeUtils; import com.yahoo.vespa.hosted.controller.Application; @@ -48,8 +49,8 @@ public class ApplicationSerializerTest { private static final ApplicationSerializer applicationSerializer = new ApplicationSerializer(); - private static final Zone zone1 = new Zone(Environment.from("prod"), RegionName.from("us-west-1")); - private static final Zone zone2 = new Zone(Environment.from("prod"), RegionName.from("us-east-3")); + private static final ZoneId zone1 = new ZoneId(Environment.from("prod"), RegionName.from("us-west-1")); + private static final ZoneId zone2 = new ZoneId(Environment.from("prod"), RegionName.from("us-east-3")); @Test public void testSerialization() { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerControllerTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerControllerTester.java index bb5f129b20b..f3fa1e21eda 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerControllerTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/ContainerControllerTester.java @@ -5,6 +5,7 @@ import com.yahoo.application.container.JDisc; import com.yahoo.application.container.handler.Request; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.Controller; import com.yahoo.vespa.hosted.controller.TestIdentities; @@ -76,7 +77,7 @@ public class ContainerControllerTester { return controller().applications().createApplication(app, Optional.of(TestIdentities.userNToken)); } - public Application deploy(Application application, ApplicationPackage applicationPackage, Zone zone, long projectId) { + public Application deploy(Application application, ApplicationPackage applicationPackage, ZoneId zone, long projectId) { ScrewdriverId app1ScrewdriverId = new ScrewdriverId(String.valueOf(projectId)); GitRevision app1RevisionId = new GitRevision(new GitRepository("repo"), new GitBranch("master"), new GitCommit("commit1")); controller().applications().deployApplication(application.id(), @@ -132,4 +133,5 @@ public class ContainerControllerTester { .applications.get(new com.yahoo.vespa.hosted.controller.api.identifiers.ApplicationId(application.id().application().value())) .addRoleMember(action, AthenzService.fromScrewdriverId(screwdriverId)); } + } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java index 6cf90905679..f51277c26b7 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java @@ -4,7 +4,7 @@ package com.yahoo.vespa.hosted.controller.restapi.application; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.io.IOUtils; import com.yahoo.slime.Slime; import com.yahoo.vespa.config.SlimeUtils; @@ -32,7 +32,7 @@ public class ServiceApiResponseTest { @Test public void testServiceViewResponse() throws URISyntaxException, IOException { - ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.prod, RegionName.from("us-west-1")), + ServiceApiResponse response = new ServiceApiResponse(new ZoneId(Environment.prod, RegionName.from("us-west-1")), ApplicationId.from("tenant1", "application1", "default"), Collections.singletonList(new URI("config-server1")), new URI("http://server1:4080/request/path?foo=bar")); @@ -63,7 +63,7 @@ public class ServiceApiResponseTest { @Test public void testServiceViewResponseWithURLs() throws URISyntaxException, IOException { - ServiceApiResponse response = new ServiceApiResponse(new Zone(Environment.prod, RegionName.from("us-west-1")), + ServiceApiResponse response = new ServiceApiResponse(new ZoneId(Environment.prod, RegionName.from("us-west-1")), ApplicationId.from("tenant2", "application2", "default"), Collections.singletonList(new URI("http://cfg1.test/")), new URI("http://cfg1.test/serviceview/v1/tenant/tenant2/application/application2/environment/prod/region/us-west-1/instance/default/service/searchnode-9dujk1pa0vufxrj6n4yvmi8uc/state/v1")); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java index 55a4b46f4a7..9f029d3f1c2 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java @@ -7,6 +7,7 @@ import com.yahoo.component.Version; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.Controller; import com.yahoo.vespa.hosted.controller.application.ApplicationPackage; @@ -95,14 +96,14 @@ public class DeploymentApiTest extends ControllerContainerTest { private void deployCompletely(Application application, ApplicationPackage applicationPackage, long projectId, boolean success) { tester.notifyJobCompletion(application.id(), projectId, true, component); - tester.deploy(application, applicationPackage, new Zone(Environment.test, - RegionName.from("us-east-1")), projectId); + tester.deploy(application, applicationPackage, new ZoneId(Environment.test, + RegionName.from("us-east-1")), projectId); tester.notifyJobCompletion(application.id(), projectId, true, systemTest); - tester.deploy(application, applicationPackage, new Zone(Environment.staging, + tester.deploy(application, applicationPackage, new ZoneId(Environment.staging, RegionName.from("us-east-3")), projectId); tester.notifyJobCompletion(application.id(), projectId, success, stagingTest); if (success) { - tester.deploy(application, applicationPackage, new Zone(Environment.prod,RegionName.from("corp-us-east-1")), + tester.deploy(application, applicationPackage, new ZoneId(Environment.prod,RegionName.from("corp-us-east-1")), projectId); tester.notifyJobCompletion(application.id(), projectId, true, productionCorpUsEast1); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java index e2c3725ea5f..4e3bc000562 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java @@ -8,6 +8,7 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.config.SlimeUtils; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.application.ApplicationPackage; @@ -39,8 +40,8 @@ import static org.junit.Assert.assertTrue; public class ScrewdriverApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/responses/"; - private static final Zone testZone = new Zone(Environment.test, RegionName.from("us-east-1")); - private static final Zone stagingZone = new Zone(Environment.staging, RegionName.from("us-east-3")); + private static final ZoneId testZone = new ZoneId(Environment.test, RegionName.from("us-east-1")); + private static final ZoneId stagingZone = new ZoneId(Environment.staging, RegionName.from("us-east-3")); @Test public void testGetReleaseStatus() throws Exception { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java index e03a550686f..b689645077a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.hosted.controller.restapi.zone.v1; import com.yahoo.application.container.handler.Request; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.ZoneRegistryMock; import com.yahoo.vespa.hosted.controller.restapi.ContainerControllerTester; @@ -23,10 +22,10 @@ public class ZoneApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/"; private static final List zones = Arrays.asList( - new Zone(Environment.prod, RegionName.from("us-north-1")), - new Zone(Environment.dev, RegionName.from("us-north-2")), - new Zone(Environment.test, RegionName.from("us-north-3")), - new Zone(Environment.staging, RegionName.from("us-north-4")) + new ZoneId(Environment.prod, RegionName.from("us-north-1")), + new ZoneId(Environment.dev, RegionName.from("us-north-2")), + new ZoneId(Environment.test, RegionName.from("us-north-3")), + new ZoneId(Environment.staging, RegionName.from("us-north-4")) ); private ContainerControllerTester tester; diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java index 3874d50f0ed..20852c48342 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java @@ -4,7 +4,6 @@ import com.yahoo.application.container.handler.Request; import com.yahoo.application.container.handler.Request.Method; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.text.Utf8; import com.yahoo.vespa.hosted.controller.ConfigServerProxyMock; @@ -28,10 +27,10 @@ public class ZoneApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/responses/"; private static final List zones = Arrays.asList( - new Zone(Environment.prod, RegionName.from("us-north-1")), - new Zone(Environment.dev, RegionName.from("us-north-2")), - new Zone(Environment.test, RegionName.from("us-north-3")), - new Zone(Environment.staging, RegionName.from("us-north-4")) + new ZoneId(Environment.prod, RegionName.from("us-north-1")), + new ZoneId(Environment.dev, RegionName.from("us-north-2")), + new ZoneId(Environment.test, RegionName.from("us-north-3")), + new ZoneId(Environment.staging, RegionName.from("us-north-4")) ); private ContainerControllerTester tester; -- cgit v1.2.3 From b8de1c1581ee0c67780a91fd89c4879c86526440 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 8 Dec 2017 15:37:22 +0100 Subject: Replaced Zone with ZoneId two places where only that part was used --- .../provider/FilesApplicationPackage.java | 5 ++- .../config/application/api/ApplicationPackage.java | 5 ++- .../main/java/com/yahoo/config/provision/Zone.java | 6 +-- .../controller/application/DeploymentJobs.java | 46 ++++++++++------------ .../vespa/hosted/controller/ZoneRegistryMock.java | 6 +-- 5 files changed, 32 insertions(+), 36 deletions(-) diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java index 97322fc1c55..330692abb1e 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/FilesApplicationPackage.java @@ -15,6 +15,7 @@ import com.yahoo.config.application.api.ApplicationFile; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.provision.Version; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.path.Path; import com.yahoo.io.HexDump; import com.yahoo.io.IOUtils; @@ -649,7 +650,7 @@ public class FilesApplicationPackage implements ApplicationPackage { return searchDefinitionContents(); } - private void preprocessXML(File destination, File inputXml, Zone zone) throws ParserConfigurationException, TransformerException, SAXException, IOException { + private void preprocessXML(File destination, File inputXml, ZoneId zone) throws ParserConfigurationException, TransformerException, SAXException, IOException { Document document = new XmlPreProcessor(appDir, inputXml, zone.environment(), zone.region()).run(); Transformer transformer = TransformerFactory.newInstance().newTransformer(); try (FileOutputStream outputStream = new FileOutputStream(destination)) { @@ -658,7 +659,7 @@ public class FilesApplicationPackage implements ApplicationPackage { } @Override - public ApplicationPackage preprocess(Zone zone, RuleConfigDeriver ignored, DeployLogger logger) throws IOException, TransformerException, ParserConfigurationException, SAXException { + public ApplicationPackage preprocess(ZoneId zone, RuleConfigDeriver ignored, DeployLogger logger) throws IOException, TransformerException, ParserConfigurationException, SAXException { IOUtils.recursiveDeleteDir(preprocessedDir); IOUtils.copyDirectory(appDir, preprocessedDir, -1, (dir, name) -> ! name.equals(".preprocessed") && ! name.equals(SERVICES) && diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java index c1a786194a2..480d4d05451 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/ApplicationPackage.java @@ -4,6 +4,7 @@ package com.yahoo.config.application.api; import com.yahoo.config.provision.AllocatedHosts; import com.yahoo.config.provision.Version; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.path.Path; import com.yahoo.io.IOUtils; import com.yahoo.io.reader.NamedReader; @@ -255,13 +256,13 @@ public interface ApplicationPackage { * application package. This is the entry point for the multi environment application package support. This method * will not mutate the existing application package. * - * @param zone A valid {@link Zone} instance, used to decide which parts of services to keep and remove + * @param zone A valid {@link ZoneId} instance, used to decide which parts of services to keep and remove * @param ruleConfigDeriver ignored * @param logger A {@link DeployLogger} to add output that will be returned to the user * * @return A new application package instance pointing to a new location */ - default ApplicationPackage preprocess(Zone zone, RuleConfigDeriver ruleConfigDeriver, DeployLogger logger) throws IOException, TransformerException, ParserConfigurationException, SAXException { + default ApplicationPackage preprocess(ZoneId zone, RuleConfigDeriver ruleConfigDeriver, DeployLogger logger) throws IOException, TransformerException, ParserConfigurationException, SAXException { throw new UnsupportedOperationException("This application package does not support preprocessing"); } diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index 56bbd82c761..b69795a4f95 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -8,7 +8,7 @@ import com.yahoo.cloud.config.ConfigserverConfig; import java.util.Optional; /** - * The zone (environment + region) of this runtime. + * The zone (environment + region) of this runtime, and some other information. * An injected instance of this will return the correct current environment and region. * Components can use this to obtain information about which zone they are running in. * @@ -29,12 +29,12 @@ public class Zone extends ZoneId { nodeFlavors); } - /** Create from environment and region */ + /** Create from environment and region. Use for testing. */ public Zone(Environment environment, RegionName region) { this(SystemName.defaultSystem(), environment, region); } - /** Create from system, environment and region */ + /** Create from system, environment and region. Use for testing. */ public Zone(SystemName systemName, Environment environment, RegionName region) { this(systemName, environment, region, new FlavorDefaults("default"), null); } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java index 47b2cb94d12..27e94588626 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java @@ -19,7 +19,6 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.Objects; import java.util.Optional; -import java.util.stream.Collectors; import java.util.stream.Stream; /** @@ -161,28 +160,30 @@ public class DeploymentJobs { /** Job types that exist in the build system */ public enum JobType { - - component ("component" ), - systemTest ("system-test" , zone("test" , "us-east-1" ), zone(SystemName.cd, "test" , "cd-us-central-1")), - stagingTest ("staging-test" , zone("staging", "us-east-3" ), zone(SystemName.cd, "staging", "cd-us-central-1")), - productionCorpUsEast1 ("production-corp-us-east-1" , zone("prod" , "corp-us-east-1")), - productionUsEast3 ("production-us-east-3" , zone("prod" , "us-east-3" )), - productionUsWest1 ("production-us-west-1" , zone("prod" , "us-west-1" )), - productionUsCentral1 ("production-us-central-1" , zone("prod" , "us-central-1" )), - productionApNortheast1 ("production-ap-northeast-1" , zone("prod" , "ap-northeast-1")), - productionApNortheast2 ("production-ap-northeast-2" , zone("prod" , "ap-northeast-2")), - productionApSoutheast1 ("production-ap-southeast-1" , zone("prod" , "ap-southeast-1")), - productionEuWest1 ("production-eu-west-1" , zone("prod" , "eu-west-1" )), - productionCdUsCentral1 ("production-cd-us-central-1", zone(SystemName.cd, "prod", "cd-us-central-1")), - productionCdUsCentral2 ("production-cd-us-central-2", zone(SystemName.cd, "prod", "cd-us-central-2")); +// | enum name ------------| job name ------------------| Zone in main system ---------------------------------------| Zone in CD system ------------------------------------------- + component ("component" , null , null ), + systemTest ("system-test" , ZoneId.from("test" , "us-east-1") , ZoneId.from("test" , "cd-us-central-1")), + stagingTest ("staging-test" , ZoneId.from("staging", "us-east-3") , ZoneId.from("staging", "cd-us-central-1")), + productionCorpUsEast1 ("production-corp-us-east-1" , ZoneId.from("prod" , "corp-us-east-1") , null ), + productionUsEast3 ("production-us-east-3" , ZoneId.from("prod" , "us-east-3") , null ), + productionUsWest1 ("production-us-west-1" , ZoneId.from("prod" , "us-west-1") , null ), + productionUsCentral1 ("production-us-central-1" , ZoneId.from("prod" , "us-central-1") , null ), + productionApNortheast1 ("production-ap-northeast-1" , ZoneId.from("prod" , "ap-northeast-1") , null ), + productionApNortheast2 ("production-ap-northeast-2" , ZoneId.from("prod" , "ap-northeast-2") , null ), + productionApSoutheast1 ("production-ap-southeast-1" , ZoneId.from("prod" , "ap-southeast-1") , null ), + productionEuWest1 ("production-eu-west-1" , ZoneId.from("prod" , "eu-west-1") , null ), + productionCdUsCentral1 ("production-cd-us-central-1", null , ZoneId.from("prod" , "cd-us-central-1")), + productionCdUsCentral2 ("production-cd-us-central-2", null , ZoneId.from("prod" , "cd-us-central-2")); private final String jobName; private final ImmutableMap zones; - JobType(String jobName, Zone... zones) { + JobType(String jobName, ZoneId mainZone, ZoneId cdZone) { this.jobName = jobName; - this.zones = ImmutableMap.copyOf(Stream.of(zones).collect(Collectors.toMap(zone -> zone.system(), - zone -> zone))); + ImmutableMap.Builder builder = ImmutableMap.builder(); + if (mainZone != null) builder.put(SystemName.main, mainZone); + if (cdZone != null) builder.put(SystemName.cd, cdZone); + this.zones = builder.build(); } public String jobName() { return jobName; } @@ -229,16 +230,9 @@ public class DeploymentJobs { case test: return Optional.of(systemTest); case staging: return Optional.of(stagingTest); } - return from(system, new Zone(environment, region)); - } - - private static Zone zone(SystemName system, String environment, String region) { - return new Zone(system, Environment.from(environment), RegionName.from(region)); + return from(system, new ZoneId(environment, region)); } - private static Zone zone(String environment, String region) { - return new Zone(Environment.from(environment), RegionName.from(region)); - } } /** A job report. This class is immutable. */ diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java index e2475ef6c87..55d71cc43bb 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java @@ -32,9 +32,9 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry @Inject public ZoneRegistryMock() { - this.zones.add(new Zone(SystemName.main, Environment.from("prod"), RegionName.from("corp-us-east-1"))); - this.zones.add(new Zone(SystemName.main, Environment.from("prod"), RegionName.from("us-east-3"))); - this.zones.add(new Zone(SystemName.main, Environment.from("prod"), RegionName.from("us-west-1"))); + this.zones.add(new ZoneId(Environment.from("prod"), RegionName.from("corp-us-east-1"))); + this.zones.add(new ZoneId(Environment.from("prod"), RegionName.from("us-east-3"))); + this.zones.add(new ZoneId(Environment.from("prod"), RegionName.from("us-west-1"))); } public ZoneRegistryMock setDeploymentTimeToLive(ZoneId zone, Duration duration) { -- cgit v1.2.3 From 267e1407bf2b659ccfd867c6a6210bd32b87667d Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 8 Dec 2017 15:46:56 +0100 Subject: Replace constructor with factories --- .../main/java/com/yahoo/config/provision/ZoneId.java | 2 +- .../controller/api/identifiers/IdentifierTest.java | 4 ++-- .../controller/application/DeploymentJobs.java | 3 +-- .../controller/deployment/DeploymentOrder.java | 3 +-- .../persistence/ApplicationSerializer.java | 3 +-- .../restapi/application/ApplicationApiHandler.java | 20 ++++++++++---------- .../vespa/hosted/controller/ControllerTest.java | 4 ++-- .../vespa/hosted/controller/ControllerTester.java | 9 ++++++--- .../vespa/hosted/controller/ZoneRegistryMock.java | 9 ++++----- .../maintenance/DeploymentExpirerTest.java | 3 +-- .../hosted/controller/maintenance/UpgraderTest.java | 3 +-- .../persistence/ApplicationSerializerTest.java | 5 ++--- .../restapi/application/ServiceApiResponseTest.java | 10 +++++----- .../restapi/deployment/DeploymentApiTest.java | 9 +++------ .../restapi/screwdriver/ScrewdriverApiTest.java | 5 ++--- .../controller/restapi/zone/v1/ZoneApiTest.java | 8 ++++---- .../controller/restapi/zone/v2/ZoneApiTest.java | 8 ++++---- 17 files changed, 50 insertions(+), 58 deletions(-) diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java index 169c5133130..e1565bfb0e1 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java @@ -15,7 +15,7 @@ public class ZoneId { protected final Environment environment; protected final RegionName region; - public ZoneId(Environment environment, RegionName region) { + ZoneId(Environment environment, RegionName region) { this.environment = Objects.requireNonNull(environment); this.region = Objects.requireNonNull(region); } diff --git a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java index 85b2b7e2fab..aa3d1be879e 100644 --- a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java +++ b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/identifiers/IdentifierTest.java @@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.controller.api.identifiers; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -147,7 +147,7 @@ public class IdentifierTest { @Test public void application_instance_id_dotted_string_is_subindentifers_concatinated_with_dots() { DeploymentId id = new DeploymentId(com.yahoo.config.provision.ApplicationId.from("tenant", "application", "instance"), - new com.yahoo.config.provision.ZoneId(Environment.prod, RegionName.from("region"))); + ZoneId.from("prod", "region")); assertEquals("tenant.application.prod.region.instance", id.dottedString()); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java index 27e94588626..ec8b2d6d019 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/DeploymentJobs.java @@ -7,7 +7,6 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.SystemName; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Controller; import com.yahoo.vespa.hosted.controller.api.integration.organization.IssueId; @@ -230,7 +229,7 @@ public class DeploymentJobs { case test: return Optional.of(systemTest); case staging: return Optional.of(stagingTest); } - return from(system, new ZoneId(environment, region)); + return from(system, ZoneId.from(environment, region)); } } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java index 2b92bcad644..2bf64571bdf 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentOrder.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.hosted.controller.deployment; import com.yahoo.config.application.api.DeploymentSpec; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.Controller; @@ -108,7 +107,7 @@ public class DeploymentOrder { public List sortBy(List zones, Collection deployments) { List productionZones = zones.stream() .filter(z -> z.region().isPresent()) - .map(z -> new ZoneId(z.environment(), z.region().get())) + .map(z -> ZoneId.from(z.environment(), z.region().get())) .collect(toList()); return deployments.stream() .sorted(comparingInt(deployment -> productionZones.indexOf(deployment.zone()))) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java index 8627744c73f..762f12c3e8a 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java @@ -339,8 +339,7 @@ public class ApplicationSerializer { } private ZoneId zoneIdFromSlime(Inspector object) { - return new ZoneId(Environment.from(object.field(environmentField).asString()), - RegionName.from(object.field(regionField).asString())); + return ZoneId.from(object.field(environmentField).asString(), object.field(regionField).asString()); } private Optional applicationRevisionFromSlime(Inspector object) { diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java index 4b2f0f88d5b..4e3b96b40df 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java @@ -423,7 +423,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { .orElseThrow(() -> new NotExistsException(id + " not found")); DeploymentId deploymentId = new DeploymentId(application.id(), - new ZoneId(Environment.from(environment), RegionName.from(region))); + ZoneId.from(environment, region)); Deployment deployment = application.deployments().get(deploymentId.zone()); if (deployment == null) @@ -514,7 +514,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { // DeploymentId identifies the zone and application we are dealing with DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new ZoneId(Environment.from(environment), RegionName.from(region))); + ZoneId.from(environment, region)); try { List rotations = controller.applications().setGlobalRotationStatus(deploymentId, endPointStatus); return new MessageResponse(String.format("Rotations %s successfully set to %s service", rotations.toString(), inService ? "in" : "out of")); @@ -526,7 +526,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse getGlobalRotationOverride(String tenantName, String applicationName, String instanceName, String environment, String region) { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new ZoneId(Environment.from(environment), RegionName.from(region))); + ZoneId.from(environment, region)); Slime slime = new Slime(); Cursor c1 = slime.setObject().setArray("globalrotationoverride"); @@ -571,13 +571,13 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse waitForConvergence(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { return new JacksonJsonResponse(controller.waitForConfigConvergence(new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new ZoneId(Environment.from(environment), RegionName.from(region))), + ZoneId.from(environment, region)), asLong(request.getProperty("timeout"), 1000))); } private HttpResponse services(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { ApplicationView applicationView = controller.getApplicationView(tenantName, applicationName, instanceName, environment, region); - ServiceApiResponse response = new ServiceApiResponse(new ZoneId(Environment.from(environment), RegionName.from(region)), + ServiceApiResponse response = new ServiceApiResponse(ZoneId.from(environment, region), new ApplicationId.Builder().tenant(tenantName).applicationName(applicationName).instanceName(instanceName).build(), controller.getConfigServerUris(Environment.from(environment), RegionName.from(region)), request.getUri()); @@ -587,7 +587,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse service(String tenantName, String applicationName, String instanceName, String environment, String region, String serviceName, String restPath, HttpRequest request) { Map result = controller.getServiceApiResponse(tenantName, applicationName, instanceName, environment, region, serviceName, restPath); - ServiceApiResponse response = new ServiceApiResponse(new ZoneId(Environment.from(environment), RegionName.from(region)), + ServiceApiResponse response = new ServiceApiResponse(ZoneId.from(environment, region), new ApplicationId.Builder().tenant(tenantName).applicationName(applicationName).instanceName(instanceName).build(), controller.getConfigServerUris(Environment.from(environment), RegionName.from(region)), request.getUri()); @@ -737,7 +737,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { /** Schedule restart of deployment, or specific host in a deployment */ private HttpResponse restart(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new ZoneId(Environment.from(environment), RegionName.from(region))); + ZoneId.from(environment, region)); // TODO: Propagate all filters Optional hostname = Optional.ofNullable(request.getProperty("hostname")).map(Hostname::new); controller.applications().restart(deploymentId, hostname); @@ -758,7 +758,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse log(String tenantName, String applicationName, String instanceName, String environment, String region) { try { DeploymentId deploymentId = new DeploymentId(ApplicationId.from(tenantName, applicationName, instanceName), - new ZoneId(Environment.from(environment), RegionName.from(region))); + ZoneId.from(environment, region)); return new JacksonJsonResponse(controller.grabLog(deploymentId)); } catch (RuntimeException e) { @@ -770,7 +770,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse deploy(String tenantName, String applicationName, String instanceName, String environment, String region, HttpRequest request) { ApplicationId applicationId = ApplicationId.from(tenantName, applicationName, instanceName); - ZoneId zone = new ZoneId(Environment.from(environment), RegionName.from(region)); + ZoneId zone = ZoneId.from(environment, region); Map dataParts = new MultipartParser().parse(request); if ( ! dataParts.containsKey("deployOptions")) @@ -821,7 +821,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private HttpResponse deactivate(String tenantName, String applicationName, String instanceName, String environment, String region) { Application application = controller.applications().require(ApplicationId.from(tenantName, applicationName, instanceName)); - ZoneId zone = new ZoneId(Environment.from(environment), RegionName.from(region)); + ZoneId zone = ZoneId.from(environment, region); Deployment deployment = application.deployments().get(zone); if (deployment == null) { // Attempt to deactivate application even if the deployment is not known by the controller diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java index 11c918fcd83..efd3ddd80e6 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java @@ -527,7 +527,7 @@ public class ControllerTest { application = application.withDeploying(Optional.of(new Change.VersionChange(Version.fromString("6.3")))); applications.store(application); try { - tester.deploy(app, new ZoneId(Environment.prod, RegionName.from("us-east-3"))); + tester.deploy(app, ZoneId.from("prod", "us-east-3")); fail("Expected exception"); } catch (IllegalArgumentException e) { assertEquals("Rejecting deployment of application 'tenant1.app1' to zone prod.us-east-3 as version change to 6.3 is not tested", e.getMessage()); @@ -627,7 +627,7 @@ public class ControllerTest { Application app = tester.createApplication("app1", "tenant1", 1, 2L); // Direct deploy is allowed when project ID is missing - ZoneId zone = new ZoneId(Environment.prod, RegionName.from("cd-us-central-1")); + ZoneId zone = ZoneId.from("prod", "cd-us-central-1"); // Same options as used in our integration tests DeployOptions options = new DeployOptions(Optional.empty(), Optional.empty(), false, false); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java index d592e57dfc6..52e1b3ae400 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTester.java @@ -165,9 +165,12 @@ public final class ControllerTester { public ZoneId toZone(Environment environment) { switch (environment) { - case dev: case test: return new ZoneId(environment, RegionName.from("us-east-1")); - case staging: return new ZoneId(environment, RegionName.from("us-east-3")); - default: return new ZoneId(environment, RegionName.from("us-west-1")); + case dev: case test: + return ZoneId.from(environment, RegionName.from("us-east-1")); + case staging: + return ZoneId.from(environment, RegionName.from("us-east-3")); + default: + return ZoneId.from(environment, RegionName.from("us-west-1")); } } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java index 55d71cc43bb..53af74bf542 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ZoneRegistryMock.java @@ -7,7 +7,6 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.SystemName; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.api.integration.zone.ZoneRegistry; @@ -32,9 +31,9 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry @Inject public ZoneRegistryMock() { - this.zones.add(new ZoneId(Environment.from("prod"), RegionName.from("corp-us-east-1"))); - this.zones.add(new ZoneId(Environment.from("prod"), RegionName.from("us-east-3"))); - this.zones.add(new ZoneId(Environment.from("prod"), RegionName.from("us-west-1"))); + this.zones.add(ZoneId.from("prod", "corp-us-east-1")); + this.zones.add(ZoneId.from("prod", "us-east-3")); + this.zones.add(ZoneId.from("prod", "us-west-1")); } public ZoneRegistryMock setDeploymentTimeToLive(ZoneId zone, Duration duration) { @@ -89,7 +88,7 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry @Override public Optional getDeploymentTimeToLive(Environment environment, RegionName region) { - return Optional.ofNullable(deploymentTimeToLive.get(new ZoneId(environment, region))); + return Optional.ofNullable(deploymentTimeToLive.get(ZoneId.from(environment, region))); } @Override diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java index 37bb553d905..47d62f93def 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DeploymentExpirerTest.java @@ -3,7 +3,6 @@ package com.yahoo.vespa.hosted.controller.maintenance; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.application.ApplicationPackage; @@ -36,7 +35,7 @@ public class DeploymentExpirerTest { @Test public void testDeploymentExpiry() throws IOException, InterruptedException { tester.controllerTester().zoneRegistry().setDeploymentTimeToLive( - new ZoneId(Environment.dev, RegionName.from("us-east-1")), + ZoneId.from(Environment.dev, RegionName.from("us-east-1")), Duration.ofDays(14) ); DeploymentExpirer expirer = new DeploymentExpirer(tester.controller(), Duration.ofDays(10), diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java index 7304880b1c2..ac282422c89 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/UpgraderTest.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.hosted.controller.maintenance; import com.yahoo.component.Version; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.test.ManualClock; import com.yahoo.vespa.hosted.controller.Application; @@ -693,7 +692,7 @@ public class UpgraderTest { // Dev deployment which should be ignored Application dev0 = tester.createApplication("dev0", "tenant1", 7, 1L); - tester.controllerTester().deploy(dev0, new ZoneId(Environment.dev, RegionName.from("dev-region"))); + tester.controllerTester().deploy(dev0, ZoneId.from(Environment.dev, RegionName.from("dev-region"))); // New version is released and canaries upgrade version = Version.fromString("5.1"); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java index ca16e1e02ba..b281b513f4a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializerTest.java @@ -8,7 +8,6 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.slime.Slime; import com.yahoo.vespa.config.SlimeUtils; @@ -49,8 +48,8 @@ public class ApplicationSerializerTest { private static final ApplicationSerializer applicationSerializer = new ApplicationSerializer(); - private static final ZoneId zone1 = new ZoneId(Environment.from("prod"), RegionName.from("us-west-1")); - private static final ZoneId zone2 = new ZoneId(Environment.from("prod"), RegionName.from("us-east-3")); + private static final ZoneId zone1 = ZoneId.from("prod", "us-west-1"); + private static final ZoneId zone2 = ZoneId.from("prod", "us-east-3"); @Test public void testSerialization() { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java index f51277c26b7..4c25bf6fe61 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ServiceApiResponseTest.java @@ -32,10 +32,10 @@ public class ServiceApiResponseTest { @Test public void testServiceViewResponse() throws URISyntaxException, IOException { - ServiceApiResponse response = new ServiceApiResponse(new ZoneId(Environment.prod, RegionName.from("us-west-1")), - ApplicationId.from("tenant1", "application1", "default"), - Collections.singletonList(new URI("config-server1")), - new URI("http://server1:4080/request/path?foo=bar")); + ServiceApiResponse response = new ServiceApiResponse(ZoneId.from(Environment.prod, RegionName.from("us-west-1")), + ApplicationId.from("tenant1", "application1", "default"), + Collections.singletonList(new URI("config-server1")), + new URI("http://server1:4080/request/path?foo=bar")); ApplicationView applicationView = new ApplicationView(); ClusterView clusterView = new ClusterView(); clusterView.type = "container"; @@ -63,7 +63,7 @@ public class ServiceApiResponseTest { @Test public void testServiceViewResponseWithURLs() throws URISyntaxException, IOException { - ServiceApiResponse response = new ServiceApiResponse(new ZoneId(Environment.prod, RegionName.from("us-west-1")), + ServiceApiResponse response = new ServiceApiResponse(ZoneId.from(Environment.prod, RegionName.from("us-west-1")), ApplicationId.from("tenant2", "application2", "default"), Collections.singletonList(new URI("http://cfg1.test/")), new URI("http://cfg1.test/serviceview/v1/tenant/tenant2/application/application2/environment/prod/region/us-west-1/instance/default/service/searchnode-9dujk1pa0vufxrj6n4yvmi8uc/state/v1")); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java index 9f029d3f1c2..d16a0222e4a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/deployment/DeploymentApiTest.java @@ -6,7 +6,6 @@ import com.yahoo.application.container.handler.Request; import com.yahoo.component.Version; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.Controller; @@ -96,14 +95,12 @@ public class DeploymentApiTest extends ControllerContainerTest { private void deployCompletely(Application application, ApplicationPackage applicationPackage, long projectId, boolean success) { tester.notifyJobCompletion(application.id(), projectId, true, component); - tester.deploy(application, applicationPackage, new ZoneId(Environment.test, - RegionName.from("us-east-1")), projectId); + tester.deploy(application, applicationPackage, ZoneId.from(Environment.test, RegionName.from("us-east-1")), projectId); tester.notifyJobCompletion(application.id(), projectId, true, systemTest); - tester.deploy(application, applicationPackage, new ZoneId(Environment.staging, - RegionName.from("us-east-3")), projectId); + tester.deploy(application, applicationPackage, ZoneId.from(Environment.staging, RegionName.from("us-east-3")), projectId); tester.notifyJobCompletion(application.id(), projectId, success, stagingTest); if (success) { - tester.deploy(application, applicationPackage, new ZoneId(Environment.prod,RegionName.from("corp-us-east-1")), + tester.deploy(application, applicationPackage, ZoneId.from(Environment.prod, RegionName.from("corp-us-east-1")), projectId); tester.notifyJobCompletion(application.id(), projectId, true, productionCorpUsEast1); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java index 4e3bc000562..1269bb23105 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/ScrewdriverApiTest.java @@ -7,7 +7,6 @@ import com.yahoo.component.Version; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.config.SlimeUtils; import com.yahoo.vespa.hosted.controller.Application; @@ -40,8 +39,8 @@ import static org.junit.Assert.assertTrue; public class ScrewdriverApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/screwdriver/responses/"; - private static final ZoneId testZone = new ZoneId(Environment.test, RegionName.from("us-east-1")); - private static final ZoneId stagingZone = new ZoneId(Environment.staging, RegionName.from("us-east-3")); + private static final ZoneId testZone = ZoneId.from(Environment.test, RegionName.from("us-east-1")); + private static final ZoneId stagingZone = ZoneId.from(Environment.staging, RegionName.from("us-east-3")); @Test public void testGetReleaseStatus() throws Exception { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java index b689645077a..2d92d10b661 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/ZoneApiTest.java @@ -22,10 +22,10 @@ public class ZoneApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v1/responses/"; private static final List zones = Arrays.asList( - new ZoneId(Environment.prod, RegionName.from("us-north-1")), - new ZoneId(Environment.dev, RegionName.from("us-north-2")), - new ZoneId(Environment.test, RegionName.from("us-north-3")), - new ZoneId(Environment.staging, RegionName.from("us-north-4")) + ZoneId.from(Environment.prod, RegionName.from("us-north-1")), + ZoneId.from(Environment.dev, RegionName.from("us-north-2")), + ZoneId.from(Environment.test, RegionName.from("us-north-3")), + ZoneId.from(Environment.staging, RegionName.from("us-north-4")) ); private ContainerControllerTester tester; diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java index 20852c48342..9c20c470cf8 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/ZoneApiTest.java @@ -27,10 +27,10 @@ public class ZoneApiTest extends ControllerContainerTest { private static final String responseFiles = "src/test/java/com/yahoo/vespa/hosted/controller/restapi/zone/v2/responses/"; private static final List zones = Arrays.asList( - new ZoneId(Environment.prod, RegionName.from("us-north-1")), - new ZoneId(Environment.dev, RegionName.from("us-north-2")), - new ZoneId(Environment.test, RegionName.from("us-north-3")), - new ZoneId(Environment.staging, RegionName.from("us-north-4")) + ZoneId.from(Environment.prod, RegionName.from("us-north-1")), + ZoneId.from(Environment.dev, RegionName.from("us-north-2")), + ZoneId.from(Environment.test, RegionName.from("us-north-3")), + ZoneId.from(Environment.staging, RegionName.from("us-north-4")) ); private ContainerControllerTester tester; -- cgit v1.2.3 From 6b818dccd5460d785d5452a6a961bb637501c574 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 8 Dec 2017 15:47:41 +0100 Subject: Remove unused ZoneId --- .../vespa/hosted/controller/api/identifiers/ZoneId.java | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/ZoneId.java diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/ZoneId.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/ZoneId.java deleted file mode 100644 index 79210143d19..00000000000 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/identifiers/ZoneId.java +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.hosted.controller.api.identifiers; - -/** - * @author smorgrav - */ -public class ZoneId extends Identifier { - - public ZoneId(EnvironmentId envId, RegionId regionId) { - super(envId.id() + ":" + regionId.id()); - } - -} -- cgit v1.2.3 From bfcf0064501b526e6e57e459f72a46d5ba7d086d Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 8 Dec 2017 16:07:50 +0100 Subject: Replaced inheritance with delegation --- .../preprocessor/ApplicationPreprocessor.java | 6 ++-- .../provider/FilesApplicationPackageTest.java | 11 +++---- .../main/java/com/yahoo/config/provision/Zone.java | 37 ++++++++++++++++++++-- .../config/server/session/SessionPreparer.java | 2 +- .../vespa/hosted/controller/ControllerTest.java | 2 +- 5 files changed, 44 insertions(+), 14 deletions(-) diff --git a/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java b/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java index e879acef3bb..303ce3e8d29 100644 --- a/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java +++ b/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java @@ -39,9 +39,9 @@ public class ApplicationPreprocessor { FilesApplicationPackage.Builder applicationPackageBuilder = new FilesApplicationPackage.Builder(applicationDir); outputDir.ifPresent(applicationPackageBuilder::preprocessedDir); ApplicationPackage preprocessed = applicationPackageBuilder.build().preprocess( - new Zone(environment.orElse(Environment.defaultEnvironment()), region.orElse(RegionName.defaultName())), - (a, b) -> { - }, logger); + ZoneId.from(environment.orElse(Environment.defaultEnvironment()), region.orElse(RegionName.defaultName())), + (a, b) -> { }, + logger); preprocessed.validateXML(); } diff --git a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java index c12a9ad0d06..2dfaf440084 100644 --- a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java @@ -7,6 +7,7 @@ import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.io.IOUtils; import org.junit.Rule; import org.junit.Test; @@ -41,13 +42,9 @@ public class FilesApplicationPackageTest { assertTrue(new File(appDir, "hosts.xml").exists()); FilesApplicationPackage app = FilesApplicationPackage.fromFile(appDir); - ApplicationPackage processed = app.preprocess(new Zone(Environment.dev, RegionName.defaultName()), - new RuleConfigDeriver() { - @Override - public void derive(String ruleBaseDir, String outputDir) throws Exception { - } - }, - new BaseDeployLogger()); + ApplicationPackage processed = app.preprocess(ZoneId.from(Environment.dev, RegionName.defaultName()), + (ruleBaseDir, outputDir) -> {}, + new BaseDeployLogger()); assertTrue(new File(appDir, ".preprocessed").exists()); String expectedServices = "\n" + " \n" + diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index b69795a4f95..4dd6324b423 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -5,6 +5,7 @@ import com.google.common.base.Strings; import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; +import java.util.Objects; import java.util.Optional; /** @@ -14,11 +15,12 @@ import java.util.Optional; * * @author bratseth */ -public class Zone extends ZoneId { +public class Zone { private final SystemName systemName; private final FlavorDefaults flavorDefaults; private final Optional nodeFlavors; + private final ZoneId id; @Inject public Zone(ConfigserverConfig configserverConfig, NodeFlavors nodeFlavors) { @@ -44,12 +46,27 @@ public class Zone extends ZoneId { RegionName region, FlavorDefaults flavorDefaults, NodeFlavors nodeFlavors) { - super(environment, region); + this.id = new ZoneId(environment, region); this.flavorDefaults = flavorDefaults; this.systemName = systemName; this.nodeFlavors = Optional.ofNullable(nodeFlavors); } + /** Returns the id of this */ + public ZoneId id() { + return id; + } + + /** Returns the current environment */ + public Environment environment() { + return id.environment(); + } + + /** Returns the current region */ + public RegionName region() { + return id.region(); + } + /** Returns the current system */ public SystemName system() { return systemName; } @@ -64,6 +81,22 @@ public class Zone extends ZoneId { return new Zone(SystemName.defaultSystem(), Environment.defaultEnvironment(), RegionName.defaultName()); } + + public String toString() { + return id.toString(); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if ( ! (o instanceof Zone)) return false; + return Objects.equals(id, ((Zone) o).id); + } + + public int hashCode() { + return id.hashCode(); + } + private static class FlavorDefaults { /** The default default flavor */ diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java index 70db406bd53..24666f42dc9 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java @@ -178,7 +178,7 @@ public class SessionPreparer { void preprocess() { try { - this.applicationPackage = context.getApplicationPackage().preprocess(properties.zone(), null, logger); + this.applicationPackage = context.getApplicationPackage().preprocess(properties.zone().id(), null, logger); } catch (IOException | TransformerException | ParserConfigurationException | SAXException e) { throw new RuntimeException("Error deploying application package", e); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java index efd3ddd80e6..3af68befd1d 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java @@ -494,7 +494,7 @@ public class ControllerTest { public void testGlobalRotations() throws IOException { // Setup tester and app def ControllerTester tester = new ControllerTester(); - ZoneId zone = Zone.defaultZone(); + ZoneId zone = ZoneId.from(Environment.defaultEnvironment(), RegionName.defaultName()); ApplicationId appId = tester.applicationId("tenant", "app1", "default"); DeploymentId deployId = new DeploymentId(appId, zone); -- cgit v1.2.3 From 8195189c2c55d294cae9001ff331cee829c5ba8e Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 8 Dec 2017 16:29:02 +0100 Subject: Fixed scala type --- .../hosted/controller/maintenance/ClusterInfoMaintainer.java | 8 +++++--- .../container/standalone/StandaloneContainerApplication.scala | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterInfoMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterInfoMaintainer.java index f7284272b38..ad7fa90967b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterInfoMaintainer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ClusterInfoMaintainer.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.controller.maintenance; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Flavor; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.Controller; import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId; @@ -44,7 +45,7 @@ public class ClusterInfoMaintainer extends Maintainer { return node.membership.clusterId; } - private Map getClusterInfo(NodeList nodes, Zone zone) { + private Map getClusterInfo(NodeList nodes, ZoneId zone) { Map infoMap = new HashMap<>(); // Group nodes by clusterid @@ -63,7 +64,8 @@ public class ClusterInfoMaintainer extends Maintainer { double cpu = 0; double mem = 0; double disk = 0; - if (zone.nodeFlavors().isPresent()) { + // TODO: This code was never run. Reenable when flavours are available from a FlavorRegistry or something, or remove. + /*if (zone.nodeFlavors().isPresent()) { Optional flavorOptional = zone.nodeFlavors().get().getFlavor(node.flavor); if ((flavorOptional.isPresent())) { Flavor flavor = flavorOptional.get(); @@ -71,7 +73,7 @@ public class ClusterInfoMaintainer extends Maintainer { mem = flavor.getMinMainMemoryAvailableGb(); disk = flavor.getMinMainMemoryAvailableGb(); } - } + }*/ // Add to map List hostnames = clusterNodes.stream().map(node1 -> node1.hostname).collect(Collectors.toList()); diff --git a/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala b/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala index 1d4b83ce7d3..e1d5ba6577d 100644 --- a/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala +++ b/standalone-container/src/main/scala/com/yahoo/container/standalone/StandaloneContainerApplication.scala @@ -158,7 +158,7 @@ object StandaloneContainerApplication { val logger = new BaseDeployLogger val rawApplicationPackage = new FilesApplicationPackage.Builder(applicationPath.toFile).includeSourceFiles(true).preprocessedDir(preprocessedApplicationDir).build() // TODO: Needed until we get rid of semantic rules - val applicationPackage = rawApplicationPackage.preprocess(Zone.defaultZone(), new RuleConfigDeriver { + val applicationPackage = rawApplicationPackage.preprocess(Zone.defaultZone().id, new RuleConfigDeriver { override def derive(ruleBaseDir: String, outputDir: String): Unit = {} }, logger) validateApplication(applicationPackage) -- cgit v1.2.3 From 95515f4f75ff2a67f72d35cd3c3d938b898d5efe Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Mon, 11 Dec 2017 11:41:46 +0100 Subject: Some doc, cleanup of modifiers and @Override, a TODO --- .../src/main/java/com/yahoo/config/provision/RegionName.java | 1 + .../src/main/java/com/yahoo/config/provision/Zone.java | 5 +++-- .../src/main/java/com/yahoo/config/provision/ZoneId.java | 10 ++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/RegionName.java b/config-provisioning/src/main/java/com/yahoo/config/provision/RegionName.java index b98020c260b..95c80be1fc1 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/RegionName.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/RegionName.java @@ -34,6 +34,7 @@ public class RegionName implements Comparable { return region; } + // TODO: Add verification of region name. public static RegionName from(String region) { return new RegionName(region); } diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index 4dd6324b423..26c20d56d63 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -46,7 +46,7 @@ public class Zone { RegionName region, FlavorDefaults flavorDefaults, NodeFlavors nodeFlavors) { - this.id = new ZoneId(environment, region); + this.id = ZoneId.from(environment, region); this.flavorDefaults = flavorDefaults; this.systemName = systemName; this.nodeFlavors = Optional.ofNullable(nodeFlavors); @@ -81,7 +81,7 @@ public class Zone { return new Zone(SystemName.defaultSystem(), Environment.defaultEnvironment(), RegionName.defaultName()); } - + @Override public String toString() { return id.toString(); } @@ -93,6 +93,7 @@ public class Zone { return Objects.equals(id, ((Zone) o).id); } + @Override public int hashCode() { return id.hashCode(); } diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java index e1565bfb0e1..d51a8d5e0c9 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ZoneId.java @@ -11,11 +11,12 @@ import java.util.Objects; * @author jvenstad */ public class ZoneId { + // TODO: Replace usages of zone + region with usages of this. - protected final Environment environment; - protected final RegionName region; + private final Environment environment; + private final RegionName region; - ZoneId(Environment environment, RegionName region) { + private ZoneId(Environment environment, RegionName region) { this.environment = Objects.requireNonNull(environment); this.region = Objects.requireNonNull(region); } @@ -27,7 +28,7 @@ public class ZoneId { public static ZoneId from(String environment, String region) { return from(Environment.from(environment), RegionName.from(region)); } - + /** Create from a serialised ZoneId. Inverse of {@code ZoneId.value()}. */ public static ZoneId from(String value) { String[] parts = value.split("\\."); return from(parts[0], parts[1]); @@ -41,6 +42,7 @@ public class ZoneId { return region; } + /** Returns the serialised value of this. Inverse of {@code ZoneId.from(String value)}. */ public String value() { return environment + "." + region; } -- cgit v1.2.3 From 2141b8d758e3b524bcf93aab742c508678d4a85c Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Mon, 11 Dec 2017 13:13:18 +0100 Subject: Changed to ZoneId in DnsMaintainerTest as well --- .../yahoo/vespa/hosted/controller/maintenance/DnsMaintainerTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DnsMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DnsMaintainerTest.java index 17f9ab29628..8647b87133e 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DnsMaintainerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/DnsMaintainerTest.java @@ -5,6 +5,7 @@ import com.yahoo.config.application.api.ValidationId; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; +import com.yahoo.config.provision.ZoneId; import com.yahoo.vespa.hosted.controller.Application; import com.yahoo.vespa.hosted.controller.api.integration.athenz.NToken; import com.yahoo.vespa.hosted.controller.api.integration.dns.Record; @@ -60,8 +61,8 @@ public class DnsMaintainerTest { .build(); tester.notifyJobCompletion(component, application, true); tester.deployAndNotify(application, applicationPackage, true, systemTest); - tester.applications().deactivate(application, new Zone(Environment.test, RegionName.from("us-east-1"))); - tester.applications().deactivate(application, new Zone(Environment.staging, RegionName.from("us-east-3"))); + tester.applications().deactivate(application, ZoneId.from(Environment.test, RegionName.from("us-east-1"))); + tester.applications().deactivate(application, ZoneId.from(Environment.staging, RegionName.from("us-east-3"))); tester.applications().deleteApplication(application.id(), Optional.of(new NToken("ntoken"))); // DnsMaintainer removes record -- cgit v1.2.3 From 9c357854f8945738dd513d6fe7b598c81cda9e77 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Mon, 11 Dec 2017 13:39:31 +0100 Subject: More Zone -> ZoneId --- .../test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java index 68cc7ed20fe..8af95f6b612 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java @@ -650,8 +650,8 @@ public class ControllerTest { .build(); tester.notifyJobCompletion(component, app1, true); tester.deployAndNotify(app1, applicationPackage, true, systemTest); - tester.applications().deactivate(app1, new Zone(Environment.test, RegionName.from("us-east-1"))); - tester.applications().deactivate(app1, new Zone(Environment.staging, RegionName.from("us-east-3"))); + tester.applications().deactivate(app1, ZoneId.from(Environment.test, RegionName.from("us-east-1"))); + tester.applications().deactivate(app1, ZoneId.from(Environment.staging, RegionName.from("us-east-3"))); tester.applications().deleteApplication(app1.id(), Optional.of(new NToken("ntoken"))); try (RotationLock lock = tester.applications().rotationRepository().lock()) { assertTrue("Rotation is unassigned", -- cgit v1.2.3