diff options
author | Øyvind Grønnesby <oyving@verizonmedia.com> | 2020-12-03 19:33:21 +0100 |
---|---|---|
committer | Øyvind Grønnesby <oyving@verizonmedia.com> | 2020-12-03 19:33:21 +0100 |
commit | 2b01b49d4f9fa0338c00a113daf7e61e10041646 (patch) | |
tree | 2c970f2cae118746977147fbaca49e5f0c02c09a /controller-api | |
parent | f0771b2201f06684f66c7261c528167adb8f4c7b (diff) | |
parent | 5ad34990803dc859ee107ba46b3e60ef877898ca (diff) |
Merge remote-tracking branch 'origin/master' into ogronnesby/trial-tenant-limit
Conflicts:
controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/user/UserApiHandler.java
controller-server/src/main/java/com/yahoo/vespa/hosted/controller/security/CloudAccessControl.java
flags/src/main/java/com/yahoo/vespa/flags/Flags.java
Diffstat (limited to 'controller-api')
6 files changed, 50 insertions, 6 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ApplicationReindexing.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ApplicationReindexing.java index b6c7899aef1..868d251d7ee 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ApplicationReindexing.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ApplicationReindexing.java @@ -64,17 +64,17 @@ public class ApplicationReindexing { public static class Cluster { - private final Status common; + private final Optional<Status> common; private final Map<String, Long> pending; private final Map<String, Status> ready; public Cluster(Status common, Map<String, Long> pending, Map<String, Status> ready) { - this.common = requireNonNull(common); + this.common = Optional.ofNullable(common); this.pending = Map.copyOf(pending); this.ready = Map.copyOf(ready); } - public Status common() { + public Optional<Status> common() { return common; } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java index 7d85c11789b..04f1448bec1 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/Node.java @@ -61,6 +61,7 @@ public class Node { private final List<NodeHistory> history; private final Set<String> additionalIpAddresses; private final String openStackId; + private final Optional<String> switchHostname; public Node(HostName hostname, Optional<HostName> parentHostname, State state, NodeType type, NodeResources resources, Optional<ApplicationId> owner, Version currentVersion, Version wantedVersion, Version currentOsVersion, Version wantedOsVersion, @@ -69,7 +70,7 @@ public class Node { int cost, String flavor, String clusterId, ClusterType clusterType, boolean wantToRetire, boolean wantToDeprovision, Optional<TenantName> reservedTo, Optional<ApplicationId> exclusiveTo, DockerImage wantedDockerImage, DockerImage currentDockerImage, Map<String, JsonNode> reports, List<NodeHistory> history, - Set<String> additionalIpAddresses, String openStackId) { + Set<String> additionalIpAddresses, String openStackId, Optional<String> switchHostname) { this.hostname = hostname; this.parentHostname = parentHostname; this.state = state; @@ -102,6 +103,7 @@ public class Node { this.history = history; this.openStackId = openStackId; this.additionalIpAddresses = additionalIpAddresses; + this.switchHostname = switchHostname; } public HostName hostname() { @@ -226,6 +228,10 @@ public class Node { return openStackId; } + public Optional<String> switchHostname() { + return switchHostname; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -302,6 +308,7 @@ public class Node { private List<NodeHistory> history = new ArrayList<>(); private Set<String> additionalIpAddresses = new HashSet<>(); private String openStackId; + private Optional<String> switchHostname = Optional.empty(); public Builder() { } @@ -338,6 +345,7 @@ public class Node { this.history = node.history; this.additionalIpAddresses = node.additionalIpAddresses; this.openStackId = node.openStackId; + this.switchHostname = node.switchHostname; } public Builder hostname(HostName hostname) { @@ -495,12 +503,17 @@ public class Node { return this; } + public Builder switchHostname(String switchHostname) { + this.switchHostname = Optional.ofNullable(switchHostname); + return this; + } + public Node build() { return new Node(hostname, parentHostname, state, type, resources, owner, currentVersion, wantedVersion, currentOsVersion, wantedOsVersion, currentFirmwareCheck, wantedFirmwareCheck, serviceState, suspendedSince, restartGeneration, wantedRestartGeneration, rebootGeneration, wantedRebootGeneration, cost, flavor, clusterId, clusterType, wantToRetire, wantToDeprovision, reservedTo, exclusiveTo, - wantedDockerImage, currentDockerImage, reports, history, additionalIpAddresses, openStackId); + wantedDockerImage, currentDockerImage, reports, history, additionalIpAddresses, openStackId, switchHostname); } } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java index af1b3fa53fc..7bbf0fb0578 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeRepository.java @@ -137,7 +137,8 @@ public interface NodeRepository { node.getReports(), node.getHistory(), node.getAdditionalIpAddresses(), - node.getOpenStackId()); + node.getOpenStackId(), + Optional.ofNullable(node.getSwitchHostname())); } private static String clusterIdOf(NodeMembership nodeMembership) { diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/entity/EntityService.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/entity/EntityService.java index b9adbf2c742..59a1f589eb0 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/entity/EntityService.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/entity/EntityService.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.entity; import com.yahoo.vespa.hosted.controller.api.identifiers.Property; import com.yahoo.vespa.hosted.controller.api.identifiers.PropertyId; +import java.util.List; import java.util.Map; import java.util.Optional; @@ -17,6 +18,9 @@ public interface EntityService { /** List all properties known by the service */ Map<PropertyId, Property> listProperties(); + /** List all nodes owned by this system's property */ + List<NodeEntity> listNodes(); + Optional<NodeEntity> findNode(String hostname); } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/entity/MemoryEntityService.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/entity/MemoryEntityService.java index 7b8176c29de..0174f24c6d1 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/entity/MemoryEntityService.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/entity/MemoryEntityService.java @@ -5,6 +5,8 @@ import com.google.common.collect.ImmutableMap; import com.yahoo.vespa.hosted.controller.api.identifiers.Property; import com.yahoo.vespa.hosted.controller.api.identifiers.PropertyId; +import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Optional; @@ -13,6 +15,8 @@ import java.util.Optional; */ public class MemoryEntityService implements EntityService { + private final Map<String, NodeEntity> nodeEntities = new HashMap<>(); + @Override public Map<PropertyId, Property> listProperties() { return ImmutableMap.of(new PropertyId("1234"), new Property("foo"), @@ -20,8 +24,18 @@ public class MemoryEntityService implements EntityService { } @Override + public List<NodeEntity> listNodes() { + return List.copyOf(nodeEntities.values()); + } + + @Override public Optional<NodeEntity> findNode(String hostname) { return Optional.empty(); } + public MemoryEntityService addNodeEntity(NodeEntity nodeEntity) { + nodeEntities.put(nodeEntity.hostname(), nodeEntity); + return this; + } + } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java index 65d6f2a5fa6..0533d30b584 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/noderepository/NodeRepositoryNode.java @@ -94,6 +94,8 @@ public class NodeRepositoryNode { private String reservedTo; @JsonProperty("exclusiveTo") private String exclusiveTo; + @JsonProperty("switchHostname") + private String switchHostname; public String getUrl() { return url; @@ -397,6 +399,14 @@ public class NodeRepositoryNode { public void setExclusiveTo(String exclusiveTo) { this.exclusiveTo = exclusiveTo; } + public String getSwitchHostname() { + return switchHostname; + } + + public void setSwitchHostname(String switchHostname) { + this.switchHostname = switchHostname; + } + @Override public String toString() { return "NodeRepositoryNode{" + @@ -436,6 +446,8 @@ public class NodeRepositoryNode { ", modelName=" + modelName + ", reservedTo=" + reservedTo + ", exclusiveTo=" + exclusiveTo + + ", switchHostname=" + switchHostname + '}'; } + } |