diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-02-12 22:49:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-12 22:49:12 +0100 |
commit | 5f0a0b198b7763e608f9b78b1b75de7d820c6804 (patch) | |
tree | 4ac77876643be0dfc5c48e8f48fb8b5620412647 /config-model | |
parent | 42eb099500814020b02c34af01350962feedfc80 (diff) | |
parent | 14f975f56729fc031bbc06d4aa65a1dfd7fc9080 (diff) |
Merge pull request #26003 from vespa-engine/hmusum/config-model-cleanup
Hmusum/config model cleanup
Diffstat (limited to 'config-model')
7 files changed, 28 insertions, 82 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java index 5f346f366de..80dca3776ae 100644 --- a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java +++ b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java @@ -4,22 +4,14 @@ package com.yahoo.config.model.test; import com.yahoo.config.ConfigInstance; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; -import com.yahoo.config.model.ConfigModelContext; import com.yahoo.config.model.ConfigModelRepo; -import com.yahoo.config.model.api.HostProvisioner; -import com.yahoo.config.model.builder.xml.XmlHelper; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.config.model.producer.AbstractConfigProducerRoot; -import com.yahoo.text.XML; import com.yahoo.vespa.model.ConfigProducer; import com.yahoo.vespa.model.HostSystem; import com.yahoo.vespa.model.admin.Admin; -import com.yahoo.vespa.model.builder.xml.dom.DomAdminV2Builder; import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProducer; -import org.w3c.dom.Document; -import java.io.StringReader; -import java.util.ArrayList; import java.util.Collections; import java.util.Set; @@ -34,13 +26,9 @@ import java.util.Set; public class MockRoot extends AbstractConfigProducerRoot { private final HostSystem hostSystem; - private final DeployState deployState; - private Admin admin; - public MockRoot() { - this(""); - } + public MockRoot() { this(""); } public MockRoot(String rootConfigId) { this(rootConfigId, new MockApplicationPackage.Builder().build()); @@ -49,10 +37,6 @@ public class MockRoot extends AbstractConfigProducerRoot { public MockRoot(String rootConfigId, ApplicationPackage applicationPackage) { this(rootConfigId, new DeployState.Builder().applicationPackage(applicationPackage).build()); } - public MockRoot(String rootConfigId, ApplicationPackage applicationPackage, HostProvisioner provisioner) { - this(rootConfigId, new DeployState.Builder().applicationPackage(applicationPackage) - .modelHostProvisioner(provisioner).build()); - } public MockRoot(String rootConfigId, DeployState deployState) { super(rootConfigId); @@ -126,24 +110,8 @@ public class MockRoot extends AbstractConfigProducerRoot { super.addChild(abstractConfigProducer); } - public final void setAdmin(String xml) { - String servicesXml = - "<?xml version='1.0' encoding='utf-8' ?>" + - "<services>" + xml + "</services>"; - - Document doc = XmlHelper.getDocument(new StringReader(servicesXml)); - setAdmin(new DomAdminV2Builder(ConfigModelContext.ApplicationType.DEFAULT, false, new ArrayList<>()) - .build(deployState, this, XML.getChildren(doc.getDocumentElement(), "admin").get(0))); - } - - public final void setAdmin(Admin admin) { - this.admin = admin; - } - @Override - public final Admin getAdmin() { - return admin; - } + public final Admin getAdmin() { return null; } public DeployLogger deployLogger() { return deployState.getDeployLogger(); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/ConfigSentinel.java b/config-model/src/main/java/com/yahoo/vespa/model/ConfigSentinel.java index bdb33d11225..da4cabcf9f5 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/ConfigSentinel.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/ConfigSentinel.java @@ -1,7 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model; -import com.yahoo.config.model.api.ModelContext; import com.yahoo.cloud.config.SentinelConfig; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Zone; @@ -25,8 +24,7 @@ public class ConfigSentinel extends AbstractService implements SentinelConfig.Pr * * @param host Physical host on which to run. */ - public ConfigSentinel(Host host, ApplicationId applicationId, Zone zone) - { + public ConfigSentinel(Host host, ApplicationId applicationId, Zone zone) { super(host, "sentinel"); this.applicationId = applicationId; this.zone = zone; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/Host.java b/config-model/src/main/java/com/yahoo/vespa/model/Host.java index a2c0685c098..1629e580faa 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/Host.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/Host.java @@ -24,11 +24,11 @@ public final class Host extends AbstractConfigProducer<AbstractConfigProducer<?> * @param parent parent AbstractConfigProducer in the config model. * @param hostname hostname for this host. */ - public Host(AbstractConfigProducer parent, String hostname) { + public Host(AbstractConfigProducer<?> parent, String hostname) { this(parent, hostname, false); } - private Host(AbstractConfigProducer parent, String hostname, boolean runsConfigServer) { + private Host(AbstractConfigProducer<?> parent, String hostname, boolean runsConfigServer) { super(parent, hostname); Objects.requireNonNull(hostname, "The host name of a host cannot be null"); this.runsConfigServer = runsConfigServer; @@ -37,19 +37,11 @@ public final class Host extends AbstractConfigProducer<AbstractConfigProducer<?> ((HostSystem)parent).checkName(hostname); } - public static Host createConfigServerHost(AbstractConfigProducer parent, String hostname) { - return new Host(parent, hostname, true); + public static Host createConfigServerHost(HostSystem hostSystem, String hostname) { + return new Host(hostSystem, hostname, true); } - public static Host createHost(AbstractConfigProducer parent, String hostname) { - return new Host(parent, hostname, false); - } - - // For testing - Host(AbstractConfigProducer parent) { - super(parent, "testhost"); - hostname = "testhost"; - configSentinel = null; - runsConfigServer = false; + public static Host createHost(HostSystem hostSystem, String hostname) { + return new Host(hostSystem, hostname, false); } public String getHostname() { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java b/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java index 48b804dfe6c..25ad61528a5 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java @@ -9,8 +9,6 @@ import com.yahoo.config.provision.ClusterMembership; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.HostSpec; import com.yahoo.config.provision.ProvisionLogger; -import com.yahoo.net.HostName; - import java.net.UnknownHostException; import java.util.LinkedHashMap; import java.util.LinkedHashSet; @@ -72,27 +70,6 @@ public class HostSystem extends AbstractConfigProducer<Host> { } } - /** - * Returns the host with the given hostname. - * - * @param name the hostname of the host - * @return the host with the given hostname, or null if no such host - */ - public HostResource getHostByHostname(String name) { - String localhost = "localhost"; - HostResource hostResource = hostname2host.get(name); - if (hostResource == null) { - // Create a new HostResource if this is the host this code is running on (as it is when running tests) - if (HostName.getLocalhost().equals(name)) { - if (! getChildren().containsKey(localhost)) { - new Host(this, localhost); - } - hostResource = new HostResource(getChildren().get(localhost)); - } - } - return hostResource; - } - @Override public String toString() { return "hosts [" + hostname2host.values().stream() @@ -122,6 +99,11 @@ public class HostSystem extends AbstractConfigProducer<Host> { .toList(); } + /** Returns the hosts in this system */ + public List<HostResource> getAllHosts() { + return hostname2host.values().stream().toList(); + } + public void dumpPortAllocations() { for (HostResource hr : getHosts()) { hr.ports().flushPortReservations(); diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java index 720ff1cebf0..90b4625a282 100644 --- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java @@ -155,11 +155,10 @@ public class ModelProvisioningTest { assertEquals(45, qrsStartConfig.jvm().heapSizeAsPercentageOfPhysicalMemory()); HostSystem hostSystem = model.hostSystem(); - assertNotNull(hostSystem.getHostByHostname("myhost0")); - assertNotNull(hostSystem.getHostByHostname("myhost1")); - assertNotNull(hostSystem.getHostByHostname("myhost2")); - assertNotNull(hostSystem.getHostByHostname("myhost3")); - assertNull(hostSystem.getHostByHostname("Nope")); + assertTrue(hostNameExists(hostSystem, "myhost0")); + assertTrue(hostNameExists(hostSystem, "myhost1")); + assertTrue(hostNameExists(hostSystem, "myhost2")); + assertFalse(hostNameExists(hostSystem, "Nope")); } @Test @@ -2570,6 +2569,10 @@ public class ModelProvisioningTest { assertProvisioned(nodeCount, id, null, type, model); } + private static boolean hostNameExists(HostSystem hostSystem, String hostname) { + return hostSystem.getHosts().stream().map(HostResource::getHost).anyMatch(host -> host.getHostname().equals(hostname)); + } + record TestLogger(List<LogMessage> msgs) implements DeployLogger { public TestLogger() { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java index a38f0ebe476..2063f0cdbdf 100755 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java @@ -9,6 +9,7 @@ import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.test.MockRoot; import com.yahoo.text.XML; +import com.yahoo.vespa.model.HostResource; import com.yahoo.vespa.model.admin.Admin; import com.yahoo.vespa.model.admin.Configserver; import com.yahoo.vespa.model.admin.Slobrok; @@ -20,7 +21,10 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author hmusum @@ -115,7 +119,7 @@ public class DomAdminV2BuilderTest extends DomBuilderTest { Admin admin = buildAdmin(servicesMultitenantAdminOnly(), true, configServerSpecs); assertEquals(3, admin.getConfigservers().size()); assertEquals(1, admin.getSlobroks().size()); - assertNotNull(admin.hostSystem().getHostByHostname("test1")); + assertTrue(admin.hostSystem().getAllHosts().stream().map(HostResource::getHost).anyMatch(host -> host.getHostname().equals("test1"))); for (Configserver configserver : admin.getConfigservers()) { for (Slobrok slobrok : admin.getSlobroks()) { assertNotEquals(configserver.getHostName(), slobrok.getHostName()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilderTest.java index 97951ab5a20..31287ddf089 100755 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilderTest.java @@ -95,7 +95,6 @@ public class VespaDomBuilderTest { HostSystem hostSystem = model.hostSystem(); assertEquals(1, hostSystem.getHosts().size()); HostResource host = hostSystem.getHosts().get(0); - assertEquals(hostSystem.getHostByHostname(host.getHostname()), host); assertNotNull(hostSystem.getHost("node1")); assertEquals("hosts [" + host.getHostname() + "]", hostSystem.toString()); } |