Skip to content
This repository was archived by the owner on Nov 29, 2023. It is now read-only.

Commit f6dcfd8

Browse files
committed
Correct the verbose output formatting when creating routers.
fixes bug 1070460 Change-Id: Id9157e7226f906ec608aa95766eeed1e62b5cc50
1 parent 041a510 commit f6dcfd8

2 files changed

Lines changed: 19 additions & 30 deletions

File tree

quantumclient/quantum/v2_0/__init__.py

Lines changed: 18 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,20 @@ def get_parser(self, prog_name):
200200

201201
return parser
202202

203+
def format_output_data(self, data):
204+
# Modify data to make it more readable
205+
if self.resource in data:
206+
for k, v in data[self.resource].iteritems():
207+
if isinstance(v, list):
208+
value = '\n'.join(utils.dumps(i) if isinstance(i, dict)
209+
else str(i) for i in v)
210+
data[self.resource][k] = value
211+
elif isinstance(v, dict):
212+
value = utils.dumps(v)
213+
data[self.resource][k] = value
214+
elif v is None:
215+
data[self.resource][k] = ''
216+
203217

204218
class CreateCommand(QuantumCommand, show.ShowOne):
205219
"""Create a resource for a given tenant
@@ -239,25 +253,13 @@ def get_data(self, parsed_args):
239253
obj_creator = getattr(quantum_client,
240254
"create_%s" % self.resource)
241255
data = obj_creator(body)
256+
self.format_output_data(data)
242257
# {u'network': {u'id': u'e9424a76-6db4-4c93-97b6-ec311cd51f19'}}
243258
info = self.resource in data and data[self.resource] or None
244259
if info:
245260
print >>self.app.stdout, _('Created a new %s:' % self.resource)
246261
else:
247262
info = {'': ''}
248-
for k, v in info.iteritems():
249-
if isinstance(v, list):
250-
value = ""
251-
for _item in v:
252-
if value:
253-
value += "\n"
254-
if isinstance(_item, dict):
255-
value += utils.dumps(_item)
256-
else:
257-
value += str(_item)
258-
info[k] = value
259-
elif v is None:
260-
info[k] = ''
261263
return zip(*sorted(info.iteritems()))
262264

263265

@@ -435,23 +437,9 @@ def get_data(self, parsed_args):
435437

436438
obj_shower = getattr(quantum_client, "show_%s" % self.resource)
437439
data = obj_shower(_id, **params)
440+
self.format_output_data(data)
441+
resource = data[self.resource]
438442
if self.resource in data:
439-
for k, v in data[self.resource].iteritems():
440-
if isinstance(v, list):
441-
value = ""
442-
for _item in v:
443-
if value:
444-
value += "\n"
445-
if isinstance(_item, dict):
446-
value += utils.dumps(_item)
447-
else:
448-
value += str(_item)
449-
data[self.resource][k] = value
450-
elif isinstance(v, dict):
451-
value = utils.dumps(v)
452-
data[self.resource][k] = value
453-
elif v is None:
454-
data[self.resource][k] = ''
455-
return zip(*sorted(data[self.resource].iteritems()))
443+
return zip(*sorted(resource.iteritems()))
456444
else:
457445
return None

quantumclient/quantum/v2_0/router.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ class CreateRouter(CreateCommand):
5656

5757
resource = 'router'
5858
log = logging.getLogger(__name__ + '.CreateRouter')
59+
_formatters = {'external_gateway_info': _format_external_gateway_info, }
5960

6061
def add_known_arguments(self, parser):
6162
parser.add_argument(

0 commit comments

Comments
 (0)