blob: 867b4c41df35e7a0c84166746bb9e93b2d085e3c [file] [log] [blame]
Scott Bakeraf599eb2017-03-21 12:43:26 -07001from synchronizers.new_base.modelaccessor import *
Scott Baker46a3ee92017-05-30 16:44:56 -07002from synchronizers.new_base.policy import Policy
Scott Bakeraf599eb2017-03-21 12:43:26 -07003
Scott Baker46a3ee92017-05-30 16:44:56 -07004class ControllerSlicePolicy(Policy):
5 model_name = "ControllerSlice"
6
7 def handle_create(self, controller_slice):
8 return self.handle_update(controller_slice)
9
10 def handle_update(self, controller_slice):
Scott Bakerb63ea792016-08-11 10:24:48 -070011 my_status_code = int(controller_slice.backend_status[0])
12 try:
13 his_status_code = int(controller_slice.slice.backend_status[0])
14 except:
15 his_status_code = 0
16
17 fields = []
18 if (my_status_code not in [0,his_status_code]):
19 controller_slice.slice.backend_status = controller_slice.backend_status
20 fields+=['backend_status']
21
22 if (controller_slice.backend_register != controller_slice.slice.backend_register):
23 controller_slice.slice.backend_register = controller_slice.backend_register
24 fields+=['backend_register']
25
26 controller_slice.slice.save(update_fields = fields)