Remove more code related to extensions and testing
This commit removes the more code relaetd to extensions and its testing. Also fixes the below nits as followup: - https://review.openstack.org/#/c/583559/3/nova/api/openstack/compute/block_device_mapping.py@a32 - https://review.openstack.org/#/c/584590/11/nova/api/openstack/compute/views/servers.py@247 - https://review.openstack.org/#/c/584590/11/nova/api/openstack/compute/views/servers.py@205 - https://review.openstack.org/#/c/584590/11/nova/api/openstack/compute/views/servers.py@186 - https://review.openstack.org/#/c/606031/3/nova/tests/unit/api/openstack/compute/test_limits.py@457 - https://review.openstack.org/#/c/606031/3/nova/api/openstack/compute/routes.py@229 Partially implements: blueprint api-extensions-merge-stein Change-Id: I39f4ac0f1e93b142470837b942425a037d73829a
This commit is contained in:
parent
d9237e159c
commit
47befda147
@ -222,10 +222,7 @@ keypairs_controller = functools.partial(
|
|||||||
|
|
||||||
|
|
||||||
limits_controller = functools.partial(
|
limits_controller = functools.partial(
|
||||||
_create_controller, limits.LimitsController,
|
_create_controller, limits.LimitsController, [], [])
|
||||||
[
|
|
||||||
],
|
|
||||||
[])
|
|
||||||
|
|
||||||
|
|
||||||
migrations_controller = functools.partial(_create_controller,
|
migrations_controller = functools.partial(_create_controller,
|
||||||
|
@ -526,6 +526,7 @@ class ServersController(wsgi.Controller):
|
|||||||
# Sets the legacy_bdm flag if we got a legacy block device mapping.
|
# Sets the legacy_bdm flag if we got a legacy block device mapping.
|
||||||
create_kwargs['legacy_bdm'] = True
|
create_kwargs['legacy_bdm'] = True
|
||||||
elif block_device_mapping_v2:
|
elif block_device_mapping_v2:
|
||||||
|
# Have to check whether --image is given, see bug 1433609
|
||||||
image_href = server_dict.get('imageRef')
|
image_href = server_dict.get('imageRef')
|
||||||
image_uuid_specified = image_href is not None
|
image_uuid_specified = image_href is not None
|
||||||
try:
|
try:
|
||||||
|
@ -210,10 +210,7 @@ class ViewBuilder(common.ViewBuilder):
|
|||||||
show_extended_attr = context.can(
|
show_extended_attr = context.can(
|
||||||
esa_policies.BASE_POLICY_NAME, fatal=False)
|
esa_policies.BASE_POLICY_NAME, fatal=False)
|
||||||
if show_extended_attr:
|
if show_extended_attr:
|
||||||
server["server"][
|
properties = ['host', 'name', 'node']
|
||||||
"OS-EXT-SRV-ATTR:hypervisor_hostname"] = instance.node
|
|
||||||
|
|
||||||
properties = ['host', 'name']
|
|
||||||
if api_version_request.is_supported(request, min_version='2.3'):
|
if api_version_request.is_supported(request, min_version='2.3'):
|
||||||
# NOTE(mriedem): These will use the OS-EXT-SRV-ATTR prefix
|
# NOTE(mriedem): These will use the OS-EXT-SRV-ATTR prefix
|
||||||
# below and that's OK for microversion 2.3 which is being
|
# below and that's OK for microversion 2.3 which is being
|
||||||
@ -226,11 +223,13 @@ class ViewBuilder(common.ViewBuilder):
|
|||||||
for attr in properties:
|
for attr in properties:
|
||||||
if attr == 'name':
|
if attr == 'name':
|
||||||
key = "OS-EXT-SRV-ATTR:instance_%s" % attr
|
key = "OS-EXT-SRV-ATTR:instance_%s" % attr
|
||||||
|
elif attr == 'node':
|
||||||
|
key = "OS-EXT-SRV-ATTR:hypervisor_hostname"
|
||||||
else:
|
else:
|
||||||
# NOTE(mriedem): Nothing after microversion 2.3 should use
|
# NOTE(mriedem): Nothing after microversion 2.3 should use
|
||||||
# the OS-EXT-SRV-ATTR prefix for the attribute key name.
|
# the OS-EXT-SRV-ATTR prefix for the attribute key name.
|
||||||
key = "OS-EXT-SRV-ATTR:%s" % attr
|
key = "OS-EXT-SRV-ATTR:%s" % attr
|
||||||
server["server"][key] = instance[attr]
|
server["server"][key] = getattr(instance, attr)
|
||||||
if show_extended_status:
|
if show_extended_status:
|
||||||
# NOTE(gmann): Removed 'locked_by' from extended status
|
# NOTE(gmann): Removed 'locked_by' from extended status
|
||||||
# to make it same as V2. If needed it can be added with
|
# to make it same as V2. If needed it can be added with
|
||||||
@ -290,16 +289,15 @@ class ViewBuilder(common.ViewBuilder):
|
|||||||
def detail(self, request, instances):
|
def detail(self, request, instances):
|
||||||
"""Detailed view of a list of instance."""
|
"""Detailed view of a list of instance."""
|
||||||
coll_name = self._collection_name + '/detail'
|
coll_name = self._collection_name + '/detail'
|
||||||
|
context = request.environ['nova.context']
|
||||||
|
|
||||||
if api_version_request.is_supported(request, min_version='2.47'):
|
if api_version_request.is_supported(request, min_version='2.47'):
|
||||||
# Determine if we should show extra_specs in the inlined flavor
|
# Determine if we should show extra_specs in the inlined flavor
|
||||||
# once before we iterate the list of instances
|
# once before we iterate the list of instances
|
||||||
context = request.environ['nova.context']
|
|
||||||
show_extra_specs = context.can(fes_policies.POLICY_ROOT % 'index',
|
show_extra_specs = context.can(fes_policies.POLICY_ROOT % 'index',
|
||||||
fatal=False)
|
fatal=False)
|
||||||
else:
|
else:
|
||||||
show_extra_specs = False
|
show_extra_specs = False
|
||||||
context = request.environ['nova.context']
|
|
||||||
show_extended_attr = context.can(
|
show_extended_attr = context.can(
|
||||||
esa_policies.BASE_POLICY_NAME, fatal=False)
|
esa_policies.BASE_POLICY_NAME, fatal=False)
|
||||||
show_host_status = False
|
show_host_status = False
|
||||||
|
@ -67,7 +67,6 @@ def objectify(data):
|
|||||||
|
|
||||||
|
|
||||||
class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
||||||
all_extensions = True
|
|
||||||
sample_dir = None
|
sample_dir = None
|
||||||
microversion = None
|
microversion = None
|
||||||
_use_common_server_api_samples = False
|
_use_common_server_api_samples = False
|
||||||
|
@ -102,27 +102,6 @@ class MicroversionsExtendsBaseController(wsgi.Controller):
|
|||||||
return {'base_param': 'base_val'}
|
return {'base_param': 'base_val'}
|
||||||
|
|
||||||
|
|
||||||
class MicroversionsExtendsController1(wsgi.Controller):
|
|
||||||
@wsgi.Controller.api_version("2.3")
|
|
||||||
@wsgi.extends
|
|
||||||
def show(self, req, resp_obj, id):
|
|
||||||
resp_obj.obj['extend_ctrlr1'] = 'val_1'
|
|
||||||
|
|
||||||
|
|
||||||
class MicroversionsExtendsController2(wsgi.Controller):
|
|
||||||
@wsgi.Controller.api_version("2.4")
|
|
||||||
@wsgi.extends
|
|
||||||
def show(self, req, resp_obj, id):
|
|
||||||
resp_obj.obj['extend_ctrlr2'] = 'val_2'
|
|
||||||
|
|
||||||
|
|
||||||
class MicroversionsExtendsController3(wsgi.Controller):
|
|
||||||
@wsgi.Controller.api_version("2.2", "2.3")
|
|
||||||
@wsgi.extends
|
|
||||||
def show(self, req, resp_obj, id):
|
|
||||||
resp_obj.obj['extend_ctrlr3'] = 'val_3'
|
|
||||||
|
|
||||||
|
|
||||||
mv_controller = functools.partial(routes._create_controller,
|
mv_controller = functools.partial(routes._create_controller,
|
||||||
MicroversionsController, [], [])
|
MicroversionsController, [], [])
|
||||||
|
|
||||||
@ -140,12 +119,7 @@ mv4_controller = functools.partial(routes._create_controller,
|
|||||||
|
|
||||||
|
|
||||||
mv5_controller = functools.partial(routes._create_controller,
|
mv5_controller = functools.partial(routes._create_controller,
|
||||||
MicroversionsExtendsBaseController,
|
MicroversionsExtendsBaseController, [], [])
|
||||||
[
|
|
||||||
MicroversionsExtendsController1,
|
|
||||||
MicroversionsExtendsController2,
|
|
||||||
MicroversionsExtendsController3
|
|
||||||
], [])
|
|
||||||
|
|
||||||
|
|
||||||
ROUTES = (
|
ROUTES = (
|
||||||
|
@ -67,9 +67,6 @@ class FlavorsTestV21(test.TestCase):
|
|||||||
self._prefix + url, version=self.microversion)
|
self._prefix + url, version=self.microversion)
|
||||||
|
|
||||||
def _set_expected_body(self, expected, flavor):
|
def _set_expected_body(self, expected, flavor):
|
||||||
# NOTE(oomichi): On v2.1 API, some extensions of v2.0 are merged
|
|
||||||
# as core features and we can get the following parameters as the
|
|
||||||
# default.
|
|
||||||
expected['OS-FLV-EXT-DATA:ephemeral'] = flavor.ephemeral_gb
|
expected['OS-FLV-EXT-DATA:ephemeral'] = flavor.ephemeral_gb
|
||||||
expected['OS-FLV-DISABLED:disabled'] = flavor.disabled
|
expected['OS-FLV-DISABLED:disabled'] = flavor.disabled
|
||||||
expected['swap'] = flavor.swap
|
expected['swap'] = flavor.swap
|
||||||
|
@ -454,7 +454,6 @@ class LimitsControllerTestV236(BaseLimitTestSuite):
|
|||||||
"totalRAMUsed": 256,
|
"totalRAMUsed": 256,
|
||||||
"totalCoresUsed": 10,
|
"totalCoresUsed": 10,
|
||||||
"totalInstancesUsed": 2,
|
"totalInstancesUsed": 2,
|
||||||
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -262,26 +262,6 @@ class LegacyMicroversionsTest(test.NoDBTestCase):
|
|||||||
def test_microversions_inner_function_v21(self):
|
def test_microversions_inner_function_v21(self):
|
||||||
self._test_microversions_inner_function('2.1', 'controller4_val1')
|
self._test_microversions_inner_function('2.1', 'controller4_val1')
|
||||||
|
|
||||||
@mock.patch("nova.api.openstack.api_version_request.max_api_version")
|
|
||||||
def test_with_extends_decorator(self, mock_maxver):
|
|
||||||
mock_maxver.return_value = api_version.APIVersionRequest('2.4')
|
|
||||||
|
|
||||||
req = fakes.HTTPRequest.blank('/v2/fake/microversions5/item')
|
|
||||||
req.headers = {'X-OpenStack-Nova-API-Version': '2.4'}
|
|
||||||
res = req.get_response(self.app)
|
|
||||||
self.assertEqual(200, res.status_int)
|
|
||||||
|
|
||||||
expected_res = {
|
|
||||||
"extend_ctrlr2": "val_2",
|
|
||||||
"extend_ctrlr1": "val_1",
|
|
||||||
"base_param": "base_val"}
|
|
||||||
|
|
||||||
resp_json = jsonutils.loads(res.body)
|
|
||||||
for param in resp_json:
|
|
||||||
self.assertIn(param, expected_res)
|
|
||||||
self.assertEqual(expected_res[param], resp_json[param])
|
|
||||||
self.assertEqual(3, len(resp_json))
|
|
||||||
|
|
||||||
@mock.patch("nova.api.openstack.api_version_request.max_api_version")
|
@mock.patch("nova.api.openstack.api_version_request.max_api_version")
|
||||||
def _test_microversions_actions(self, ret_code, ret_header, req_header,
|
def _test_microversions_actions(self, ret_code, ret_header, req_header,
|
||||||
mock_maxver):
|
mock_maxver):
|
||||||
|
Loading…
Reference in New Issue
Block a user