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, SliceDeployments from util.logger import Logger, logging from observer.steps.sync_slice_deployments import * logger = Logger(level=logging.INFO) class SyncSlices(OpenStackSyncStep): provides=[Slice] requested_interval=0 def sync_record(self, slice): for slice_deployment in SliceDeployments.objects.filter(slice=slice): # bump the 'updated' timestamp and trigger observer to update # slice across all deployments slice_deployment.save() def delete_record(self, slice): slice_deployment_deleter = SyncSliceDeployments().delete_record for slice_deployment in SliceDeployments.objects.filter(slice=slice): try: slice_deployment_deleter(slice_deployment) except Exception,e: logger.log_exc("Failed to delete slice_deployment %s" % slice_deployment) raise e