CORD-1244 Modify model_policies for OpenStack synchronizer
Change-Id: I8e946e3ca665689bd0449b80d87fe4bb29afde99
diff --git a/xos/synchronizer/model_policies/model_policy_Site.py b/xos/synchronizer/model_policies/model_policy_Site.py
index 07fe6f3..e0e288d 100644
--- a/xos/synchronizer/model_policies/model_policy_Site.py
+++ b/xos/synchronizer/model_policies/model_policy_Site.py
@@ -1,14 +1,22 @@
from synchronizers.new_base.modelaccessor import *
+from synchronizers.new_base.policy import Policy
-def handle(site):
- # site = Site.get(site_id)
- # make sure site has a ControllerSite record for each controller
- ctrl_sites = ControllerSite.objects.filter(site_id=site.id)
- existing_controllers = [cs.controller for cs in ctrl_sites]
- existing_controller_ids = [c.id for c in existing_controllers]
+class SitePolicy(Policy):
+ model_name = "Site"
- all_controllers = Controller.objects.all()
- for ctrl in all_controllers:
- if ctrl.id not in existing_controller_ids:
- ctrl_site = ControllerSite(controller=ctrl, site=site)
- ctrl_site.save()
+ def handle_create(self, site):
+ return self.handle_update(site)
+
+ def handle_update(self, site):
+ # site = Site.get(site_id)
+ # make sure site has a ControllerSite record for each controller
+ ctrl_sites = ControllerSite.objects.filter(site_id=site.id)
+ existing_controllers = [cs.controller for cs in ctrl_sites]
+ existing_controller_ids = [c.id for c in existing_controllers]
+
+ all_controllers = Controller.objects.all()
+ for ctrl in all_controllers:
+ if ctrl.id not in existing_controller_ids:
+ ctrl_site = ControllerSite(controller=ctrl, site=site)
+ ctrl_site.save()
+