diff options
| author | Zuul <zuul@review.opendev.org> | 2022-12-15 17:45:23 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2022-12-15 17:45:23 +0000 |
| commit | 3aff44438666ae03a1a7b59fd838f7ddf5f54f6a (patch) | |
| tree | e21fb2d986de43eaefbf9d381ffe9f9a94a5f2c6 /openstackclient/compute | |
| parent | 240bbe7239f348f2417978b539d7cb695a372ce3 (diff) | |
| parent | 992cfdfb57c359f709a0ceb67502f5bd66b90e5a (diff) | |
| download | python-openstackclient-3aff44438666ae03a1a7b59fd838f7ddf5f54f6a.tar.gz | |
Merge "Migrate hypervisor stats commands to SDK"
Diffstat (limited to 'openstackclient/compute')
| -rw-r--r-- | openstackclient/compute/v2/hypervisor_stats.py | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/openstackclient/compute/v2/hypervisor_stats.py b/openstackclient/compute/v2/hypervisor_stats.py index 4493e080..cb63a800 100644 --- a/openstackclient/compute/v2/hypervisor_stats.py +++ b/openstackclient/compute/v2/hypervisor_stats.py @@ -11,19 +11,49 @@ # under the License. # - """Hypervisor Stats action implementations""" from osc_lib.command import command +from osc_lib import utils from openstackclient.i18n import _ +def _get_hypervisor_stat_columns(item): + column_map = { + # NOTE(gtema): If we decide to use SDK names - empty this + 'disk_available': 'disk_available_least', + 'local_disk_free': 'free_disk_gb', + 'local_disk_size': 'local_gb', + 'local_disk_used': 'local_gb_used', + 'memory_free': 'free_ram_mb', + 'memory_size': 'memory_mb', + 'memory_used': 'memory_mb_used', + + } + hidden_columns = ['id', 'links', 'location', 'name'] + return utils.get_osc_show_columns_for_sdk_resource( + item, column_map, hidden_columns) + + class ShowHypervisorStats(command.ShowOne): _description = _("Display hypervisor stats details") def take_action(self, parsed_args): - compute_client = self.app.client_manager.compute - hypervisor_stats = compute_client.hypervisors.statistics().to_dict() - - return zip(*sorted(hypervisor_stats.items())) + # The command is deprecated since it is being dropped in Nova. + self.log.warning( + _("This command is deprecated.") + ) + compute_client = self.app.client_manager.sdk_connection.compute + # We do API request directly cause this deprecated method is not and + # will not be supported by OpenStackSDK. + response = compute_client.get( + '/os-hypervisors/statistics', + microversion='2.1') + hypervisor_stats = response.json().get('hypervisor_statistics') + + display_columns, columns = _get_hypervisor_stat_columns( + hypervisor_stats) + data = utils.get_dict_properties( + hypervisor_stats, columns) + return (display_columns, data) |
