summaryrefslogtreecommitdiff
path: root/quantumclient/quantum
diff options
context:
space:
mode:
authorKyle Mestery <kmestery@cisco.com>2012-11-01 15:53:14 +0000
committerKyle Mestery <kmestery@cisco.com>2012-11-20 12:59:29 +0000
commitf6dcfd855bd6928c37fb511bb22a288e910fba82 (patch)
tree3eab1effe9fb1c081179155944f41da38778d17c /quantumclient/quantum
parent041a510a3e2cf3276ca41e9911065635773aa49b (diff)
downloadpython-neutronclient-f6dcfd855bd6928c37fb511bb22a288e910fba82.tar.gz
Correct the verbose output formatting when creating routers.
fixes bug 1070460 Change-Id: Id9157e7226f906ec608aa95766eeed1e62b5cc50
Diffstat (limited to 'quantumclient/quantum')
-rw-r--r--quantumclient/quantum/v2_0/__init__.py48
-rw-r--r--quantumclient/quantum/v2_0/router.py1
2 files changed, 19 insertions, 30 deletions
diff --git a/quantumclient/quantum/v2_0/__init__.py b/quantumclient/quantum/v2_0/__init__.py
index c719d15..b067d32 100644
--- a/quantumclient/quantum/v2_0/__init__.py
+++ b/quantumclient/quantum/v2_0/__init__.py
@@ -200,6 +200,20 @@ class QuantumCommand(command.OpenStackCommand):
return parser
+ def format_output_data(self, data):
+ # Modify data to make it more readable
+ if self.resource in data:
+ for k, v in data[self.resource].iteritems():
+ if isinstance(v, list):
+ value = '\n'.join(utils.dumps(i) if isinstance(i, dict)
+ else str(i) for i in v)
+ data[self.resource][k] = value
+ elif isinstance(v, dict):
+ value = utils.dumps(v)
+ data[self.resource][k] = value
+ elif v is None:
+ data[self.resource][k] = ''
+
class CreateCommand(QuantumCommand, show.ShowOne):
"""Create a resource for a given tenant
@@ -239,25 +253,13 @@ class CreateCommand(QuantumCommand, show.ShowOne):
obj_creator = getattr(quantum_client,
"create_%s" % self.resource)
data = obj_creator(body)
+ self.format_output_data(data)
# {u'network': {u'id': u'e9424a76-6db4-4c93-97b6-ec311cd51f19'}}
info = self.resource in data and data[self.resource] or None
if info:
print >>self.app.stdout, _('Created a new %s:' % self.resource)
else:
info = {'': ''}
- for k, v in info.iteritems():
- if isinstance(v, list):
- value = ""
- for _item in v:
- if value:
- value += "\n"
- if isinstance(_item, dict):
- value += utils.dumps(_item)
- else:
- value += str(_item)
- info[k] = value
- elif v is None:
- info[k] = ''
return zip(*sorted(info.iteritems()))
@@ -435,23 +437,9 @@ class ShowCommand(QuantumCommand, show.ShowOne):
obj_shower = getattr(quantum_client, "show_%s" % self.resource)
data = obj_shower(_id, **params)
+ self.format_output_data(data)
+ resource = data[self.resource]
if self.resource in data:
- for k, v in data[self.resource].iteritems():
- if isinstance(v, list):
- value = ""
- for _item in v:
- if value:
- value += "\n"
- if isinstance(_item, dict):
- value += utils.dumps(_item)
- else:
- value += str(_item)
- data[self.resource][k] = value
- elif isinstance(v, dict):
- value = utils.dumps(v)
- data[self.resource][k] = value
- elif v is None:
- data[self.resource][k] = ''
- return zip(*sorted(data[self.resource].iteritems()))
+ return zip(*sorted(resource.iteritems()))
else:
return None
diff --git a/quantumclient/quantum/v2_0/router.py b/quantumclient/quantum/v2_0/router.py
index 9d6787d..db85b80 100644
--- a/quantumclient/quantum/v2_0/router.py
+++ b/quantumclient/quantum/v2_0/router.py
@@ -56,6 +56,7 @@ class CreateRouter(CreateCommand):
resource = 'router'
log = logging.getLogger(__name__ + '.CreateRouter')
+ _formatters = {'external_gateway_info': _format_external_gateway_info, }
def add_known_arguments(self, parser):
parser.add_argument(