diff options
author | Øyvind Grønnesby <oyving@verizonmedia.com> | 2019-05-23 13:30:26 +0200 |
---|---|---|
committer | Øyvind Grønnesby <oyving@verizonmedia.com> | 2019-05-23 13:30:26 +0200 |
commit | d477bae695aa88e5ce2359b92204aa70a1303c95 (patch) | |
tree | fa750725bffe20fe36aafc7ff88bdda30aeae3e8 /node-repository | |
parent | 818ba6c21f438ce1b969973010f4bbe495010ea4 (diff) |
Add network prefix to get CIDR format of networks
Diffstat (limited to 'node-repository')
2 files changed, 14 insertions, 1 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java index cec7b227bff..87b7c73386e 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerService.java @@ -1,12 +1,14 @@ // Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.provision.lb; +import com.google.inject.Inject; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.HostName; import com.yahoo.config.provision.NodeType; import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeRepository; +import com.yahoo.vespa.hosted.provision.node.IP; import java.util.Comparator; import java.util.Objects; @@ -24,6 +26,7 @@ public class SharedLoadBalancerService implements LoadBalancerService { private static final Comparator<Node> hostnameComparator = Comparator.comparing(Node::hostname); private final NodeRepository nodeRepository; + @Inject public SharedLoadBalancerService(NodeRepository nodeRepository) { this.nodeRepository = Objects.requireNonNull(nodeRepository, "Missing nodeRepository value"); } @@ -40,6 +43,7 @@ public class SharedLoadBalancerService implements LoadBalancerService { final var firstProxyNode = proxyNodes.get(0); final var networkNames = proxyNodes.stream() .flatMap(node -> node.ipAddresses().stream()) + .map(SharedLoadBalancerService::addNetworKPrefixLength) .collect(Collectors.toSet()); return new LoadBalancerInstance( @@ -60,4 +64,13 @@ public class SharedLoadBalancerService implements LoadBalancerService { public Protocol protocol() { return Protocol.dualstack; } + + private static String addNetworKPrefixLength(String address) { + if (IP.isV6(address)) { + return address + "/128"; + } + else { + return address + "/32"; + } + } } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerServiceTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerServiceTest.java index 7048a37a829..40c307c6bef 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerServiceTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/lb/SharedLoadBalancerServiceTest.java @@ -33,7 +33,7 @@ public class SharedLoadBalancerServiceTest { assertEquals(HostName.from("host-1.yahoo.com"), lb.hostname()); assertEquals(Optional.empty(), lb.dnsZone()); - assertEquals(Set.of("127.0.0.1", "127.0.0.2", "::1", "::2"), lb.networks()); + assertEquals(Set.of("127.0.0.1/32", "127.0.0.2/32", "::1/128", "::2/128"), lb.networks()); assertEquals(Set.of(4080, 4443), lb.ports()); } |