all delayed deletes will be going through a new service, if delayed_delete is False, then delete it right away, otherwise set it to pending_delete

This commit is contained in:
Jason Kölker 2011-06-09 11:50:35 -05:00
parent bd13621450
commit f8d10a4bdf
3 changed files with 10 additions and 11 deletions

@ -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

@ -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)

@ -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'})