Merge "Don't remove top-container element for flavor, zones and server groups"

This commit is contained in:
Jenkins 2017-06-28 18:25:37 +00:00 committed by Gerrit Code Review
commit 32feee698d
3 changed files with 20 additions and 10 deletions

View File

@ -140,7 +140,9 @@ class ShadeAdapter(adapter.Adapter):
'security_group_rule', 'security_group_rules',
'users', 'user', 'projects', 'tenants',
'project', 'tenant', 'servers', 'server',
'flavor', 'flavors', 'baymodels']:
'flavor', 'flavors', 'baymodels', 'aggregate',
'aggregates', 'availabilityZoneInfo',
'flavor_access', 'output', 'server_groups']:
if key in result_json.keys():
self._log_request_id(response)
return result_json

View File

@ -1771,12 +1771,13 @@ class OpenStackCloud(
list could not be fetched.
"""
try:
zones = self._compute_client.get('/os-availability-zone')
data = self._compute_client.get('/os-availability-zone')
except OpenStackCloudHTTPError:
self.log.debug(
"Availability zone list could not be fetched",
exc_info=True)
return []
zones = meta.get_and_munchify('availabilityZoneInfo', data)
ret = []
for zone in zones:
if zone['zoneState']['available'] or unavailable:
@ -2033,9 +2034,10 @@ class OpenStackCloud(
:returns: A list of server group dicts.
"""
return self._compute_client.get(
data = self._compute_client.get(
'/os-server-groups',
error_message="Error fetching server group list")
return meta.get_and_munchify('server_groups', data)
def get_compute_limits(self, name_or_id=None):
""" Get compute limits for a project
@ -2769,9 +2771,10 @@ class OpenStackCloud(
"Console log requested for invalid server")
try:
return self._compute_client.post(
data = self._compute_client.post(
'/servers/{server}/action'.format(server=server['id']),
json={'os-getConsoleOutput': {'length': length}})
return meta.get_and_munchify('output', data)
except OpenStackCloudBadRequest:
return ""

View File

@ -1606,9 +1606,10 @@ class OperatorCloud(openstackcloud.OpenStackCloud):
with _utils.shade_exceptions("Error trying to list access from "
"flavor ID {flavor}".format(
flavor=flavor_id)):
projects = self._compute_client.get(
data = self._compute_client.get(
'/flavors/{id}/os-flavor-access'.format(id=flavor_id))
return _utils.normalize_flavor_accesses(projects)
return _utils.normalize_flavor_accesses(
meta.get_and_munchify('flavor_access', data))
def create_role(self, name):
"""Create a Keystone role.
@ -1836,9 +1837,10 @@ class OperatorCloud(openstackcloud.OpenStackCloud):
:returns: A list of aggregate dicts.
"""
return self._compute_client.get(
data = self._compute_client.get(
'/os-aggregates',
error_message="Error fetching aggregate list")
return meta.get_and_munchify('aggregates', data)
def get_aggregate(self, name_or_id, filters=None):
"""Get an aggregate by name or ID.
@ -1871,7 +1873,7 @@ class OperatorCloud(openstackcloud.OpenStackCloud):
:raises: OpenStackCloudException on operation error.
"""
return self._compute_client.post(
data = self._compute_client.post(
'/os-aggregates',
json={'aggregate': {
'name': name,
@ -1879,6 +1881,7 @@ class OperatorCloud(openstackcloud.OpenStackCloud):
}},
error_message="Unable to create host aggregate {name}".format(
name=name))
return meta.get_and_munchify('aggregate', data)
@_utils.valid_kwargs('name', 'availability_zone')
def update_aggregate(self, name_or_id, **kwargs):
@ -1897,11 +1900,12 @@ class OperatorCloud(openstackcloud.OpenStackCloud):
raise OpenStackCloudException(
"Host aggregate %s not found." % name_or_id)
return self._compute_client.put(
data = self._compute_client.put(
'/os-aggregates/{id}'.format(id=aggregate['id']),
json={'aggregate': kwargs},
error_message="Error updating aggregate {name}".format(
name=name_or_id))
return meta.get_and_munchify('aggregate', data)
def delete_aggregate(self, name_or_id):
"""Delete a host aggregate.
@ -1943,10 +1947,11 @@ class OperatorCloud(openstackcloud.OpenStackCloud):
err_msg = "Unable to set metadata for host aggregate {name}".format(
name=name_or_id)
return self._compute_client.post(
data = self._compute_client.post(
'/os-aggregates/{id}/action'.format(id=aggregate['id']),
json={'set_metadata': {'metadata': metadata}},
error_message=err_msg)
return meta.get_and_munchify('aggregate', data)
def add_host_to_aggregate(self, name_or_id, host_name):
"""Add a host to an aggregate.