Committed by
Gerrit Code Review
[ONOS-4983] Fix the bug of gateway information modification
Change-Id: Ie5b672b5034e2cdac08d674da510e21f02588e6d
Showing
1 changed file
with
12 additions
and
10 deletions
... | @@ -21,7 +21,6 @@ import com.google.common.collect.Lists; | ... | @@ -21,7 +21,6 @@ import com.google.common.collect.Lists; |
21 | import org.apache.felix.scr.annotations.Activate; | 21 | import org.apache.felix.scr.annotations.Activate; |
22 | import org.apache.felix.scr.annotations.Component; | 22 | import org.apache.felix.scr.annotations.Component; |
23 | import org.apache.felix.scr.annotations.Deactivate; | 23 | import org.apache.felix.scr.annotations.Deactivate; |
24 | - | ||
25 | import org.apache.felix.scr.annotations.Reference; | 24 | import org.apache.felix.scr.annotations.Reference; |
26 | import org.apache.felix.scr.annotations.ReferenceCardinality; | 25 | import org.apache.felix.scr.annotations.ReferenceCardinality; |
27 | import org.apache.felix.scr.annotations.Service; | 26 | import org.apache.felix.scr.annotations.Service; |
... | @@ -29,7 +28,6 @@ import org.onlab.util.KryoNamespace; | ... | @@ -29,7 +28,6 @@ import org.onlab.util.KryoNamespace; |
29 | import org.onlab.util.Tools; | 28 | import org.onlab.util.Tools; |
30 | import org.onosproject.core.ApplicationId; | 29 | import org.onosproject.core.ApplicationId; |
31 | import org.onosproject.core.CoreService; | 30 | import org.onosproject.core.CoreService; |
32 | - | ||
33 | import org.onosproject.core.GroupId; | 31 | import org.onosproject.core.GroupId; |
34 | import org.onosproject.net.DeviceId; | 32 | import org.onosproject.net.DeviceId; |
35 | import org.onosproject.net.Port; | 33 | import org.onosproject.net.Port; |
... | @@ -50,11 +48,6 @@ import org.onosproject.net.group.GroupService; | ... | @@ -50,11 +48,6 @@ import org.onosproject.net.group.GroupService; |
50 | import org.onosproject.scalablegateway.api.GatewayNode; | 48 | import org.onosproject.scalablegateway.api.GatewayNode; |
51 | import org.onosproject.scalablegateway.api.GatewayNodeConfig; | 49 | import org.onosproject.scalablegateway.api.GatewayNodeConfig; |
52 | import org.onosproject.scalablegateway.api.ScalableGatewayService; | 50 | import org.onosproject.scalablegateway.api.ScalableGatewayService; |
53 | - | ||
54 | -import java.util.List; | ||
55 | -import java.util.Objects; | ||
56 | -import java.util.Optional; | ||
57 | - | ||
58 | import org.onosproject.store.serializers.KryoNamespaces; | 51 | import org.onosproject.store.serializers.KryoNamespaces; |
59 | import org.onosproject.store.service.ConsistentMap; | 52 | import org.onosproject.store.service.ConsistentMap; |
60 | import org.onosproject.store.service.Serializer; | 53 | import org.onosproject.store.service.Serializer; |
... | @@ -63,6 +56,10 @@ import org.onosproject.store.service.Versioned; | ... | @@ -63,6 +56,10 @@ import org.onosproject.store.service.Versioned; |
63 | import org.slf4j.Logger; | 56 | import org.slf4j.Logger; |
64 | import org.slf4j.LoggerFactory; | 57 | import org.slf4j.LoggerFactory; |
65 | 58 | ||
59 | +import java.util.List; | ||
60 | +import java.util.Objects; | ||
61 | +import java.util.Optional; | ||
62 | + | ||
66 | import static org.onosproject.net.AnnotationKeys.PORT_NAME; | 63 | import static org.onosproject.net.AnnotationKeys.PORT_NAME; |
67 | 64 | ||
68 | /** | 65 | /** |
... | @@ -210,11 +207,16 @@ public class ScalableGatewayManager implements ScalableGatewayService { | ... | @@ -210,11 +207,16 @@ public class ScalableGatewayManager implements ScalableGatewayService { |
210 | 207 | ||
211 | @Override | 208 | @Override |
212 | public synchronized boolean addGatewayNode(GatewayNode gatewayNode) { | 209 | public synchronized boolean addGatewayNode(GatewayNode gatewayNode) { |
213 | - Versioned<GatewayNode> existingNode = gatewayNodeMap.putIfAbsent( | 210 | + Versioned<GatewayNode> existingNode = gatewayNodeMap.put(gatewayNode.getGatewayDeviceId(), |
214 | - gatewayNode.getGatewayDeviceId(), gatewayNode); | 211 | + gatewayNode); |
215 | if (existingNode == null) { | 212 | if (existingNode == null) { |
216 | updateGatewayGroup(gatewayNode, true); | 213 | updateGatewayGroup(gatewayNode, true); |
217 | - log.info("Added {} to gateway pool", gatewayNode); | 214 | + log.info("Gateway {} is added to Gateway pool", gatewayNode); |
215 | + return true; | ||
216 | + } else if (!existingNode.value().equals(gatewayNode)) { | ||
217 | + updateGatewayGroup(existingNode.value(), false); | ||
218 | + updateGatewayGroup(gatewayNode, true); | ||
219 | + log.info("Gateway {} is updated", gatewayNode); | ||
218 | return true; | 220 | return true; |
219 | } else { | 221 | } else { |
220 | return false; | 222 | return false; | ... | ... |
-
Please register or login to post a comment