Refactor: install rules in a separated thread to avoid thread blocking
Change-Id: I10ff88fb56f9358ec948f01176d6fe20d91e37c0
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java
index 83f75aa..2f8b7db 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSecurityGroupHandler.java
@@ -767,20 +767,22 @@
case OPENSTACK_INSTANCE_PORT_UPDATED:
case OPENSTACK_INSTANCE_PORT_DETECTED:
case OPENSTACK_INSTANCE_MIGRATION_STARTED:
- installSecurityGroupRules(event, instPort);
+ eventExecutor.execute(() ->
+ installSecurityGroupRules(event, instPort));
break;
case OPENSTACK_INSTANCE_PORT_VANISHED:
- Port osPort = removedOsPortStore.asJavaMap().get(instPort.portId());
- eventExecutor.execute(() ->
- setSecurityGroupRules(instPort, osPort, false)
- );
- removedOsPortStore.remove(instPort.portId());
+ eventExecutor.execute(() -> {
+ Port osPort = removedOsPortStore.asJavaMap().get(instPort.portId());
+ setSecurityGroupRules(instPort, osPort, false);
+ removedOsPortStore.remove(instPort.portId());
+ });
break;
case OPENSTACK_INSTANCE_MIGRATION_ENDED:
- InstancePort revisedInstPort = swapStaleLocation(instPort);
- Port port = osNetService.port(instPort.portId());
- eventExecutor.execute(() ->
- setSecurityGroupRules(revisedInstPort, port, false));
+ eventExecutor.execute(() -> {
+ InstancePort revisedInstPort = swapStaleLocation(instPort);
+ Port port = osNetService.port(instPort.portId());
+ setSecurityGroupRules(revisedInstPort, port, false);
+ });
break;
default:
break;
@@ -822,7 +824,8 @@
switch (event.type()) {
case OPENSTACK_PORT_PRE_REMOVE:
- removedOsPortStore.put(osPort.getId(), osPort);
+ eventExecutor.execute(() ->
+ removedOsPortStore.put(osPort.getId(), osPort));
break;
default:
// do nothing for the other events
@@ -945,7 +948,8 @@
public void event(OpenstackNodeEvent event) {
switch (event.type()) {
case OPENSTACK_NODE_COMPLETE:
- resetSecurityGroupRules();
+ eventExecutor.execute(OpenstackSecurityGroupHandler.this::
+ resetSecurityGroupRules);
break;
case OPENSTACK_NODE_CREATED:
case OPENSTACK_NODE_REMOVED: