import os import base64 from netaddr import IPAddress, IPNetwork from django.db.models import F, Q from planetstack.config import Config from observer.openstacksyncstep import OpenStackSyncStep from core.models.slice import Slice, ControllerSlice from util.logger import Logger, logging from observer.steps.sync_controller_slices import * logger = Logger(level=logging.INFO) class SyncSlices(OpenStackSyncStep): provides=[Slice] requested_interval=0 def sync_record(self, slice): for controller_slice in ControllerSlice.objects.filter(slice=slice): # bump the 'updated' timestamp and trigger observer to update # slice across all controllers controller_slice.save() def delete_record(self, slice): controller_slice_deleter = SyncControllerSlice().delete_record for controller_slice in ControllerSlice.objects.filter(slice=slice): try: controller_slice_deleter(controller_slice) except Exception,e: logger.log_exc("Failed to delete controller_slice %s" % controller_slice) raise e