From 0833afb6de2f636064f930661b37ba07f8d8b6c8 Mon Sep 17 00:00:00 2001 From: Kent Wu Date: Thu, 16 May 2019 16:05:31 -0700 Subject: [PATCH] Add a try block while doing the purging This is to work around an issue that a broken pipe exception might get thrown when we invoke this purge through neutron client API. We don't have this issue when its invoked thru CLI. Change-Id: I94d6ab8658efc08dd5be8dbd348e098453e71b39 --- gbpclient/gbp/v2_0/purge.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gbpclient/gbp/v2_0/purge.py b/gbpclient/gbp/v2_0/purge.py index 2475dc9..f752d6d 100644 --- a/gbpclient/gbp/v2_0/purge.py +++ b/gbpclient/gbp/v2_0/purge.py @@ -69,9 +69,16 @@ class Purge(n_purge.Purge): if self.total_resources > 0: percent_complete = (self.deleted_resources / float(self.total_resources)) * 100 - sys.stdout.write("\rPurging resources: %d%% complete." % - percent_complete) - sys.stdout.flush() + try: + sys.stdout.write("\rPurging resources: %d%% complete." % + percent_complete) + sys.stdout.flush() + except Exception: + # A broken pipe IOError exception might get thrown if + # invoked from our MD's keystone tenant delete handler + # code. We should just ignore that then continue to + # purge the rest of the resources. + continue return (deleted, failed, failures) def take_action(self, parsed_args):