Test: Cluster based scenarios with multiple OVS switches
and CORD apps .

Change-Id: I47068d545f7b1f3ff5f4ec08254abe7469f91b99
diff --git a/src/test/utils/OnosCtrl.py b/src/test/utils/OnosCtrl.py
index 29f9080..5e6dcdf 100644
--- a/src/test/utils/OnosCtrl.py
+++ b/src/test/utils/OnosCtrl.py
@@ -56,10 +56,16 @@
         self.auth = ('karaf', 'karaf')
 
     @classmethod
-    def config(cls, config):
+    def config(cls, config,controller=None):
         if config is not None:
             json_data = json.dumps(config)
-            resp = requests.post(cls.cfg_url, auth = cls.auth, data = json_data)
+	    if controller is None:
+	        print('default Onos config url is %s'%cls.cfg_url)
+                resp = requests.post(cls.cfg_url, auth = cls.auth, data = json_data)
+	    else:
+		cfg_url = 'http://%s:8181/onos/v1/network/configuration/' %(controller)
+		print('non-default Onos config url is %s'%cfg_url)
+	        resp = requests.post(cfg_url, auth = cls.auth, data = json_data)
             return resp.ok, resp.status_code
         return False, 400
 
@@ -99,15 +105,19 @@
         return did
 
     @classmethod
-    def get_flows(cls, device_id):
-        url = 'http://%s:8181/onos/v1/flows/' %(cls.controller) + device_id
+    def get_flows(cls, device_id,controller=None):
+        if controller is None:
+		url = 'http://%s:8181/onos/v1/flows/' %(cls.controller) + device_id
+	else:
+		url = 'http://%s:8181/onos/v1/flows/' %(controller) + device_id
+	print('get flows url is %s'%url)
         result = requests.get(url, auth = cls.auth)
         if result.ok:
             return result.json()['flows']
         return None
 
     @classmethod
-    def cord_olt_config(cls, olt_device_data = None):
+    def cord_olt_config(cls, olt_device_data = None,controller=None):
         '''Configures OLT data for existing devices/switches'''
         if olt_device_data is None:
             return
@@ -123,7 +133,7 @@
             did_dict[did] = access_device_dict
 
         ##configure the device list with access information
-        return cls.config(config)
+        return cls.config(config,controller=controller)
 
     @classmethod
     def install_app(cls, app_file, onos_ip = None):
@@ -134,6 +144,7 @@
             result = requests.post(url, auth = cls.auth,
                                    params = params, headers = headers,
                                    data = payload)
+	print('result.ok, result.status_code are %s and %s'%(result.ok, result.status_code))
         return result.ok, result.status_code
 
     @classmethod
@@ -159,9 +170,10 @@
         return resp.ok, resp.status_code
 
     @classmethod
-    def host_config(cls, config):
+    def host_config(cls, config,onos_ip=None):
         if config:
            json_data = json.dumps(config)
+	   url = cls.host_cfg_url if onos_ip is None else 'http://%s:8181/onos/v1/hosts/'.format(onos_ip)
            resp = requests.post(cls.host_cfg_url, auth = cls.auth, data = json_data)
            return resp.ok, resp.status_code
         return False, 400