[SEBA-311] Disabling ONU device when an entry is removed from the whitelist
Change-Id: I81dde41f1970bfb242841aae63eb78beceade73c
diff --git a/xos/synchronizer/model_policies/model_policy_att_workflow_driver_serviceinstance.py b/xos/synchronizer/model_policies/model_policy_att_workflow_driver_serviceinstance.py
index 3fb05dd..525d6ce 100644
--- a/xos/synchronizer/model_policies/model_policy_att_workflow_driver_serviceinstance.py
+++ b/xos/synchronizer/model_policies/model_policy_att_workflow_driver_serviceinstance.py
@@ -45,8 +45,9 @@
# if it's disabled it means someone has disabled it
self.validate_onu_state(si)
else:
- # just clean the status
+ # clean the status and verify that the ONU is actually disabled
si.status_message = "ONU has been disabled"
+ self.update_onu(si.serial_number, "DISABLED")
# handling the subscriber status
subscriber = self.get_subscriber(si.serial_number)
diff --git a/xos/synchronizer/model_policies/model_policy_att_workflow_driver_whitelistentry.py b/xos/synchronizer/model_policies/model_policy_att_workflow_driver_whitelistentry.py
index ca52e01..cb1e20d 100644
--- a/xos/synchronizer/model_policies/model_policy_att_workflow_driver_whitelistentry.py
+++ b/xos/synchronizer/model_policies/model_policy_att_workflow_driver_whitelistentry.py
@@ -60,7 +60,7 @@
whitelist.save(update_fields=["backend_need_delete_policy"])
def handle_delete(self, whitelist):
- self.logger.debug("MODEL_POLICY: handle_delete for AttWorkflowDriverWhiteListEntry", whitelist=whitelist)
+ self.logger.debug("MODEL_POLICY: handle_delete for AttWorkflowDriverWhiteListEntry", serial_number=whitelist.serial_number, pon_port=whitelist.pon_port_id, device=whitelist.device_id)
# BUG: Sometimes the delete policy is not called, because the reaper deletes
diff --git a/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_serviceinstance.py b/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_serviceinstance.py
index be5461f..57630e1 100644
--- a/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_serviceinstance.py
+++ b/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_serviceinstance.py
@@ -300,10 +300,12 @@
)
with patch.object(self.policy, "get_subscriber") as get_subscriber, \
+ patch.object(self.policy, "update_onu") as update_onu, \
patch.object(self.policy, "update_subscriber") as update_subscriber:
get_subscriber.return_value = None
self.policy.handle_update(self.si)
+ update_onu.assert_called_with(sub.onu_device, "DISABLED");
self.assertEqual(update_subscriber.call_count, 0)
get_subscriber.return_value = sub