Support to inject custom controller info through openstacknode

Change-Id: I3a545477b99f515b9e35ee0e7d5aaa03d979eaf7
diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java
index dc879d8..06b65a3 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNodeHandler.java
@@ -256,13 +256,19 @@
             return;
         }
 
-        Set<IpAddress> controllerIps = clusterService.getNodes().stream()
+        List<ControllerInfo> controllers;
+
+        if (osNode.controllers() != null && osNode.controllers().size() > 0) {
+            controllers = (List<ControllerInfo>) osNode.controllers();
+        } else {
+            Set<IpAddress> controllerIps = clusterService.getNodes().stream()
                     .map(ControllerNode::ip)
                     .collect(Collectors.toSet());
 
-        List<ControllerInfo> controllers = controllerIps.stream()
-                .map(ip -> new ControllerInfo(ip, DEFAULT_OFPORT, DEFAULT_OF_PROTO))
-                .collect(Collectors.toList());
+            controllers = controllerIps.stream()
+                    .map(ip -> new ControllerInfo(ip, DEFAULT_OFPORT, DEFAULT_OF_PROTO))
+                    .collect(Collectors.toList());
+        }
 
         String dpid = deviceId.toString().substring(DPID_BEGIN);