Merge "Add OpenFlow ID to ovsdb-bridge-attributes."
[ovsdb.git] / southbound / southbound-impl / src / main / java / org / opendaylight / ovsdb / southbound / SouthboundMapper.java
index 2a1ee4cb171d13658e93aa90e1682e8e1dd37909..425c6d563aee5f8d3c5578d34f585c79b194cabe 100644 (file)
@@ -43,6 +43,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ProtocolEntryBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfo;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfoBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
@@ -68,21 +70,20 @@ public class SouthboundMapper {
         nodeBuilder.addAugmentation(OvsdbNodeAugmentation.class, createOvsdbAugmentation(client));
         return nodeBuilder.build();
     }
-    public static Node createNode(OvsdbClientKey key) {
+    public static Node createNode(ConnectionInfo key) {
         NodeBuilder nodeBuilder = new NodeBuilder();
-        nodeBuilder.setNodeId(createNodeId(key.getIp(),key.getPort()));
+        nodeBuilder.setNodeId(createNodeId(key.getRemoteIp(),key.getRemotePort()));
         nodeBuilder.addAugmentation(OvsdbNodeAugmentation.class, createOvsdbAugmentation(key));
         return nodeBuilder.build();
     }
 
     public static OvsdbNodeAugmentation createOvsdbAugmentation(OvsdbClient client) {
-        return createOvsdbAugmentation(new OvsdbClientKey(client));
+        return createOvsdbAugmentation(createConnectionInfo(client));
     }
 
-    public static OvsdbNodeAugmentation createOvsdbAugmentation(OvsdbClientKey key) {
+    public static OvsdbNodeAugmentation createOvsdbAugmentation(ConnectionInfo key) {
         OvsdbNodeAugmentationBuilder ovsdbNodeBuilder = new OvsdbNodeAugmentationBuilder();
-        ovsdbNodeBuilder.setIp(key.getIp());
-        ovsdbNodeBuilder.setPort(key.getPort());
+        ovsdbNodeBuilder.setConnectionInfo(key);
         return ovsdbNodeBuilder.build();
     }
 
@@ -119,11 +120,11 @@ public class SouthboundMapper {
         return nodePath;
     }
 
-    public static InstanceIdentifier<Node> createInstanceIdentifier(OvsdbClientKey key,OvsdbBridgeName bridgeName) {
+    public static InstanceIdentifier<Node> createInstanceIdentifier(ConnectionInfo key,OvsdbBridgeName bridgeName) {
         return createInstanceIdentifier(createManagedNodeId(key, bridgeName));
     }
 
-    public static InstanceIdentifier<Node> createInstanceIdentifier(OvsdbClientKey key,Bridge bridge) {
+    public static InstanceIdentifier<Node> createInstanceIdentifier(ConnectionInfo key,Bridge bridge) {
         String managedNodePathString = bridge
                 .getExternalIdsColumn()
                 .getData()
@@ -144,8 +145,8 @@ public class SouthboundMapper {
         return nodeKey.getNodeId();
     }
 
-    public static InstanceIdentifier<Node> createInstanceIdentifier(OvsdbClientKey key) {
-        return createInstanceIdentifier(key.getIp(), key.getPort());
+    public static InstanceIdentifier<Node> createInstanceIdentifier(ConnectionInfo key) {
+        return createInstanceIdentifier(key.getRemoteIp(), key.getRemotePort());
     }
 
     public static InstanceIdentifier<Node> createInstanceIdentifier(IpAddress ip, PortNumber port) {
@@ -153,7 +154,7 @@ public class SouthboundMapper {
                 .create(NetworkTopology.class)
                 .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID))
                 .child(Node.class,createNodeKey(ip,port));
-        LOG.info("Created ovsdb path: {}",path);
+        LOG.debug("Created ovsdb path: {}",path);
         return path;
     }
 
@@ -172,8 +173,8 @@ public class SouthboundMapper {
                 bridgeName);
     }
 
-    public static NodeId createManagedNodeId(OvsdbClientKey key, OvsdbBridgeName bridgeName) {
-        return createManagedNodeId(key.getIp(),key.getPort(),bridgeName);
+    public static NodeId createManagedNodeId(ConnectionInfo key, OvsdbBridgeName bridgeName) {
+        return createManagedNodeId(key.getRemoteIp(),key.getRemotePort(),bridgeName);
     }
 
     public static NodeId createManagedNodeId(IpAddress ip, PortNumber port, OvsdbBridgeName bridgeName) {
@@ -309,7 +310,12 @@ public class SouthboundMapper {
             if (controller != null && controller.getTargetColumn() != null
                     && controller.getTargetColumn() != null) {
                 String targetString = controller.getTargetColumn().getData();
-                controllerEntries.add(new ControllerEntryBuilder().setTarget(new Uri(targetString)).build());
+                org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid uuid =
+                        new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
+                            .ietf.yang.types.rev130715.Uuid(controller.getUuid().toString());
+                controllerEntries.add(new ControllerEntryBuilder()
+                    .setTarget(new Uri(targetString))
+                    .setControllerUuid(uuid).build());
             }
         }
         return controllerEntries;
@@ -331,6 +337,14 @@ public class SouthboundMapper {
     }
 
     public static String getRandomUUID() {
-        return java.util.UUID.randomUUID().toString().replace("-", "");
+        return "Random_" + java.util.UUID.randomUUID().toString().replace("-", "");
+    }
+    public static ConnectionInfo createConnectionInfo(OvsdbClient client) {
+        ConnectionInfoBuilder connectionInfoBuilder = new ConnectionInfoBuilder();
+        connectionInfoBuilder.setRemoteIp(createIpAddress(client.getConnectionInfo().getRemoteAddress()));
+        //connectionInfoBuilder.setLocalIp(createIpAddress(client.getConnectionInfo().getLocalAddress()));
+        connectionInfoBuilder.setRemotePort(new PortNumber(client.getConnectionInfo().getRemotePort()));
+        //connectionInfoBuilder.setLocalPort(new PortNumber(client.getConnectionInfo().getLocalPort()));
+        return connectionInfoBuilder.build();
     }
 }