fix errors getting ONOS rest url; add support for unidirectional/bidirection
diff --git a/xos/synchronizers/vtn/steps/sync_tenant.py b/xos/synchronizers/vtn/steps/sync_tenant.py
index cc374be..bbf863e 100644
--- a/xos/synchronizers/vtn/steps/sync_tenant.py
+++ b/xos/synchronizers/vtn/steps/sync_tenant.py
@@ -11,6 +11,7 @@
 from services.cord.models import Tenant
 from xos.logger import Logger, logging
 from requests.auth import HTTPBasicAuth
+from services.onos.models import ONOSService
 
 # hpclibrary will be in steps/..
 parentdir = os.path.join(os.path.dirname(__file__),"..")
@@ -36,7 +37,7 @@
 #        vtn_tenant = vtn_tenant[0]
 #
 #        vtn_service = vtn_tenant.provider_service
-        vtn_service = Service.objects.filter(name="service_ONOS_VTN")  # XXX fixme - harcoded
+        vtn_service = ONOSService.get_service_objects().filter(name="ONOS_CORD")  # XXX fixme - harcoded
         if not vtn_service:
             raise "No VTN Onos Service"
 
@@ -45,6 +46,9 @@
     def get_vtn_addr(self):
         vtn_service = self.get_vtn_onos_service()
 
+        if vtn_service.rest_hostname:
+            return vtn_service.rest_hostname+":"+str(vtn_service.rest_port)
+
         if not vtn_service.slices.exists():
             raise "VTN Service has no slices"
 
@@ -55,7 +59,7 @@
 
         vtn_instance = vtn_slice.instances.all()[0]
 
-        return vtn_instance.node.name
+        return vtn_instance.node.name + ":8181"
 
     def call(self, **args):
         global glo_saved_vtn_maps
@@ -68,28 +72,32 @@
                dependencies = service.get_vtn_dependencies_ids()
                if dependencies:
                    for dependency in dependencies:
-                       vtn_maps.append( (id, dependency) )
-
-        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])
-
-                print "POST %s" % url
-                r = requests.post(url, auth=HTTPBasicAuth('karaf', 'karaf') )    # XXX fixme - hardcoded auth
-                if (r.status_code != 200):
-                    raise Exception("Received error from vtn service (%d)" % r.status_code)
+                       if dependency["bidirectional"]:
+                           directionality="b"
+                       else:
+                           directionality="u"
+                       vtn_maps.append( (id, dependency["serviceId"], directionality) )
 
         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() + "/onos/cordvtn/service-dependency/%s/%s/%s" % (vtn_map[0],vtn_map[1], vtn_map[2])
 
-                print "DELETE %s" % url
+                logger.info( "DELETE %s" % url )
                 r = requests.delete(url, auth=HTTPBasicAuth('karaf', 'karaf') )    # XXX fixme - hardcoded auth
                 if (r.status_code != 200):
                     raise Exception("Received error from vtn service (%d)" % r.status_code)
 
+        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() + "/onos/cordvtn/service-dependency/%s/%s/%s" % (vtn_map[0], vtn_map[1], vtn_map[2])
+
+                logger.info( "POST %s" % url )
+                r = requests.post(url, auth=HTTPBasicAuth('karaf', 'karaf') )    # XXX fixme - hardcoded auth
+                if (r.status_code != 200):
+                    raise Exception("Received error from vtn service (%d)" % r.status_code)
+
         glo_saved_vtn_maps = vtn_maps
         # TODO: save this