diff options
22 files changed, 66 insertions, 176 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/provision/HostsXmlProvisioner.java b/config-model/src/main/java/com/yahoo/config/model/provision/HostsXmlProvisioner.java index acad7532404..99a47bfbd71 100644 --- a/config-model/src/main/java/com/yahoo/config/model/provision/HostsXmlProvisioner.java +++ b/config-model/src/main/java/com/yahoo/config/model/provision/HostsXmlProvisioner.java @@ -39,7 +39,7 @@ public class HostsXmlProvisioner implements HostProvisioner { } for (Host host : hosts.asCollection()) { if (host.aliases().contains(alias)) { - return new HostSpec(host.hostname(), host.aliases(), Optional.empty()); + return new HostSpec(host.hostname(), Optional.empty()); } } throw new IllegalArgumentException("Unable to find host for alias '" + alias + "'"); @@ -54,7 +54,7 @@ public class HostsXmlProvisioner implements HostProvisioner { } private HostSpec host2HostSpec(Host host) { - return new HostSpec(host.hostname(), host.aliases(), Optional.empty()); + return new HostSpec(host.hostname(), Optional.empty()); } private Host getFirstHost() { diff --git a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java index 9e48510e704..dd6087eefc7 100644 --- a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java +++ b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java @@ -151,7 +151,7 @@ public class InMemoryProvisioner implements HostProvisioner { List<Host> defaultHosts = freeNodes.get(defaultHostResources); if (defaultHosts.isEmpty()) throw new IllegalArgumentException("No more hosts with default resources available"); Host newHost = freeNodes.removeValue(defaultHostResources, 0); - return new HostSpec(newHost.hostname(), List.of(alias), Optional.empty()); + return new HostSpec(newHost.hostname(), Optional.empty()); } @Override diff --git a/config-model/src/main/java/com/yahoo/config/model/provision/SingleNodeProvisioner.java b/config-model/src/main/java/com/yahoo/config/model/provision/SingleNodeProvisioner.java index c3b91c5da0f..da0fdf47398 100644 --- a/config-model/src/main/java/com/yahoo/config/model/provision/SingleNodeProvisioner.java +++ b/config-model/src/main/java/com/yahoo/config/model/provision/SingleNodeProvisioner.java @@ -30,7 +30,7 @@ public class SingleNodeProvisioner implements HostProvisioner { public SingleNodeProvisioner() { host = new Host(HostName.getLocalhost()); - this.hostSpec = new HostSpec(host.hostname(), host.aliases(), Optional.empty()); + this.hostSpec = new HostSpec(host.hostname(), Optional.empty()); } public SingleNodeProvisioner(Flavor flavor) { 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/HostResource.java b/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java index d12f116d61f..7aa8cb25a38 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/HostResource.java @@ -37,7 +37,7 @@ public class HostResource implements Comparable<HostResource> { * @param host {@link com.yahoo.vespa.model.Host} object to bind to. */ public HostResource(Host host) { - this(host, new HostSpec(host.getHostname(), List.of(), Optional.empty())); + this(host, new HostSpec(host.getHostname(), Optional.empty())); } public HostResource(Host host, HostSpec spec) { 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/HostSpecTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/HostSpecTest.java index 734385cb4ad..a2c0f258e14 100644 --- a/config-model/src/test/java/com/yahoo/config/model/provision/HostSpecTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/provision/HostSpecTest.java @@ -3,7 +3,6 @@ package com.yahoo.config.model.provision; import com.yahoo.config.provision.HostSpec; import org.junit.jupiter.api.Test; -import java.util.List; import java.util.Optional; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -16,30 +15,21 @@ public class HostSpecTest { @Test void testEquals() { - HostSpec h1 = new HostSpec("foo", List.of(), Optional.empty()); - HostSpec h2 = new HostSpec("foo", List.of(), Optional.empty()); - HostSpec h3 = new HostSpec("foo", List.of("my", "alias"), Optional.empty()); - HostSpec h4 = new HostSpec("bar", List.of(), Optional.empty()); + HostSpec h1 = new HostSpec("foo", Optional.empty()); + HostSpec h2 = new HostSpec("foo", Optional.empty()); + HostSpec h3 = new HostSpec("bar", Optional.empty()); assertEquals(h1, h1); assertEquals(h1, h2); - assertEquals(h1, h3); - assertNotEquals(h1, h4); + assertNotEquals(h1, h3); assertEquals(h2, h1); assertEquals(h2, h2); - assertEquals(h2, h3); - assertNotEquals(h2, h4); + assertNotEquals(h2, h3); - assertEquals(h3, h1); - assertEquals(h3, h2); + assertNotEquals(h3, h1); + assertNotEquals(h3, h2); assertEquals(h3, h3); - assertNotEquals(h3, h4); - - assertNotEquals(h4, h1); - assertNotEquals(h4, h2); - assertNotEquals(h4, h3); - assertEquals(h4, h4); } } 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/application/validation/change/NodeResourceChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/NodeResourceChangeValidatorTest.java index 7080a3e0f12..87e1d3f0479 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/NodeResourceChangeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/NodeResourceChangeValidatorTest.java @@ -105,7 +105,7 @@ public class NodeResourceChangeValidatorTest { @Override public HostSpec allocateHost(String alias) { - return new HostSpec(alias, List.of(), Optional.empty()); + return new HostSpec(alias, Optional.empty()); } @Override 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()); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/HostProvisionerWithCustomRealResource.java b/config-model/src/test/java/com/yahoo/vespa/model/container/HostProvisionerWithCustomRealResource.java deleted file mode 100644 index e8f30d59aa9..00000000000 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/HostProvisionerWithCustomRealResource.java +++ /dev/null @@ -1,45 +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.container; - -import com.yahoo.config.model.api.HostProvisioner; -import com.yahoo.config.model.provision.Host; -import com.yahoo.config.provision.Capacity; -import com.yahoo.config.provision.ClusterMembership; -import com.yahoo.config.provision.ClusterSpec; -import com.yahoo.config.provision.HostSpec; -import com.yahoo.config.provision.NodeResources; -import com.yahoo.config.provision.ProvisionLogger; -import com.yahoo.net.HostName; - -import java.util.List; -import java.util.Optional; - -/** - * @author bjorncs - */ -public class HostProvisionerWithCustomRealResource implements HostProvisioner { - - private final int vcpu; - - public HostProvisionerWithCustomRealResource(int vcpu) { this.vcpu = vcpu; } - public HostProvisionerWithCustomRealResource() { this(4); } - - @Override - public HostSpec allocateHost(String alias) { - Host host = new Host(HostName.getLocalhost()); - ClusterMembership membership = ClusterMembership.from( - ClusterSpec - .specification( - ClusterSpec.Type.container, - ClusterSpec.Id.from("id")) - .vespaVersion("") - .group(ClusterSpec.Group.from(0)) - .build(), - 0); - return new HostSpec( - host.hostname(), new NodeResources(vcpu, 0, 0, 0), NodeResources.unspecified(), NodeResources.unspecified(), - membership, Optional.empty(), Optional.empty(), Optional.empty()); - } - - @Override public List<HostSpec> prepare(ClusterSpec cluster, Capacity capacity, ProvisionLogger logger) { return List.of(); } -} diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java b/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java index cb17bceb4ca..7a5429f8697 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/HostSpec.java @@ -38,7 +38,8 @@ public class HostSpec implements Comparable<HostSpec> { Optional.empty(), Optional.empty(), networkPorts, Optional.empty()); } - // TODO: Remove usage + // TODO: Remove when oldest model in use is 8.124 + @Deprecated public HostSpec(String hostname, List<String> ignored, Optional<NetworkPorts> networkPorts) { this(hostname, NodeResources.unspecified(), NodeResources.unspecified(), NodeResources.unspecified(), diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java index 5e30e8fa99c..0cba953e8f5 100644 --- a/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java +++ b/config-provisioning/src/test/java/com/yahoo/config/provision/serialization/AllocatedHostsSerializerTest.java @@ -37,8 +37,8 @@ public class AllocatedHostsSerializerTest { @Test void testAllocatedHostsSerialization() throws IOException { Set<HostSpec> hosts = new LinkedHashSet<>(); - hosts.add(new HostSpec("empty", List.of(), Optional.empty())); - hosts.add(new HostSpec("with-aliases", List.of("alias1", "alias2"), Optional.empty())); + hosts.add(new HostSpec("empty", Optional.empty())); + hosts.add(new HostSpec("with-aliases", Optional.empty())); hosts.add(new HostSpec("allocated", smallSlowDiskSpeedNode, bigSlowDiskSpeedNode, diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java index 76eb61ed141..bfa1e7502e8 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java @@ -65,7 +65,6 @@ import java.time.Duration; import java.time.Instant; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -562,9 +561,7 @@ public class ApplicationRepositoryTest { AllocatedHosts info = session.getAllocatedHosts(); assertNotNull(info); assertEquals(1, info.getHosts().size()); - assertTrue(info.getHosts().contains(new HostSpec("mytesthost2", - Collections.emptyList(), - Optional.empty()))); + assertTrue(info.getHosts().contains(new HostSpec("mytesthost2", Optional.empty()))); Optional<NetworkPorts> portsCopy = info.getHosts().iterator().next().networkPorts(); assertTrue(portsCopy.isPresent()); assertEquals(list, portsCopy.get().allocations()); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClientTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClientTest.java index fd6440a9632..2d42cb12076 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClientTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClientTest.java @@ -160,8 +160,8 @@ public class ZooKeeperClientTest { Path app = Path.fromString("/1"); ZooKeeperClient zooKeeperClient = new ZooKeeperClient(zk, logger, app); zooKeeperClient.initialize(); - HostSpec host1 = new HostSpec("host1.yahoo.com", Collections.emptyList(), Optional.empty()); - HostSpec host2 = new HostSpec("host2.yahoo.com", Collections.emptyList(), Optional.empty()); + HostSpec host1 = new HostSpec("host1.yahoo.com", Optional.empty()); + HostSpec host2 = new HostSpec("host2.yahoo.com", Optional.empty()); ImmutableSet<HostSpec> hosts = ImmutableSet.of(host1, host2); zooKeeperClient.write(AllocatedHosts.withHosts(hosts)); Path hostsPath = app.append(ZKApplicationPackage.allocatedHostsNode); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/DecryptionTokenResealer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/DecryptionTokenResealer.java index 758f68d6030..7addf83c67c 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/DecryptionTokenResealer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/controller/DecryptionTokenResealer.java @@ -29,11 +29,16 @@ class DecryptionTokenResealer { if (!expectedKeyName.equals(keyName)) { throw new IllegalArgumentException("Token is not generated for the expected key"); } + int keyVersion; try { - return Integer.parseUnsignedInt(components[1]); + keyVersion = Integer.parseInt(components[1]); } catch (IllegalArgumentException e) { - throw new IllegalArgumentException("Key version is not a valid unsigned integer"); + throw new IllegalArgumentException("Key version is not a valid integer"); } + if (keyVersion < 0) { + throw new IllegalArgumentException("Key version is out of range"); + } + return keyVersion; } /** diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiTest.java index cb35c85b960..a4b18a06fb8 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/controller/ControllerApiTest.java @@ -282,12 +282,17 @@ public class ControllerApiTest extends ControllerContainerTest { tester.assertResponse( () -> operatorRequest("http://localhost:8080/controller/v1/access/cores/reseal", requestJsonOf(createResealingRequestData("a-really-cool-key.123asdf")), Request.Method.POST), - "{\"error-code\":\"BAD_REQUEST\",\"message\":\"Key version is not a valid unsigned integer\"}", + "{\"error-code\":\"BAD_REQUEST\",\"message\":\"Key version is not a valid integer\"}", 400); tester.assertResponse( () -> operatorRequest("http://localhost:8080/controller/v1/access/cores/reseal", requestJsonOf(createResealingRequestData("a-really-cool-key.-123")), Request.Method.POST), - "{\"error-code\":\"BAD_REQUEST\",\"message\":\"Key version is not a valid unsigned integer\"}", + "{\"error-code\":\"BAD_REQUEST\",\"message\":\"Key version is out of range\"}", + 400); + tester.assertResponse( + () -> operatorRequest("http://localhost:8080/controller/v1/access/cores/reseal", + requestJsonOf(createResealingRequestData("a-really-cool-key.%d".formatted((long)Integer.MAX_VALUE + 1))), Request.Method.POST), + "{\"error-code\":\"BAD_REQUEST\",\"message\":\"Key version is not a valid integer\"}", 400); } diff --git a/default_build_settings.cmake b/default_build_settings.cmake index a14bc0aeb8d..7d2aab4e3d5 100644 --- a/default_build_settings.cmake +++ b/default_build_settings.cmake @@ -130,8 +130,12 @@ function(vespa_use_default_build_settings) message("-- CMAKE_SYSTEM_PROCESSOR = ${CMAKE_SYSTEM_PROCESSOR}") if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") if(APPLE AND (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang"))) + elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + # Require haswell cpu or newer when compiling with clang on linux. + set(DEFAULT_VESPA_CPU_ARCH_FLAGS "-march=haswell -mtune=skylake") else() if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13.0) + # Temporary workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108599 set(DEFAULT_VESPA_CPU_ARCH_FLAGS "-march=ivybridge") else() set(DEFAULT_VESPA_CPU_ARCH_FLAGS "-mtune=intel") diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index 6fc45c31ff8..7eb939265bb 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -303,13 +303,6 @@ public class Flags { APPLICATION_ID,HOSTNAME,NODE_TYPE,TENANT_ID,VESPA_VERSION ); - public static final UnboundBooleanFlag CLEANUP_TENANT_ROLES = defineFeatureFlag( - "cleanup-tenant-roles", true, - List.of("olaa"), "2022-08-10", "2023-02-14", - "Determines whether old tenant roles should be deleted", - "Takes effect next maintenance run" - ); - public static final UnboundBooleanFlag RESTRICT_DATA_PLANE_BINDINGS = defineFeatureFlag( "restrict-data-plane-bindings", false, List.of("mortent"), "2022-09-08", "2023-05-01", @@ -338,12 +331,6 @@ public class Flags { "Takes effect on configserver restart", HOSTNAME); - public static final UnboundBooleanFlag ENABLED_MAIL_VERIFICATION = defineFeatureFlag( - "enabled-mail-verification", true, - List.of("olaa"), "2022-10-28", "2023-02-14", - "Enable mail verification", - "Takes effect immediately"); - public static final UnboundStringFlag CORE_ENCRYPTION_PUBLIC_KEY_ID = defineStringFlag( "core-encryption-public-key-id", "", List.of("vekterli"), "2022-11-03", "2023-05-01", |