Merge "openstackcloud: properly handle scheduler_hints"

This commit is contained in:
Zuul
2018-07-12 17:07:10 +00:00
committed by Gerrit Code Review

View File

@@ -6674,6 +6674,9 @@ class OpenStackCloud(_normalize.Normalizer):
if not image and not boot_volume:
raise TypeError(
"create_server() requires either 'image' or 'boot_volume'")
server_json = {'server': kwargs}
# TODO(mordred) Add support for description starting in 2.19
security_groups = kwargs.get('security_groups', [])
if security_groups and not isinstance(kwargs['security_groups'], list):
@@ -6705,7 +6708,7 @@ class OpenStackCloud(_normalize.Normalizer):
" on the cloud".format(group=group))
hints['group'] = group_obj['id']
if hints:
kwargs['os:scheduler_hints'] = hints
server_json['os:scheduler_hints'] = hints
kwargs.setdefault('max_count', kwargs.get('max_count', 1))
kwargs.setdefault('min_count', kwargs.get('min_count', 1))
@@ -6802,7 +6805,7 @@ class OpenStackCloud(_normalize.Normalizer):
endpoint = '/os-volumes_boot'
with _utils.shade_exceptions("Error in creating instance"):
data = _adapter._json_response(
self.compute.post(endpoint, json={'server': kwargs}))
self.compute.post(endpoint, json=server_json))
server = self._get_and_munchify('server', data)
admin_pass = server.get('adminPass') or kwargs.get('admin_pass')
if not wait: