pass controllerPort to VTN app

Change-Id: Idc85737b9788072ae8a9438151b276a8fad7f00a
diff --git a/xos/synchronizer/steps/sync_onos_netcfg.py b/xos/synchronizer/steps/sync_onos_netcfg.py
index 7e76cc9..509c7a0 100644
--- a/xos/synchronizer/steps/sync_onos_netcfg.py
+++ b/xos/synchronizer/steps/sync_onos_netcfg.py
@@ -59,6 +59,13 @@
         xosUser = vtn.xosUser
         xosPassword = vtn.xosPassword
 
+        controllerPort = vtn.controllerPort
+        if ":" in controllerPort:
+            (c_hostname, c_port) = controllerPort.split(":",1)
+            controllerPort = socket.gethostbyname(c_hostname) + ":" + c_port
+        else:
+            controllerPort = ":" + controllerPort
+
         data = {
             "apps" : {
                 "org.opencord.vtn" : {
@@ -77,7 +84,8 @@
                             "password": xosPassword
                         },
                         "publicGateways": [],
-                        "nodes" : []
+                        "nodes" : [],
+                        "controllers": [controllerPort]
                     }
                 }
             }
diff --git a/xos/synchronizer/steps/sync_vtn_service.py b/xos/synchronizer/steps/sync_vtn_service.py
index 97f0db6..6ec5610 100644
--- a/xos/synchronizer/steps/sync_vtn_service.py
+++ b/xos/synchronizer/steps/sync_vtn_service.py
@@ -50,6 +50,9 @@
         if vtn_service.rest_hostname:
             return vtn_service.rest_hostname
 
+        # code below this point is for ONOS running in a slice, and is
+        # probably outdated
+
         if not vtn_service.slices.exists():
             raise "VTN Service has no slices"
 
@@ -62,6 +65,17 @@
 
         return vtn_instance.node.name
 
+    def get_vtn_port(self):
+        vtn_service = self.get_vtn_onos_service()
+
+        if vtn_service.rest_port:
+            return vtn_service.rest_port
+
+        # code below this point is for ONOS running in a slice, and is
+        # probably outdated
+
+        raise Exception("Must set rest_port")
+
     def sync_legacy_vtn_api(self):
         global glo_saved_vtn_maps
 
@@ -78,7 +92,7 @@
         for vtn_map in vtn_maps:
             if not (vtn_map in glo_saved_vtn_maps):
                 # call vtn rest api to add map
-                url = "http://" + self.get_vtn_addr() + ":8181/onos/cordvtn/service-dependency/%s/%s" % (vtn_map[0], vtn_map[1])
+                url = "http://" + self.get_vtn_addr() + ":" + self.get_vtn_port() + "/onos/cordvtn/service-dependency/%s/%s" % (vtn_map[0], vtn_map[1])
 
                 print "POST %s" % url
                 r = requests.post(url, auth=self.get_vtn_auth() )
@@ -88,7 +102,7 @@
         for vtn_map in glo_saved_vtn_maps:
             if not vtn_map in vtn_maps:
                 # call vtn rest api to delete map
-                url = "http://" + self.get_vtn_addr() + ":8181/onos/cordvtn/service-dependency/%s/%s" % (vtn_map[0],vtn_map[1])
+                url = "http://" + self.get_vtn_addr() +  ":" + self.get_vtn_port() + "/onos/cordvtn/service-dependency/%s/%s" % (vtn_map[0],vtn_map[1])
 
                 print "DELETE %s" % url
                 r = requests.delete(url, auth=self.get_vtn_auth() )
@@ -123,7 +137,7 @@
             valid_ids.append(network.id)
 
             if (glo_saved_networks.get(network.id, None) != network.to_dict()):
-                (exists, url, method, req_func) = self.get_method("http://" + self.get_vtn_addr() + ":8181/onos/cordvtn/serviceNetworks", network.id)
+                (exists, url, method, req_func) = self.get_method("http://" + self.get_vtn_addr() +  ":" + self.get_vtn_port() + "/onos/cordvtn/serviceNetworks", network.id)
 
                 if (network.type=="PRIVATE") and (not network.providerNetworks):
                     logger.info("Skipping network %s because it has no relevant state" % network.id)
@@ -152,7 +166,7 @@
             if network_id not in valid_ids:
                 logger.info("DELETEing VTN API for network %s" % network_id)
 
-                url = "http://" + self.get_vtn_addr() + ":8181/onos/cordvtn/serviceNetworks/%s" % network_id
+                url = "http://" + self.get_vtn_addr() +  ":" + self.get_vtn_port() + "/onos/cordvtn/serviceNetworks/%s" % network_id
                 logger.info("URL: %s" % url)
 
                 r = requests.delete(url, auth=self.get_vtn_auth() )
@@ -176,7 +190,7 @@
             valid_ids.append(port.id)
 
             if (glo_saved_ports.get(port.id, None) != port.to_dict()):
-                (exists, url, method, req_func) = self.get_method("http://" + self.get_vtn_addr() + ":8181/onos/cordvtn/servicePorts", port.id)
+                (exists, url, method, req_func) = self.get_method("http://" + self.get_vtn_addr() +  ":" + self.get_vtn_port() + "/onos/cordvtn/servicePorts", port.id)
 
                 logger.info("%sing VTN API for port %s" % (method, port.id))
 
@@ -197,7 +211,7 @@
             if port_id not in valid_ids:
                 logger.info("DELETEing VTN API for port %s" % port_id)
 
-                url = "http://" + self.get_vtn_addr() + ":8181/onos/cordvtn/servicePorts/%s" % port_id
+                url = "http://" + self.get_vtn_addr() +  ":" + self.get_vtn_port() + "/onos/cordvtn/servicePorts/%s" % port_id
                 logger.info("URL: %s" % url)
 
                 r = requests.delete(url, auth=self.get_vtn_auth() )