From 60d931f4c7fb4b0250aab71114b60f219fefa853 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Mon, 1 Jan 2018 11:50:54 -0600 Subject: [PATCH] Use sdk for list_servers As the next baby step in combining shade and sdk code, have list_servers use conn.compute.servers() on the backend. Change-Id: I4e87fcc69fcffeed3720b878518cf02ccd30a3dc --- openstack/cloud/_normalize.py | 3 ++- openstack/cloud/openstackcloud.py | 18 +++++------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/openstack/cloud/_normalize.py b/openstack/cloud/_normalize.py index d8a1d59ce..740c52301 100644 --- a/openstack/cloud/_normalize.py +++ b/openstack/cloud/_normalize.py @@ -480,7 +480,8 @@ class Normalizer(object): server, 'os-extended-volumes:volumes_attached', [], self.strict_mode) - config_drive = server.pop('config_drive', False) + config_drive = server.pop( + 'has_config_drive', server.pop('config_drive', False)) ret['has_config_drive'] = _to_bool(config_drive) host_id = server.pop('hostId', None) diff --git a/openstack/cloud/openstackcloud.py b/openstack/cloud/openstackcloud.py index 518f3788c..7c47e61b8 100755 --- a/openstack/cloud/openstackcloud.py +++ b/openstack/cloud/openstackcloud.py @@ -2124,19 +2124,11 @@ class _OpenStackCloudMixin(_normalize.Normalizer): def _list_servers(self, detailed=False, all_projects=False, bare=False, filters=None): - error_msg = "Error fetching server list on {cloud}:{region}:".format( - cloud=self.name, - region=self.config.region_name) - - params = filters or {} - if all_projects: - params['all_tenants'] = True - data = _adapter._json_response( - self.compute.get( - '/servers/detail', params=params), - error_message=error_msg) - servers = self._normalize_servers( - self._get_and_munchify('servers', data)) + filters = filters or {} + servers = [ + self._normalize_server(server.to_dict()) + for server in self.compute.servers( + all_projects=all_projects, **filters)] return [ self._expand_server(server, detailed, bare) for server in servers