Avoid duplicate links
diff --git a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
index 3bb6c87..67dc6b1 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
@@ -46,7 +46,6 @@
 	}
 
 	private void setStatus(String dpid, SwitchState state) {
-		// TODO Auto-generated method stub
 		Vertex sw;
 		try {
             if ((sw = graph.getVertices("dpid",dpid).iterator().next()) != null) {
@@ -71,7 +70,8 @@
             	log.info("SwitchStorage:addPort dpid:{} port:{}", dpid, port.getPortNumber());
             	// TODO: Check if port exists
             	if (sw.query().direction(Direction.OUT).labels("on").has("number",port.getPortNumber()).vertices().iterator().hasNext()) {
-            		//TODO: Do nothing for now 
+            		//TODO: Do nothing for now
+            		log.error("SwitchStorage:addPort dpid:{} port:{} exists", dpid, port.getPortNumber());
             	} else {
             		Vertex p = graph.addVertex(null);
             		p.setProperty("type","port");
@@ -87,7 +87,7 @@
             }
 		} catch (TitanException e) {
              // TODO: handle exceptions
-			log.info("SwitchStorage:addPort dpid:{} port:{}", dpid, port.getPortNumber());
+			log.error("SwitchStorage:addPort dpid:{} port:{} failed", dpid, port.getPortNumber());
 		}	
 
 	}
@@ -143,7 +143,18 @@
 	@Override
 	public void deleteSwitch(String dpid) {
 		// TODO Setting inactive but we need to eventually remove data
-		setStatus(dpid, SwitchState.INACTIVE);
+		Vertex sw;
+		try {
+			
+            if ((sw = graph.getVertices("dpid",dpid).iterator().next()) != null) {
+            	graph.removeVertex(sw);
+            	graph.stopTransaction(Conclusion.SUCCESS);
+            	log.info("SwitchStorage:DeleteSwitch dpid:{} done", dpid);
+            }
+		} catch (TitanException e) {
+             // TODO: handle exceptions
+			log.error("SwitchStorage:deleteSwitch {} failed", dpid);
+		}
 
 	}
 
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
index 1fb80e9..c17c710 100644
--- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
@@ -56,7 +56,7 @@
 		Vertex vswSrc, vswDst;
 		Vertex vportSrc = null, vportDst = null;
 	
-		log.debug("addLink(): {} {} getSrc {}", new Object[]{lt, linkinfo, lt.getSrc()});
+		log.info("addLink(): {} {} getSrc {}", new Object[]{lt, linkinfo, lt.getSrc()});
 		
         try {
             // get source port vertex
@@ -87,7 +87,8 @@
             
             if (vportSrc != null && vportDst != null) {
             	//TODO: If Edge already exists should we remove and add again?
-            	if (vportSrc.query().direction(Direction.OUT).labels("link").vertices().iterator().equals(vportDst)) {
+            	if (vportSrc.query().direction(Direction.OUT).labels("link").vertices().iterator().hasNext() &&
+            		vportSrc.query().direction(Direction.OUT).labels("link").vertices().iterator().next().equals(vportDst)) {
             		//FIXME: Succeed silently for now
             	} else {
             		graph.addEdge(null, vportSrc, vportDst, "link");