Skip to content

Commit

Permalink
[ONOS-5845] NullPointerException occurs, if OVSDB connection is close…
Browse files Browse the repository at this point in the history
…d while creating a OVS bridge on OVS.

Change-Id: I2dc2b48a1d5524afe2aa35247ea92f4791fd02cd
  • Loading branch information
jaegon-kim authored and jonohart committed Jan 20, 2017
1 parent a44d18a commit 38e3272
Showing 1 changed file with 29 additions and 1 deletion.
Expand Up @@ -38,6 +38,7 @@

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
Expand Down Expand Up @@ -73,6 +74,9 @@ public void addBridge(BridgeName bridgeName, String dpid, String exPortName) {
addBridge(bridgeDesc);

OvsdbClientService client = getOvsdbClientService(handler());
if (client == null) {
return;
}
client.createPort(bridgeName.name(), exPortName);
}

Expand All @@ -93,7 +97,9 @@ public boolean addBridge(BridgeName bridgeName, String dpid, List<ControllerInfo
@Override
public boolean addBridge(BridgeDescription bridgeDesc) {
OvsdbClientService client = getOvsdbClientService(handler());

if (client == null) {
return false;
}
OvsdbBridge.Builder bridgeBuilder = OvsdbBridge.builder(bridgeDesc);
if (bridgeDesc.enableLocalController()) {
bridgeBuilder.controller(client.localController());
Expand All @@ -104,12 +110,19 @@ public boolean addBridge(BridgeDescription bridgeDesc) {
@Override
public void deleteBridge(BridgeName bridgeName) {
OvsdbClientService client = getOvsdbClientService(handler());
if (client == null) {
return;
}
client.dropBridge(bridgeName.name());
}

@Override
public Collection<BridgeDescription> getBridges() {
OvsdbClientService client = getOvsdbClientService(handler());
if (client == null) {
return Collections.emptyList();
}

Set<OvsdbBridge> bridges = client.getBridges();

return bridges.stream()
Expand All @@ -123,18 +136,27 @@ public Collection<BridgeDescription> getBridges() {
@Override
public void addPort(BridgeName bridgeName, String portName) {
OvsdbClientService client = getOvsdbClientService(handler());
if (client == null) {
return;
}
client.createPort(bridgeName.name(), portName);
}

@Override
public void deletePort(BridgeName bridgeName, String portName) {
OvsdbClientService client = getOvsdbClientService(handler());
if (client == null) {
return;
}
client.dropPort(bridgeName.name(), portName);
}

@Override
public Collection<PortDescription> getPorts() {
OvsdbClientService client = getOvsdbClientService(handler());
if (client == null) {
return Collections.emptyList();
}
Set<OvsdbPort> ports = client.getPorts();

return ports.stream()
Expand Down Expand Up @@ -170,6 +192,9 @@ private OvsdbClientService getOvsdbClientService(DriverHandler handler) {
public Set<PortNumber> getPortNumbers() {
DriverHandler handler = handler();
OvsdbClientService client = getOvsdbClientService(handler);
if (client == null) {
return Collections.emptySet();
}
Set<OvsdbPort> ports = client.getPorts();

return ports.stream()
Expand All @@ -186,6 +211,9 @@ public List<PortNumber> getLocalPorts(Iterable<String> ifaceIds) {
List<PortNumber> ports = new ArrayList<>();
DriverHandler handler = handler();
OvsdbClientService client = getOvsdbClientService(handler);
if (client == null) {
return Collections.emptyList();
}
Set<OvsdbPort> ovsdbSet = client.getLocalPorts(ifaceIds);
ovsdbSet.forEach(o -> {
PortNumber port = PortNumber.portNumber(o.portNumber().value(),
Expand Down

0 comments on commit 38e3272

Please sign in to comment.