diff options
author | asarfaty <asarfaty@vmware.com> | 2020-08-16 09:23:56 +0200 |
---|---|---|
committer | Adit Sarfaty <asarfaty@vmware.com> | 2021-02-17 04:55:09 +0000 |
commit | 643b69d91480e461ff3546318943517b3226d11a (patch) | |
tree | 7aa2cfa0e96820967d65115e9d5aa1cbd6d4aff8 | |
parent | 595139cee783518cccd15125925012a3209a76f9 (diff) | |
download | python-openstackclient-643b69d91480e461ff3546318943517b3226d11a.tar.gz |
Remove None valued network quota entries
Since the openstack SDK still has the neutron-lbaas entries in the network quota,
but those are already deprecated [1], the 'opentack quota show' command shows those
as None value.
This fix removes those empty deprecated values from the output.
[1] https://review.opendev.org/#/c/658494/
Change-Id: I8dbdba2a029ea8e6a268ddf29627e1466a7e3a8a
(cherry picked from commit e9bd4ef007153e4f2e2d69f3bcb94eef8e8983c2)
-rw-r--r-- | openstackclient/common/quota.py | 13 | ||||
-rw-r--r-- | openstackclient/tests/unit/common/test_quota.py | 23 | ||||
-rw-r--r-- | releasenotes/notes/remove-nlbaas-quota-8b38e0c91ab113cb.yaml | 4 |
3 files changed, 36 insertions, 4 deletions
diff --git a/openstackclient/common/quota.py b/openstackclient/common/quota.py index 37437344..d9ff445f 100644 --- a/openstackclient/common/quota.py +++ b/openstackclient/common/quota.py @@ -161,6 +161,13 @@ class BaseQuota(object): raise return quota._info + def _network_quota_to_dict(self, network_quota): + if type(network_quota) is not dict: + dict_quota = network_quota.to_dict() + else: + dict_quota = network_quota + return {k: v for k, v in dict_quota.items() if v is not None} + def get_network_quota(self, parsed_args): quota_class = ( parsed_args.quota_class if 'quota_class' in parsed_args else False) @@ -174,13 +181,11 @@ class BaseQuota(object): client = self.app.client_manager.network if default: network_quota = client.get_quota_default(project) - if type(network_quota) is not dict: - network_quota = network_quota.to_dict() + network_quota = self._network_quota_to_dict(network_quota) else: network_quota = client.get_quota(project, details=detail) - if type(network_quota) is not dict: - network_quota = network_quota.to_dict() + network_quota = self._network_quota_to_dict(network_quota) if detail: # NOTE(slaweq): Neutron returns values with key "used" but # Nova for example returns same data with key "in_use" diff --git a/openstackclient/tests/unit/common/test_quota.py b/openstackclient/tests/unit/common/test_quota.py index bd59ca77..c8a1dff4 100644 --- a/openstackclient/tests/unit/common/test_quota.py +++ b/openstackclient/tests/unit/common/test_quota.py @@ -968,3 +968,26 @@ class TestQuotaShow(TestQuota): identity_fakes.project_id, details=False ) self.assertNotCalled(self.network.get_quota_default) + + def test_network_quota_show_remove_empty(self): + arglist = [ + self.projects[0].name, + ] + verifylist = [ + ('project', self.projects[0].name), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # First check that all regular values are returned + result = self.cmd.get_network_quota(parsed_args) + self.assertEqual(len(network_fakes.QUOTA), len(result)) + + # set 1 of the values to None, and verify it is not returned + orig_get_quota = self.network.get_quota + network_quotas = copy.copy(network_fakes.QUOTA) + network_quotas['healthmonitor'] = None + self.network.get_quota = mock.Mock(return_value=network_quotas) + result = self.cmd.get_network_quota(parsed_args) + self.assertEqual(len(network_fakes.QUOTA) - 1, len(result)) + # Go back to default mock + self.network.get_quota = orig_get_quota diff --git a/releasenotes/notes/remove-nlbaas-quota-8b38e0c91ab113cb.yaml b/releasenotes/notes/remove-nlbaas-quota-8b38e0c91ab113cb.yaml new file mode 100644 index 00000000..572e215b --- /dev/null +++ b/releasenotes/notes/remove-nlbaas-quota-8b38e0c91ab113cb.yaml @@ -0,0 +1,4 @@ +--- +other: + - | + Remove deprecated neutron-lbaas results from ``quota show`` command. |