[SEBA-179] Fabric-crossconnect service should react to changes in BNGPortMapping
Change-Id: Ie7174ac31af300dabb50e0d850fff0c474e5366a
diff --git a/xos/synchronizer/steps/sync_fabric_crossconnect_service_instance.py b/xos/synchronizer/steps/sync_fabric_crossconnect_service_instance.py
index c03adab..4d8a355 100644
--- a/xos/synchronizer/steps/sync_fabric_crossconnect_service_instance.py
+++ b/xos/synchronizer/steps/sync_fabric_crossconnect_service_instance.py
@@ -22,6 +22,7 @@
from multistructlog import create_logger
import requests
from requests.auth import HTTPBasicAuth
+from helpers import Helpers
class SyncFabricCrossconnectServiceInstance(SyncStep):
@@ -30,35 +31,6 @@
observes = FabricCrossconnectServiceInstance
- @staticmethod
- def format_url(url):
- if 'http' in url:
- return url
- else:
- return 'http://%s' % url
-
- @staticmethod
- def get_fabric_onos_info(si):
-
- # get the fabric-crossconnect service
- fabric_crossconnect = si.owner
-
- # get the onos_fabric service
- fabric_onos = [s.leaf_model for s in fabric_crossconnect.provider_services if "onos" in s.name.lower()]
-
- if len(fabric_onos) == 0:
- raise Exception('Cannot find ONOS service in provider_services of Fabric-Crossconnect')
-
- fabric_onos = fabric_onos[0]
-
- return {
- 'url': SyncFabricCrossconnectServiceInstance.format_url(
- "%s:%s" %
- (fabric_onos.rest_hostname,
- fabric_onos.rest_port)),
- 'user': fabric_onos.rest_username,
- 'pass': fabric_onos.rest_password}
-
def make_handle(self, s_tag, switch_datapath_id):
# Generate a backend_handle that uniquely identifies the cross connect. ONOS doesn't provide us a handle, so
# we make up our own. This helps us to detect other FabricCrossconnectServiceInstance using the same
@@ -109,7 +81,7 @@
if (o.policed is None) or (o.policed < o.updated):
raise DeferredException("Waiting for model_policy to run on fcsi %s" % o.id)
- onos = self.get_fabric_onos_info(o)
+ onos = Helpers.get_fabric_onos_info(self.model_accessor, o.owner)
ServiceInstance.objects.get(id=o.id)
@@ -156,7 +128,7 @@
self.log.info("Deleting Fabric Crossconnect Service Instance", service_instance=o)
if o.backend_handle:
- onos = self.get_fabric_onos_info(o)
+ onos = Helpers.get_fabric_onos_info(self.model_accessor, o.owner)
# backend_handle has everything we need in it to delete this entry.
(s_tag, switch_datapath_id) = self.extract_handle(o.backend_handle)