aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2018-05-14 14:46:29 +0200
committerValerij Fredriksen <valerijf@oath.com>2018-05-14 14:46:29 +0200
commitcc85df9c1a7ec41ead2d8a7482acdcc0324f4ffd (patch)
treeecbb0628a54faddb1b27f88f459e33a68444135e
parent786ebde378567d5de38465b43f1bae98a7302d41 (diff)
Remove special handling of config servers in ACL
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeList.java6
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java20
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeAclResponse.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java40
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java37
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-config-server.json78
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-docker-host.json14
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-tenant-node.json14
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json36
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json36
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes-recursive.json2
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes.json6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/states-recursive.json4
15 files changed, 191 insertions, 115 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeList.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeList.java
index acf62ae91b9..bb47fedceba 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeList.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeList.java
@@ -87,6 +87,12 @@ public class NodeList {
.collect(collectingAndThen(Collectors.toList(), NodeList::new));
}
+ public NodeList configServers() {
+ return nodes.stream()
+ .filter(node -> node.type() == NodeType.config)
+ .collect(collectingAndThen(Collectors.toList(), NodeList::new));
+ }
+
public int size() { return nodes.size(); }
/** Returns the immutable list of nodes in this */
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
index 5ce88522fed..99a715b5bc1 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java
@@ -180,7 +180,7 @@ public class NodeRepository extends AbstractComponent {
// - nodes in same application
// - config servers
node.allocation().ifPresent(allocation -> trustedNodes.addAll(candidates.owner(allocation.owner()).asList()));
- trustedNodes.addAll(getConfigNodes());
+ trustedNodes.addAll(candidates.configServers().asList());
switch (node.type()) {
case tenant:
@@ -245,13 +245,6 @@ public class NodeRepository extends AbstractComponent {
}
}
- /** Get config node by hostname */
- public Optional<Node> getConfigNode(String hostname) {
- return getConfigNodes().stream()
- .filter(n -> hostname.equals(n.hostname()))
- .findFirst();
- }
-
/** Get default flavor override for an application, if present. */
public Optional<String> getDefaultFlavorOverride(ApplicationId applicationId) {
return db.getDefaultFlavorForApplication(applicationId);
@@ -649,17 +642,6 @@ public class NodeRepository extends AbstractComponent {
return resultingNodes;
}
- // Public for testing
- public List<Node> getConfigNodes() {
- // TODO: Revisit this when config servers are added to the repository
- return Arrays.stream(curator.zooKeeperEnsembleConnectionSpec().split(","))
- .map(hostPort -> hostPort.split(":")[0])
- .map(host -> createNode(host, host, Optional.empty(),
- flavors.getFlavorOrThrow("v-4-8-100"), // Must be a flavor that exists in Hosted Vespa
- NodeType.config))
- .collect(Collectors.toList());
- }
-
/** Returns the time keeper of this system */
public Clock clock() { return clock; }
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeAclResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeAclResponse.java
index e9b3ea5e726..5dcb4ab6a71 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeAclResponse.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodeAclResponse.java
@@ -40,8 +40,7 @@ public class NodeAclResponse extends HttpResponse {
private void toSlime(String hostname, Cursor object) {
Node node = nodeRepository.getNode(hostname)
- .orElseGet(() -> nodeRepository.getConfigNode(hostname)
- .orElseThrow(() -> new NotFoundException("No node with hostname '" + hostname + "'")));
+ .orElseThrow(() -> new NotFoundException("No node with hostname '" + hostname + "'"));
List<NodeAcl> acls = nodeRepository.getNodeAcls(node, aclsForChildren);
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
index 931ddc5e051..04a4a7f5fb8 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockNodeRepository.java
@@ -58,9 +58,9 @@ public class MockNodeRepository extends NodeRepository {
private void populate() {
NodeRepositoryProvisioner provisioner = new NodeRepositoryProvisioner(this, flavors, Zone.defaultZone());
-
List<Node> nodes = new ArrayList<>();
+ // Regular nodes
final List<String> ipAddressesForAllHost = Arrays.asList("127.0.0.1", "::1");
Collections.sort(ipAddressesForAllHost);
final HashSet<String> ipAddresses = new HashSet<>(ipAddressesForAllHost);
@@ -101,6 +101,10 @@ public class MockNodeRepository extends NodeRepository {
nodes.add(createNode("dockerhost4", "dockerhost4.yahoo.com", ipAddresses, additionalIpAddresses, Optional.empty(), flavors.getFlavorOrThrow("large"), NodeType.host));
nodes.add(createNode("dockerhost5", "dockerhost5.yahoo.com", ipAddresses, additionalIpAddresses, Optional.empty(), flavors.getFlavorOrThrow("large"), NodeType.host));
+ // Config servers
+ nodes.add(createNode("cfg1", "cfg1.yahoo.com", Collections.singleton("127.0.1.1"), Optional.empty(), flavors.getFlavorOrThrow("default"), NodeType.config));
+ nodes.add(createNode("cfg2", "cfg2.yahoo.com", Collections.singleton("127.0.1.2"), Optional.empty(), flavors.getFlavorOrThrow("default"), NodeType.config));
+
nodes = addNodes(nodes);
nodes.remove(6);
nodes.remove(7);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java
index cb780f08cd9..1924c8e7332 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AclProvisioningTest.java
@@ -8,10 +8,8 @@ import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.HostSpec;
import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.Zone;
-import com.yahoo.vespa.curator.mock.MockCurator;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.node.NodeAcl;
-import com.yahoo.vespa.hosted.provision.testutils.MockNameResolver;
import org.junit.Before;
import org.junit.Test;
@@ -34,22 +32,18 @@ import static org.junit.Assert.assertFalse;
*/
public class AclProvisioningTest {
- private MockCurator curator;
private ProvisioningTester tester;
- private MockNameResolver nameResolver;
private final List<String> dockerBridgeNetwork = Collections.singletonList("172.17.0.0/16");
@Before
public void before() {
- this.curator = new MockCurator();
- this.nameResolver = new MockNameResolver().mockAnyLookup();
- this.tester = new ProvisioningTester(Zone.defaultZone(), createConfig(), curator, nameResolver);
+ this.tester = new ProvisioningTester(Zone.defaultZone(), createConfig());
}
@Test
public void trusted_nodes_for_allocated_node() {
- List<Node> configServers = setConfigServers("cfg1:1234,cfg2:1234,cfg3:1234");
+ List<Node> configServers = tester.makeConfigServers(3, "default", Version.fromString("6.123.456"));
// Populate repo
tester.makeReadyNodes(10, "default");
@@ -71,7 +65,7 @@ public class AclProvisioningTest {
@Test
public void trusted_nodes_for_unallocated_node() {
- List<Node> configServers = setConfigServers("cfg1:1234,cfg2:1234,cfg3:1234");
+ List<Node> configServers = tester.makeConfigServers(3, "default", Version.fromString("6.123.456"));
// Populate repo
tester.makeReadyNodes(10, "default");
@@ -91,7 +85,7 @@ public class AclProvisioningTest {
@Test
public void trusted_nodes_for_config_server() {
- List<Node> configServers = setConfigServers("cfg1:1234,cfg2:1234,cfg3:1234");
+ List<Node> configServers = tester.makeConfigServers(3, "default", Version.fromString("6.123.456"));
// Populate repo
tester.makeReadyNodes(10, "default");
@@ -102,7 +96,7 @@ public class AclProvisioningTest {
List<Node> tenantNodes = tester.nodeRepository().getNodes(NodeType.tenant);
// Get trusted nodes for the first config server
- Node node = tester.nodeRepository().getConfigNode("cfg1")
+ Node node = tester.nodeRepository().getNode("cfg1")
.orElseThrow(() -> new RuntimeException("Failed to find cfg1"));
List<NodeAcl> nodeAcls = tester.nodeRepository().getNodeAcls(node, false);
@@ -112,7 +106,7 @@ public class AclProvisioningTest {
@Test
public void trusted_nodes_for_proxy() {
- List<Node> configServers = setConfigServers("cfg1:1234,cfg2:1234,cfg3:1234");
+ List<Node> configServers = tester.makeConfigServers(3, "default", Version.fromString("6.123.456"));
// Populate repo
tester.makeReadyNodes(10, "default");
@@ -133,7 +127,7 @@ public class AclProvisioningTest {
@Test
public void trusted_nodes_for_docker_host() {
- List<Node> configServers = setConfigServers("cfg1:1234,cfg2:1234,cfg3:1234");
+ List<Node> configServers = tester.makeConfigServers(3, "default", Version.fromString("6.123.456"));
// Populate repo
tester.makeReadyNodes(2, "default", NodeType.host);
@@ -152,8 +146,8 @@ public class AclProvisioningTest {
@Test
public void trusted_nodes_for_docker_hosts_nodes_in_zone_application() {
+ List<Node> configServers = tester.makeConfigServers(3, "default", Version.fromString("6.123.456"));
ApplicationId applicationId = tester.makeApplicationId(); // use same id for both allocate calls below
- List<Node> configServers = setConfigServers("cfg1:1234,cfg2:1234,cfg3:1234");
// Populate repo
tester.makeReadyNodes(2, "default", NodeType.host);
@@ -172,7 +166,7 @@ public class AclProvisioningTest {
@Test
public void trusted_nodes_for_child_nodes_of_docker_host() {
- List<Node> configServers = setConfigServers("cfg1:1234,cfg2:1234,cfg3:1234");
+ List<Node> configServers = tester.makeConfigServers(3, "default", Version.fromString("6.123.456"));
// Populate repo
List<Node> dockerHostNodes = tester.makeReadyNodes(2, "default", NodeType.host);
@@ -197,19 +191,16 @@ public class AclProvisioningTest {
@Test
public void resolves_hostnames_from_connection_spec() {
- setConfigServers("cfg1:1234,cfg2:1234,cfg3:1234");
- nameResolver.addRecord("cfg1", "127.0.0.1")
- .addRecord("cfg2", "127.0.0.2")
- .addRecord("cfg3", "127.0.0.3");
+ tester.makeConfigServers(3, "default", Version.fromString("6.123.456"));
List<Node> readyNodes = tester.makeReadyNodes(1, "default", NodeType.proxy);
List<NodeAcl> nodeAcls = tester.nodeRepository().getNodeAcls(readyNodes.get(0), false);
assertEquals(3, nodeAcls.get(0).trustedNodes().size());
Iterator<Node> trustedNodes = nodeAcls.get(0).trustedNodes().iterator();
- assertEquals(singleton("127.0.0.1"), trustedNodes.next().ipAddresses());
- assertEquals(singleton("127.0.0.2"), trustedNodes.next().ipAddresses());
- assertEquals(singleton("127.0.0.3"), trustedNodes.next().ipAddresses());
+ assertEquals(singleton("127.0.1.1"), trustedNodes.next().ipAddresses());
+ assertEquals(singleton("127.0.1.2"), trustedNodes.next().ipAddresses());
+ assertEquals(singleton("127.0.1.3"), trustedNodes.next().ipAddresses());
}
private List<Node> allocateNodes(int nodeCount) {
@@ -228,11 +219,6 @@ public class AclProvisioningTest {
return tester.getNodes(applicationId, Node.State.active).asList();
}
- private List<Node> setConfigServers(String connectionSpec) {
- curator.setZooKeeperEnsembleConnectionSpec(connectionSpec);
- return tester.nodeRepository().getConfigNodes();
- }
-
private static void assertAcls(List<List<Node>> expected, NodeAcl actual) {
assertAcls(expected, Collections.emptyList(), Collections.singletonList(actual));
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
index 7e982d17603..60ce3c9b567 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java
@@ -1,6 +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.provision.provisioning;
+import com.yahoo.component.Version;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.Capacity;
@@ -30,10 +31,12 @@ import com.yahoo.vespa.hosted.provision.node.filter.NodeHostFilter;
import com.yahoo.vespa.hosted.provision.persistence.NameResolver;
import com.yahoo.vespa.hosted.provision.testutils.MockNameResolver;
import com.yahoo.vespa.orchestrator.Orchestrator;
+import com.yahoo.vespa.service.monitor.application.ConfigServerApplication;
import java.time.temporal.TemporalAmount;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -41,7 +44,6 @@ import java.util.Optional;
import java.util.Set;
import java.util.UUID;
import java.util.function.Function;
-import java.util.function.UnaryOperator;
import java.util.logging.Level;
import java.util.stream.Collectors;
@@ -276,6 +278,39 @@ public class ProvisioningTester {
return nodes;
}
+ List<Node> makeConfigServers(int n, String flavor, Version configServersVersion) {
+ List<Node> nodes = new ArrayList<>(n);
+ MockNameResolver nameResolver = (MockNameResolver)nodeRepository().nameResolver();
+
+ for (int i = 1; i <= n; i++) {
+ String hostname = "cfg" + i;
+ String ipv4 = "127.0.1." + i;
+
+ nameResolver.addRecord(hostname, ipv4);
+ Node node = nodeRepository.createNode(hostname,
+ hostname,
+ Collections.singleton(ipv4),
+ Optional.empty(),
+ nodeFlavors.getFlavorOrThrow(flavor),
+ NodeType.config);
+ nodes.add(node);
+ }
+
+ nodes = nodeRepository.addNodes(nodes);
+ nodes = nodeRepository.setDirty(nodes, Agent.system, getClass().getSimpleName());
+ nodeRepository.setReady(nodes, Agent.system, getClass().getSimpleName());
+
+ ConfigServerApplication application = ConfigServerApplication.CONFIG_SERVER_APPLICATION;
+ List<HostSpec> hosts = prepare(
+ application.getApplicationId(),
+ application.getClusterSpecWithVersion(configServersVersion),
+ application.getCapacity(),
+ 1);
+ activate(application.getApplicationId(), new HashSet<>(hosts));
+ return nodeRepository.getNodes(application.getApplicationId(), Node.State.active);
+ }
+
+
List<Node> makeReadyNodes(int n, String flavor, NodeType type, int additionalIps) {
List<Node> nodes = makeProvisionedNodes(n, flavor, type, additionalIps);
nodes = nodeRepository.setDirty(nodes, Agent.system, getClass().getSimpleName());
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
index 24ed065d736..6643788a291 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/RestApiTest.java
@@ -86,7 +86,7 @@ public class RestApiTest {
new byte[0], Request.Method.POST));
assertReboot(2, new Request("http://localhost:8080/nodes/v2/command/reboot?application=tenant2.application2.instance2",
new byte[0], Request.Method.POST));
- assertReboot(15, new Request("http://localhost:8080/nodes/v2/command/reboot",
+ assertReboot(17, new Request("http://localhost:8080/nodes/v2/command/reboot",
new byte[0], Request.Method.POST));
assertResponseContains(new Request("http://localhost:8080/nodes/v2/node/host2.yahoo.com"),
"\"rebootGeneration\":4");
@@ -336,7 +336,7 @@ public class RestApiTest {
@Test
public void acl_request_by_config_server() throws Exception {
- assertFile(new Request("http://localhost:8080/nodes/v2/acl/cfg1"), "acl-config-server.json");
+ assertFile(new Request("http://localhost:8080/nodes/v2/acl/cfg1.yahoo.com"), "acl-config-server.json");
}
@Test
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-config-server.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-config-server.json
index ca3556af805..d1dc7e22fcd 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-config-server.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-config-server.json
@@ -1,203 +1,197 @@
{
"trustedNodes": [
{
- "hostname": "cfg1",
+ "hostname": "cfg1.yahoo.com",
"type": "config",
- "ipAddress": "(ignore)",
- "trustedBy": "cfg1"
+ "ipAddress": "127.0.1.1",
+ "trustedBy": "cfg1.yahoo.com"
},
{
- "hostname": "cfg2",
+ "hostname": "cfg2.yahoo.com",
"type": "config",
- "ipAddress": "(ignore)",
- "trustedBy": "cfg1"
- },
- {
- "hostname": "cfg3",
- "type": "config",
- "ipAddress": "(ignore)",
- "trustedBy": "cfg1"
+ "ipAddress": "127.0.1.2",
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "dockerhost1.yahoo.com",
"type": "host",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "dockerhost1.yahoo.com",
"type": "host",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "dockerhost2.yahoo.com",
"type": "host",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "dockerhost2.yahoo.com",
"type": "host",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "dockerhost3.yahoo.com",
"type": "host",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "dockerhost3.yahoo.com",
"type": "host",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "dockerhost4.yahoo.com",
"type": "host",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "dockerhost4.yahoo.com",
"type": "host",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "dockerhost5.yahoo.com",
"type": "host",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "dockerhost5.yahoo.com",
"type": "host",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host1.yahoo.com",
"type": "tenant",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host1.yahoo.com",
"type": "tenant",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host10.yahoo.com",
"type": "tenant",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host10.yahoo.com",
"type": "tenant",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host2.yahoo.com",
"type": "tenant",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host2.yahoo.com",
"type": "tenant",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host3.yahoo.com",
"type": "tenant",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host3.yahoo.com",
"type": "tenant",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host4.yahoo.com",
"type": "tenant",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host4.yahoo.com",
"type": "tenant",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host5.yahoo.com",
"type": "tenant",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host5.yahoo.com",
"type": "tenant",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host55.yahoo.com",
"type": "tenant",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host55.yahoo.com",
"type": "tenant",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host6.yahoo.com",
"type": "tenant",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host6.yahoo.com",
"type": "tenant",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host7.yahoo.com",
"type": "tenant",
"ipAddress": "::1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "host7.yahoo.com",
"type": "tenant",
"ipAddress": "127.0.0.1",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
},
{
"hostname": "test-container-1",
"type": "tenant",
"ipAddress": "::2",
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
}
],
"trustedNetworks": [],
"trustedPorts": [
{
"port": 4443,
- "trustedBy": "cfg1"
+ "trustedBy": "cfg1.yahoo.com"
}
]
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-docker-host.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-docker-host.json
index ec423ed0dc5..7b1af066065 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-docker-host.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-docker-host.json
@@ -1,21 +1,15 @@
{
"trustedNodes": [
{
- "hostname": "cfg1",
+ "hostname": "cfg1.yahoo.com",
"type": "config",
- "ipAddress": "(ignore)",
+ "ipAddress": "127.0.1.1",
"trustedBy": "dockerhost1.yahoo.com"
},
{
- "hostname": "cfg2",
+ "hostname": "cfg2.yahoo.com",
"type": "config",
- "ipAddress": "(ignore)",
- "trustedBy": "dockerhost1.yahoo.com"
- },
- {
- "hostname": "cfg3",
- "type": "config",
- "ipAddress": "(ignore)",
+ "ipAddress": "127.0.1.2",
"trustedBy": "dockerhost1.yahoo.com"
},
{
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-tenant-node.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-tenant-node.json
index 2f37c1859a2..e3ea3b62bec 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-tenant-node.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/acl-tenant-node.json
@@ -1,21 +1,15 @@
{
"trustedNodes": [
{
- "hostname": "cfg1",
+ "hostname": "cfg1.yahoo.com",
"type": "config",
- "ipAddress": "(ignore)",
+ "ipAddress": "127.0.1.1",
"trustedBy": "foo.yahoo.com"
},
{
- "hostname": "cfg2",
+ "hostname": "cfg2.yahoo.com",
"type": "config",
- "ipAddress": "(ignore)",
- "trustedBy": "foo.yahoo.com"
- },
- {
- "hostname": "cfg3",
- "type": "config",
- "ipAddress": "(ignore)",
+ "ipAddress": "127.0.1.2",
"trustedBy": "foo.yahoo.com"
},
{
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json
new file mode 100644
index 00000000000..796b03e7e68
--- /dev/null
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg1.json
@@ -0,0 +1,36 @@
+{
+ "url": "http://localhost:8080/nodes/v2/node/cfg1.yahoo.com",
+ "id": "cfg1.yahoo.com",
+ "state": "ready",
+ "type": "config",
+ "hostname": "cfg1.yahoo.com",
+ "openStackId": "cfg1",
+ "flavor": "default",
+ "canonicalFlavor": "default",
+ "minDiskAvailableGb": 400.0,
+ "minMainMemoryAvailableGb": 16.0,
+ "description": "Flavor-name-is-default",
+ "minCpuCores": 2.0,
+ "fastDisk": true,
+ "environment": "BARE_METAL",
+ "rebootGeneration": 1,
+ "currentRebootGeneration": 0,
+ "failCount": 0,
+ "hardwareFailure": false,
+ "wantToRetire": false,
+ "wantToDeprovision": false,
+ "history": [
+ {
+ "event": "provisioned",
+ "at": 123,
+ "agent": "system"
+ },
+ {
+ "event": "readied",
+ "at": 123,
+ "agent": "system"
+ }
+ ],
+ "ipAddresses": ["127.0.1.1"],
+ "additionalIpAddresses": []
+}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json
new file mode 100644
index 00000000000..361459390f9
--- /dev/null
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/cfg2.json
@@ -0,0 +1,36 @@
+{
+ "url": "http://localhost:8080/nodes/v2/node/cfg2.yahoo.com",
+ "id": "cfg2.yahoo.com",
+ "state": "ready",
+ "type": "config",
+ "hostname": "cfg2.yahoo.com",
+ "openStackId": "cfg2",
+ "flavor": "default",
+ "canonicalFlavor": "default",
+ "minDiskAvailableGb": 400.0,
+ "minMainMemoryAvailableGb": 16.0,
+ "description": "Flavor-name-is-default",
+ "minCpuCores": 2.0,
+ "fastDisk": true,
+ "environment": "BARE_METAL",
+ "rebootGeneration": 1,
+ "currentRebootGeneration": 0,
+ "failCount": 0,
+ "hardwareFailure": false,
+ "wantToRetire": false,
+ "wantToDeprovision": false,
+ "history": [
+ {
+ "event": "provisioned",
+ "at": 123,
+ "agent": "system"
+ },
+ {
+ "event": "readied",
+ "at": 123,
+ "agent": "system"
+ }
+ ],
+ "ipAddresses": ["127.0.1.2"],
+ "additionalIpAddresses": []
+}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes-recursive.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes-recursive.json
index 475b914989b..57aee72e9f8 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes-recursive.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes-recursive.json
@@ -1,7 +1,9 @@
{
"nodes": [
@include(node7.json),
+ @include(cfg1.json),
@include(node3.json),
+ @include(cfg2.json),
@include(node10.json),
@include(node1.json),
@include(docker-node4.json),
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes.json
index 3bfaa95d5ee..1c069951750 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/nodes.json
@@ -4,9 +4,15 @@
"url": "http://localhost:8080/nodes/v2/node/host7.yahoo.com"
},
{
+ "url": "http://localhost:8080/nodes/v2/node/cfg1.yahoo.com"
+ },
+ {
"url": "http://localhost:8080/nodes/v2/node/host3.yahoo.com"
},
{
+ "url": "http://localhost:8080/nodes/v2/node/cfg2.yahoo.com"
+ },
+ {
"url": "http://localhost:8080/nodes/v2/node/host10.yahoo.com"
},
{
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/states-recursive.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/states-recursive.json
index 628ab53e9f0..e60ebe37246 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/states-recursive.json
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/states-recursive.json
@@ -9,7 +9,9 @@
"ready": {
"url": "http://localhost:8080/nodes/v2/state/ready",
"nodes": [
- @include(node3.json)
+ @include(node3.json),
+ @include(cfg1.json),
+ @include(cfg2.json)
]
},
"reserved": {