diff options
author | Harald Musum <musum@verizonmedia.com> | 2019-11-20 09:38:35 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2019-11-20 09:38:35 +0100 |
commit | 18947164a8f028ff176a92bfac97b5452bc6338c (patch) | |
tree | 7ff7676c7ef4033337ca624586e02649b22e7db2 | |
parent | e8e051bad5111fd6a6c4fe03afa638bf145ac5ea (diff) |
Remove RoutingProducer and routing config definition
Not in use anymore (was used by YCAFilter, which has been removed)
7 files changed, 3 insertions, 201 deletions
diff --git a/configdefinitions/src/vespa/CMakeLists.txt b/configdefinitions/src/vespa/CMakeLists.txt index 120c403eb74..0673e803057 100644 --- a/configdefinitions/src/vespa/CMakeLists.txt +++ b/configdefinitions/src/vespa/CMakeLists.txt @@ -44,8 +44,6 @@ vespa_generate_config(configdefinitions persistence.def) install_config_definition(persistence.def vespa.config.content.persistence.def) vespa_generate_config(configdefinitions rank-profiles.def) install_config_definition(rank-profiles.def vespa.config.search.rank-profiles.def) -vespa_generate_config(configdefinitions routing.def) -install_config_definition(routing.def cloud.config.routing.def) vespa_generate_config(configdefinitions routing-provider.def) install_config_definition(routing-provider.def cloud.config.routing-provider.def) vespa_generate_config(configdefinitions sentinel.def) diff --git a/configdefinitions/src/vespa/routing.def b/configdefinitions/src/vespa/routing.def deleted file mode 100755 index 043ef1fff68..00000000000 --- a/configdefinitions/src/vespa/routing.def +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -# List of routing hosts populated from the zone-application in Hosted mode - -# TODO Remove once YCA filter is removed - -namespace=cloud.config - -# Host name(s) of routing/proxy nodes -hosts[] string diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/model/RoutingProducer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/model/RoutingProducer.java deleted file mode 100644 index 07e57270dbd..00000000000 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/model/RoutingProducer.java +++ /dev/null @@ -1,50 +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.config.server.model; - -import com.yahoo.cloud.config.RoutingConfig; -import com.yahoo.config.model.api.ApplicationInfo; -import com.yahoo.config.model.api.HostInfo; -import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.ApplicationName; -import com.yahoo.config.provision.TenantName; -import com.yahoo.vespa.config.server.tenant.TenantRepository; - -import java.util.Map; -import java.util.Set; - -/** - * Create global config based on info from the zone application - * - * @author Christian Andersen - */ -// TODO Delete once YCA filter is removed -@Deprecated(forRemoval = true) -public class RoutingProducer implements RoutingConfig.Producer { - - static final ApplicationName ROUTING_APPLICATION = ApplicationName.from("routing"); - - private final Map<TenantName, Set<ApplicationInfo>> models; - - public RoutingProducer(Map<TenantName, Set<ApplicationInfo>> models) { - this.models = models; - } - - @Override - public void getConfig(RoutingConfig.Builder builder) { - for (Set<ApplicationInfo> model : models.values()) { - model.stream() - .filter(application -> isHostedVespaRoutingApplication(application.getApplicationId())) - .forEach(application -> { - for (HostInfo host : application.getModel().getHosts()) { - builder.hosts(host.getHostname()); - } - }); - } - } - - private boolean isHostedVespaRoutingApplication(ApplicationId applicationId) { - return TenantRepository.HOSTED_VESPA_TENANT.equals(applicationId.tenant()) && - (ROUTING_APPLICATION.equals(applicationId.application())); - } - -} diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java b/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java index 9631713c870..c51690cd3a8 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/model/SuperModelConfigProvider.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.config.server.model; import com.yahoo.cloud.config.LbServicesConfig; -import com.yahoo.cloud.config.RoutingConfig; import com.yahoo.config.ConfigInstance; import com.yahoo.config.ConfigurationRuntimeException; import com.yahoo.config.model.api.ApplicationInfo; @@ -21,17 +20,14 @@ import java.util.Map; * * @author Vegard Havdal */ -public class SuperModelConfigProvider implements LbServicesConfig.Producer, RoutingConfig.Producer { +public class SuperModelConfigProvider implements LbServicesConfig.Producer { private final SuperModel superModel; private final LbServicesProducer lbProd; - @SuppressWarnings("removal") private final RoutingProducer zoneProd; - @SuppressWarnings("removal") // For RoutingProducer public SuperModelConfigProvider(SuperModel superModel, Zone zone, FlagSource flagSource) { this.superModel = superModel; this.lbProd = new LbServicesProducer(Collections.unmodifiableMap(superModel.getModelsPerTenant()), zone, flagSource); - this.zoneProd = new RoutingProducer(Collections.unmodifiableMap(superModel.getModelsPerTenant())); } public SuperModel getSuperModel() { @@ -44,10 +40,6 @@ public class SuperModelConfigProvider implements LbServicesConfig.Producer, Rout LbServicesConfig.Builder builder = new LbServicesConfig.Builder(); getConfig(builder); return ConfigPayload.fromInstance(new LbServicesConfig(builder)); - } else if (configKey.equals(new ConfigKey<>(RoutingConfig.class, configKey.getConfigId()))) { - RoutingConfig.Builder builder = new RoutingConfig.Builder(); - getConfig(builder); - return ConfigPayload.fromInstance(new RoutingConfig(builder)); } else { throw new ConfigurationRuntimeException(configKey + " is not valid when asking for config from SuperModel"); } @@ -59,12 +51,7 @@ public class SuperModelConfigProvider implements LbServicesConfig.Producer, Rout public void getConfig(LbServicesConfig.Builder builder) { lbProd.getConfig(builder); } - - @Override - public void getConfig(RoutingConfig.Builder builder) { - zoneProd.getConfig(builder); - } - + public <CONFIGTYPE extends ConfigInstance> CONFIGTYPE getConfig(Class<CONFIGTYPE> configClass, ApplicationId applicationId, String configId) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/security/GlobalConfigAuthorizationPolicy.java b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/security/GlobalConfigAuthorizationPolicy.java index cc1125b6cc6..e0e74b93ccf 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/security/GlobalConfigAuthorizationPolicy.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/rpc/security/GlobalConfigAuthorizationPolicy.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.config.server.rpc.security; import com.yahoo.cloud.config.LbServicesConfig; -import com.yahoo.cloud.config.RoutingConfig; import com.yahoo.config.ConfigInstance; import com.yahoo.config.provision.NodeType; import com.yahoo.vespa.config.ConfigKey; @@ -18,8 +17,7 @@ import java.util.List; */ enum GlobalConfigAuthorizationPolicy { - LB_SERVICES(new LbServicesConfig.Builder(), NodeType.proxy), - ROUTING(new RoutingConfig.Builder(), NodeType.tenant); // TODO Remove handling of RoutingConfig when YCA filter is removed + LB_SERVICES(new LbServicesConfig.Builder(), NodeType.proxy); final String namespace; final String name; diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/model/RoutingProducerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/model/RoutingProducerTest.java deleted file mode 100755 index 5a34dd4c912..00000000000 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/model/RoutingProducerTest.java +++ /dev/null @@ -1,110 +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.config.server.model; - -import com.yahoo.cloud.config.RoutingConfig; -import com.yahoo.config.application.api.ApplicationPackage; -import com.yahoo.config.model.NullConfigModelRegistry; -import com.yahoo.config.model.api.ApplicationInfo; -import com.yahoo.config.model.api.Model; -import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.config.model.test.MockApplicationPackage; -import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.TenantName; -import com.yahoo.vespa.config.server.tenant.TenantRepository; -import com.yahoo.vespa.model.VespaModel; -import org.junit.Test; -import org.xml.sax.SAXException; - -import java.io.IOException; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.Map; -import java.util.Set; - -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; - -/** - * @author Christian Andersen - */ -@SuppressWarnings("removal") // For RoutingProducer -public class RoutingProducerTest { - @Test - public void testNodesFromRoutingAppOnly() throws Exception { - Map<TenantName, Set<ApplicationInfo>> testModel = createTestModel(new DeployState.Builder()); - RoutingProducer producer = new RoutingProducer(testModel); - RoutingConfig.Builder builder = new RoutingConfig.Builder(); - producer.getConfig(builder); - RoutingConfig config = new RoutingConfig(builder); - assertThat(config.hosts().size(), is(2)); - assertThat(config.hosts(0), is("hosted-vespa.routing.yahoo.com")); - assertThat(config.hosts(1), is("hosted-vespa.routing2.yahoo.com")); - } - - private Map<TenantName, Set<ApplicationInfo>> createTestModel(DeployState.Builder deployStateBuilder) throws IOException, SAXException { - Map<TenantName, Set<ApplicationInfo>> apps = new LinkedHashMap<>(); - TenantName foo = TenantName.from("foo"); - TenantName bar = TenantName.from("bar"); - TenantName routing = TenantName.from(TenantRepository.HOSTED_VESPA_TENANT.value()); - apps.put(foo, createTestApplications(foo, deployStateBuilder)); - apps.put(bar, createTestApplications(bar, deployStateBuilder)); - apps.put(routing, createTestApplications(routing, deployStateBuilder)); - return apps; - } - - private Set<ApplicationInfo> createTestApplications(TenantName tenant, DeployState.Builder deploystateBuilder) throws IOException, SAXException { - Set<ApplicationInfo> applicationInfos = new LinkedHashSet<>(); - ApplicationId fooApp = new ApplicationId.Builder().tenant(tenant).applicationName("foo").build(); - ApplicationId barApp = new ApplicationId.Builder().tenant(tenant).applicationName("bar").build(); - ApplicationId routingApp = new ApplicationId.Builder().tenant(tenant).applicationName(RoutingProducer.ROUTING_APPLICATION.value()).build(); - applicationInfos.add(createApplication(fooApp, deploystateBuilder)); - applicationInfos.add(createApplication(barApp, deploystateBuilder)); - applicationInfos.add(createApplication(routingApp, deploystateBuilder)); - return applicationInfos; - } - - private ApplicationInfo createApplication(ApplicationId appId, DeployState.Builder deploystateBuilder) throws IOException, SAXException { - return new ApplicationInfo( - appId, - 3L, - createVespaModel( - createApplicationPackage( - appId.tenant() + "." + appId.application() + ".yahoo.com", - appId.tenant().value() + "." + appId.application().value() + "2.yahoo.com"), - deploystateBuilder)); - } - - private ApplicationPackage createApplicationPackage(String host1, String host2) { - String hosts = "<hosts><host name='" + host1 + "'><alias>node1</alias></host><host name='" + host2 + "'><alias>node2</alias></host></hosts>"; - String services = "<services><admin version='2.0'><adminserver hostalias='node1' /><logserver hostalias='node1' /><slobroks><slobrok hostalias='node1' /><slobrok hostalias='node2' /></slobroks></admin>" - + "<container id='mydisc' version='1.0'>" + - " <aliases>" + - " <endpoint-alias>foo2.bar2.com</endpoint-alias>" + - " <service-alias>service1</service-alias>" + - " <endpoint-alias>foo1.bar1.com</endpoint-alias>" + - " </aliases>" + - " <nodes>" + - " <node hostalias='node1' />" + - " </nodes>" + - " <search/>" + - "</container>" + - "</services>"; - String deploymentInfo ="<?xml version='1.0' encoding='UTF-8'?>" + - "<deployment version='1.0'>" + - " <test />" + - " <prod global-service-id='mydisc'>" + - " <region active='true'>us-east</region>" + - " </prod>" + - "</deployment>"; - - return new MockApplicationPackage.Builder() - .withHosts(hosts) - .withServices(services) - .withDeploymentSpec(deploymentInfo) - .build(); - } - - private Model createVespaModel(ApplicationPackage applicationPackage, DeployState.Builder deployStateBuilder) throws IOException, SAXException { - return new VespaModel(new NullConfigModelRegistry(), deployStateBuilder.applicationPackage(applicationPackage).build()); - } -} diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/security/MultiTenantRpcAuthorizerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/security/MultiTenantRpcAuthorizerTest.java index 5a7ac665463..28827cec53e 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/security/MultiTenantRpcAuthorizerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/security/MultiTenantRpcAuthorizerTest.java @@ -1,7 +1,6 @@ package com.yahoo.vespa.config.server.rpc.security;// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. import com.yahoo.cloud.config.LbServicesConfig; -import com.yahoo.cloud.config.RoutingConfig; import com.yahoo.cloud.config.SentinelConfig; import com.yahoo.config.FileReference; import com.yahoo.config.provision.ApplicationId; @@ -109,17 +108,6 @@ public class MultiTenantRpcAuthorizerTest { } @Test - public void tenant_node_can_access_routing_config() throws ExecutionException, InterruptedException { - RpcAuthorizer authorizer = createAuthorizer(new NodeIdentity.Builder(NodeType.tenant).build(), new HostRegistry<>()); - - Request configRequest = createConfigRequest( - new ConfigKey<>(RoutingConfig.CONFIG_DEF_NAME, "*", RoutingConfig.CONFIG_DEF_NAMESPACE), - HOSTNAME); - authorizer.authorizeConfigRequest(configRequest) - .get(); - } - - @Test public void tenant_node_cannot_access_lbservice_config() throws ExecutionException, InterruptedException { RpcAuthorizer authorizer = createAuthorizer(new NodeIdentity.Builder(NodeType.tenant).build(), new HostRegistry<>()); |