diff options
author | devMuscle <hongsbien@naver.com> | 2023-03-26 13:08:49 +0900 |
---|---|---|
committer | devMuscle <hongsbien@naver.com> | 2023-03-26 14:06:36 +0900 |
commit | e74f2d94fe5edfcb2b163851d85c202be5eaa309 (patch) | |
tree | 4301127459d681a833c64650262c7383cab4e72f | |
parent | 65b667af2033303beee74e9241400f5bf5817899 (diff) | |
download | python-openstackclient-e74f2d94fe5edfcb2b163851d85c202be5eaa309.tar.gz |
"hypervisor list --matching" showed the wrong result
Previously, using the "--matching" option shows empty results.
Previously, the "--matching" option called the "find_hypervisor method",
so we used to call the "hypervisor method"
like any other "--limit, --marker" options.
Depending on the nova api version, the api that is basically
called is as follows
2.53 >= : /os-hypervisors/detail?hypervisor_hostname_pattern=$HOSTNAME
2.53 < : /os-hypervisors/{pattern}/search
Hypervisor Type and Host IP are not returned
when using microversion 2.52 or lower
Co-authored-by: Jipyo Hong <hongsbien@naver.com>
Co-authored-by: Jieon Lee <dlwldjs7544@naver.com>
Co-authored-by: YoonSoo LIM <msdbtjd123@naver.com>
story: 2010670
task: 47726
Change-Id: I7b47acf48def7d4c5f4b74e4dba1c23d8ac7abf2
-rw-r--r-- | openstackclient/compute/v2/hypervisor.py | 16 | ||||
-rw-r--r-- | openstackclient/tests/unit/compute/v2/test_hypervisor.py | 12 |
2 files changed, 16 insertions, 12 deletions
diff --git a/openstackclient/compute/v2/hypervisor.py b/openstackclient/compute/v2/hypervisor.py index d4b4003b..971e3d2a 100644 --- a/openstackclient/compute/v2/hypervisor.py +++ b/openstackclient/compute/v2/hypervisor.py @@ -69,7 +69,11 @@ class ListHypervisor(command.Lister): parser.add_argument( '--matching', metavar='<hostname>', - help=_("Filter hypervisors using <hostname> substring") + help=_( + "Filter hypervisors using <hostname> substring" + "Hypervisor Type and Host IP are not returned " + "when using microversion 2.52 or lower" + ) ) parser.add_argument( '--marker', @@ -128,6 +132,9 @@ class ListHypervisor(command.Lister): raise exceptions.CommandError(msg) list_opts['limit'] = parsed_args.limit + if parsed_args.matching: + list_opts['hypervisor_hostname_pattern'] = parsed_args.matching + column_headers = ( "ID", "Hypervisor Hostname", @@ -142,6 +149,7 @@ class ListHypervisor(command.Lister): 'host_ip', 'state' ) + if parsed_args.long: if not sdk_utils.supports_microversion(compute_client, '2.88'): column_headers += ( @@ -157,11 +165,7 @@ class ListHypervisor(command.Lister): 'memory_size' ) - if parsed_args.matching: - data = compute_client.find_hypervisor( - parsed_args.matching, ignore_missing=False) - else: - data = compute_client.hypervisors(**list_opts, details=True) + data = compute_client.hypervisors(**list_opts, details=True) return ( column_headers, diff --git a/openstackclient/tests/unit/compute/v2/test_hypervisor.py b/openstackclient/tests/unit/compute/v2/test_hypervisor.py index e5804665..ab14072d 100644 --- a/openstackclient/tests/unit/compute/v2/test_hypervisor.py +++ b/openstackclient/tests/unit/compute/v2/test_hypervisor.py @@ -131,7 +131,8 @@ class TestHypervisorList(TestHypervisor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) # Fake the return value of search() - self.sdk_client.find_hypervisor.return_value = [self.hypervisors[0]] + self.sdk_client.hypervisors.return_value = [self.hypervisors[0]] + self.data = ( ( self.hypervisors[0].id, @@ -147,10 +148,9 @@ class TestHypervisorList(TestHypervisor): # containing the data to be listed. columns, data = self.cmd.take_action(parsed_args) - self.sdk_client.find_hypervisor.assert_called_with( - self.hypervisors[0].name, - ignore_missing=False - ) + self.sdk_client.hypervisors.assert_called_with( + hypervisor_hostname_pattern=self.hypervisors[0].name, + details=True) self.assertEqual(self.columns, columns) self.assertEqual(self.data, tuple(data)) @@ -164,7 +164,7 @@ class TestHypervisorList(TestHypervisor): parsed_args = self.check_parser(self.cmd, arglist, verifylist) # Fake exception raised from search() - self.sdk_client.find_hypervisor.side_effect = \ + self.sdk_client.hypervisors.side_effect = \ exceptions.NotFound(None) self.assertRaises(exceptions.NotFound, |