From 6face4c8741cbfbde2317022fe61ff7c3c64d12a Mon Sep 17 00:00:00 2001 From: Huanxuan Ao Date: Fri, 10 Mar 2017 12:25:04 +0800 Subject: [PATCH] Nit: Reorder some util methods in alphabetic order Change-Id: Iab7fdd62c658a6238c9ac3fa1966b12a1ce380c2 --- osc_lib/utils.py | 176 +++++++++++++++++++++++------------------------ 1 file changed, 88 insertions(+), 88 deletions(-) diff --git a/osc_lib/utils.py b/osc_lib/utils.py index 9a5555a..083a941 100644 --- a/osc_lib/utils.py +++ b/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