diff --git a/etc/glance-api.conf b/etc/glance-api.conf index 70b5f2328c..b973f456f2 100644 --- a/etc/glance-api.conf +++ b/etc/glance-api.conf @@ -56,9 +56,6 @@ swift_store_create_container_on_put = False # Turn on/off delayed delete delayed_delete = False -# Delayed delete time in seconds -delayed_delete_time = 43200 - [pipeline:glance-api] pipeline = versionnegotiation apiv1app diff --git a/glance/api/v1/images.py b/glance/api/v1/images.py index 23d1c5033d..83e3097901 100644 --- a/glance/api/v1/images.py +++ b/glance/api/v1/images.py @@ -482,8 +482,6 @@ class Controller(wsgi.Controller): # to delete the image if the backend doesn't yet store it. # See https://bugs.launchpad.net/glance/+bug/747799 if image['location']: - registry.update_image_metadata(self.options, id, - {'status': 'pending_delete'}) schedule_delete_from_backend(image['location'], self.options, id) registry.delete_image_metadata(self.options, id) diff --git a/glance/store/__init__.py b/glance/store/__init__.py index 64b845354e..483f9d6ac5 100644 --- a/glance/store/__init__.py +++ b/glance/store/__init__.py @@ -164,11 +164,15 @@ def schedule_delete_from_backend(uri, options, id, **kwargs): Given a uri and a time, schedule the deletion of an image. Time may be 0 in which case we delete immediatly (or if it is less than 1 ;). """ - time = config.get_option(options, 'delayed_delete_time', default=1) use_delay = config.get_option(options, 'delayed_delete', default=False) - if time < 1 or not use_delay: - time = 1 + if not use_delay: + registry.update_image_metadata(self.options, id, + {'status': 'deleted'}) + try: + return delete_from_backend(uri, **kwargs) + except (UnsupportedBackend, exception.NotFound): + msg = "Failed to delete image from store (%s). " + logger.error(msg % uri) - scheduled_delete = greenthread.spawn_after(time, delete_from_backend, uri, - **kwargs) - scheduled_delete.link(_log_scheduled_delete, id, options, uri) + registry.update_image_metadata(self.options, id, + {'status': 'pending_delete'})