Fix establishing local identity with wrong IP address.
ONOS-2406. Change-Id: I4eda4eeb5ed3218d1063102db4794a535cb9002f
Showing
1 changed file
with
20 additions
and
18 deletions
1 | package org.onosproject.store.cluster.impl; | 1 | package org.onosproject.store.cluster.impl; |
2 | 2 | ||
3 | -import static java.net.NetworkInterface.getNetworkInterfaces; | 3 | +import com.google.common.collect.ImmutableSet; |
4 | -import static java.util.Collections.list; | 4 | +import com.google.common.collect.Sets; |
5 | -import static org.onosproject.cluster.DefaultControllerNode.DEFAULT_PORT; | ||
6 | -import static org.onosproject.store.consistent.impl.DatabaseManager.PARTITION_DEFINITION_FILE; | ||
7 | -import static org.slf4j.LoggerFactory.getLogger; | ||
8 | - | ||
9 | -import java.io.File; | ||
10 | -import java.io.IOException; | ||
11 | -import java.net.InetAddress; | ||
12 | -import java.net.NetworkInterface; | ||
13 | -import java.net.SocketException; | ||
14 | -import java.util.Enumeration; | ||
15 | -import java.util.Set; | ||
16 | -import java.util.stream.Collectors; | ||
17 | - | ||
18 | import org.apache.felix.scr.annotations.Activate; | 5 | import org.apache.felix.scr.annotations.Activate; |
19 | import org.apache.felix.scr.annotations.Component; | 6 | import org.apache.felix.scr.annotations.Component; |
20 | import org.apache.felix.scr.annotations.Deactivate; | 7 | import org.apache.felix.scr.annotations.Deactivate; |
... | @@ -28,8 +15,20 @@ import org.onosproject.store.consistent.impl.DatabaseDefinition; | ... | @@ -28,8 +15,20 @@ import org.onosproject.store.consistent.impl.DatabaseDefinition; |
28 | import org.onosproject.store.consistent.impl.DatabaseDefinitionStore; | 15 | import org.onosproject.store.consistent.impl.DatabaseDefinitionStore; |
29 | import org.slf4j.Logger; | 16 | import org.slf4j.Logger; |
30 | 17 | ||
31 | -import com.google.common.collect.ImmutableSet; | 18 | +import java.io.File; |
32 | -import com.google.common.collect.Sets; | 19 | +import java.io.IOException; |
20 | +import java.net.InetAddress; | ||
21 | +import java.net.NetworkInterface; | ||
22 | +import java.net.SocketException; | ||
23 | +import java.util.Enumeration; | ||
24 | +import java.util.Set; | ||
25 | +import java.util.stream.Collectors; | ||
26 | + | ||
27 | +import static java.net.NetworkInterface.getNetworkInterfaces; | ||
28 | +import static java.util.Collections.list; | ||
29 | +import static org.onosproject.cluster.DefaultControllerNode.DEFAULT_PORT; | ||
30 | +import static org.onosproject.store.consistent.impl.DatabaseManager.PARTITION_DEFINITION_FILE; | ||
31 | +import static org.slf4j.LoggerFactory.getLogger; | ||
33 | 32 | ||
34 | /** | 33 | /** |
35 | * Implementation of ClusterDefinitionService. | 34 | * Implementation of ClusterDefinitionService. |
... | @@ -113,7 +112,10 @@ public class ClusterDefinitionManager implements ClusterDefinitionService { | ... | @@ -113,7 +112,10 @@ public class ClusterDefinitionManager implements ClusterDefinitionService { |
113 | Enumeration<InetAddress> inetAddresses = iface.getInetAddresses(); | 112 | Enumeration<InetAddress> inetAddresses = iface.getInetAddresses(); |
114 | while (inetAddresses.hasMoreElements()) { | 113 | while (inetAddresses.hasMoreElements()) { |
115 | IpAddress ip = IpAddress.valueOf(inetAddresses.nextElement()); | 114 | IpAddress ip = IpAddress.valueOf(inetAddresses.nextElement()); |
116 | - if (matchInterface(ip.toString(), clusterDefinition.getIpPrefix())) { | 115 | + if (clusterDefinition.getNodes().stream() |
116 | + .map(NodeInfo::getIp) | ||
117 | + .map(IpAddress::valueOf) | ||
118 | + .anyMatch(nodeIp -> ip.equals(nodeIp))) { | ||
117 | return ip; | 119 | return ip; |
118 | } | 120 | } |
119 | } | 121 | } | ... | ... |
-
Please register or login to post a comment