mirror of
https://github.com/opennetworkinglab/onos.git
synced 2026-05-04 19:56:49 +02:00
Fix: resolve thread blocking issue caused by querying dist store
Change-Id: Ifddf7eb07a4430af11ca64e8eb2098369fc7db6c
This commit is contained in:
parent
6a2d95e329
commit
cab4176def
@ -642,20 +642,23 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
|
||||
public boolean isRelevant(DeviceEvent event) {
|
||||
NodeId leader = leadershipService.getLeader(appId.name());
|
||||
return Objects.equals(localNode, leader) &&
|
||||
event.subject().type() == Device.Type.CONTROLLER &&
|
||||
osNodeService.node(event.subject().id()) != null &&
|
||||
osNodeService.node(event.subject().id()).type() != CONTROLLER;
|
||||
event.subject().type() == Device.Type.CONTROLLER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void event(DeviceEvent event) {
|
||||
Device device = event.subject();
|
||||
OpenstackNode osNode = osNodeService.node(device.id());
|
||||
|
||||
switch (event.type()) {
|
||||
case DEVICE_AVAILABILITY_CHANGED:
|
||||
case DEVICE_ADDED:
|
||||
eventExecutor.execute(() -> {
|
||||
OpenstackNode osNode = osNodeService.node(device.id());
|
||||
|
||||
if (osNode == null || osNode.type() == CONTROLLER) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (deviceService.isAvailable(device.id())) {
|
||||
log.debug("OVSDB {} detected", device.id());
|
||||
bootstrapNode(osNode);
|
||||
@ -684,20 +687,23 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
|
||||
public boolean isRelevant(DeviceEvent event) {
|
||||
NodeId leader = leadershipService.getLeader(appId.name());
|
||||
return Objects.equals(localNode, leader) &&
|
||||
event.subject().type() == Device.Type.SWITCH &&
|
||||
osNodeService.node(event.subject().id()) != null &&
|
||||
osNodeService.node(event.subject().id()).type() != CONTROLLER;
|
||||
event.subject().type() == Device.Type.SWITCH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void event(DeviceEvent event) {
|
||||
Device device = event.subject();
|
||||
OpenstackNode osNode = osNodeService.node(device.id());
|
||||
|
||||
switch (event.type()) {
|
||||
case DEVICE_AVAILABILITY_CHANGED:
|
||||
case DEVICE_ADDED:
|
||||
eventExecutor.execute(() -> {
|
||||
OpenstackNode osNode = osNodeService.node(device.id());
|
||||
|
||||
if (osNode == null || osNode.type() == CONTROLLER) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (deviceService.isAvailable(device.id())) {
|
||||
log.debug("Integration bridge created on {}", osNode.hostname());
|
||||
bootstrapNode(osNode);
|
||||
@ -719,6 +725,12 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
|
||||
case PORT_UPDATED:
|
||||
case PORT_ADDED:
|
||||
eventExecutor.execute(() -> {
|
||||
OpenstackNode osNode = osNodeService.node(device.id());
|
||||
|
||||
if (osNode == null || osNode.type() == CONTROLLER) {
|
||||
return;
|
||||
}
|
||||
|
||||
Port port = event.port();
|
||||
String portName = port.annotations().value(PORT_NAME);
|
||||
if (osNode.state() == DEVICE_CREATED && (
|
||||
@ -735,6 +747,12 @@ public class DefaultOpenstackNodeHandler implements OpenstackNodeHandler {
|
||||
break;
|
||||
case PORT_REMOVED:
|
||||
eventExecutor.execute(() -> {
|
||||
OpenstackNode osNode = osNodeService.node(device.id());
|
||||
|
||||
if (osNode == null || osNode.type() == CONTROLLER) {
|
||||
return;
|
||||
}
|
||||
|
||||
Port port = event.port();
|
||||
String portName = port.annotations().value(PORT_NAME);
|
||||
if (osNode.state() == COMPLETE && (
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user