Committed by
Gerrit Code Review
Fixed to add gateway node from ICMP handler also
And made the gateway store or group update synchronized Change-Id: I10fc391e9059772e5da8322997a994db26a096b3
Showing
4 changed files
with
32 additions
and
19 deletions
| ... | @@ -309,13 +309,15 @@ public class OpenstackFloatingIpManager implements OpenstackFloatingIpService { | ... | @@ -309,13 +309,15 @@ public class OpenstackFloatingIpManager implements OpenstackFloatingIpService { |
| 309 | case COMPLETE: | 309 | case COMPLETE: |
| 310 | if (node.type() == GATEWAY) { | 310 | if (node.type() == GATEWAY) { |
| 311 | log.info("GATEWAY node {} detected", node.hostname()); | 311 | log.info("GATEWAY node {} detected", node.hostname()); |
| 312 | - GatewayNode gnode = GatewayNode.builder() | 312 | + eventExecutor.execute(() -> { |
| 313 | - .gatewayDeviceId(node.intBridge()) | 313 | + GatewayNode gnode = GatewayNode.builder() |
| 314 | - .dataIpAddress(node.dataIp().getIp4Address()) | 314 | + .gatewayDeviceId(node.intBridge()) |
| 315 | - .uplinkIntf(node.externalPortName().get()) | 315 | + .dataIpAddress(node.dataIp().getIp4Address()) |
| 316 | - .build(); | 316 | + .uplinkIntf(node.externalPortName().get()) |
| 317 | - gatewayService.addGatewayNode(gnode); | 317 | + .build(); |
| 318 | - eventExecutor.execute(OpenstackFloatingIpManager.this::reloadFloatingIpRules); | 318 | + gatewayService.addGatewayNode(gnode); |
| 319 | + reloadFloatingIpRules(); | ||
| 320 | + }); | ||
| 319 | } | 321 | } |
| 320 | break; | 322 | break; |
| 321 | case INIT: | 323 | case INIT: | ... | ... |
| ... | @@ -49,6 +49,7 @@ import org.onosproject.openstacknode.OpenstackNode; | ... | @@ -49,6 +49,7 @@ import org.onosproject.openstacknode.OpenstackNode; |
| 49 | import org.onosproject.openstacknode.OpenstackNodeEvent; | 49 | import org.onosproject.openstacknode.OpenstackNodeEvent; |
| 50 | import org.onosproject.openstacknode.OpenstackNodeListener; | 50 | import org.onosproject.openstacknode.OpenstackNodeListener; |
| 51 | import org.onosproject.openstacknode.OpenstackNodeService; | 51 | import org.onosproject.openstacknode.OpenstackNodeService; |
| 52 | +import org.onosproject.scalablegateway.api.GatewayNode; | ||
| 52 | import org.onosproject.scalablegateway.api.ScalableGatewayService; | 53 | import org.onosproject.scalablegateway.api.ScalableGatewayService; |
| 53 | import org.slf4j.Logger; | 54 | import org.slf4j.Logger; |
| 54 | 55 | ||
| ... | @@ -322,7 +323,15 @@ public class OpenstackIcmpHandler { | ... | @@ -322,7 +323,15 @@ public class OpenstackIcmpHandler { |
| 322 | case COMPLETE: | 323 | case COMPLETE: |
| 323 | if (node.type() == GATEWAY) { | 324 | if (node.type() == GATEWAY) { |
| 324 | log.info("GATEWAY node {} detected", node.hostname()); | 325 | log.info("GATEWAY node {} detected", node.hostname()); |
| 325 | - eventExecutor.execute(() -> requestPacket(appId)); | 326 | + eventExecutor.execute(() -> { |
| 327 | + GatewayNode gnode = GatewayNode.builder() | ||
| 328 | + .gatewayDeviceId(node.intBridge()) | ||
| 329 | + .dataIpAddress(node.dataIp().getIp4Address()) | ||
| 330 | + .uplinkIntf(node.externalPortName().get()) | ||
| 331 | + .build(); | ||
| 332 | + gatewayService.addGatewayNode(gnode); | ||
| 333 | + requestPacket(appId); | ||
| 334 | + }); | ||
| 326 | } | 335 | } |
| 327 | break; | 336 | break; |
| 328 | case INIT: | 337 | case INIT: | ... | ... |
| ... | @@ -481,15 +481,17 @@ public class OpenstackRoutingManager extends AbstractVmHandler implements Openst | ... | @@ -481,15 +481,17 @@ public class OpenstackRoutingManager extends AbstractVmHandler implements Openst |
| 481 | switch (event.type()) { | 481 | switch (event.type()) { |
| 482 | case COMPLETE: | 482 | case COMPLETE: |
| 483 | log.info("COMPLETE node {} detected", node.hostname()); | 483 | log.info("COMPLETE node {} detected", node.hostname()); |
| 484 | - if (node.type() == GATEWAY) { | 484 | + eventExecutor.execute(() -> { |
| 485 | - GatewayNode gnode = GatewayNode.builder() | 485 | + if (node.type() == GATEWAY) { |
| 486 | - .gatewayDeviceId(node.intBridge()) | 486 | + GatewayNode gnode = GatewayNode.builder() |
| 487 | - .dataIpAddress(node.dataIp().getIp4Address()) | 487 | + .gatewayDeviceId(node.intBridge()) |
| 488 | - .uplinkIntf(node.externalPortName().get()) | 488 | + .dataIpAddress(node.dataIp().getIp4Address()) |
| 489 | - .build(); | 489 | + .uplinkIntf(node.externalPortName().get()) |
| 490 | - gatewayService.addGatewayNode(gnode); | 490 | + .build(); |
| 491 | - } | 491 | + gatewayService.addGatewayNode(gnode); |
| 492 | - eventExecutor.execute(OpenstackRoutingManager.this::reloadRoutingRules); | 492 | + } |
| 493 | + reloadRoutingRules(); | ||
| 494 | + }); | ||
| 493 | break; | 495 | break; |
| 494 | case INIT: | 496 | case INIT: |
| 495 | case DEVICE_CREATED: | 497 | case DEVICE_CREATED: | ... | ... |
| ... | @@ -208,7 +208,7 @@ public class ScalableGatewayManager implements ScalableGatewayService { | ... | @@ -208,7 +208,7 @@ public class ScalableGatewayManager implements ScalableGatewayService { |
| 208 | } | 208 | } |
| 209 | 209 | ||
| 210 | @Override | 210 | @Override |
| 211 | - public boolean addGatewayNode(GatewayNode gatewayNode) { | 211 | + public synchronized boolean addGatewayNode(GatewayNode gatewayNode) { |
| 212 | Versioned<GatewayNode> existingNode = gatewayNodeMap.putIfAbsent( | 212 | Versioned<GatewayNode> existingNode = gatewayNodeMap.putIfAbsent( |
| 213 | gatewayNode.getGatewayDeviceId(), gatewayNode); | 213 | gatewayNode.getGatewayDeviceId(), gatewayNode); |
| 214 | if (existingNode == null) { | 214 | if (existingNode == null) { |
| ... | @@ -221,7 +221,7 @@ public class ScalableGatewayManager implements ScalableGatewayService { | ... | @@ -221,7 +221,7 @@ public class ScalableGatewayManager implements ScalableGatewayService { |
| 221 | } | 221 | } |
| 222 | 222 | ||
| 223 | @Override | 223 | @Override |
| 224 | - public boolean deleteGatewayNode(GatewayNode gatewayNode) { | 224 | + public synchronized boolean deleteGatewayNode(GatewayNode gatewayNode) { |
| 225 | boolean result = gatewayNodeMap.remove(gatewayNode.getGatewayDeviceId(), gatewayNode); | 225 | boolean result = gatewayNodeMap.remove(gatewayNode.getGatewayDeviceId(), gatewayNode); |
| 226 | if (result) { | 226 | if (result) { |
| 227 | updateGatewayGroup(gatewayNode, false); | 227 | updateGatewayGroup(gatewayNode, false); | ... | ... |
-
Please register or login to post a comment