Slice deleter, refactored
[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, SliceDeployments
8 from util.logger import Logger, logging
9
10 logger = Logger(level=logging.INFO)
11
12 class SyncSlices(OpenStackSyncStep):
13     provides=[Slice]
14     requested_interval=0
15
16     def sync_record(self, slice):
17         for slice_deployment in SliceDeployments.objects.filter(slice=slice):
18             # bump the 'updated' timestamp and trigger observer to update
19             # slice across all deployments 
20             slice_deployment.save()    
21
22     def delete_record(self, slice):
23         slice_deployment_deleter = SliceDeploymentDeleter()
24         for slice_deployment in SliceDeployments.objects.filter(slice=slice):
25             try:
26                 slice_deployment_deleter(slice_deployment.id)
27             except Exception,e:
28                 logger.log_exc("Failed to delete slice_deployment %s" % slice_deployment) 
29                 raise e