CORD-1244 Modify model_policies for OpenStack synchronizer
Change-Id: I8e946e3ca665689bd0449b80d87fe4bb29afde99
diff --git a/xos/synchronizer/model_policies/model_policy_Image.py b/xos/synchronizer/model_policies/model_policy_Image.py
index 153b6b3..37936c1 100644
--- a/xos/synchronizer/model_policies/model_policy_Image.py
+++ b/xos/synchronizer/model_policies/model_policy_Image.py
@@ -1,17 +1,24 @@
from synchronizers.new_base.modelaccessor import *
+from synchronizers.new_base.policy import Policy
-def handle(image):
- if (image.kind == "container"):
- # container images do not get instantiated
- return
+class ImagePolicy(Policy):
+ model_name = "Image"
- controller_images = ControllerImages.objects.filter(image_id=image.id)
- existing_controllers = [cs.controller for cs in controller_images]
- existing_controller_ids = [c.id for c in existing_controllers]
+ def handle_create(self, image):
+ return self.handle_update(image)
- all_controllers = Controller.objects.all()
- for controller in all_controllers:
- if controller.id not in existing_controller_ids:
- sd = ControllerImages(image=image, controller=controller)
- sd.save()
+ def handle_update(self, image):
+ if (image.kind == "container"):
+ # container images do not get instantiated
+ return
+
+ controller_images = ControllerImages.objects.filter(image_id=image.id)
+ existing_controllers = [cs.controller for cs in controller_images]
+ existing_controller_ids = [c.id for c in existing_controllers]
+
+ all_controllers = Controller.objects.all()
+ for controller in all_controllers:
+ if controller.id not in existing_controller_ids:
+ sd = ControllerImages(image=image, controller=controller)
+ sd.save()