swift-(account|container)-info: tolerate LockTimeouts
I'm not really clear on why a sqlite3.OperationalError should cause us to retry with stale_reads_ok=True, but swift.common.exceptions.LockTimeout *definitely* should. Change-Id: I707dec1d11b8db80bc8fbee30662b319bf10d6a5
This commit is contained in:
parent
bbf5e5c7f3
commit
5b68eb5396
@ -16,6 +16,7 @@ import sys
|
|||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
|
|
||||||
from swift.cli.info import print_info, InfoSystemExit
|
from swift.cli.info import print_info, InfoSystemExit
|
||||||
|
from swift.common.exceptions import LockTimeout
|
||||||
|
|
||||||
|
|
||||||
def run_print_info(args, opts):
|
def run_print_info(args, opts):
|
||||||
@ -23,7 +24,7 @@ def run_print_info(args, opts):
|
|||||||
print_info('account', *args, **opts)
|
print_info('account', *args, **opts)
|
||||||
except InfoSystemExit:
|
except InfoSystemExit:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
except sqlite3.OperationalError as e:
|
except (sqlite3.OperationalError, LockTimeout) as e:
|
||||||
if not opts.get('stale_reads_ok'):
|
if not opts.get('stale_reads_ok'):
|
||||||
opts['stale_reads_ok'] = True
|
opts['stale_reads_ok'] = True
|
||||||
print('Warning: Possibly Stale Data')
|
print('Warning: Possibly Stale Data')
|
||||||
|
@ -16,6 +16,7 @@ import sys
|
|||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
|
|
||||||
from swift.cli.info import print_info, InfoSystemExit
|
from swift.cli.info import print_info, InfoSystemExit
|
||||||
|
from swift.common.exceptions import LockTimeout
|
||||||
|
|
||||||
|
|
||||||
def run_print_info(args, opts):
|
def run_print_info(args, opts):
|
||||||
@ -23,7 +24,7 @@ def run_print_info(args, opts):
|
|||||||
print_info('container', *args, **opts)
|
print_info('container', *args, **opts)
|
||||||
except InfoSystemExit:
|
except InfoSystemExit:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
except sqlite3.OperationalError as e:
|
except (sqlite3.OperationalError, LockTimeout) as e:
|
||||||
if not opts.get('stale_reads_ok'):
|
if not opts.get('stale_reads_ok'):
|
||||||
opts['stale_reads_ok'] = True
|
opts['stale_reads_ok'] = True
|
||||||
print('Warning: Possibly Stale Data')
|
print('Warning: Possibly Stale Data')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user