SEBA-301 Only save changed state
Change-Id: I177e2d6eee878551cc2236deabfddc920a553868
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 32d0eaa..d3195e0 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
@@ -54,7 +54,7 @@
if subscriber:
self.update_subscriber(subscriber, si)
- si.save()
+ si.save_changed_fields()
def validate_onu_state(self, si):
[valid, message] = AttHelpers.validate_onu(si)
@@ -73,7 +73,7 @@
else:
self.logger.debug("MODEL_POLICY: setting ONUDevice [%s] admin_state to %s" % (serial_number, admin_state))
onu.admin_state = admin_state
- onu.save(always_update_timestamp=True)
+ onu.save_changed_fields(always_update_timestamp=True)
def get_subscriber(self, serial_number):
try:
@@ -109,7 +109,7 @@
if si.ip_address and si.mac_address:
subscriber.ip_address = si.ip_address
subscriber.mac_address = si.mac_address
- subscriber.save(always_update_timestamp=True)
+ subscriber.save_changed_fields(always_update_timestamp=True)
else:
self.logger.debug("MODEL_POLICY: subscriber status has not changed", onu_device=subscriber.onu_device,
authentication_state=si.authentication_state, subscriber_status=subscriber.status)
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 29f4c89..ca52e01 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
@@ -41,7 +41,7 @@
self.logger.debug(
"MODEL_POLICY: activating AttWorkflowDriverServiceInstance because of change in the whitelist", si=si, onu_state=si.onu_state, authentication_state=si.authentication_state)
- si.save(update_fields=["no_sync", "updated", "onu_state", "status_message", "authentication_state"], always_update_timestamp=True)
+ si.save_changed_fields(always_update_timestamp=True)
def handle_update(self, whitelist):
self.logger.debug("MODEL_POLICY: handle_update for AttWorkflowDriverWhiteListEntry", whitelist=whitelist)
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 afa4183..306094c 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
@@ -88,7 +88,7 @@
self.policy.update_onu("brcm1234", "DISABLED")
self.assertEqual(onu.admin_state, "DISABLED")
- onu_save.assert_called_with(always_update_timestamp=True)
+ onu_save.assert_called_with(always_update_timestamp=True, update_fields=['admin_state', 'serial_number', 'updated'])
def test_enable_onu(self):
diff --git a/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_whitelistentry.py b/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_whitelistentry.py
index 369ef70..c6e8818 100644
--- a/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_whitelistentry.py
+++ b/xos/synchronizer/model_policies/test_model_policy_att_workflow_driver_whitelistentry.py
@@ -83,7 +83,7 @@
self.policy.validate_onu_state(si)
save_si.assert_called_once()
- save_si.assert_called_with(always_update_timestamp=True, update_fields=['no_sync', 'updated', 'onu_state', 'status_message', 'authentication_state'])
+ save_si.assert_called_with(always_update_timestamp=True, update_fields=['onu_state', 'serial_number', 'status_message', 'updated'])
self.assertEqual("valid onu", si.status_message)
@@ -97,7 +97,7 @@
self.policy.validate_onu_state(si)
save_si.assert_called_once()
- save_si.assert_called_with(always_update_timestamp=True, update_fields=['no_sync', 'updated', 'onu_state', 'status_message', 'authentication_state'])
+ save_si.assert_called_with(always_update_timestamp=True, update_fields=['authentication_state', 'onu_state', 'serial_number', 'status_message', 'updated'])
self.assertEqual("invalid onu", si.status_message)