Sonar clean-up: braces for control statements
[netvirt.git] / plugin / src / main / java / org / opendaylight / ovsdb / plugin / impl / ConnectionServiceImpl.java
index 288bc6581804c54e7ad86ea5c0c8328cf32cc4af..8582174d835096e3e94dc1c4e2049dad70dbbf69 100644 (file)
@@ -15,7 +15,6 @@ import java.io.IOException;
 import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -23,8 +22,6 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ExecutionException;
 
-import org.opendaylight.controller.sal.core.Node;
-import org.opendaylight.controller.sal.core.Property;
 import org.opendaylight.ovsdb.lib.MonitorCallBack;
 import org.opendaylight.ovsdb.lib.OvsdbClient;
 import org.opendaylight.ovsdb.lib.OvsdbConnection;
@@ -41,11 +38,10 @@ import org.opendaylight.ovsdb.plugin.api.Connection;
 import org.opendaylight.ovsdb.plugin.api.ConnectionConstants;
 import org.opendaylight.ovsdb.plugin.api.Status;
 import org.opendaylight.ovsdb.plugin.api.StatusCode;
-import org.opendaylight.ovsdb.plugin.internal.IPAddressProperty;
-import org.opendaylight.ovsdb.plugin.internal.L4PortProperty;
 import org.opendaylight.ovsdb.plugin.api.OvsdbConnectionService;
 import org.opendaylight.ovsdb.plugin.api.OvsdbInventoryService;
 import org.opendaylight.ovsdb.utils.config.ConfigProperties;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -65,6 +61,10 @@ public class ConnectionServiceImpl implements OvsdbConnectionService,
     private static final String OVSDB_LISTENPORT = "ovsdb.listenPort";
 
 
+    public void putOvsdbConnection (String identifier, Connection connection) {
+        ovsdbConnections.put(identifier, connection);
+    }
+
     private ConcurrentMap<String, Connection> ovsdbConnections = new ConcurrentHashMap<String, Connection>();
     private List<ChannelHandler> handlers = null;
 
@@ -126,10 +126,9 @@ public class ConnectionServiceImpl implements OvsdbConnectionService,
     }
 
     public Status disconnect(Node node) {
-        String identifier = (String) node.getID();
-        Connection connection = ovsdbConnections.get(identifier);
+        Connection connection = getConnection(node);
         if (connection != null) {
-            ovsdbConnections.remove(identifier);
+            ovsdbConnections.remove(normalizeId(node.getId().getValue()));
             connection.disconnect();
             ovsdbInventoryService.removeNode(node);
             return new Status(StatusCode.SUCCESS);
@@ -151,7 +150,9 @@ public class ConnectionServiceImpl implements OvsdbConnectionService,
 
         try {
             port = Integer.parseInt(params.get(ConnectionConstants.PORT));
-            if (port == 0) port = DEFAULT_OVSDB_PORT;
+            if (port == 0) {
+                port = DEFAULT_OVSDB_PORT;
+            }
         } catch (Exception e) {
             port = DEFAULT_OVSDB_PORT;
         }
@@ -175,22 +176,25 @@ public class ConnectionServiceImpl implements OvsdbConnectionService,
         this.handlers = handlers;
     }
 
-    @Override
-    public Connection getConnection(Node node) {
-        String identifier = (String) node.getID();
-        return ovsdbConnections.get(identifier);
-    }
-
-    @Override
-    public Node getNode (String identifier) {
+    private String normalizeId (String identifier) {
         String id = identifier;
 
-        String[] pair = identifier.split("[|,:]+");
+        String[] pair = identifier.split("\\|");
         if (pair[0].equals("OVS")) {
             id = pair[1];
         }
 
-        Connection connection = ovsdbConnections.get(id);
+        return id;
+    }
+
+    @Override
+    public Connection getConnection(Node node) {
+        return ovsdbConnections.get(normalizeId(node.getId().getValue()));
+    }
+
+    @Override
+    public Node getNode (String identifier) {
+        Connection connection = ovsdbConnections.get(normalizeId(identifier));
         if (connection != null) {
             return connection.getNode();
         } else {
@@ -249,13 +253,6 @@ public class ConnectionServiceImpl implements OvsdbConnectionService,
         OvsdbClient client = connection.getClient();
         InetAddress address = client.getConnectionInfo().getRemoteAddress();
         int port = client.getConnectionInfo().getRemotePort();
-        IPAddressProperty addressProp = new IPAddressProperty(address);
-        L4PortProperty l4Port = new L4PortProperty(port);
-        Set<Property> props = new HashSet<Property>();
-        props.add(addressProp);
-        props.add(l4Port);
-        logger.info("Add node to ovsdb inventory service {}", connection.getNode().toString());
-        ovsdbInventoryService.addNode(connection.getNode(), props);
 
         List<String> databases = client.getDatabases().get();
         if (databases == null) {
@@ -272,8 +269,7 @@ public class ConnectionServiceImpl implements OvsdbConnectionService,
     }
 
     public TableUpdates monitorTables(Node node, DatabaseSchema dbSchema) throws ExecutionException, InterruptedException, IOException {
-        String identifier = (String) node.getID();
-        Connection connection = ovsdbConnections.get(identifier);
+        Connection connection = getConnection(node);
         OvsdbClient client = connection.getClient();
         if (dbSchema == null) {
             logger.error("Unable to get Database Schema for the ovsdb connection : {}", client.getConnectionInfo());
@@ -296,7 +292,7 @@ public class ConnectionServiceImpl implements OvsdbConnectionService,
      * As per RFC 7047, section 4.1.5, if a Monitor request is sent without any columns, the update response will not include
      * the _uuid column.
      * ----------------------------------------------------------------------------------------------------------------------------------
-     * Each <monitor-request> specifies one or more columns and the manner in which the columns (or the entire table) are to be monitored.
+     * Each &lt;monitor-request&gt; specifies one or more columns and the manner in which the columns (or the entire table) are to be monitored.
      * The "columns" member specifies the columns whose values are monitored. It MUST NOT contain duplicates.
      * If "columns" is omitted, all columns in the table, except for "_uuid", are monitored.
      * ----------------------------------------------------------------------------------------------------------------------------------
@@ -349,7 +345,9 @@ public class ConnectionServiceImpl implements OvsdbConnectionService,
     @Override
     public void disconnected(OvsdbClient client) {
         Connection connection = ovsdbConnections.get(this.getConnectionIdentifier(client));
-        if (connection == null) return;
+        if (connection == null) {
+            return;
+        }
         this.disconnect(connection.getNode());
     }
 }