[SEBA-568] Using the serialNumber provided in the event
Change-Id: Id29efc0c68f5adeddd4db31004629a5ef2728eaa
diff --git a/xos/synchronizer/helpers.py b/xos/synchronizer/helpers.py
index 9a2d035..afc471b 100644
--- a/xos/synchronizer/helpers.py
+++ b/xos/synchronizer/helpers.py
@@ -58,19 +58,21 @@
return [True, "ONU has been validated"]
@staticmethod
- def get_onu_sn(model_accessor, log, event):
- olt_service = model_accessor.VOLTService.objects.first()
- onu_sn = olt_service.get_onu_sn_from_openflow(event["deviceId"], event["portNumber"])
- if not onu_sn or onu_sn is None:
- log.exception("Cannot find onu serial number for this event", kafka_event=event)
- raise Exception("Cannot find onu serial number for this event")
-
- return onu_sn
-
- @staticmethod
- def get_si_by_sn(model_accessor, log, serial_number):
+ def find_or_create_att_si(model_accessor, log, event):
try:
- return model_accessor.AttWorkflowDriverServiceInstance.objects.get(serial_number=serial_number)
+ att_si = model_accessor.AttWorkflowDriverServiceInstance.objects.get(
+ serial_number=event["serialNumber"]
+ )
+ log.debug("AttHelpers: Found existing AttWorkflowDriverServiceInstance", si=att_si)
except IndexError:
- log.exception("Cannot find att-workflow-driver service instance for this serial number", serial_number=serial_number)
- raise Exception("Cannot find att-workflow-driver service instance for this serial number %s", serial_number)
\ No newline at end of file
+ # create an AttWorkflowDriverServiceInstance, the validation will be
+ # triggered in the corresponding sync step
+ att_si = model_accessor.AttWorkflowDriverServiceInstance(
+ serial_number=event["serialNumber"],
+ of_dpid=event["deviceId"],
+ uni_port_id=long(event["portNumber"]),
+ # we assume there is only one AttWorkflowDriverService
+ owner=model_accessor.AttWorkflowDriverService.objects.first()
+ )
+ log.debug("AttHelpers: Created new AttWorkflowDriverServiceInstance", si=att_si)
+ return att_si