Refactored bridge config to take bridge description

OVSDB provides lots of bridge configuration options but the exisisting
bridge config implementation only allows some of them by overloading
addBridge method. Also some of the bridge properties were set static
and unable to configure. This patch fixes these limitations.

- Added some bridge config options to the bridge description
- Deprecated multiple overloaded addBridge methods
- Some code clean up

Change-Id: Ibc828177b210bd4b215aea0b63cc359776c13e03
diff --git a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java
index 8db1dbc..bf91497 100644
--- a/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java
+++ b/protocols/ovsdb/api/src/main/java/org/onosproject/ovsdb/controller/OvsdbClientService.java
@@ -72,31 +72,45 @@
     /**
      * Creates a bridge.
      *
+     * @deprecated version 1.7.0 - Hummingbird
      * @param bridgeName bridge name
      */
+    @Deprecated
     void createBridge(String bridgeName);
 
     /**
      * Creates a bridge.
      *
+     * @deprecated version 1.7.0 - Hummingbird
      * @param bridgeName bridge name
      * @param dpid data path id
      * @param exPortName external port name
      */
+    @Deprecated
     void createBridge(String bridgeName, String dpid, String exPortName);
 
     /**
      * Creates a bridge with given name and dpid.
      * Sets the bridge's controller with given controllers.
      *
+     * @deprecated version 1.7.0 - Hummingbird
      * @param bridgeName bridge name
      * @param dpid data path id
      * @param controllers controllers
      * @return true if bridge creation is successful, false otherwise
      */
+    @Deprecated
     boolean createBridge(String bridgeName, String dpid, List<ControllerInfo> controllers);
 
     /**
+     * Creates a bridge with a given bridge description.
+     *
+     * @param ovsdbBridge ovsdb bridge description
+     * @return true if bridge creation is successful, otherwise false
+     */
+    boolean createBridge(OvsdbBridge ovsdbBridge);
+
+    /**
      * Drops a bridge.
      *
      * @param bridgeName bridge name
@@ -119,6 +133,15 @@
     Set<ControllerInfo> getControllers(DeviceId openflowDeviceId);
 
     /**
+     * Returns local controller information.
+     * The connection is a TCP connection to the local ONOS instance's IP
+     * and the default OpenFlow port.
+     *
+     * @return local controller
+     */
+    ControllerInfo localController();
+
+    /**
      * Sets the Controllers for the specified bridge.
      * <p>
      * This method will replace the existing controller list with the new controller