Squashed commit of the following:
commit e9604083c5374bf5eac889e82cf54bb0b22ef763
Author: Naoki Shiota <n-shiota@onlab.us>
Date: Wed Oct 23 11:51:00 2013 -0700
Refactored NetworkGraphPublisher and related modules to be ready for implementing event notification.
diff --git a/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java b/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
index 852cbb8..23c0e78 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
@@ -91,12 +91,17 @@
@Override
public void controlChanged(long dpid, boolean hasControl) {
- // TODO Auto-generated method stub
-
if (hasControl) {
log.debug("got control to set inactive sw {}", HexString.toHexString(dpid));
- swStore.update(HexString.toHexString(dpid),SwitchState.INACTIVE, DM_OPERATION.UPDATE);
- registryService.releaseControl(dpid);
+ try {
+ if (swStore.updateSwitch(HexString.toHexString(dpid), SwitchState.INACTIVE, DM_OPERATION.UPDATE)) {
+ registryService.releaseControl(dpid);
+
+ // TODO publish UPDATE_SWITCH event here
+ }
+ } catch (Exception e) {
+ log.error("Error in SwitchCleanup:controlChanged ", e);
+ }
}
}
}
@@ -119,12 +124,12 @@
// log.debug("sw {} is controlled by controller: {}",HexString.toHexString(dpid),controller);
}
} catch (NumberFormatException e) {
- // TODO Auto-generated catch block
+ log.debug("Caught NumberFormatException trying to requestControl in cleanup thread");
e.printStackTrace();
} catch (RegistryException e) {
log.debug("Caught RegistryException trying to requestControl in cleanup thread");
e.printStackTrace();
- }
+ }
}
op.close();
}
@@ -138,22 +143,27 @@
switch (update.getOperation()) {
case LINK_REMOVED:
log.debug("LinkDiscoveryUpdate(): Removing link {}", lt);
- linkStore.deleteLink(lt);
- // TODO: Move network map link removal here
- // reconcile paths here
-// IPortObject srcPort = conn.utils().searchPort(conn, HexString.toHexString(update.getSrc()), update.getSrcPort());
+
+ if (linkStore.deleteLink(lt)) {
+ // TODO publish DELETE_LINK event here
+ }
break;
case LINK_UPDATED:
log.debug("LinkDiscoveryUpdate(): Updating link {}", lt);
+
LinkInfo linfo = linkStore.getLinkInfo(lt);
// TODO update "linfo" using portState derived using "update"
- linkStore.update(lt, linfo, DM_OPERATION.UPDATE);
+ if (linkStore.update(lt, linfo, DM_OPERATION.UPDATE)) {
+ // TODO publish UPDATE_LINK event here
+ }
break;
case LINK_ADDED:
log.debug("LinkDiscoveryUpdate(): Adding link {}", lt);
- linkStore.addLink(lt);
+
+ if (linkStore.addLink(lt)) {
+ // TODO publish ADD_LINK event here
+ }
break;
-
default:
break;
}
@@ -162,36 +172,41 @@
@Override
public void addedSwitch(IOFSwitch sw) {
-
if (registryService.hasControl(sw.getId())) {
- swStore.addSwitch(sw);
+ if (swStore.addSwitch(sw)) {
+ // TODO publish ADD_SWITCH event here
+ }
}
-
}
@Override
public void removedSwitch(IOFSwitch sw) {
- // TODO Auto-generated method stub
-
+ if (registryService.hasControl(sw.getId())) {
+ if (swStore.deleteSwitch(sw.getStringId())) {
+ // TODO publish DELETE_SWITCH event here
+ }
+ }
}
@Override
public void switchPortChanged(Long switchId) {
// TODO Auto-generated method stub
-
+ // NOTE: Event not needed here. This callback always coincide with add/remove callback.
}
@Override
public void switchPortAdded(Long switchId, OFPhysicalPort port) {
- // TODO Auto-generated method stub
- swStore.addPort(HexString.toHexString(switchId), port);
+ if (swStore.addPort(HexString.toHexString(switchId), port)) {
+ // TODO publish ADD_PORT event here
+ }
}
@Override
public void switchPortRemoved(Long switchId, OFPhysicalPort port) {
- // TODO Auto-generated method stub
- swStore.deletePort(HexString.toHexString(switchId), port.getPortNumber());
+ if (swStore.deletePort(HexString.toHexString(switchId), port.getPortNumber())) {
+ // TODO publish DELETE_PORT event here
+ }
}
@Override
@@ -201,7 +216,6 @@
@Override
public void deviceAdded(IDevice device) {
- // TODO Auto-generated method stub
log.debug("{}:deviceAdded(): Adding device {}",this.getClass(),device.getMACAddressString());
devStore.addDevice(device);
}
@@ -214,16 +228,12 @@
@Override
public void deviceMoved(IDevice device) {
- // TODO Auto-generated method stub
devStore.changeDeviceAttachments(device);
-
}
@Override
public void deviceIPV4AddrChanged(IDevice device) {
- // TODO Auto-generated method stub
devStore.changeDeviceIPv4Address(device);
-
}
@Override
@@ -263,7 +273,6 @@
@Override
public void init(FloodlightModuleContext context)
throws FloodlightModuleException {
- // TODO Auto-generated method stub
Map<String, String> configMap = context.getConfigParams(this);
String conf = configMap.get(DBConfigFile);
op = new GraphDBOperation(conf);
@@ -291,7 +300,6 @@
@Override
public void startUp(FloodlightModuleContext context) {
- // TODO Auto-generated method stub
Map<String, String> configMap = context.getConfigParams(this);
String cleanupNeeded = configMap.get(CleanupEnabled);