diff options
author | gjoranv <gv@yahoo-inc.com> | 2017-02-24 23:44:38 +0100 |
---|---|---|
committer | gjoranv <gv@yahoo-inc.com> | 2017-02-24 23:44:38 +0100 |
commit | 47eb9aab11a1c8e1f864cc86e040adc9192fb53e (patch) | |
tree | 2e99d2a04d55b7261ae8cff2797b4533b06534ad /config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java | |
parent | 7676d47667f184b2ffa331c4ba30dd182c4b298f (diff) |
Remove the 'mapping' map.
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/HostSystem.java | 34 |
1 files changed, 12 insertions, 22 deletions
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 c07c1875a9d..d9f0acbee45 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 @@ -36,9 +36,6 @@ public class HostSystem extends AbstractConfigProducer<Host> { private final Map<String, HostResource> hostname2host = new LinkedHashMap<>(); private final HostProvisioner provisioner; - // TODO: this map can probably be removed since the HostResource owns a set of memberships. - private final Map<HostResource, Set<ClusterMembership>> mapping = new LinkedHashMap<>(); - public HostSystem(AbstractConfigProducer parent, String name, HostProvisioner provisioner) { super(parent, name); this.provisioner = provisioner; @@ -116,7 +113,7 @@ public class HostSystem extends AbstractConfigProducer<Host> { @Override public String toString() { StringBuilder sb = new StringBuilder(); - for (HostResource host : mapping.keySet()) { + for (HostResource host : hostname2host.values()) { sb.append(host).append(","); } if (sb.length() > 0) sb.deleteCharAt(sb.length() - 1); @@ -125,10 +122,8 @@ public class HostSystem extends AbstractConfigProducer<Host> { public HostResource getHost(String hostAlias) { HostSpec hostSpec = provisioner.allocateHost(hostAlias); - for (Map.Entry<HostResource, Set<ClusterMembership>> entrySet : mapping.entrySet()) { - HostResource resource = entrySet.getKey(); + for (HostResource resource : hostname2host.values()) { if (resource.getHostName().equals(hostSpec.hostname())) { - entrySet.getValue().add(hostSpec.membership().orElse(null)); hostSpec.membership().ifPresent(resource::addClusterMembership); return resource; } @@ -142,16 +137,12 @@ public class HostSystem extends AbstractConfigProducer<Host> { hostResource.setFlavor(hostSpec.flavor()); hostSpec.membership().ifPresent(hostResource::addClusterMembership); hostname2host.put(host.getHostName(), hostResource); - Set<ClusterMembership> hostMemberships = new LinkedHashSet<>(); - if (hostSpec.membership().isPresent()) - hostMemberships.add(hostSpec.membership().get()); - mapping.put(hostResource, hostMemberships); - return hostResource; + return hostResource; } /** Returns the hosts owned by the application having this system - i.e all hosts except shared ones */ public List<HostResource> getHosts() { - return mapping.keySet().stream() + return hostname2host.values().stream() .filter(host -> !host.getHost().isMultitenant()) .collect(Collectors.toList()); } @@ -171,7 +162,7 @@ public class HostSystem extends AbstractConfigProducer<Host> { } private Optional<HostResource> getExistingHost(HostSpec key) { - List<HostResource> hosts = mapping.keySet().stream() + List<HostResource> hosts = hostname2host.values().stream() .filter(resource -> resource.getHostName().equals(key.hostname())) .collect(Collectors.toList()); if (hosts.isEmpty()) { @@ -182,19 +173,18 @@ public class HostSystem extends AbstractConfigProducer<Host> { } public void addBoundHost(HostResource host) { - mapping.put(host, new LinkedHashSet<>()); hostname2host.put(host.getHostName(), host); } - Map<HostSpec, Set<ClusterMembership>> getHostToServiceSpecMapping() { - Map<HostSpec, Set<ClusterMembership>> specMapping = new LinkedHashMap<>(); - for (Map.Entry<HostResource, Set<ClusterMembership>> entrySet : mapping.entrySet()) { - if (!entrySet.getKey().getHost().isMultitenant()) { - Optional<ClusterMembership> membership = entrySet.getValue().stream().filter(m -> m != null).findFirst(); - specMapping.put(new HostSpec(entrySet.getKey().getHostName(), membership), new LinkedHashSet<>(entrySet.getValue())); + Set<HostSpec> getSingleTenantHosts() { + LinkedHashSet<HostSpec> hostSpecs = new LinkedHashSet<>(); + for (HostResource host: hostname2host.values()) { + if (! host.getHost().isMultitenant()) { + // TODO: always using the first cluster membership seems fishy. + hostSpecs.add(new HostSpec(host.getHostName(), host.clusterMemberships().stream().findFirst())); } } - return specMapping; + return hostSpecs; } /** A provision logger which forwards to a deploy logger */ |