sync with oslo-incubator
- py3 compatibility fixes - Only pass non-None sortby to PrettyTable.get_string fix synced with commit-id: 0d2546b228f13a42355bc54e82256bf17a2eb478 Change-Id: Ic70eba1a10339ad5407541446cd37c9229836965
This commit is contained in:
		@@ -1,5 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2013 OpenStack Foundation
 | 
			
		||||
# All Rights Reserved.
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2013 OpenStack Foundation
 | 
			
		||||
# Copyright 2013 Spanish National Research Council.
 | 
			
		||||
# All Rights Reserved.
 | 
			
		||||
@@ -23,8 +21,8 @@ import abc
 | 
			
		||||
import argparse
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
import six
 | 
			
		||||
 | 
			
		||||
import six
 | 
			
		||||
from stevedore import extension
 | 
			
		||||
 | 
			
		||||
from ceilometerclient.openstack.common.apiclient import exceptions
 | 
			
		||||
@@ -76,7 +74,7 @@ def load_plugin(auth_system):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def load_plugin_from_args(args):
 | 
			
		||||
    """Load requred plugin and populate it with options.
 | 
			
		||||
    """Load required plugin and populate it with options.
 | 
			
		||||
 | 
			
		||||
    Try to guess auth system if it is not specified. Systems are tried in
 | 
			
		||||
    alphabetical order.
 | 
			
		||||
@@ -91,7 +89,7 @@ def load_plugin_from_args(args):
 | 
			
		||||
        plugin.sufficient_options()
 | 
			
		||||
        return plugin
 | 
			
		||||
 | 
			
		||||
    for plugin_auth_system in sorted(_discovered_plugins.iterkeys()):
 | 
			
		||||
    for plugin_auth_system in sorted(six.iterkeys(_discovered_plugins)):
 | 
			
		||||
        plugin_class = _discovered_plugins[plugin_auth_system]
 | 
			
		||||
        plugin = plugin_class()
 | 
			
		||||
        plugin.parse_opts(args)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2010 Jacob Kaplan-Moss
 | 
			
		||||
# Copyright 2011 OpenStack Foundation
 | 
			
		||||
# Copyright 2012 Grid Dynamics
 | 
			
		||||
@@ -26,9 +24,10 @@ Base utilities to build API operation managers and objects on top of.
 | 
			
		||||
# pylint: disable=E1102
 | 
			
		||||
 | 
			
		||||
import abc
 | 
			
		||||
import six
 | 
			
		||||
import urllib
 | 
			
		||||
 | 
			
		||||
import six
 | 
			
		||||
 | 
			
		||||
from ceilometerclient.openstack.common.apiclient import exceptions
 | 
			
		||||
from ceilometerclient.openstack.common import strutils
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2010 Jacob Kaplan-Moss
 | 
			
		||||
# Copyright 2011 OpenStack Foundation
 | 
			
		||||
# Copyright 2011 Piston Cloud Computing, Inc.
 | 
			
		||||
@@ -52,7 +50,7 @@ class HTTPClient(object):
 | 
			
		||||
      services (e.g., for compute and image clients);
 | 
			
		||||
    - reissue authentication request for expired tokens;
 | 
			
		||||
    - encode/decode JSON bodies;
 | 
			
		||||
    - raise exeptions on HTTP errors;
 | 
			
		||||
    - raise exceptions on HTTP errors;
 | 
			
		||||
    - pluggable authentication;
 | 
			
		||||
    - store authentication information in a keyring;
 | 
			
		||||
    - store time spent for requests;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2010 Jacob Kaplan-Moss
 | 
			
		||||
# Copyright 2011 Nebula, Inc.
 | 
			
		||||
# Copyright 2013 Alessio Ababilov
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2013 OpenStack Foundation
 | 
			
		||||
# All Rights Reserved.
 | 
			
		||||
#
 | 
			
		||||
@@ -27,11 +25,11 @@ places where actual behavior differs from the spec.
 | 
			
		||||
# pylint: disable=W0102
 | 
			
		||||
 | 
			
		||||
