diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-06-01 13:47:25 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2022-06-08 11:45:24 +0200 |
commit | 778db579931c6f2e08e40d7cb37c1090422f7164 (patch) | |
tree | d182e3bfb8e0d634a63fbe8ad904605de5edd40b | |
parent | daa980fcd31971bc9418fe8717f835e53d501969 (diff) |
Remove on Vespa 8
17 files changed, 0 insertions, 500 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaConfigModelRegistry.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaConfigModelRegistry.java index e942079a085..ca2d6a9da76 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaConfigModelRegistry.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaConfigModelRegistry.java @@ -9,7 +9,6 @@ import com.yahoo.vespa.model.builder.xml.dom.DomRoutingBuilder; import com.yahoo.vespa.model.container.xml.ContainerModelBuilder; import com.yahoo.vespa.model.container.xml.ContainerModelBuilder.Networking; import com.yahoo.vespa.model.content.Content; -import com.yahoo.vespa.model.generic.GenericServicesBuilder; import java.util.ArrayList; import java.util.Collection; @@ -34,7 +33,6 @@ public class VespaConfigModelRegistry extends ConfigModelRegistry { builderList.add(new DomRoutingBuilder()); builderList.add(new Content.Builder()); builderList.add(new ContainerModelBuilder(false, Networking.enable)); - builderList.add(new GenericServicesBuilder()); } @Override diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java index a587d4cb0f9..7f5a78fa917 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java @@ -52,7 +52,6 @@ import com.yahoo.vespa.model.content.Content; import com.yahoo.vespa.model.content.cluster.ContentCluster; import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProducer; import com.yahoo.vespa.model.filedistribution.FileReferencesRepository; -import com.yahoo.vespa.model.generic.service.ServiceCluster; import com.yahoo.vespa.model.ml.ConvertedModel; import com.yahoo.vespa.model.ml.ModelName; import com.yahoo.vespa.model.ml.OnnxModelInfo; @@ -115,9 +114,6 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri private final ApplicationPackage applicationPackage; - /** Generic service instances - service clusters which have no specific model */ - private final List<ServiceCluster> serviceClusters = new ArrayList<>(); - /** The global rank profiles of this model */ private final RankProfileList rankProfileList; @@ -182,7 +178,6 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri if (complete) { // create a completed, frozen model root.useFeatureFlags(deployState.getProperties().featureFlags()); configModelRepo.readConfigModels(deployState, this, builder, root, new VespaConfigModelRegistry(configModelRegistry)); - addServiceClusters(deployState, builder); setupRouting(deployState); getAdmin().addPerHostServices(hostSystem.getHosts(), deployState); freezeModelTopology(); @@ -260,11 +255,6 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri } } - /** Adds generic application specific clusters of services */ - private void addServiceClusters(DeployState deployState, VespaModelBuilder builder) { - serviceClusters.addAll(builder.getClusters(deployState, this)); - } - /** * Creates a rank profile not attached to any search definition, for each imported model in the application package, * and adds it to the given rank profile registry. @@ -651,11 +641,6 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri return root.getFileDistributionConfigProducer(); } - /** The clusters of application specific generic services */ - public List<ServiceCluster> serviceClusters() { - return serviceClusters; - } - /** Returns an unmodifiable view of the mapping of config id to {@link ConfigProducer} */ public Map<String, ConfigProducer> id2producer() { return Collections.unmodifiableMap(id2producer); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/VespaModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/VespaModelBuilder.java index ff41a700230..2cf32f1e8ff 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/VespaModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/VespaModelBuilder.java @@ -6,9 +6,6 @@ import com.yahoo.config.model.ConfigModelRepo; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.config.model.ApplicationConfigProducerRoot; -import com.yahoo.vespa.model.generic.service.ServiceCluster; - -import java.util.List; /** * Base class for classes capable of building vespa model. @@ -18,7 +15,6 @@ import java.util.List; public abstract class VespaModelBuilder { public abstract ApplicationConfigProducerRoot getRoot(String name, DeployState deployState, AbstractConfigProducer parent); - public abstract List<ServiceCluster> getClusters(DeployState pkg, AbstractConfigProducer parent); /** * Processing that requires access across plugins diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java index ea66db7b79d..e2bfcb66f37 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java @@ -20,15 +20,11 @@ import com.yahoo.vespa.model.container.ContainerCluster; import com.yahoo.vespa.model.container.ContainerModel; import com.yahoo.vespa.model.container.docproc.ContainerDocproc; import com.yahoo.vespa.model.content.Content; -import com.yahoo.vespa.model.generic.builder.DomServiceClusterBuilder; -import com.yahoo.vespa.model.generic.service.ServiceCluster; import com.yahoo.vespa.model.search.SearchCluster; -import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.logging.Level; @@ -295,15 +291,4 @@ public class VespaDomBuilder extends VespaModelBuilder { } } - @Override - public List<ServiceCluster> getClusters(DeployState deployState, AbstractConfigProducer parent) { - List<ServiceCluster> clusters = new ArrayList<>(); - Document services = XmlHelper.getDocument(deployState.getApplicationPackage().getServices(), "services.xml"); - for (Element clusterSpec : XML.getChildren(services.getDocumentElement(), "cluster")) { - DomServiceClusterBuilder clusterBuilder = new DomServiceClusterBuilder(clusterSpec.getAttribute("name")); - clusters.add(clusterBuilder.build(deployState, parent.getRoot(), clusterSpec)); - } - return clusters; - } - } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/GenericServicesBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/GenericServicesBuilder.java deleted file mode 100644 index 7a0278faa48..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/generic/GenericServicesBuilder.java +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.generic; - -import com.yahoo.config.model.ConfigModelContext; -import com.yahoo.config.model.builder.xml.ConfigModelBuilder; -import com.yahoo.config.model.builder.xml.ConfigModelId; -import com.yahoo.vespa.model.generic.builder.DomServiceClusterBuilder; -import org.w3c.dom.Element; - -import java.util.Arrays; -import java.util.List; - -/** - * @author Ulf Lilleengen - * @since 5.1 - * - * TODO: remove in Vespa 8 - */ -public class GenericServicesBuilder extends ConfigModelBuilder<GenericServicesModel> { - - public GenericServicesBuilder() { - super(GenericServicesModel.class); - } - - @Override - public List<ConfigModelId> handlesElements() { - return List.of(ConfigModelId.fromName("service")); - } - - @Override - public void doBuild(GenericServicesModel model, Element spec, ConfigModelContext context) { - String name = spec.getAttribute("name"); - model.addCluster(new DomServiceClusterBuilder(name).build(context.getDeployState(), context.getParentProducer(), spec)); - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/GenericServicesModel.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/GenericServicesModel.java deleted file mode 100644 index 52f02aba021..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/generic/GenericServicesModel.java +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.generic; - -import com.yahoo.config.model.ConfigModel; -import com.yahoo.config.model.ConfigModelContext; -import com.yahoo.vespa.model.generic.service.ServiceCluster; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author Ulf Lilleengen - * @since 5.1 - */ -public class GenericServicesModel extends ConfigModel { - private final List<ServiceCluster> clusters = new ArrayList<>(); - public GenericServicesModel(ConfigModelContext modelContext) { - super(modelContext); - } - - public void addCluster(ServiceCluster cluster) { - clusters.add(cluster); - } - - public List<ServiceCluster> serviceClusters() { - return clusters; - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/DomModuleBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/DomModuleBuilder.java deleted file mode 100644 index f2f930f201f..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/DomModuleBuilder.java +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.generic.builder; - -import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.config.model.producer.AbstractConfigProducer; -import com.yahoo.text.XML; -import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder; -import com.yahoo.vespa.model.generic.service.Module; -import org.w3c.dom.Element; - -/** - * Produces sub services for generic services. - */ -public class DomModuleBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Module> { - - private final String name; - - public DomModuleBuilder(String name) { - this.name = name; - } - - private void addChildren(DeployState deployState, Module s, Element subServiceSpec) { - for (Element nodeSpec : XML.getChildren(subServiceSpec, "module")) { - new DomModuleBuilder(nodeSpec.getAttribute("name")).build(deployState, s, nodeSpec); - } - } - - @Override - protected Module doBuild(DeployState deployState, AbstractConfigProducer<?> ancestor, Element subServiceSpec) { - Module s = new Module(ancestor, name); - addChildren(deployState, s, subServiceSpec); - return s; - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/DomServiceBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/DomServiceBuilder.java deleted file mode 100644 index 52f13667d89..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/DomServiceBuilder.java +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.generic.builder; - -import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.config.model.producer.AbstractConfigProducer; -import com.yahoo.text.XML; -import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder; -import com.yahoo.vespa.model.generic.service.Service; -import com.yahoo.vespa.model.generic.service.ServiceCluster; -import org.w3c.dom.Element; - -/** -* @author Ulf Lilleengen -* @since 5.1 -*/ -public class DomServiceBuilder extends VespaDomBuilder.DomConfigProducerBuilder<Service> { - private final int i; - - public DomServiceBuilder(int i) { - this.i = i; - } - - @Override - protected com.yahoo.vespa.model.generic.service.Service doBuild(DeployState deployState, AbstractConfigProducer parent, - Element serviceSpec) { - ServiceCluster sc = (ServiceCluster) parent; - com.yahoo.vespa.model.generic.service.Service service = new com.yahoo.vespa.model.generic.service.Service(sc, i + ""); - for (Element subServiceSpec : XML.getChildren(serviceSpec, "module")) { - new DomModuleBuilder(subServiceSpec.getAttribute("name")).build(deployState, service, subServiceSpec); - } - return service; - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/DomServiceClusterBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/DomServiceClusterBuilder.java deleted file mode 100644 index 1ac668049f0..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/DomServiceClusterBuilder.java +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.generic.builder; - -import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.config.model.producer.AbstractConfigProducer; -import com.yahoo.text.XML; -import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder; -import com.yahoo.vespa.model.generic.service.ServiceCluster; -import org.w3c.dom.Element; -import java.util.Map; -import java.util.logging.Level; - -/** - * @author Ulf Lilleengen - * - * TODO: remove in Vespa 8 - */ -public class DomServiceClusterBuilder extends VespaDomBuilder.DomConfigProducerBuilder<ServiceCluster> { - - private final String name; - - public DomServiceClusterBuilder(String name) { - this.name = name; - } - - @Override - protected ServiceCluster doBuild(DeployState deployState, AbstractConfigProducer<?> ancestor, Element spec) { - deployState.getDeployLogger().logApplicationPackage( - Level.WARNING, "The 'service' element is deprecated and will be removed in Vespa 8, without replacement."); - - ServiceCluster cluster = new ServiceCluster(ancestor, name, spec.getAttribute("command")); - int nodeIndex = 0; - for (Element nodeSpec : XML.getChildren(spec, "node")) { - com.yahoo.vespa.model.generic.service.Service service = new DomServiceBuilder(nodeIndex).build(deployState, cluster, nodeSpec); - - // TODO: Currently creates the config for each service. Should instead build module tree first - // and store them in ServiceCluster. Then have some way of referencing them from each service. - for (Element subServiceSpec : XML.getChildren(spec, "module")) { - String subServiceName = subServiceSpec.getAttribute("name"); - Map<String, AbstractConfigProducer<?>> map = service.getChildren(); - // Add only non-conflicting modules. Does not merge unspecified configs that are specified in root though. - if (!map.containsKey(subServiceName)) - new DomModuleBuilder(subServiceName).build(deployState, service, subServiceSpec); - } - nodeIndex++; - } - return cluster; - } - -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/package-info.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/package-info.java deleted file mode 100644 index fc2cd94d4c4..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/generic/builder/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -@ExportPackage -package com.yahoo.vespa.model.generic.builder; - -import com.yahoo.osgi.annotation.ExportPackage; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/package-info.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/package-info.java deleted file mode 100644 index 3163a070607..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/generic/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -@ExportPackage -package com.yahoo.vespa.model.generic; - -import com.yahoo.osgi.annotation.ExportPackage; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/service/Module.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/service/Module.java deleted file mode 100644 index d0b1520e905..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/generic/service/Module.java +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.generic.service; - -import com.yahoo.config.model.producer.AbstractConfigProducer; - -/** - * A simple sub service that is essentially just to have a node with a nice name - * in the tree. Could might as well have used an AbstractConfigProducer as well, - * but that makes the code very confusing to read. - * - * @author Ulf Lilleengen - */ -public class Module extends AbstractConfigProducer<Module> { - - public Module(AbstractConfigProducer<?> parent, String subId) { - super(parent, subId); - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/service/Service.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/service/Service.java deleted file mode 100644 index dbb2e6a45b3..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/generic/service/Service.java +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.generic.service; - -import com.yahoo.vespa.model.AbstractService; -import com.yahoo.vespa.model.HostResource; -import com.yahoo.vespa.model.PortAllocBridge; - -/** - * An application specific generic service - * @author vegardh - * - */ -public class Service extends AbstractService { - private static final long serialVersionUID = 1L; - - public Service(ServiceCluster parent, String id) { - super(parent, id); - setProp("clustertype", parent.getName()); - setProp("clustername", parent.getName()); - } - - @Override - public int getPortCount() { - return 0; - } - - @Override - public void allocatePorts(int start, PortAllocBridge from) { } - - @Override - public String getStartupCommand() { - return ((ServiceCluster) getParent()).getCommand(); - } - - private String getClusterName() { - return ((ServiceCluster) getParent()).getName(); - } - - /** - * Different services are represented using same class here, so we must take service name into account too - * - * @param host a host - * @return the index of the host - */ - protected int getIndex(HostResource host) { - int i = 0; - for (com.yahoo.vespa.model.Service s : host.getServices()) { - if (!s.getClass().equals(getClass())) continue; - Service other = (Service)s; - if (s!=this && other.getClusterName().equals(getClusterName())) { - i++; - } - } - return i + 1; - } - - @Override - public String getServiceType() { - return getClusterName(); - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/service/ServiceCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/service/ServiceCluster.java deleted file mode 100644 index 32daed92fac..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/generic/service/ServiceCluster.java +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.generic.service; - -import com.yahoo.config.model.producer.AbstractConfigProducer; -import com.yahoo.vespa.model.HostSystem; - -import java.util.ArrayList; -import java.util.Collection; - -/** - * A cluster of nodes running one application specific generic service. These are defined on the top level in the Vespa config - * @author vegardh - * - */ -public class ServiceCluster extends AbstractConfigProducer<ServiceCluster> { - - private static final long serialVersionUID = 1L; - private final String command; - private final String name; - private HostSystem hostSystem; // A generic cluster can resolve hosts for its nodes - - public ServiceCluster(AbstractConfigProducer<?> parent, String name, String command) { - super(parent, name); - this.command=command; - this.name=name; - } - - public String getName() { - return name; - } - - String getCommand() { - return command; - } - - public Collection<Service> services() { - Collection<Service> ret = new ArrayList<>(); - for (Object child : getChildren().values()) { - if (child instanceof Service) ret.add((Service) child); - } - return ret; - } - - @Override - public HostSystem hostSystem() { - if (hostSystem!=null) return hostSystem; - return super.hostSystem(); - } - - /** - * Sets the host system for this. - * @param hostSystem a {@link com.yahoo.vespa.model.HostSystem} - */ - public void setHostSystem(HostSystem hostSystem) { - this.hostSystem = hostSystem; - } - -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/generic/service/package-info.java b/config-model/src/main/java/com/yahoo/vespa/model/generic/service/package-info.java deleted file mode 100644 index 2ad0df20a1a..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/generic/service/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -@ExportPackage -package com.yahoo.vespa.model.generic.service; - -import com.yahoo.osgi.annotation.ExportPackage; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/generic/GenericServicesModelTest.java b/config-model/src/test/java/com/yahoo/vespa/model/generic/GenericServicesModelTest.java deleted file mode 100644 index 7b7fc83131e..00000000000 --- a/config-model/src/test/java/com/yahoo/vespa/model/generic/GenericServicesModelTest.java +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.generic; - -import com.yahoo.config.model.ConfigModelContext; -import com.yahoo.config.model.builder.xml.ConfigModelId; -import com.yahoo.config.model.test.MockApplicationPackage; -import com.yahoo.config.model.test.MockRoot; -import com.yahoo.vespa.model.VespaModel; -import com.yahoo.vespa.model.generic.service.ServiceCluster; -import org.junit.Test; -import org.xml.sax.SAXException; - -import java.io.IOException; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; - -/** - * @author Ulf Lilleengen - * @since 5.1 - */ -public class GenericServicesModelTest { - - @Test - public void test_generic_services_builder() { - GenericServicesBuilder builder = new GenericServicesBuilder(); - assertThat(builder.handlesElements().size(), is(1)); - assertThat(builder.handlesElements().get(0), is(ConfigModelId.fromName("service"))); - } - - @Test - public void test_generic_services_model() { - MockRoot root = new MockRoot(); - GenericServicesModel model = new GenericServicesModel(ConfigModelContext.create(root.getDeployState(), null, null, root, "foo")); - assertThat(model.serviceClusters().size(), is(0)); - model.addCluster(new ServiceCluster(root, "mycluster", "/bin/foo")); - assertThat(model.serviceClusters().size(), is(1)); - assertThat(model.serviceClusters().get(0).getName(), is("mycluster")); - } - - @Test - public void test_generic_services_parsing() throws IOException, SAXException { - final String hosts = - "<hosts>" + - "<host name=\"localhost\">" + - " <alias>mockhost</alias>" + - " </host> " + - "</hosts>"; - String services = "<services version=\"1.0\">" - + "<service id=\"me\" name=\"foo\" command=\"/bin/bar\" version=\"1.0\">" - + "<node hostalias=\"mockhost\" />" - + "</service>" - + "</services>"; - VespaModel model = new VespaModel(new MockApplicationPackage.Builder().withHosts(hosts).withServices(services).build()); - GenericServicesModel gsModel = (GenericServicesModel) model.configModelRepo().get("me"); - assertThat(gsModel.serviceClusters().size(), is(1)); - assertThat(gsModel.serviceClusters().get(0).getName(), is("foo")); - assertThat(gsModel.serviceClusters().get(0).services().size(), is(1)); - } - -} diff --git a/config-model/src/test/java/com/yahoo/vespa/model/generic/GenericServicesTest.java b/config-model/src/test/java/com/yahoo/vespa/model/generic/GenericServicesTest.java deleted file mode 100644 index 7429c2cc113..00000000000 --- a/config-model/src/test/java/com/yahoo/vespa/model/generic/GenericServicesTest.java +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.generic; - -import com.yahoo.cloud.config.SentinelConfig; -import com.yahoo.config.application.api.ApplicationPackage; -import com.yahoo.config.model.application.provider.FilesApplicationPackage; -import com.yahoo.vespa.model.VespaModel; -import org.junit.BeforeClass; -import org.junit.Test; -import org.xml.sax.SAXException; - -import java.io.File; -import java.io.IOException; -import java.util.Iterator; - -import static org.junit.Assert.*; - -/** - * Tests that generic services result in correct sentinel config settings - * - * @author vegardh - */ -public class GenericServicesTest { - - private static VespaModel model; - - @BeforeClass - public static void getModel() throws IOException, SAXException { - String appDir = "src/test/cfg/application/app_genericservices"; - ApplicationPackage app = FilesApplicationPackage.fromFile(new File(appDir)); - model = new VespaModel(app); - } - - @Test - public void testServicesSentinelConfig() { - String sentinelConfigId1="hosts/bogusname1/sentinel"; - String sentinelConfigId2="hosts/bogusname2/sentinel"; - String sentinelConfigId3="hosts/bogusname3/sentinel"; - String sentinelConfigId4="hosts/bogusname4/sentinel"; - SentinelConfig sentinel1 = model.getConfig(SentinelConfig.class, sentinelConfigId1); - SentinelConfig sentinel2 = model.getConfig(SentinelConfig.class, sentinelConfigId2); - SentinelConfig sentinel3 = model.getConfig(SentinelConfig.class, sentinelConfigId3); - SentinelConfig sentinel4 = model.getConfig(SentinelConfig.class, sentinelConfigId4); - - assertServiceExists(sentinel1, "myservice", "mycmd1.sh", "myservice/0"); - assertServiceExists(sentinel2, "myservice", "mycmd1.sh", "myservice/1"); - assertServiceExists(sentinel3, "myservice", "mycmd1.sh", "myservice/2"); - assertServiceExists(sentinel3, "myservice2", "mycmd1.sh", "myservice/3"); - assertServiceExists(sentinel3, "myotherservice", "/home/vespa/bin/mycmd2.sh --ytest $FOO_BAR", "myotherservice/0"); - assertServiceExists(sentinel4, "myotherservice", "/home/vespa/bin/mycmd2.sh --ytest $FOO_BAR", "myotherservice/1"); - } - - private void assertServiceExists(SentinelConfig sentinel, String serviceName, String cmd, String configId) { - boolean matches = false; - Iterator<SentinelConfig.Service> it = sentinel.service().iterator(); - while (!matches && it.hasNext()) { - SentinelConfig.Service service = it.next(); - matches = - service.name().equals(serviceName) && - service.id().equals(configId) && - service.command().equals(cmd); - } - assertTrue(matches); - } - - @Test - public void testServicesModel() { - // Testing that this model can be constructed only for now - } - -} |