List instances performace optimization
Join service table for microversion starting 2.16 only so only include service from 2.16 version. Co-Authored-By: jichenjc <jichenjc@cn.ibm.com> Closes-Bug: 1719460 Change-Id: I6c57fa013ee8f6d064fc747906e1234a0aa3e8c2
This commit is contained in:
parent
a5a569d667
commit
a0b4116ed6
|
@ -292,7 +292,8 @@ class ServersController(wsgi.Controller):
|
|||
|
||||
expected_attrs = []
|
||||
if is_detail:
|
||||
expected_attrs.append('services')
|
||||
if api_version_request.is_supported(req, '2.16'):
|
||||
expected_attrs.append('services')
|
||||
if api_version_request.is_supported(req, '2.26'):
|
||||
expected_attrs.append("tags")
|
||||
|
||||
|
|
|
@ -1432,17 +1432,28 @@ class ServersControllerTest(ControllerTest):
|
|||
self.assertEqual(s['name'], 'server%d' % (i + 1))
|
||||
|
||||
def test_get_servers_joins_services(self):
|
||||
|
||||
def fake_get_all(compute_self, context, search_opts=None,
|
||||
limit=None, marker=None,
|
||||
expected_attrs=None, sort_keys=None, sort_dirs=None):
|
||||
self.assertIn('services', expected_attrs)
|
||||
cur = api_version_request.APIVersionRequest(self.wsgi_api_version)
|
||||
v216 = api_version_request.APIVersionRequest('2.16')
|
||||
if cur >= v216:
|
||||
self.assertIn('services', expected_attrs)
|
||||
else:
|
||||
self.assertNotIn('services', expected_attrs)
|
||||
return objects.InstanceList()
|
||||
|
||||
self.stubs.Set(compute_api.API, 'get_all', fake_get_all)
|
||||
self.stub_out("nova.compute.api.API.get_all", fake_get_all)
|
||||
|
||||
req = self.req('/fake/servers/detail', use_admin_context=True)
|
||||
self.assertIn('servers', self.controller.detail(req))
|
||||
|
||||
req = fakes.HTTPRequest.blank('/fake/servers/detail',
|
||||
use_admin_context=True,
|
||||
version=self.wsgi_api_version)
|
||||
self.assertIn('servers', self.controller.detail(req))
|
||||
|
||||
|
||||
class ServersControllerTestV29(ServersControllerTest):
|
||||
wsgi_api_version = '2.9'
|
||||
|
|
Loading…
Reference in New Issue