import json
 | 
			
		||||
import urlparse
 | 
			
		||||
 | 
			
		||||
import requests
 | 
			
		||||
 | 
			
		||||
from ceilometerclient.openstack.common.apiclient import client
 | 
			
		||||
from ceilometerclient.openstack.common.py3kcompat import urlutils
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def assert_has_keys(dct, required=[], optional=[]):
 | 
			
		||||
@@ -146,7 +144,7 @@ class FakeHTTPClient(client.HTTPClient):
 | 
			
		||||
                                 "text": fixture[1]})
 | 
			
		||||
 | 
			
		||||
        # Call the method
 | 
			
		||||
        args = urlparse.parse_qsl(urlparse.urlparse(url)[4])
 | 
			
		||||
        args = urlutils.parse_qsl(urlutils.urlparse(url)[4])
 | 
			
		||||
        kwargs.update(args)
 | 
			
		||||
        munged_url = url.rsplit('?', 1)[0]
 | 
			
		||||
        munged_url = munged_url.strip('/').replace('/', '_').replace('.', '_')
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2012 Red Hat, Inc.
 | 
			
		||||
#
 | 
			
		||||
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
 | 
			
		||||
@@ -25,6 +23,8 @@ import sys
 | 
			
		||||
import textwrap
 | 
			
		||||
 | 
			
		||||
import prettytable
 | 
			
		||||
import six
 | 
			
		||||
from six import moves
 | 
			
		||||
 | 
			
		||||
from ceilometerclient.openstack.common.apiclient import exceptions
 | 
			
		||||
from ceilometerclient.openstack.common import strutils
 | 
			
		||||
