Nit: Reorder some util methods in alphabetic order
Change-Id: Iab7fdd62c658a6238c9ac3fa1966b12a1ce380c2
This commit is contained in:
parent
8d3333cc3c
commit
6face4c874
176
osc_lib/utils.py
176
osc_lib/utils.py
@ -31,6 +31,64 @@ from osc_lib.i18n import _
|
|||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def backward_compat_col_lister(column_headers, columns, column_map):
|
||||||
|
"""Convert the column headers to keep column backward compatibility.
|
||||||
|
|
||||||
|
Replace the new column name of column headers by old name, so that
|
||||||
|
the column headers can continue to support to show the old column name by
|
||||||
|
--column/-c option with old name, like: volume list -c 'Display Name'
|
||||||
|
|
||||||
|
:param column_headers: The column headers to be output in list command.
|
||||||
|
:param columns: The columns to be output.
|
||||||
|
:param column_map: The key of map is old column name, the value is new
|
||||||
|
column name, like: {'old_col': 'new_col'}
|
||||||
|
"""
|
||||||
|
if not columns:
|
||||||
|
return column_headers
|
||||||
|
# NOTE(RuiChen): column_headers may be a tuple in some code, like:
|
||||||
|
# volume v1, convert it to a list in order to change
|
||||||
|
# the column name.
|
||||||
|
column_headers = list(column_headers)
|
||||||
|
for old_col, new_col in six.iteritems(column_map):
|
||||||
|
if old_col in columns:
|
||||||
|
LOG.warning(_('The column "%(old_column)s" was deprecated, '
|
||||||
|
'please use "%(new_column)s" replace.') % {
|
||||||
|
'old_column': old_col,
|
||||||
|
'new_column': new_col}
|
||||||
|
)
|
||||||
|
if new_col in column_headers:
|
||||||
|
column_headers[column_headers.index(new_col)] = old_col
|
||||||
|
return column_headers
|
||||||
|
|
||||||
|
|
||||||
|
def backward_compat_col_showone(show_object, columns, column_map):
|
||||||
|
"""Convert the output object to keep column backward compatibility.
|
||||||
|
|
||||||
|
Replace the new column name of output object by old name, so that
|
||||||
|
the object can continue to support to show the old column name by
|
||||||
|
--column/-c option with old name, like: volume show -c 'display_name'
|
||||||
|
|
||||||
|
:param show_object: The object to be output in create/show commands.
|
||||||
|
:param columns: The columns to be output.
|
||||||
|
:param column_map: The key of map is old column name, the value is new
|
||||||
|
column name, like: {'old_col': 'new_col'}
|
||||||
|
"""
|
||||||
|
if not columns:
|
||||||
|
return show_object
|
||||||
|
|
||||||
|
show_object = copy.deepcopy(show_object)
|
||||||
|
for old_col, new_col in six.iteritems(column_map):
|
||||||
|
if old_col in columns:
|
||||||
|
LOG.warning(_('The column "%(old_column)s" was deprecated, '
|
||||||
|
'please use "%(new_column)s" replace.') % {
|
||||||
|
'old_column': old_col,
|
||||||
|
'new_column': new_col}
|
||||||
|
)
|
||||||
|
if new_col in show_object:
|
||||||
|
show_object.update({old_col: show_object.pop(new_col)})
|
||||||
|
return show_object
|
||||||
|
|
||||||
|
|
||||||
def build_kwargs_dict(arg_name, value):
|
def build_kwargs_dict(arg_name, value):
|
||||||
"""Return a dictionary containing `arg_name` if `value` is set."""
|
"""Return a dictionary containing `arg_name` if `value` is set."""
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
@ -231,6 +289,36 @@ def format_list_of_dicts(data):
|
|||||||
return '\n'.join(format_dict(i) for i in data)
|
return '\n'.join(format_dict(i) for i in data)
|
||||||
|
|
||||||
|
|
||||||
|
def format_size(size):
|
||||||
|
"""Display size of a resource in a human readable format
|
||||||
|
|
||||||
|
:param string size:
|
||||||
|
The size of the resource in bytes.
|
||||||
|
|
||||||
|
:returns:
|
||||||
|
Returns the size in human-friendly format
|
||||||
|
:rtype string:
|
||||||
|
|
||||||
|
This function converts the size (provided in bytes) of a resource
|
||||||
|
into a human-friendly format such as K, M, G, T, P, E, Z
|
||||||
|
"""
|
||||||
|
|
||||||
|
suffix = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z']
|
||||||
|
base = 1000.0
|
||||||
|
index = 0
|
||||||
|
|
||||||
|
if size is None:
|
||||||
|
size = 0
|
||||||
|
while size >= base:
|
||||||
|
index = index + 1
|
||||||
|
size = size / base
|
||||||
|
|
||||||
|
padded = '%.1f' % size
|
||||||
|
stripped = padded.rstrip('0').rstrip('.')
|
||||||
|
|
||||||
|
return '%s%s' % (stripped, suffix[index])
|
||||||
|
|
||||||
|
|
||||||
def get_client_class(api_name, version, version_map):
|
def get_client_class(api_name, version, version_map):
|
||||||
"""Returns the client class for the requested API version
|
"""Returns the client class for the requested API version
|
||||||
|
|
||||||
@ -501,91 +589,3 @@ def wait_for_status(status_f,
|
|||||||
callback(progress)
|
callback(progress)
|
||||||
time.sleep(sleep_time)
|
time.sleep(sleep_time)
|
||||||
return retval
|
return retval
|
||||||
|
|
||||||
|
|
||||||
def format_size(size):
|
|
||||||
"""Display size of a resource in a human readable format
|
|
||||||
|
|
||||||
:param string size:
|
|
||||||
The size of the resource in bytes.
|
|
||||||
|
|
||||||
:returns:
|
|
||||||
Returns the size in human-friendly format
|
|
||||||
:rtype string:
|
|
||||||
|
|
||||||
This function converts the size (provided in bytes) of a resource
|
|
||||||
into a human-friendly format such as K, M, G, T, P, E, Z
|
|
||||||
"""
|
|
||||||
|
|
||||||
suffix = ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z']
|
|
||||||
base = 1000.0
|
|
||||||
index = 0
|
|
||||||
|
|
||||||
if size is None:
|
|
||||||
size = 0
|
|
||||||
while size >= base:
|
|
||||||
index = index + 1
|
|
||||||
size = size / base
|
|
||||||
|
|
||||||
padded = '%.1f' % size
|
|
||||||
stripped = padded.rstrip('0').rstrip('.')
|
|
||||||
|
|
||||||
return '%s%s' % (stripped, suffix[index])
|
|
||||||
|
|
||||||
|
|
||||||
def backward_compat_col_lister(column_headers, columns, column_map):
|
|
||||||
"""Convert the column headers to keep column backward compatibility.
|
|
||||||
|
|
||||||
Replace the new column name of column headers by old name, so that
|
|
||||||
the column headers can continue to support to show the old column name by
|
|
||||||
--column/-c option with old name, like: volume list -c 'Display Name'
|
|
||||||
|
|
||||||
:param column_headers: The column headers to be output in list command.
|
|
||||||
:param columns: The columns to be output.
|
|
||||||
:param column_map: The key of map is old column name, the value is new
|
|
||||||
column name, like: {'old_col': 'new_col'}
|
|
||||||
"""
|
|
||||||
if not columns:
|
|
||||||
return column_headers
|
|
||||||
# NOTE(RuiChen): column_headers may be a tuple in some code, like:
|
|
||||||
# volume v1, convert it to a list in order to change
|
|
||||||
# the column name.
|
|
||||||
column_headers = list(column_headers)
|
|
||||||
for old_col, new_col in six.iteritems(column_map):
|
|
||||||
if old_col in columns:
|
|
||||||
LOG.warning(_('The column "%(old_column)s" was deprecated, '
|
|
||||||
'please use "%(new_column)s" replace.') % {
|
|
||||||
'old_column': old_col,
|
|
||||||
'new_column': new_col}
|
|
||||||
)
|
|
||||||
if new_col in column_headers:
|
|
||||||
column_headers[column_headers.index(new_col)] = old_col
|
|
||||||
return column_headers
|
|
||||||
|
|
||||||
|
|
||||||
def backward_compat_col_showone(show_object, columns, column_map):
|
|
||||||
"""Convert the output object to keep column backward compatibility.
|
|
||||||
|
|
||||||
Replace the new column name of output object by old name, so that
|
|
||||||
the object can continue to support to show the old column name by
|
|
||||||
--column/-c option with old name, like: volume show -c 'display_name'
|
|
||||||
|
|
||||||
:param show_object: The object to be output in create/show commands.
|
|
||||||
:param columns: The columns to be output.
|
|
||||||
:param column_map: The key of map is old column name, the value is new
|
|
||||||
column name, like: {'old_col': 'new_col'}
|
|
||||||
"""
|
|
||||||
if not columns:
|
|
||||||
return show_object
|
|
||||||
|
|
||||||
show_object = copy.deepcopy(show_object)
|
|
||||||
for old_col, new_col in six.iteritems(column_map):
|
|
||||||
if old_col in columns:
|
|
||||||
LOG.warning(_('The column "%(old_column)s" was deprecated, '
|
|
||||||
'please use "%(new_column)s" replace.') % {
|
|
||||||
'old_column': old_col,
|
|
||||||
'new_column': new_col}
|
|
||||||
)
|
|
||||||
if new_col in show_object:
|
|
||||||
show_object.update({old_col: show_object.pop(new_col)})
|
|
||||||
return show_object
|
|
||||||
|
Loading…
Reference in New Issue
Block a user