From: Sapan Bhatia Date: Wed, 23 Jul 2014 12:51:18 +0000 (-0400) Subject: Networks deleter for OpenStack X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=c8a72f0a8070ff52efcc818397e1abe5b9ba4b75;p=plstackapi.git Networks deleter for OpenStack --- diff --git a/planetstack/openstack_observer/steps/sync_networks.py b/planetstack/openstack_observer/steps/sync_networks.py index fd42f4e..552f03c 100644 --- a/planetstack/openstack_observer/steps/sync_networks.py +++ b/planetstack/openstack_observer/steps/sync_networks.py @@ -12,9 +12,21 @@ class SyncNetworks(OpenStackSyncStep): provides=[Network] requested_interval = 0 - def fetch_pending(self): - return Network.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) + def fetch_pending(self, deleted): + if (not deleted): + objs = Network.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) + else: + objs = Network.deleted_objects.all() def sync_record(self, network): network.save() + def delete_record(self, network): + network_deployment_deleter = NetworkDeploymentDeleter() + for network_deployment in NetworkDeployments.objects.filter(network=network): + try: + network_deployment_deleter(network_deployment.id) + except Exeption,e: + logger.log_exc("Failed to delete network deployment %s" % network_deployment) + raise e + network.delete()