summaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'controller-server/src/main/java')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainer.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainer.java
index ab988bcf0ac..e0441df025b 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceTagMaintainer.java
@@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.controller.maintenance;
import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.CloudName;
import com.yahoo.config.provision.HostName;
+import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.Controller;
import com.yahoo.vespa.hosted.controller.api.integration.aws.ResourceTagger;
@@ -20,6 +21,9 @@ import java.util.stream.Collectors;
*/
public class ResourceTagMaintainer extends ControllerMaintainer {
+ static final ApplicationId SHARED_HOST_APPLICATION = ApplicationId.from("hosted-vespa", "shared-host", "default");
+ static final ApplicationId INFRASTRUCTURE_APPLICATION = ApplicationId.from("hosted-vespa", "infrastructure", "default");
+
private final ResourceTagger resourceTagger;
public ResourceTagMaintainer(Controller controller, Duration interval, ResourceTagger resourceTagger) {
@@ -33,7 +37,7 @@ public class ResourceTagMaintainer extends ControllerMaintainer {
.ofCloud(CloudName.from("aws"))
.reachable()
.zones().forEach(zone -> {
- Map<HostName, Optional<ApplicationId>> applicationOfHosts = getTenantOfParentHosts(zone.getId());
+ Map<HostName, ApplicationId> applicationOfHosts = getTenantOfParentHosts(zone.getId());
int taggedResources = resourceTagger.tagResources(zone, applicationOfHosts);
if (taggedResources > 0)
log.log(Level.INFO, "Tagged " + taggedResources + " resources in " + zone.getId());
@@ -41,15 +45,21 @@ public class ResourceTagMaintainer extends ControllerMaintainer {
return 1.0;
}
- private Map<HostName, Optional<ApplicationId>> getTenantOfParentHosts(ZoneId zoneId) {
+ private Map<HostName, ApplicationId> getTenantOfParentHosts(ZoneId zoneId) {
return controller().serviceRegistry().configServer().nodeRepository()
.list(zoneId, false)
.stream()
.filter(node -> node.type().isHost())
.collect(Collectors.toMap(
Node::hostname,
- Node::exclusiveTo,
+ this::getApplicationId,
(node1, node2) -> node1
));
}
+
+ private ApplicationId getApplicationId(Node node) {
+ if (node.type() == NodeType.host)
+ return node.exclusiveTo().orElse(SHARED_HOST_APPLICATION);
+ return INFRASTRUCTURE_APPLICATION;
+ }
}