Merge "python3: Strutils is not needed"

This commit is contained in:
Jenkins
2013-06-24 21:08:23 +00:00
committed by Gerrit Code Review
3 changed files with 28 additions and 9 deletions

View File

@@ -29,6 +29,8 @@ import pkgutil
import sys import sys
import logging import logging
import six
from cinderclient import client from cinderclient import client
from cinderclient import exceptions as exc from cinderclient import exceptions as exc
import cinderclient.extension import cinderclient.extension
@@ -500,14 +502,18 @@ class OpenStackHelpFormatter(argparse.HelpFormatter):
def main(): def main():
try: try:
OpenStackCinderShell().main(map(strutils.safe_decode, sys.argv[1:])) if sys.version_info >= (3, 0):
OpenStackCinderShell().main(sys.argv[1:])
else:
OpenStackCinderShell().main(map(strutils.safe_decode,
sys.argv[1:]))
except KeyboardInterrupt: except KeyboardInterrupt:
print("... terminating cinder client", file=sys.stderr) print("... terminating cinder client", file=sys.stderr)
sys.exit(130) sys.exit(130)
except Exception as e: except Exception as e:
logger.debug(e, exc_info=1) logger.debug(e, exc_info=1)
message = e.message message = e.message
if not isinstance(message, basestring): if not isinstance(message, six.string_types):
message = str(message) message = str(message)
print("ERROR: %s" % strutils.safe_encode(message), file=sys.stderr) print("ERROR: %s" % strutils.safe_encode(message), file=sys.stderr)
sys.exit(1) sys.exit(1)

View File

@@ -142,7 +142,14 @@ def pretty_choice_list(l):
return ', '.join("'%s'" % i for i in l) return ', '.join("'%s'" % i for i in l)
def print_list(objs, fields, formatters={}): def _print(pt, order):
if sys.version_info >= (3, 0):
print(pt.get_string(sortby=order))
else:
print(strutils.safe_encode(pt.get_string(sortby=order)))
def print_list(objs, fields, formatters={}, order_by=None):
mixed_case_fields = ['serverId'] mixed_case_fields = ['serverId']
pt = prettytable.PrettyTable([f for f in fields], caching=False) pt = prettytable.PrettyTable([f for f in fields], caching=False)
pt.aligns = ['l' for f in fields] pt.aligns = ['l' for f in fields]
@@ -161,15 +168,16 @@ def print_list(objs, fields, formatters={}):
row.append(data) row.append(data)
pt.add_row(row) pt.add_row(row)
if len(pt._rows) > 0: if order_by is None:
print(strutils.safe_encode(pt.get_string(sortby=fields[0]))) order_by = fields[0]
_print(pt, order_by)
def print_dict(d, property="Property"): def print_dict(d, property="Property"):
pt = prettytable.PrettyTable([property, 'Value'], caching=False) pt = prettytable.PrettyTable([property, 'Value'], caching=False)
pt.aligns = ['l', 'l'] pt.aligns = ['l', 'l']
[pt.add_row(list(r)) for r in six.iteritems(d)] [pt.add_row(list(r)) for r in six.iteritems(d)]
print(strutils.safe_encode(pt.get_string(sortby=property))) _print(pt, property)
def find_resource(manager, name_or_id): def find_resource(manager, name_or_id):
@@ -181,9 +189,12 @@ def find_resource(manager, name_or_id):
except exceptions.NotFound: except exceptions.NotFound:
pass pass
if sys.version_info <= (3, 0):
name_or_id = strutils.safe_decode(name_or_id)
# now try to get entity as uuid # now try to get entity as uuid
try: try:
uuid.UUID(strutils.safe_decode(name_or_id)) uuid.UUID(name_or_id)
return manager.get(name_or_id) return manager.get(name_or_id)
except (ValueError, exceptions.NotFound): except (ValueError, exceptions.NotFound):
pass pass
@@ -277,7 +288,7 @@ def slugify(value):
From Django's "django/template/defaultfilters.py". From Django's "django/template/defaultfilters.py".
""" """
import unicodedata import unicodedata
if not isinstance(value, unicode): if not isinstance(value, six.text_type):
value = six.text_type(value) value = six.text_type(value)
value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore') value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
value = six.text_type(_slugify_strip_re.sub('', value).strip().lower()) value = six.text_type(_slugify_strip_re.sub('', value).strip().lower())

View File

@@ -20,6 +20,8 @@ import os
import sys import sys
import time import time
import six
from cinderclient import exceptions from cinderclient import exceptions
from cinderclient import utils from cinderclient import utils
@@ -258,7 +260,7 @@ def do_create(cs, args):
# NOTE(vish): multiple copies of the same hint will # NOTE(vish): multiple copies of the same hint will
# result in a list of values # result in a list of values
if key in hints: if key in hints:
if isinstance(hints[key], basestring): if isinstance(hints[key], six.string_types):
hints[key] = [hints[key]] hints[key] = [hints[key]]
hints[key] += [value] hints[key] += [value]
else: else: