Revision b4f69041 kamaki/cli/commands/__init__.py
b/kamaki/cli/commands/__init__.py | ||
---|---|---|
38 | 38 |
log = get_logger(__name__) |
39 | 39 |
|
40 | 40 |
|
41 |
def DontRaiseKeyError(foo): |
|
42 |
def wrap(*args, **kwargs): |
|
43 |
try: |
|
44 |
return foo(*args, **kwargs) |
|
45 |
except KeyError: |
|
46 |
return None |
|
47 |
return wrap |
|
48 |
|
|
49 |
|
|
50 |
def addLogSettings(foo): |
|
51 |
def wrap(self, *args, **kwargs): |
|
52 |
try: |
|
53 |
return foo(self, *args, **kwargs) |
|
54 |
finally: |
|
55 |
self._set_log_params() |
|
56 |
self._update_max_threads |
|
57 |
return wrap |
|
58 |
|
|
59 |
|
|
41 | 60 |
class _command_init(object): |
42 | 61 |
|
43 | 62 |
def __init__(self, arguments={}, auth_base=None, cloud=None): |
... | ... | |
55 | 74 |
self.auth_base = auth_base or getattr(self, 'auth_base', None) |
56 | 75 |
self.cloud = cloud or getattr(self, 'cloud', None) |
57 | 76 |
|
77 |
@DontRaiseKeyError |
|
78 |
def _custom_url(self, service): |
|
79 |
return self.config.get_remote(self.cloud, '%s_url' % service) |
|
80 |
|
|
81 |
@DontRaiseKeyError |
|
82 |
def _custom_token(self, service): |
|
83 |
return self.config.get_remote(self.cloud, '%s_token' % service) |
|
84 |
|
|
85 |
@DontRaiseKeyError |
|
86 |
def _custom_type(self, service): |
|
87 |
return self.config.get_remote(self.cloud, '%s_type' % service) |
|
88 |
|
|
89 |
@DontRaiseKeyError |
|
90 |
def _custom_version(self, service): |
|
91 |
return self.config.get_remote(self.cloud, '%s_version' % service) |
|
92 |
|
|
58 | 93 |
def _set_log_params(self): |
59 | 94 |
try: |
60 | 95 |
self.client.LOG_TOKEN, self.client.LOG_DATA = ( |
... | ... | |
65 | 100 |
'%s\n defaults for token and data logging are off' % e) |
66 | 101 |
|
67 | 102 |
def _update_max_threads(self): |
68 |
try:
|
|
103 |
if getattr(self, 'client', None):
|
|
69 | 104 |
max_threads = int(self['config'].get_global('max_threads')) |
70 | 105 |
assert max_threads > 0 |
71 | 106 |
self.client.MAX_THREADS = max_threads |
72 |
except Exception as e: |
|
73 |
log.warning('Failed to read custom thread settings: ' |
|
74 |
'%s, use default max threads (%s)' % ( |
|
75 |
e, self.client.MAX_THREADS)) |
|
76 | 107 |
|
77 | 108 |
def _safe_progress_bar(self, msg, arg='progress_bar'): |
78 | 109 |
"""Try to get a progress bar, but do not raise errors""" |
Also available in: Unified diff