WIP: use Event object on NetworkGraphImpl

Change-Id: I3a1d80bb23057aa8f22f4f53d33d7eb40fd89a2e
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java
index 288b1f4..52a6ab7 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java
@@ -5,8 +5,6 @@
 
 import net.onrc.onos.datastore.RCObject;
 import net.onrc.onos.datastore.RCObject.WriteOp;
-import net.onrc.onos.datastore.topology.RCLink;
-import net.onrc.onos.datastore.topology.RCPort;
 import net.onrc.onos.datastore.topology.RCSwitch;
 
 import org.slf4j.Logger;
@@ -36,14 +34,14 @@
 	private static final Logger log = LoggerFactory.getLogger(NetworkGraphDatastore.class);
 
 	private static final int NUM_RETRIES = 10;
-	
+
 	private final NetworkGraphImpl graph;
 
 	public NetworkGraphDatastore(NetworkGraphImpl graph) {
 		this.graph = graph;
 	}
 
-	public void addSwitch(Switch sw) {
+	public void addSwitch(SwitchEvent sw) {
 		log.debug("Adding switch {}", sw);
 		ArrayList<WriteOp> groupOp = new ArrayList<>();
 
@@ -55,13 +53,13 @@
 		// to assure that DPID is unique cluster-wide, etc.
 		groupOp.add(WriteOp.ForceCreate(rcSwitch));
 
-		for (Port port : sw.getPorts()) {
-			RCPort rcPort = new RCPort(sw.getDpid(), (long)port.getNumber());
-			rcPort.setStatus(RCPort.STATUS.ACTIVE);
-			rcSwitch.addPortId(rcPort.getId());
-
-			groupOp.add(WriteOp.ForceCreate(rcPort));
-		}
+//		for (Port port : sw.getPorts()) {
+//			RCPort rcPort = new RCPort(sw.getDpid(), (long)port.getNumber());
+//			rcPort.setStatus(RCPort.STATUS.ACTIVE);
+//			rcSwitch.addPortId(rcPort.getId());
+//
+//			groupOp.add(WriteOp.ForceCreate(rcPort));
+//		}
 
 		boolean failed = RCObject.multiWrite( groupOp );
 
@@ -76,12 +74,12 @@
 		}
 		else {
 			// Publish event to the in-memory cache
-			graph.addSwitch(sw);
+//			graph.addSwitch(sw);
 		}
 
 	}
 
-	public void deactivateSwitch(Switch sw) {
+	public void deactivateSwitch(SwitchEvent sw) {
 		log.debug("Deactivating switch {}", sw);
 		RCSwitch rcSwitch = new RCSwitch(sw.getDpid());
 
@@ -93,12 +91,12 @@
 				rcSwitch.setStatus(RCSwitch.STATUS.INACTIVE);
 				objectsToDeactive.add(rcSwitch);
 
-				for (Port p : sw.getPorts()) {
-					RCPort rcPort = new RCPort(sw.getDpid(), (long)p.getNumber());
-					rcPort.read();
-					rcPort.setStatus(RCPort.STATUS.INACTIVE);
-					objectsToDeactive.add(rcPort);
-				}
+//				for (Port p : sw.getPorts()) {
+//					RCPort rcPort = new RCPort(sw.getDpid(), (long)p.getNumber());
+//					rcPort.read();
+//					rcPort.setStatus(RCPort.STATUS.INACTIVE);
+//					objectsToDeactive.add(rcPort);
+//				}
 			} catch (ObjectDoesntExistException e) {
 				log.warn("Trying to deactivate an object that doesn't exist", e);
 				// We don't care to much if the object wasn't there, it's
@@ -120,132 +118,132 @@
 		}
 	}
 
