[ONOS-7374] OvsdbBridges obtained by DefaultOvsdbClient.getBridges() do not have controller information

Change-Id: I74640e991940e1b63e34c95512466e0807d33271
diff --git a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
index 5d521ca..b36032b 100644
--- a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
+++ b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/driver/DefaultOvsdbClient.java
@@ -1506,8 +1506,8 @@
         }
         ConcurrentMap<String, Row> rows = rowStore.getRowStore();
         for (String uuid : rows.keySet()) {
-            Row row = getRow(DATABASENAME, BRIDGE, uuid);
-            OvsdbBridge ovsdbBridge = getOvsdbBridge(row);
+            Row bridgeRow = getRow(DATABASENAME, BRIDGE, uuid);
+            OvsdbBridge ovsdbBridge = getOvsdbBridge(bridgeRow, Uuid.uuid(uuid));
             if (ovsdbBridge != null) {
                 ovsdbBridges.add(ovsdbBridge);
             }
@@ -1652,7 +1652,7 @@
         return new OvsdbPort(new OvsdbPortNumber(ofPort), new OvsdbPortName(portName));
     }
 
-    private OvsdbBridge getOvsdbBridge(Row row) {
+    private OvsdbBridge getOvsdbBridge(Row row, Uuid bridgeUuid) {
         DatabaseSchema dbSchema = getDatabaseSchema(DATABASENAME);
         Bridge bridge = (Bridge) TableGenerator.getTable(dbSchema, row, OvsdbTable.BRIDGE);
         if (bridge == null) {
@@ -1670,7 +1670,26 @@
         if ((datapathId == null) || (bridgeName == null)) {
             return null;
         }
-        return OvsdbBridge.builder().name(bridgeName).datapathId(datapathId).build();
+
+        List<Controller> controllers = getControllers(bridgeUuid);
+
+        if (controllers != null) {
+            List<ControllerInfo> controllerInfos = controllers.stream().map(
+                    controller -> new ControllerInfo(
+                    (String) controller.getTargetColumn()
+                            .data())).collect(Collectors.toList());
+
+            return OvsdbBridge.builder()
+                    .name(bridgeName)
+                    .datapathId(datapathId)
+                    .controllers(controllerInfos)
+                    .build();
+        } else {
+            return OvsdbBridge.builder()
+                    .name(bridgeName)
+                    .datapathId(datapathId)
+                    .build();
+        }
     }
 
     private OvsdbQos getOvsdbQos(Row row) {