Added outline of the path taken through the NetworkGraph by an event generated from the discovery modules
Change-Id: Id875f54f522e3a9135e1a7e9a989167ca532a7a5
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java
index 14dfd64..539ca63 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphImpl.java
@@ -28,13 +28,17 @@
* re-ordering. e.g.) Link Add came in, but Switch was not there.
*
*/
-public class NetworkGraphImpl extends AbstractNetworkGraph {
+public class NetworkGraphImpl extends AbstractNetworkGraph
+ implements NetworkGraphDiscoveryInterface {
private static final Logger log = LoggerFactory
.getLogger(NetworkGraphImpl.class);
+
+ private final NetworkGraphDatastore datastore;
public NetworkGraphImpl() {
super();
+ datastore = new NetworkGraphDatastore(this);
}
/**
@@ -518,4 +522,113 @@
super(message);
}
}
+
+ /* ******************************
+ * NetworkGraphDiscoveryInterface methods
+ * ******************************/
+
+ @Override
+ public void putSwitchEvent(SwitchEvent switchEvent) {
+ if (checkAddSwitchInvariant()) {
+ datastore.addSwitch(switchEvent);
+ putSwitch(switchEvent);
+ }
+ // TODO handle invariant violation
+ }
+
+ @Override
+ public void removeSwitchEvent(SwitchEvent switchEvent) {
+ if (checkRemoveSwitchInvariant()) {
+ datastore.deactivateSwitch(switchEvent);
+ removeSwitch(switchEvent);
+ }
+ // TODO handle invariant violation
+ }
+
+ @Override
+ public void putPortEvent(PortEvent portEvent) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void removePortEvent(PortEvent portEvent) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void putLinkEvent(LinkEvent linkEvent) {
+ if (checkAddLinkInvariant()) {
+ datastore.addLink(linkEvent);
+ putLink(linkEvent);
+ }
+ // TODO handle invariant violation
+ }
+
+ @Override
+ public void removeLinkEvent(LinkEvent linkEvent) {
+ if (checkRemoveLinkInvariant()) {
+ datastore.removeLink(linkEvent);
+ removeLink(linkEvent);
+ }
+ // TODO handle invariant violation
+ }
+
+ @Override
+ public void updateDeviceEvent(DeviceEvent deviceToUpdate,
+ Set<InetAddress> updatedIpAddrs, Set<Port> updatedAttachmentPoints) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void removeDeviceEvent(DeviceEvent deviceEvent) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* *****************
+ * Internal methods to check invariants of the network graph
+ * *****************/
+
+ private boolean checkAddSwitchInvariant() {
+ // TODO implement
+ return true;
+ }
+
+ private boolean checkRemoveSwitchInvariant() {
+ // TODO implement
+ return true;
+ }
+
+ private boolean checkAddPortInvariant() {
+ // TODO implement
+ return true;
+ }
+
+ private boolean checkRemovePortInvariant() {
+ // TODO implement
+ return true;
+ }
+
+ private boolean checkAddLinkInvariant() {
+ // TODO implement
+ return true;
+ }
+
+ private boolean checkRemoveLinkInvariant() {
+ // TODO implement
+ return true;
+ }
+
+ private boolean checkAddDeviceInvariant() {
+ // TODO implement
+ return true;
+ }
+
+ private boolean checkRemoveDeviceInvariant() {
+ // TODO implement
+ return true;
+ }
}