def remove_test_data(swift, prefix): swift_fs = SwiftFileSystem(swift) time.sleep(2) containers = yield swift_fs.get_account_listing() sem = defer.DeferredSemaphore(200) for container in containers: if container.startswith(prefix): while True: objs = yield list_all_objects(swift, container) dl = [] for obj in objs: dl.append(sem.run( swift.delete_object, container, obj['name'])) # Wait till all objects are done deleting yield DeferredList(dl, fireOnOneErrback=True) try: # Delete the container yield swift.delete_container(container) break except Conflict: # Retry listing if there are still objects # (this can happen a lot since the container server isn't # guarenteed to be consistent) pass
def remove_test_data(swift, prefix): swift_fs = SwiftFileSystem(swift) time.sleep(2) containers = yield swift_fs.get_account_listing() sem = defer.DeferredSemaphore(200) for container in containers: if container.startswith(prefix): while True: objs = yield list_all_objects(swift, container) dl = [] for obj in objs: dl.append(sem.run( swift.delete_object, container, obj['name'])) # Wait till all objects are done deleting yield DeferredList(dl, fireOnOneErrback=True) try: # Delete the container yield swift.delete_container(container) break except Conflict: # Retry listing if there are still objects # (this can happen a lot since the container server isn't # guarenteed to be consistent) pass