Merge "Error in the return of command 'volume qos create'"

This commit is contained in:
Jenkins 2017-01-21 06:18:08 +00:00 committed by Gerrit Code Review
commit bf3f12f596
4 changed files with 31 additions and 17 deletions

View File

@ -50,13 +50,13 @@ class QosTests(common.BaseVolumeTests):
raw_output = self.openstack( raw_output = self.openstack(
'volume qos set --property a=b --property c=d ' + self.ID) 'volume qos set --property a=b --property c=d ' + self.ID)
self.assertEqual("", raw_output) self.assertEqual("", raw_output)
opts = self.get_opts(['name', 'specs']) opts = self.get_opts(['name', 'properties'])
raw_output = self.openstack('volume qos show ' + self.ID + opts) raw_output = self.openstack('volume qos show ' + self.ID + opts)
self.assertEqual(self.NAME + "\na='b', c='d'\n", raw_output) self.assertEqual(self.NAME + "\na='b', c='d'\n", raw_output)
raw_output = self.openstack( raw_output = self.openstack(
'volume qos unset --property a ' + self.ID) 'volume qos unset --property a ' + self.ID)
self.assertEqual("", raw_output) self.assertEqual("", raw_output)
opts = self.get_opts(['name', 'specs']) opts = self.get_opts(['name', 'properties'])
raw_output = self.openstack('volume qos show ' + self.ID + opts) raw_output = self.openstack('volume qos show ' + self.ID + opts)
self.assertEqual(self.NAME + "\nc='d'\n", raw_output) self.assertEqual(self.NAME + "\nc='d'\n", raw_output)

View File

@ -70,24 +70,26 @@ class TestQosAssociate(TestQos):
class TestQosCreate(TestQos): class TestQosCreate(TestQos):
new_qos_spec = volume_fakes.FakeQos.create_one_qos()
columns = ( columns = (
'consumer', 'consumer',
'id', 'id',
'name', 'name',
'specs' 'properties'
)
data = (
new_qos_spec.consumer,
new_qos_spec.id,
new_qos_spec.name,
new_qos_spec.specs
) )
def setUp(self): def setUp(self):
super(TestQosCreate, self).setUp() super(TestQosCreate, self).setUp()
self.new_qos_spec = volume_fakes.FakeQos.create_one_qos()
self.qos_mock.create.return_value = self.new_qos_spec self.qos_mock.create.return_value = self.new_qos_spec
self.data = (
self.new_qos_spec.consumer,
self.new_qos_spec.id,
self.new_qos_spec.name,
utils.format_dict(self.new_qos_spec.specs)
)
# Get the command object to test # Get the command object to test
self.cmd = qos_specs.CreateQos(self.app, None) self.cmd = qos_specs.CreateQos(self.app, None)
@ -147,11 +149,11 @@ class TestQosCreate(TestQos):
columns, data = self.cmd.take_action(parsed_args) columns, data = self.cmd.take_action(parsed_args)
self.new_qos_spec.specs.update(
{'consumer': self.new_qos_spec.consumer})
self.qos_mock.create.assert_called_with( self.qos_mock.create.assert_called_with(
self.new_qos_spec.name, self.new_qos_spec.name,
self.new_qos_spec.specs {'consumer': self.new_qos_spec.consumer,
'foo': 'bar',
'iops': '9001'}
) )
self.assertEqual(self.columns, columns) self.assertEqual(self.columns, columns)
@ -307,7 +309,7 @@ class TestQosList(TestQos):
'Name', 'Name',
'Consumer', 'Consumer',
'Associations', 'Associations',
'Specs', 'Properties',
) )
data = [] data = []
for q in qos_specs: for q in qos_specs:
@ -383,7 +385,7 @@ class TestQosShow(TestQos):
'consumer', 'consumer',
'id', 'id',
'name', 'name',
'specs' 'properties'
) )
data = ( data = (
qos_association.name, qos_association.name,

View File

@ -95,6 +95,9 @@ class CreateQos(command.ShowOne):
qos_spec = volume_client.qos_specs.create(parsed_args.name, specs) qos_spec = volume_client.qos_specs.create(parsed_args.name, specs)
qos_spec._info.update(
{'properties': utils.format_dict(qos_spec._info.pop('specs'))}
)
return zip(*sorted(six.iteritems(qos_spec._info))) return zip(*sorted(six.iteritems(qos_spec._info)))
@ -190,8 +193,11 @@ class ListQos(command.Lister):
for association in qos_associations] for association in qos_associations]
qos._info.update({'associations': associations}) qos._info.update({'associations': associations})
display_columns = (
'ID', 'Name', 'Consumer', 'Associations', 'Properties')
columns = ('ID', 'Name', 'Consumer', 'Associations', 'Specs') columns = ('ID', 'Name', 'Consumer', 'Associations', 'Specs')
return (columns, return (display_columns,
(utils.get_dict_properties( (utils.get_dict_properties(
s._info, columns, s._info, columns,
formatters={ formatters={
@ -254,7 +260,8 @@ class ShowQos(command.ShowOne):
qos_spec._info.update({ qos_spec._info.update({
'associations': utils.format_list(associations) 'associations': utils.format_list(associations)
}) })
qos_spec._info.update({'specs': utils.format_dict(qos_spec.specs)}) qos_spec._info.update(
{'properties': utils.format_dict(qos_spec._info.pop('specs'))})
return zip(*sorted(six.iteritems(qos_spec._info))) return zip(*sorted(six.iteritems(qos_spec._info)))

View File

@ -0,0 +1,5 @@
---
fixes:
- |
Fixed a ``volume qos create`` display mistake in argument of ``specs``.
[Bug `1656767 <https://bugs.launchpad.net/python-openstackclient/+bug/1656767>`_]