update api_samples code to use better variables
_api_version and request_api_version are pretty confusing semantically. Update these to more meaningful names to make the code easier to understand: api_major_version, microversion. Change-Id: Ief6b12fc755a6c48cbef7b82ba226e47850c0b9e
This commit is contained in:
parent
df485344df
commit
415b221e33
@ -45,9 +45,9 @@ CONF = cfg.CONF
|
|||||||
#
|
#
|
||||||
# Things we need to set:
|
# Things we need to set:
|
||||||
#
|
#
|
||||||
# - _api_version - what version of the API we should be hitting
|
# - api_major_version - what version of the API we should be hitting
|
||||||
#
|
#
|
||||||
# - request_api_version - what API microversion should be used
|
# - microversion - what API microversion should be used
|
||||||
#
|
#
|
||||||
# - _additional_fixtures - any additional fixtures need
|
# - _additional_fixtures - any additional fixtures need
|
||||||
#
|
#
|
||||||
@ -58,12 +58,12 @@ CONF = cfg.CONF
|
|||||||
# microversions, then replace the ``scenarios`` class variable in that
|
# microversions, then replace the ``scenarios`` class variable in that
|
||||||
# test class with something like:
|
# test class with something like:
|
||||||
#
|
#
|
||||||
# [("v2_11", {'_api_version': 'v2.1', 'request_api_version', '2.11'})]
|
# [("v2_11", {'api_major_version': 'v2.1', 'microversion', '2.11'})]
|
||||||
|
|
||||||
|
|
||||||
class ApiSampleTestBaseV21(testscenarios.WithScenarios,
|
class ApiSampleTestBaseV21(testscenarios.WithScenarios,
|
||||||
api_samples_test_base.ApiSampleTestBase):
|
api_samples_test_base.ApiSampleTestBase):
|
||||||
_api_version = 'v2'
|
api_major_version = 'v2'
|
||||||
# any additional fixtures needed for this scenario
|
# any additional fixtures needed for this scenario
|
||||||
_additional_fixtures = []
|
_additional_fixtures = []
|
||||||
sample_dir = None
|
sample_dir = None
|
||||||
@ -73,13 +73,13 @@ class ApiSampleTestBaseV21(testscenarios.WithScenarios,
|
|||||||
scenarios = [
|
scenarios = [
|
||||||
# test v2 with the v2.1 compatibility stack
|
# test v2 with the v2.1 compatibility stack
|
||||||
('v2', {
|
('v2', {
|
||||||
'_api_version': 'v2'}),
|
'api_major_version': 'v2'}),
|
||||||
# test v2.1 base microversion
|
# test v2.1 base microversion
|
||||||
('v2_1', {
|
('v2_1', {
|
||||||
'_api_version': 'v2.1'}),
|
'api_major_version': 'v2.1'}),
|
||||||
# test v2 with the v2 legacy code
|
# test v2 with the v2 legacy code
|
||||||
('v2legacy', {
|
('v2legacy', {
|
||||||
'_api_version': 'v2',
|
'api_major_version': 'v2',
|
||||||
'_legacy_v2_code': True,
|
'_legacy_v2_code': True,
|
||||||
'_additional_fixtures': [
|
'_additional_fixtures': [
|
||||||
api_paste_fixture.ApiPasteLegacyV2Fixture]})
|
api_paste_fixture.ApiPasteLegacyV2Fixture]})
|
||||||
|
@ -42,9 +42,9 @@ class ExtensionInfoAllSamplesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
|||||||
# different between the API versions and the legacy vs. new
|
# different between the API versions and the legacy vs. new
|
||||||
# stack. We default to the v2.1 case.
|
# stack. We default to the v2.1 case.
|
||||||
template = 'extensions-list-resp'
|
template = 'extensions-list-resp'
|
||||||
if self._api_version == 'v2':
|
if self.api_major_version == 'v2':
|
||||||
template = 'extensions-list-resp-v21-compatible'
|
template = 'extensions-list-resp-v21-compatible'
|
||||||
if self._api_version == 'v2' and self._legacy_v2_code:
|
if self.api_major_version == 'v2' and self._legacy_v2_code:
|
||||||
template = 'extensions-list-resp-v2'
|
template = 'extensions-list-resp-v2'
|
||||||
|
|
||||||
self._verify_response(template, subs, response, 200)
|
self._verify_response(template, subs, response, 200)
|
||||||
|
@ -28,7 +28,7 @@ CONF.import_opt('osapi_compute_extension',
|
|||||||
class FixedIpTest(test_servers.ServersSampleBase):
|
class FixedIpTest(test_servers.ServersSampleBase):
|
||||||
extension_name = "os-fixed-ips"
|
extension_name = "os-fixed-ips"
|
||||||
|
|
||||||
request_api_version = None
|
microversion = None
|
||||||
|
|
||||||
def _get_flags(self):
|
def _get_flags(self):
|
||||||
f = super(FixedIpTest, self)._get_flags()
|
f = super(FixedIpTest, self)._get_flags()
|
||||||
@ -97,14 +97,14 @@ class FixedIpTest(test_servers.ServersSampleBase):
|
|||||||
# Reserve a Fixed IP.
|
# Reserve a Fixed IP.
|
||||||
response = self._do_post('os-fixed-ips/192.168.1.1/action',
|
response = self._do_post('os-fixed-ips/192.168.1.1/action',
|
||||||
'fixedip-post-req', {},
|
'fixedip-post-req', {},
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
self.assertEqual(202, response.status_code)
|
self.assertEqual(202, response.status_code)
|
||||||
self.assertEqual("", response.content)
|
self.assertEqual("", response.content)
|
||||||
|
|
||||||
def _test_get_fixed_ip(self, **kwargs):
|
def _test_get_fixed_ip(self, **kwargs):
|
||||||
# Return data about the given fixed ip.
|
# Return data about the given fixed ip.
|
||||||
response = self._do_get('os-fixed-ips/192.168.1.1',
|
response = self._do_get('os-fixed-ips/192.168.1.1',
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
project = {'cidr': '192.168.1.0/24',
|
project = {'cidr': '192.168.1.0/24',
|
||||||
'hostname': 'openstack',
|
'hostname': 'openstack',
|
||||||
'host': 'host',
|
'host': 'host',
|
||||||
@ -117,11 +117,11 @@ class FixedIpTest(test_servers.ServersSampleBase):
|
|||||||
|
|
||||||
|
|
||||||
class FixedIpV24Test(FixedIpTest):
|
class FixedIpV24Test(FixedIpTest):
|
||||||
request_api_version = '2.4'
|
microversion = '2.4'
|
||||||
# NOTE(gmann): microversion tests do not need to run for v2 API
|
# NOTE(gmann): microversion tests do not need to run for v2 API
|
||||||
# so defining scenarios only for v2.4 which will run the original tests
|
# so defining scenarios only for v2.4 which will run the original tests
|
||||||
# by appending '(v2_4)' in test_id.
|
# by appending '(v2_4)' in test_id.
|
||||||
scenarios = [('v2_4', {'_api_version': 'v2.1'})]
|
scenarios = [('v2_4', {'api_major_version': 'v2.1'})]
|
||||||
|
|
||||||
def test_get_fixed_ip(self):
|
def test_get_fixed_ip(self):
|
||||||
self._test_get_fixed_ip(reserved=False)
|
self._test_get_fixed_ip(reserved=False)
|
||||||
|
@ -27,7 +27,7 @@ CONF.import_opt('osapi_compute_extension',
|
|||||||
|
|
||||||
|
|
||||||
class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||||
request_api_version = None
|
microversion = None
|
||||||
sample_dir = "keypairs"
|
sample_dir = "keypairs"
|
||||||
expected_delete_status_code = 202
|
expected_delete_status_code = 202
|
||||||
expected_post_status_code = 200
|
expected_post_status_code = 200
|
||||||
@ -51,7 +51,7 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
|||||||
key_name = 'keypair-' + str(uuid.uuid4())
|
key_name = 'keypair-' + str(uuid.uuid4())
|
||||||
subs = dict(keypair_name=key_name, **kwargs)
|
subs = dict(keypair_name=key_name, **kwargs)
|
||||||
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
|
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
|
|
||||||
subs = self._get_regexes()
|
subs = self._get_regexes()
|
||||||
subs['keypair_name'] = '(%s)' % key_name
|
subs['keypair_name'] = '(%s)' % key_name
|
||||||
@ -75,7 +75,7 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
|||||||
}
|
}
|
||||||
subs.update(**kwargs)
|
subs.update(**kwargs)
|
||||||
response = self._do_post('os-keypairs', 'keypairs-import-post-req',
|
response = self._do_post('os-keypairs', 'keypairs-import-post-req',
|
||||||
subs, api_version=self.request_api_version)
|
subs, api_version=self.microversion)
|
||||||
subs = self._get_regexes()
|
subs = self._get_regexes()
|
||||||
subs['keypair_name'] = '(%s)' % key_name
|
subs['keypair_name'] = '(%s)' % key_name
|
||||||
self._verify_response('keypairs-import-post-resp', subs, response,
|
self._verify_response('keypairs-import-post-resp', subs, response,
|
||||||
@ -85,7 +85,7 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
|||||||
# Get api sample of key pairs list request.
|
# Get api sample of key pairs list request.
|
||||||
key_name = self.test_keypairs_post()
|
key_name = self.test_keypairs_post()
|
||||||
response = self._do_get('os-keypairs',
|
response = self._do_get('os-keypairs',
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
subs = self._get_regexes()
|
subs = self._get_regexes()
|
||||||
subs['keypair_name'] = '(%s)' % key_name
|
subs['keypair_name'] = '(%s)' % key_name
|
||||||
self._verify_response('keypairs-list-resp', subs, response, 200)
|
self._verify_response('keypairs-list-resp', subs, response, 200)
|
||||||
@ -94,7 +94,7 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
|||||||
# Get api sample of key pairs get request.
|
# Get api sample of key pairs get request.
|
||||||
key_name = self.test_keypairs_post()
|
key_name = self.test_keypairs_post()
|
||||||
response = self._do_get('os-keypairs/%s' % key_name,
|
response = self._do_get('os-keypairs/%s' % key_name,
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
subs = self._get_regexes()
|
subs = self._get_regexes()
|
||||||
subs['keypair_name'] = '(%s)' % key_name
|
subs['keypair_name'] = '(%s)' % key_name
|
||||||
self._verify_response('keypairs-get-resp', subs, response, 200)
|
self._verify_response('keypairs-get-resp', subs, response, 200)
|
||||||
@ -103,19 +103,19 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
|||||||
# Get api sample of key pairs delete request.
|
# Get api sample of key pairs delete request.
|
||||||
key_name = self.test_keypairs_post()
|
key_name = self.test_keypairs_post()
|
||||||
response = self._do_delete('os-keypairs/%s' % key_name,
|
response = self._do_delete('os-keypairs/%s' % key_name,
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
self.assertEqual(self.expected_delete_status_code,
|
self.assertEqual(self.expected_delete_status_code,
|
||||||
response.status_code)
|
response.status_code)
|
||||||
|
|
||||||
|
|
||||||
class KeyPairsV22SampleJsonTest(KeyPairsSampleJsonTest):
|
class KeyPairsV22SampleJsonTest(KeyPairsSampleJsonTest):
|
||||||
request_api_version = '2.2'
|
microversion = '2.2'
|
||||||
expected_post_status_code = 201
|
expected_post_status_code = 201
|
||||||
expected_delete_status_code = 204
|
expected_delete_status_code = 204
|
||||||
# NOTE(gmann): microversion tests do not need to run for v2 API
|
# NOTE(gmann): microversion tests do not need to run for v2 API
|
||||||
# so defining scenarios only for v2.2 which will run the original tests
|
# so defining scenarios only for v2.2 which will run the original tests
|
||||||
# by appending '(v2_2)' in test_id.
|
# by appending '(v2_2)' in test_id.
|
||||||
scenarios = [('v2_2', {'_api_version': 'v2.1'})]
|
scenarios = [('v2_2', {'api_major_version': 'v2.1'})]
|
||||||
|
|
||||||
def test_keypairs_post(self):
|
def test_keypairs_post(self):
|
||||||
# NOTE(claudiub): overrides the method with the same name in
|
# NOTE(claudiub): overrides the method with the same name in
|
||||||
@ -131,7 +131,7 @@ class KeyPairsV22SampleJsonTest(KeyPairsSampleJsonTest):
|
|||||||
key_name = 'keypair-' + str(uuid.uuid4())
|
key_name = 'keypair-' + str(uuid.uuid4())
|
||||||
subs = dict(keypair_name=key_name, keypair_type='fakey_type')
|
subs = dict(keypair_name=key_name, keypair_type='fakey_type')
|
||||||
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
|
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
|
|
||||||
self.assertEqual(400, response.status_code)
|
self.assertEqual(400, response.status_code)
|
||||||
|
|
||||||
@ -156,7 +156,7 @@ class KeyPairsV22SampleJsonTest(KeyPairsSampleJsonTest):
|
|||||||
'public_key': fake_crypto.get_ssh_public_key()
|
'public_key': fake_crypto.get_ssh_public_key()
|
||||||
}
|
}
|
||||||
response = self._do_post('os-keypairs', 'keypairs-import-post-req',
|
response = self._do_post('os-keypairs', 'keypairs-import-post-req',
|
||||||
subs, api_version=self.request_api_version)
|
subs, api_version=self.microversion)
|
||||||
|
|
||||||
self.assertEqual(400, response.status_code)
|
self.assertEqual(400, response.status_code)
|
||||||
|
|
||||||
@ -171,10 +171,10 @@ class KeyPairsV22SampleJsonTest(KeyPairsSampleJsonTest):
|
|||||||
|
|
||||||
class KeyPairsV210SampleJsonTest(KeyPairsSampleJsonTest):
|
class KeyPairsV210SampleJsonTest(KeyPairsSampleJsonTest):
|
||||||
ADMIN_API = True
|
ADMIN_API = True
|
||||||
request_api_version = '2.10'
|
microversion = '2.10'
|
||||||
expected_post_status_code = 201
|
expected_post_status_code = 201
|
||||||
expected_delete_status_code = 204
|
expected_delete_status_code = 204
|
||||||
scenarios = [('v2_10', {'_api_version': 'v2.1'})]
|
scenarios = [('v2_10', {'api_major_version': 'v2.1'})]
|
||||||
|
|
||||||
def test_keypair_create_for_user(self):
|
def test_keypair_create_for_user(self):
|
||||||
subs = {
|
subs = {
|
||||||
@ -206,7 +206,7 @@ class KeyPairsV210SampleJsonTest(KeyPairsSampleJsonTest):
|
|||||||
}
|
}
|
||||||
key_name = self._check_keypairs_post(**subs)
|
key_name = self._check_keypairs_post(**subs)
|
||||||
response = self._do_delete('os-keypairs/%s?user_id=fake' % key_name,
|
response = self._do_delete('os-keypairs/%s?user_id=fake' % key_name,
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
self.assertEqual(self.expected_delete_status_code,
|
self.assertEqual(self.expected_delete_status_code,
|
||||||
response.status_code)
|
response.status_code)
|
||||||
|
|
||||||
@ -225,7 +225,7 @@ class KeyPairsV210SampleJsonTestNotAdmin(KeyPairsV210SampleJsonTest):
|
|||||||
keypair_type=keypair_obj.KEYPAIR_TYPE_SSH,
|
keypair_type=keypair_obj.KEYPAIR_TYPE_SSH,
|
||||||
user_id='fake1')
|
user_id='fake1')
|
||||||
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
|
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
|
||||||
api_version=self.request_api_version,
|
api_version=self.microversion,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertEqual(403, response.status_code)
|
self.assertEqual(403, response.status_code)
|
||||||
|
@ -84,12 +84,12 @@ class ConsolesSampleJsonTests(test_servers.ServersSampleBase):
|
|||||||
|
|
||||||
|
|
||||||
class ConsolesV26SampleJsonTests(test_servers.ServersSampleBase):
|
class ConsolesV26SampleJsonTests(test_servers.ServersSampleBase):
|
||||||
request_api_version = '2.6'
|
microversion = '2.6'
|
||||||
extension_name = "os-remote-consoles"
|
extension_name = "os-remote-consoles"
|
||||||
# NOTE(gmann): microversion tests do not need to run for v2 API
|
# NOTE(gmann): microversion tests do not need to run for v2 API
|
||||||
# so defining scenarios only for v2.6 which will run the original tests
|
# so defining scenarios only for v2.6 which will run the original tests
|
||||||
# by appending '(v2_6)' in test_id.
|
# by appending '(v2_6)' in test_id.
|
||||||
scenarios = [('v2_6', {'_api_version': 'v2.1'})]
|
scenarios = [('v2_6', {'api_major_version': 'v2.1'})]
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(ConsolesV26SampleJsonTests, self).setUp()
|
super(ConsolesV26SampleJsonTests, self).setUp()
|
||||||
@ -109,9 +109,9 @@ class ConsolesV26SampleJsonTests(test_servers.ServersSampleBase):
|
|||||||
|
|
||||||
class ConsolesV28SampleJsonTests(test_servers.ServersSampleBase):
|
class ConsolesV28SampleJsonTests(test_servers.ServersSampleBase):
|
||||||
extension_name = "os-remote-consoles"
|
extension_name = "os-remote-consoles"
|
||||||
request_api_version = '2.8'
|
microversion = '2.8'
|
||||||
scenarios = [('v2_8', {'_api_version': 'v2.1'})]
|
scenarios = [('v2_8', {'api_major_version': 'v2.1'})]
|
||||||
_api_version = 'v2'
|
api_major_version = 'v2'
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(ConsolesV28SampleJsonTests, self).setUp()
|
super(ConsolesV28SampleJsonTests, self).setUp()
|
||||||
|
@ -59,7 +59,7 @@ class ServersSampleBase(api_sample_base.ApiSampleTestBaseV21):
|
|||||||
|
|
||||||
class ServersSampleJsonTest(ServersSampleBase):
|
class ServersSampleJsonTest(ServersSampleBase):
|
||||||
sample_dir = 'servers'
|
sample_dir = 'servers'
|
||||||
request_api_version = None
|
microversion = None
|
||||||
|
|
||||||
def _get_flags(self):
|
def _get_flags(self):
|
||||||
f = super(ServersSampleBase, self)._get_flags()
|
f = super(ServersSampleBase, self)._get_flags()
|
||||||
@ -79,7 +79,7 @@ class ServersSampleJsonTest(ServersSampleBase):
|
|||||||
def test_servers_get(self):
|
def test_servers_get(self):
|
||||||
uuid = self.test_servers_post()
|
uuid = self.test_servers_post()
|
||||||
response = self._do_get('servers/%s' % uuid,
|
response = self._do_get('servers/%s' % uuid,
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
subs = self._get_regexes()
|
subs = self._get_regexes()
|
||||||
subs['hostid'] = '[a-f0-9]+'
|
subs['hostid'] = '[a-f0-9]+'
|
||||||
subs['id'] = uuid
|
subs['id'] = uuid
|
||||||
@ -92,7 +92,7 @@ class ServersSampleJsonTest(ServersSampleBase):
|
|||||||
def test_servers_list(self):
|
def test_servers_list(self):
|
||||||
uuid = self._post_server()
|
uuid = self._post_server()
|
||||||
response = self._do_get('servers',
|
response = self._do_get('servers',
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
subs = self._get_regexes()
|
subs = self._get_regexes()
|
||||||
subs['id'] = uuid
|
subs['id'] = uuid
|
||||||
self._verify_response('servers-list-resp', subs, response, 200)
|
self._verify_response('servers-list-resp', subs, response, 200)
|
||||||
@ -100,7 +100,7 @@ class ServersSampleJsonTest(ServersSampleBase):
|
|||||||
def test_servers_details(self):
|
def test_servers_details(self):
|
||||||
uuid = self._post_server()
|
uuid = self._post_server()
|
||||||
response = self._do_get('servers/detail',
|
response = self._do_get('servers/detail',
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
subs = self._get_regexes()
|
subs = self._get_regexes()
|
||||||
subs['hostid'] = '[a-f0-9]+'
|
subs['hostid'] = '[a-f0-9]+'
|
||||||
subs['id'] = uuid
|
subs['id'] = uuid
|
||||||
@ -112,11 +112,11 @@ class ServersSampleJsonTest(ServersSampleBase):
|
|||||||
|
|
||||||
|
|
||||||
class ServersSampleJson29Test(ServersSampleJsonTest):
|
class ServersSampleJson29Test(ServersSampleJsonTest):
|
||||||
request_api_version = '2.9'
|
microversion = '2.9'
|
||||||
# NOTE(gmann): microversion tests do not need to run for v2 API
|
# NOTE(gmann): microversion tests do not need to run for v2 API
|
||||||
# so defining scenarios only for v2.9 which will run the original tests
|
# so defining scenarios only for v2.9 which will run the original tests
|
||||||
# by appending '(v2_9)' in test_id.
|
# by appending '(v2_9)' in test_id.
|
||||||
scenarios = [('v2_9', {'_api_version': 'v2.1'})]
|
scenarios = [('v2_9', {'api_major_version': 'v2.1'})]
|
||||||
|
|
||||||
|
|
||||||
class ServerSortKeysJsonTests(ServersSampleBase):
|
class ServerSortKeysJsonTests(ServersSampleBase):
|
||||||
@ -256,7 +256,7 @@ class ServerStartStopJsonTest(ServersSampleBase):
|
|||||||
class ServersSampleMultiStatusJsonTest(ServersSampleBase):
|
class ServersSampleMultiStatusJsonTest(ServersSampleBase):
|
||||||
sample_dir = 'servers'
|
sample_dir = 'servers'
|
||||||
extra_extensions_to_load = ["os-access-ips"]
|
extra_extensions_to_load = ["os-access-ips"]
|
||||||
_api_version = 'v2'
|
api_major_version = 'v2'
|
||||||
|
|
||||||
def _get_flags(self):
|
def _get_flags(self):
|
||||||
f = super(ServersSampleMultiStatusJsonTest, self)._get_flags()
|
f = super(ServersSampleMultiStatusJsonTest, self)._get_flags()
|
||||||
|
@ -28,7 +28,7 @@ CONF.import_opt('osapi_compute_extension',
|
|||||||
class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||||
ADMIN_API = True
|
ADMIN_API = True
|
||||||
extension_name = "os-services"
|
extension_name = "os-services"
|
||||||
request_api_version = None
|
microversion = None
|
||||||
|
|
||||||
def _get_flags(self):
|
def _get_flags(self):
|
||||||
f = super(ServicesJsonTest, self)._get_flags()
|
f = super(ServicesJsonTest, self)._get_flags()
|
||||||
@ -61,7 +61,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
|||||||
def test_services_list(self):
|
def test_services_list(self):
|
||||||
"""Return a list of all agent builds."""
|
"""Return a list of all agent builds."""
|
||||||
response = self._do_get('os-services',
|
response = self._do_get('os-services',
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
subs = {'binary': 'nova-compute',
|
subs = {'binary': 'nova-compute',
|
||||||
'host': 'host1',
|
'host': 'host1',
|
||||||
'zone': 'nova',
|
'zone': 'nova',
|
||||||
@ -76,7 +76,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
|||||||
'binary': 'nova-compute'}
|
'binary': 'nova-compute'}
|
||||||
response = self._do_put('os-services/enable',
|
response = self._do_put('os-services/enable',
|
||||||
'service-enable-put-req', subs,
|
'service-enable-put-req', subs,
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
self._verify_response('service-enable-put-resp', subs, response, 200)
|
self._verify_response('service-enable-put-resp', subs, response, 200)
|
||||||
|
|
||||||
def test_service_disable(self):
|
def test_service_disable(self):
|
||||||
@ -85,7 +85,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
|||||||
'binary': 'nova-compute'}
|
'binary': 'nova-compute'}
|
||||||
response = self._do_put('os-services/disable',
|
response = self._do_put('os-services/disable',
|
||||||
'service-disable-put-req', subs,
|
'service-disable-put-req', subs,
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
self._verify_response('service-disable-put-resp', subs, response, 200)
|
self._verify_response('service-disable-put-resp', subs, response, 200)
|
||||||
|
|
||||||
def test_service_disable_log_reason(self):
|
def test_service_disable_log_reason(self):
|
||||||
@ -95,28 +95,28 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
|||||||
'disabled_reason': 'test2'}
|
'disabled_reason': 'test2'}
|
||||||
response = self._do_put('os-services/disable-log-reason',
|
response = self._do_put('os-services/disable-log-reason',
|
||||||
'service-disable-log-put-req', subs,
|
'service-disable-log-put-req', subs,
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
self._verify_response('service-disable-log-put-resp',
|
self._verify_response('service-disable-log-put-resp',
|
||||||
subs, response, 200)
|
subs, response, 200)
|
||||||
|
|
||||||
def test_service_delete(self):
|
def test_service_delete(self):
|
||||||
"""Delete an existing service."""
|
"""Delete an existing service."""
|
||||||
response = self._do_delete('os-services/1',
|
response = self._do_delete('os-services/1',
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
self.assertEqual(204, response.status_code)
|
self.assertEqual(204, response.status_code)
|
||||||
self.assertEqual("", response.content)
|
self.assertEqual("", response.content)
|
||||||
|
|
||||||
|
|
||||||
class ServicesV211JsonTest(ServicesJsonTest):
|
class ServicesV211JsonTest(ServicesJsonTest):
|
||||||
request_api_version = '2.11'
|
microversion = '2.11'
|
||||||
# NOTE(gryf): There is no need to run those tests on v2 API. Only
|
# NOTE(gryf): There is no need to run those tests on v2 API. Only
|
||||||
# scenarios for v2_11 will be run.
|
# scenarios for v2_11 will be run.
|
||||||
scenarios = [('v2_11', {'_api_version': 'v2.1'})]
|
scenarios = [('v2_11', {'api_major_version': 'v2.1'})]
|
||||||
|
|
||||||
def test_services_list(self):
|
def test_services_list(self):
|
||||||
"""Return a list of all agent builds."""
|
"""Return a list of all agent builds."""
|
||||||
response = self._do_get('os-services',
|
response = self._do_get('os-services',
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
subs = {'binary': 'nova-compute',
|
subs = {'binary': 'nova-compute',
|
||||||
'host': 'host1',
|
'host': 'host1',
|
||||||
'zone': 'nova',
|
'zone': 'nova',
|
||||||
@ -133,6 +133,6 @@ class ServicesV211JsonTest(ServicesJsonTest):
|
|||||||
'forced_down': 'true'}
|
'forced_down': 'true'}
|
||||||
response = self._do_put('os-services/force-down',
|
response = self._do_put('os-services/force-down',
|
||||||
'service-force-down-put-req', subs,
|
'service-force-down-put-req', subs,
|
||||||
api_version=self.request_api_version)
|
api_version=self.microversion)
|
||||||
self._verify_response('service-force-down-put-resp', subs,
|
self._verify_response('service-force-down-put-resp', subs,
|
||||||
response, 200)
|
response, 200)
|
||||||
|
@ -28,7 +28,7 @@ class VirtualInterfacesJsonTest(test_servers.ServersSampleBase):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(VirtualInterfacesJsonTest, self).setUp()
|
super(VirtualInterfacesJsonTest, self).setUp()
|
||||||
self.template = 'vifs-list-resp'
|
self.template = 'vifs-list-resp'
|
||||||
if self._api_version == 'v2':
|
if self.api_major_version == 'v2':
|
||||||
self.template = 'vifs-list-resp-v2'
|
self.template = 'vifs-list-resp-v2'
|
||||||
|
|
||||||
def _get_flags(self):
|
def _get_flags(self):
|
||||||
@ -53,8 +53,8 @@ class VirtualInterfacesJsonTest(test_servers.ServersSampleBase):
|
|||||||
|
|
||||||
|
|
||||||
class VirtualInterfacesJsonV212Test(VirtualInterfacesJsonTest):
|
class VirtualInterfacesJsonV212Test(VirtualInterfacesJsonTest):
|
||||||
request_api_version = '2.12'
|
microversion = '2.12'
|
||||||
# NOTE(gmann): microversion tests do not need to run for v2 API
|
# NOTE(gmann): microversion tests do not need to run for v2 API
|
||||||
# so defining scenarios only for v2.12 which will run the original tests
|
# so defining scenarios only for v2.12 which will run the original tests
|
||||||
# by appending '(v2_12)' in test_id.
|
# by appending '(v2_12)' in test_id.
|
||||||
scenarios = [('v2_12', {'_api_version': 'v2.1'})]
|
scenarios = [('v2_12', {'api_major_version': 'v2.1'})]
|
||||||
|
@ -32,7 +32,7 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
|||||||
all_extensions = False
|
all_extensions = False
|
||||||
extension_name = None
|
extension_name = None
|
||||||
sample_dir = None
|
sample_dir = None
|
||||||
request_api_version = None
|
microversion = None
|
||||||
_use_common_server_api_samples = False
|
_use_common_server_api_samples = False
|
||||||
|
|
||||||
def _pretty_data(self, data):
|
def _pretty_data(self, data):
|
||||||
@ -110,18 +110,18 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
|||||||
api_version=api_version)
|
api_version=api_version)
|
||||||
|
|
||||||
def _read_template(self, name):
|
def _read_template(self, name):
|
||||||
template = self._get_template(name, self.request_api_version)
|
template = self._get_template(name, self.microversion)
|
||||||
with open(template) as inf:
|
with open(template) as inf:
|
||||||
return inf.read().strip()
|
return inf.read().strip()
|
||||||
|
|
||||||
def _write_template(self, name, data):
|
def _write_template(self, name, data):
|
||||||
with open(self._get_template(name,
|
with open(self._get_template(name,
|
||||||
self.request_api_version), 'w') as outf:
|
self.microversion), 'w') as outf:
|
||||||
outf.write(data)
|
outf.write(data)
|
||||||
|
|
||||||
def _write_sample(self, name, data):
|
def _write_sample(self, name, data):
|
||||||
with open(self._get_sample(
|
with open(self._get_sample(
|
||||||
name, self.request_api_version), 'w') as outf:
|
name, self.microversion), 'w') as outf:
|
||||||
outf.write(data)
|
outf.write(data)
|
||||||
|
|
||||||
def _compare_result(self, subs, expected, result, result_str):
|
def _compare_result(self, subs, expected, result, result_str):
|
||||||
@ -250,7 +250,7 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
|||||||
def _update_links(self, sample_data):
|
def _update_links(self, sample_data):
|
||||||
"""Process sample data and update version specific links."""
|
"""Process sample data and update version specific links."""
|
||||||
url_re = self._get_host() + "/v(2|2\.1)"
|
url_re = self._get_host() + "/v(2|2\.1)"
|
||||||
new_url = self._get_host() + "/" + self._api_version
|
new_url = self._get_host() + "/" + self.api_major_version
|
||||||
updated_data = re.sub(url_re, new_url, sample_data)
|
updated_data = re.sub(url_re, new_url, sample_data)
|
||||||
return updated_data
|
return updated_data
|
||||||
|
|
||||||
@ -259,7 +259,7 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
|||||||
response_data = response.content
|
response_data = response.content
|
||||||
response_data = self._pretty_data(response_data)
|
response_data = self._pretty_data(response_data)
|
||||||
if not os.path.exists(self._get_template(name,
|
if not os.path.exists(self._get_template(name,
|
||||||
self.request_api_version)):
|
self.microversion)):
|
||||||
self._write_template(name, response_data)
|
self._write_template(name, response_data)
|
||||||
template_data = response_data
|
template_data = response_data
|
||||||
else:
|
else:
|
||||||
@ -267,12 +267,12 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
|||||||
|
|
||||||
if (self.generate_samples and
|
if (self.generate_samples and
|
||||||
not os.path.exists(self._get_sample(
|
not os.path.exists(self._get_sample(
|
||||||
name, self.request_api_version))):
|
name, self.microversion))):
|
||||||
self._write_sample(name, response_data)
|
self._write_sample(name, response_data)
|
||||||
sample_data = response_data
|
sample_data = response_data
|
||||||
else:
|
else:
|
||||||
with file(self._get_sample(name,
|
with file(self._get_sample(name,
|
||||||
self.request_api_version)) as sample:
|
self.microversion)) as sample:
|
||||||
sample_data = sample.read()
|
sample_data = sample.read()
|
||||||
sample_data = self._update_links(sample_data)
|
sample_data = self._update_links(sample_data)
|
||||||
|
|
||||||
@ -343,7 +343,7 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
|||||||
'text': text,
|
'text': text,
|
||||||
'int': '[0-9]+',
|
'int': '[0-9]+',
|
||||||
'user_id': text,
|
'user_id': text,
|
||||||
'api_vers': self._api_version,
|
'api_vers': self.api_major_version,
|
||||||
'compute_endpoint': self._get_compute_endpoint(),
|
'compute_endpoint': self._get_compute_endpoint(),
|
||||||
'versioned_compute_endpoint': self._get_vers_compute_endpoint(),
|
'versioned_compute_endpoint': self._get_vers_compute_endpoint(),
|
||||||
}
|
}
|
||||||
@ -356,7 +356,8 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
|||||||
def _get_vers_compute_endpoint(self):
|
def _get_vers_compute_endpoint(self):
|
||||||
# NOTE(sdague): "openstack" is stand in for project_id, it
|
# NOTE(sdague): "openstack" is stand in for project_id, it
|
||||||
# should be more generic in future.
|
# should be more generic in future.
|
||||||
return '%s/%s/%s' % (self._get_host(), self._api_version, 'openstack')
|
return '%s/%s/%s' % (self._get_host(), self.api_major_version,
|
||||||
|
'openstack')
|
||||||
|
|
||||||
def _get_response(self, url, method, body=None, strip_version=False,
|
def _get_response(self, url, method, body=None, strip_version=False,
|
||||||
api_version=None, headers=None):
|
api_version=None, headers=None):
|
||||||
@ -372,35 +373,35 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
|
|||||||
headers=None):
|
headers=None):
|
||||||
return self._get_response(url, 'OPTIONS', strip_version=strip_version,
|
return self._get_response(url, 'OPTIONS', strip_version=strip_version,
|
||||||
api_version=(api_version or
|
api_version=(api_version or
|
||||||
self.request_api_version),
|
self.microversion),
|
||||||
headers=headers)
|
headers=headers)
|
||||||
|
|
||||||
def _do_get(self, url, strip_version=False, api_version=None,
|
def _do_get(self, url, strip_version=False, api_version=None,
|
||||||
headers=None):
|
headers=None):
|
||||||
return self._get_response(url, 'GET', strip_version=strip_version,
|
return self._get_response(url, 'GET', strip_version=strip_version,
|
||||||
api_version=(api_version or
|
api_version=(api_version or
|
||||||
self.request_api_version),
|
self.microversion),
|
||||||
headers=headers)
|
headers=headers)
|
||||||
|
|
||||||
def _do_post(self, url, name, subs, method='POST', api_version=None,
|
def _do_post(self, url, name, subs, method='POST', api_version=None,
|
||||||
headers=None):
|
headers=None):
|
||||||
body = self._read_template(name) % subs
|
body = self._read_template(name) % subs
|
||||||
sample = self._get_sample(name, self.request_api_version)
|
sample = self._get_sample(name, self.microversion)
|
||||||
if self.generate_samples and not os.path.exists(sample):
|
if self.generate_samples and not os.path.exists(sample):
|
||||||
self._write_sample(name, body)
|
self._write_sample(name, body)
|
||||||
return self._get_response(url, method, body,
|
return self._get_response(url, method, body,
|
||||||
api_version=(api_version or
|
api_version=(api_version or
|
||||||
self.request_api_version),
|
self.microversion),
|
||||||
headers=headers)
|
headers=headers)
|
||||||
|
|
||||||
def _do_put(self, url, name, subs, api_version=None, headers=None):
|
def _do_put(self, url, name, subs, api_version=None, headers=None):
|
||||||
return self._do_post(url, name, subs, method='PUT',
|
return self._do_post(url, name, subs, method='PUT',
|
||||||
api_version=(api_version or
|
api_version=(api_version or
|
||||||
self.request_api_version),
|
self.microversion),
|
||||||
headers=headers)
|
headers=headers)
|
||||||
|
|
||||||
def _do_delete(self, url, api_version=None, headers=None):
|
def _do_delete(self, url, api_version=None, headers=None):
|
||||||
return self._get_response(url, 'DELETE',
|
return self._get_response(url, 'DELETE',
|
||||||
api_version=(api_version or
|
api_version=(api_version or
|
||||||
self.request_api_version),
|
self.microversion),
|
||||||
headers=headers)
|
headers=headers)
|
||||||
|
@ -85,7 +85,7 @@ class _IntegratedTestBase(test.TestCase):
|
|||||||
self._setup_services()
|
self._setup_services()
|
||||||
|
|
||||||
self.api_fixture = self.useFixture(
|
self.api_fixture = self.useFixture(
|
||||||
nova_fixtures.OSAPIFixture(self._api_version))
|
nova_fixtures.OSAPIFixture(self.api_major_version))
|
||||||
|
|
||||||
# if the class needs to run as admin, make the api endpoint
|
# if the class needs to run as admin, make the api endpoint
|
||||||
# the admin, otherwise it's safer to run as non admin user.
|
# the admin, otherwise it's safer to run as non admin user.
|
||||||
@ -125,7 +125,7 @@ class _IntegratedTestBase(test.TestCase):
|
|||||||
self.osapi.start()
|
self.osapi.start()
|
||||||
self.auth_url = 'http://%(host)s:%(port)s/%(api_version)s' % ({
|
self.auth_url = 'http://%(host)s:%(port)s/%(api_version)s' % ({
|
||||||
'host': self.osapi.host, 'port': self.osapi.port,
|
'host': self.osapi.host, 'port': self.osapi.port,
|
||||||
'api_version': self._api_version})
|
'api_version': self.api_major_version})
|
||||||
|
|
||||||
def _get_flags(self):
|
def _get_flags(self):
|
||||||
"""Allow subclass to modify global config before we start services."""
|
"""Allow subclass to modify global config before we start services."""
|
||||||
|
@ -25,7 +25,7 @@ LOG = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
class ExtensionsTest(integrated_helpers._IntegratedTestBase):
|
class ExtensionsTest(integrated_helpers._IntegratedTestBase):
|
||||||
_api_version = 'v2'
|
api_major_version = 'v2'
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.useFixture(api_paste_fixture.ApiPasteLegacyV2Fixture())
|
self.useFixture(api_paste_fixture.ApiPasteLegacyV2Fixture())
|
||||||
|
@ -22,7 +22,7 @@ from nova.tests.unit import fake_network
|
|||||||
|
|
||||||
|
|
||||||
class LegacyV2CompatibleTestBase(test_servers.ServersTestBase):
|
class LegacyV2CompatibleTestBase(test_servers.ServersTestBase):
|
||||||
_api_version = 'v2'
|
api_major_version = 'v2'
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(LegacyV2CompatibleTestBase, self).setUp()
|
super(LegacyV2CompatibleTestBase, self).setUp()
|
||||||
|
@ -22,7 +22,7 @@ LOG = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
class LoginTest(integrated_helpers._IntegratedTestBase):
|
class LoginTest(integrated_helpers._IntegratedTestBase):
|
||||||
_api_version = 'v2'
|
api_major_version = 'v2'
|
||||||
|
|
||||||
def test_login(self):
|
def test_login(self):
|
||||||
# Simple check - we list flavors - so we know we're logged in.
|
# Simple check - we list flavors - so we know we're logged in.
|
||||||
@ -32,4 +32,4 @@ class LoginTest(integrated_helpers._IntegratedTestBase):
|
|||||||
|
|
||||||
|
|
||||||
class LoginTestV21(LoginTest):
|
class LoginTestV21(LoginTest):
|
||||||
_api_version = 'v2.1'
|
api_major_version = 'v2.1'
|
||||||
|
@ -33,7 +33,7 @@ CONF = cfg.CONF
|
|||||||
|
|
||||||
class ServerGroupTestBase(test.TestCase):
|
class ServerGroupTestBase(test.TestCase):
|
||||||
REQUIRES_LOCKING = True
|
REQUIRES_LOCKING = True
|
||||||
_api_version = 'v2'
|
api_major_version = 'v2'
|
||||||
_image_ref_parameter = 'imageRef'
|
_image_ref_parameter = 'imageRef'
|
||||||
_flavor_ref_parameter = 'flavorRef'
|
_flavor_ref_parameter = 'flavorRef'
|
||||||
|
|
||||||
@ -439,4 +439,4 @@ class ServerGroupAntiAffinityConfTest(ServerGroupTestBase):
|
|||||||
|
|
||||||
|
|
||||||
class ServerGroupTestV21(ServerGroupTest):
|
class ServerGroupTestV21(ServerGroupTest):
|
||||||
_api_version = 'v2.1'
|
api_major_version = 'v2.1'
|
||||||
|
@ -32,7 +32,7 @@ LOG = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
class ServersTestBase(integrated_helpers._IntegratedTestBase):
|
class ServersTestBase(integrated_helpers._IntegratedTestBase):
|
||||||
_api_version = 'v2'
|
api_major_version = 'v2'
|
||||||
_force_delete_parameter = 'forceDelete'
|
_force_delete_parameter = 'forceDelete'
|
||||||
_image_ref_parameter = 'imageRef'
|
_image_ref_parameter = 'imageRef'
|
||||||
_flavor_ref_parameter = 'flavorRef'
|
_flavor_ref_parameter = 'flavorRef'
|
||||||
@ -510,4 +510,4 @@ class ServersTest(ServersTestBase):
|
|||||||
|
|
||||||
|
|
||||||
class ServersTestV21(ServersTest):
|
class ServersTestV21(ServersTest):
|
||||||
_api_version = 'v2.1'
|
api_major_version = 'v2.1'
|
||||||
|
@ -40,10 +40,10 @@ class SecgroupsFullstack(testscenarios.WithScenarios, test.TestCase):
|
|||||||
# in the dictionary on ``self`` for each scenario.
|
# in the dictionary on ``self`` for each scenario.
|
||||||
scenarios = [
|
scenarios = [
|
||||||
('v2', {
|
('v2', {
|
||||||
'_api_version': 'v2'}),
|
'api_major_version': 'v2'}),
|
||||||
# test v2.1 base microversion
|
# test v2.1 base microversion
|
||||||
('v2_1', {
|
('v2_1', {
|
||||||
'_api_version': 'v2.1'}),
|
'api_major_version': 'v2.1'}),
|
||||||
]
|
]
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user