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__)
|
||||
|
||||
|
||||
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):
|
||||
"""Return a dictionary containing `arg_name` if `value` is set."""
|
||||
kwargs = {}
|
||||
@ -231,6 +289,36 @@ def format_list_of_dicts(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):
|
||||
"""Returns the client class for the requested API version
|
||||
|
||||
@ -501,91 +589,3 @@ def wait_for_status(status_f,
|
||||
callback(progress)
|
||||
time.sleep(sleep_time)
|
||||
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