@@ -141,9 +141,9 @@ def print_list(objs, fields, formatters=None, sortby_index=0,
 | 
			
		||||
    formatters = formatters or {}
 | 
			
		||||
    mixed_case_fields = mixed_case_fields or []
 | 
			
		||||
    if sortby_index is None:
 | 
			
		||||
        sortby = None
 | 
			
		||||
        kwargs = {}
 | 
			
		||||
    else:
 | 
			
		||||
        sortby = fields[sortby_index]
 | 
			
		||||
        kwargs = {'sortby': fields[sortby_index]}
 | 
			
		||||
    pt = prettytable.PrettyTable(fields, caching=False)
 | 
			
		||||
    pt.align = 'l'
 | 
			
		||||
 | 
			
		||||
@@ -161,7 +161,7 @@ def print_list(objs, fields, formatters=None, sortby_index=0,
 | 
			
		||||
                row.append(data)
 | 
			
		||||
        pt.add_row(row)
 | 
			
		||||
 | 
			
		||||
    print(strutils.safe_encode(pt.get_string(sortby=sortby)))
 | 
			
		||||
    print(strutils.safe_encode(pt.get_string(**kwargs)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def print_dict(dct, dict_property="Property", wrap=0):
 | 
			
		||||
@@ -181,7 +181,7 @@ def print_dict(dct, dict_property="Property", wrap=0):
 | 
			
		||||
            v = textwrap.fill(str(v), wrap)
 | 
			
		||||
        # if value has a newline, add in multiple rows
 | 
			
		||||
        # e.g. fault with stacktrace
 | 
			
		||||
        if v and isinstance(v, basestring) and r'\n' in v:
 | 
			
		||||
        if v and isinstance(v, six.string_types) and r'\n' in v:
 | 
			
		||||
            lines = v.strip().split(r'\n')
 | 
			
		||||
            col1 = k
 | 
			
		||||
            for line in lines:
 | 
			
		||||
@@ -199,7 +199,7 @@ def get_password(max_password_prompts=3):
 | 
			
		||||
    if hasattr(sys.stdin, "isatty") and sys.stdin.isatty():
 | 
			
		||||
        # Check for Ctrl-D
 | 
			
		||||
        try:
 | 
			
		||||
            for _ in xrange(max_password_prompts):
 | 
			
		||||
            for _ in moves.range(max_password_prompts):
 | 
			
		||||
                pw1 = getpass.getpass("OS Password: ")
 | 
			
		||||
                if verify:
 | 
			
		||||
                    pw2 = getpass.getpass("Please verify: ")
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2012 Red Hat, Inc.
 | 
			
		||||
# Copyright 2013 IBM Corp.
 | 
			
		||||
# All Rights Reserved.
 | 
			
		||||
@@ -317,7 +315,7 @@ def get_available_languages(domain):
 | 
			
		||||
    # NOTE(luisg): Babel <1.0 used a function called list(), which was
 | 
			
		||||
    # renamed to locale_identifiers() in >=1.0, the requirements master list
 | 
			
		||||
    # requires >=0.9.6, uncapped, so defensively work with both. We can remove
 | 
			
		||||
    # this check when the master list updates to >=1.0, and all projects udpate
 | 
			
		||||
    # this check when the master list updates to >=1.0, and update all projects
 | 
			
		||||
    list_identifiers = (getattr(localedata, 'list', None) or
 | 
			
		||||
                        getattr(localedata, 'locale_identifiers'))
 | 
			
		||||
    locale_identifiers = list_identifiers()
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2011 OpenStack Foundation.
 | 
			
		||||
# All Rights Reserved.
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
#
 | 
			
		||||
# Copyright 2013 Canonical Ltd.
 | 
			
		||||
# All Rights Reserved.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
#
 | 
			
		||||
# Copyright 2013 Canonical Ltd.
 | 
			
		||||
# All Rights Reserved.
 | 
			
		||||
@@ -36,6 +35,7 @@ if six.PY3:
 | 
			
		||||
    urlparse = urllib.parse.urlparse
 | 
			
		||||
    urlsplit = urllib.parse.urlsplit
 | 
			
		||||
    urlunsplit = urllib.parse.urlunsplit
 | 
			
		||||
    SplitResult = urllib.parse.SplitResult
 | 
			
		||||
 | 
			
		||||
    urlopen = urllib.request.urlopen
 | 
			
		||||
    URLError = urllib.error.URLError
 | 
			
		||||
@@ -56,6 +56,7 @@ else:
 | 
			
		||||
    urlparse = parse.urlparse
 | 
			
		||||
    urlsplit = parse.urlsplit
 | 
			
		||||
    urlunsplit = parse.urlunsplit
 | 
			
		||||
    SplitResult = parse.SplitResult
 | 
			
		||||
 | 
			
		||||
    urlopen = urllib2.urlopen
 | 
			
		||||
    URLError = urllib2.URLError
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2011 OpenStack Foundation.
 | 
			
		||||
# All Rights Reserved.
 | 
			
		||||
#
 | 
			
		||||
@@ -101,7 +99,7 @@ def safe_decode(text, incoming=None, errors='strict'):
 | 
			
		||||
        values http://docs.python.org/2/library/codecs.html
 | 
			
		||||
    :returns: text or a unicode `incoming` encoded
 | 
			
		||||
                representation of it.
 | 
			
		||||
    :raises TypeError: If text is not an isntance of str
 | 
			
		||||
    :raises TypeError: If text is not an instance of str
 | 
			
		||||
    """
 | 
			
		||||
    if not isinstance(text, six.string_types):
 | 
			
		||||
        raise TypeError("%s can't be decoded" % type(text))
 | 
			
		||||
@@ -144,7 +142,7 @@ def safe_encode(text, incoming=None,
 | 
			
		||||
        values http://docs.python.org/2/library/codecs.html
 | 
			
		||||
    :returns: text or a bytestring `encoding` encoded
 | 
			
		||||
                representation of it.
 | 
			
		||||
    :raises TypeError: If text is not an isntance of str
 | 
			
		||||
    :raises TypeError: If text is not an instance of str
 | 
			
		||||
    """
 | 
			
		||||
    if not isinstance(text, six.string_types):
 | 
			
		||||
        raise TypeError("%s can't be encoded" % type(text))
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
			
		||||
 | 
			
		||||
# Copyright 2013 OpenStack Foundation
 | 
			
		||||
# Copyright 2013 IBM Corp.
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user