-	public void addPort(Switch sw, Port port) {
+	public void addPort(PortEvent port) {
 		log.debug("Adding port {}", port);
-		RCSwitch rcSwitch = new RCSwitch(sw.getDpid());
-
-		try {
-			rcSwitch.read();
-		} catch (ObjectDoesntExistException e) {
-			log.warn("Add port failed because switch {} doesn't exist", sw.getDpid(), e);
-			return;
-		}
-
-		RCPort rcPort = new RCPort(port.getSwitch().getDpid(), (long)port.getNumber());
-		rcPort.setStatus(RCPort.STATUS.ACTIVE);
-		// TODO add description into RCPort
-		//rcPort.setDescription(port.getDescription());
-		rcSwitch.addPortId(rcPort.getId());
-
-		writeObject(rcPort);
-		writeObject(rcSwitch);
+//		RCSwitch rcSwitch = new RCSwitch(sw.getDpid());
+//
+//		try {
+//			rcSwitch.read();
+//		} catch (ObjectDoesntExistException e) {
+//			log.warn("Add port failed because switch {} doesn't exist", sw.getDpid(), e);
+//			return;
+//		}
+//
+//		RCPort rcPort = new RCPort(port.getSwitch().getDpid(), (long)port.getNumber());
+//		rcPort.setStatus(RCPort.STATUS.ACTIVE);
+//		// TODO add description into RCPort
+//		//rcPort.setDescription(port.getDescription());
+//		rcSwitch.addPortId(rcPort.getId());
+//
+//		writeObject(rcPort);
+//		writeObject(rcSwitch);
 	}
 
-	public void deactivatePort(Port port) {
+	public void deactivatePort(PortEvent port) {
 		log.debug("Deactivating port {}", port);
-		RCPort rcPort = new RCPort(port.getSwitch().getDpid(), (long)port.getNumber());
-
-		for (int i = 0; i < NUM_RETRIES; i++) {
-			try {
-				rcPort.read();
-			} catch (ObjectDoesntExistException e) {
-				// oh well, we were deactivating anyway
-				log.warn("Trying to deactivate a port that doesn't exist: {}", port);
-				return;
-			}
-
-			rcPort.setStatus(RCPort.STATUS.INACTIVE);
-
-			try {
-				rcPort.update();
-				break;
-			} catch (ObjectDoesntExistException | WrongVersionException e) {
-				// retry
-			}
-		}
+//		RCPort rcPort = new RCPort(port.getSwitch().getDpid(), (long)port.getNumber());
+//
+//		for (int i = 0; i < NUM_RETRIES; i++) {
+//			try {
+//				rcPort.read();
+//			} catch (ObjectDoesntExistException e) {
+//				// oh well, we were deactivating anyway
+//				log.warn("Trying to deactivate a port that doesn't exist: {}", port);
+//				return;
+//			}
+//
+//			rcPort.setStatus(RCPort.STATUS.INACTIVE);
+//
+//			try {
+//				rcPort.update();
+//				break;
+//			} catch (ObjectDoesntExistException | WrongVersionException e) {
+//				// retry
+//			}
+//		}
 	}
 
-	public void addLink(Link link) {
+	public void addLink(LinkEvent link) {
 		log.debug("Adding link {}", link);
-		RCLink rcLink = new RCLink(link.getSourceSwitchDpid(), (long)link.getSourcePortNumber(),
-				link.getDestinationSwitchDpid(), (long)link.getDestinationPortNumber());
-
-		RCPort rcSrcPort = new RCPort(link.getSourceSwitchDpid(), (long)link.getSourcePortNumber());
-		RCPort rcDstPort = new RCPort(link.getDestinationSwitchDpid(), (long)link.getDestinationPortNumber());
-
-		for (int i = 0; i < NUM_RETRIES; i++) {
-			try {
-				rcSrcPort.read();
-				rcDstPort.read();
-				rcLink.create();
-			} catch (ObjectDoesntExistException e) {
-				// port doesn't exist
-				log.error("Add link failed {}", link, e);
-				return;
-			} catch (ObjectExistsException e) {
-				log.debug("Link already exists {}", link);
-				return;
-			}
-
-			rcSrcPort.addLinkId(rcLink.getId());
-			rcDstPort.addLinkId(rcLink.getId());
-
-			rcLink.setStatus(RCLink.STATUS.ACTIVE);
-
-			try {
-				rcLink.update();
-				rcSrcPort.update();
-				rcDstPort.update();
-				break;
-			} catch (ObjectDoesntExistException | WrongVersionException e) {
-				log.debug(" ", e);
-				// retry
-			}
-		}
-		
-		// Publish event to in-memory cache
-		graph.addLink(link);
+//		RCLink rcLink = new RCLink(link.getSourceSwitchDpid(), (long)link.getSourcePortNumber(),
+//				link.getDestinationSwitchDpid(), (long)link.getDestinationPortNumber());
+//
+//		RCPort rcSrcPort = new RCPort(link.getSourceSwitchDpid(), (long)link.getSourcePortNumber());
+//		RCPort rcDstPort = new RCPort(link.getDestinationSwitchDpid(), (long)link.getDestinationPortNumber());
+//
+//		for (int i = 0; i < NUM_RETRIES; i++) {
+//			try {
+//				rcSrcPort.read();
+//				rcDstPort.read();
+//				rcLink.create();
+//			} catch (ObjectDoesntExistException e) {
+//				// port doesn't exist
+//				log.error("Add link failed {}", link, e);
+//				return;
+//			} catch (ObjectExistsException e) {
+//				log.debug("Link already exists {}", link);
+//				return;
+//			}
+//
+//			rcSrcPort.addLinkId(rcLink.getId());
+//			rcDstPort.addLinkId(rcLink.getId());
+//
+//			rcLink.setStatus(RCLink.STATUS.ACTIVE);
+//
+//			try {
+//				rcLink.update();
+//				rcSrcPort.update();
+//				rcDstPort.update();
+//				break;
+//			} catch (ObjectDoesntExistException | WrongVersionException e) {
+//				log.debug(" ", e);
+//				// retry
+//			}
+//		}
+//
+//		// Publish event to in-memory cache
+//		graph.putLink(link);
 	}
 
-	public void removeLink(Link link) {
+	public void removeLink(LinkEvent link) {
 		log.debug("Removing link {}", link);
-		RCLink rcLink = new RCLink(link.getSourceSwitchDpid(), (long)link.getSourcePortNumber(),
-				link.getDestinationSwitchDpid(), (long)link.getDestinationPortNumber());
-
-		RCPort rcSrcPort = new RCPort(link.getSourceSwitchDpid(), (long)link.getSourcePortNumber());
-		RCPort rcDstPort = new RCPort(link.getDestinationSwitchDpid(), (long)link.getDestinationPortNumber());
-
-		for (int i = 0; i < NUM_RETRIES; i++) {
-			try {
-				rcSrcPort.read();
-				rcDstPort.read();
-				rcLink.read();
-			} catch (ObjectDoesntExistException e) {
-				log.error("Remove link failed {}", link, e);
-				return;
-			}
-
-			rcSrcPort.removeLinkId(rcLink.getId());
-			rcDstPort.removeLinkId(rcLink.getId());
-
-			try {
-				rcSrcPort.update();
-				rcDstPort.update();
-				rcLink.delete();
-			} catch (ObjectDoesntExistException e) {
-				log.error("Remove link failed {}", link, e);
-				return;
-			} catch (WrongVersionException e) {
-				// retry
-			}
-		}
+//		RCLink rcLink = new RCLink(link.getSourceSwitchDpid(), (long)link.getSourcePortNumber(),
+//				link.getDestinationSwitchDpid(), (long)link.getDestinationPortNumber());
+//
+//		RCPort rcSrcPort = new RCPort(link.getSourceSwitchDpid(), (long)link.getSourcePortNumber());
+//		RCPort rcDstPort = new RCPort(link.getDestinationSwitchDpid(), (long)link.getDestinationPortNumber());
+//
+//		for (int i = 0; i < NUM_RETRIES; i++) {
+//			try {
+//				rcSrcPort.read();
+//				rcDstPort.read();
+//				rcLink.read();
+//			} catch (ObjectDoesntExistException e) {
+//				log.error("Remove link failed {}", link, e);
+//				return;
+//			}
+//
+//			rcSrcPort.removeLinkId(rcLink.getId());
+//			rcDstPort.removeLinkId(rcLink.getId());
+//
+//			try {
+//				rcSrcPort.update();
+//				rcDstPort.update();
+//				rcLink.delete();
+//			} catch (ObjectDoesntExistException e) {
+//				log.error("Remove link failed {}", link, e);
+//				return;
+//			} catch (WrongVersionException e) {
+//				// retry
+//			}
+//		}
 	}
 
-	public void updateDevice(Device device) {
+	public void updateDevice(DeviceEvent device) {
 		// TODO implement
 	}
 
-	public void removeDevice(Device device) {
+	public void removeDevice(DeviceEvent device) {
 		// TODO implement
 	}