6d6ca464ccc22b0b70a56526c19c60890e3329be
[plstackapi.git] / planetstack / openstack_observer / steps / sync_slices.py
1 import os
2 import base64
3 from netaddr import IPAddress, IPNetwork
4 from django.db.models import F, Q
5 from planetstack.config import Config
6 from observer.openstacksyncstep import OpenStackSyncStep
7 from core.models.slice import Slice, SliceDeployment
8 from util.logger import Logger, logging
9 from observer.steps.sync_slice_deployments import *
10
11 logger = Logger(level=logging.INFO)
12
13 class SyncSlices(OpenStackSyncStep):
14     provides=[Slice]
15     requested_interval=0
16
17     def sync_record(self, slice):
18         for slice_deployment in SliceDeployment.objects.filter(slice=slice):
19             # bump the 'updated' timestamp and trigger observer to update
20             # slice across all deployments 
21             slice_deployment.save()    
22
23     def delete_record(self, slice):
24         slice_deployment_deleter = SyncSliceDeployment().delete_record
25         for slice_deployment in SliceDeployment.objects.filter(slice=slice):
26             try:
27                 slice_deployment_deleter(slice_deployment)
28             except Exception,e:
29                 logger.log_exc("Failed to delete slice_deployment %s" % slice_deployment) 
30                 raise e