Merge "make microversion a client level construct for tests"
This commit is contained in:
@@ -124,6 +124,7 @@ class TestOpenStackClient(object):
|
||||
self.auth_key = auth_key
|
||||
self.auth_uri = auth_uri
|
||||
self.project_id = project_id
|
||||
self.microversion = None
|
||||
|
||||
def request(self, url, method='GET', body=None, headers=None):
|
||||
_headers = {'Content-Type': 'application/json'}
|
||||
@@ -167,6 +168,8 @@ class TestOpenStackClient(object):
|
||||
|
||||
headers = kwargs.setdefault('headers', {})
|
||||
headers['X-Auth-Token'] = auth_result['x-auth-token']
|
||||
if self.microversion:
|
||||
headers['X-OpenStack-Nova-API-Version'] = self.microversion
|
||||
|
||||
response = self.request(full_uri, **kwargs)
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ class FixedIpTest(test_servers.ServersSampleBase):
|
||||
|
||||
def setUp(self):
|
||||
super(FixedIpTest, self).setUp()
|
||||
|
||||
self.api.microversion = self.microversion
|
||||
instance = dict(test_utils.get_test_instance(),
|
||||
hostname='openstack', host='host')
|
||||
fake_fixed_ips = [{'id': 1,
|
||||
@@ -95,15 +95,13 @@ class FixedIpTest(test_servers.ServersSampleBase):
|
||||
def test_fixed_ip_reserve(self):
|
||||
# Reserve a Fixed IP.
|
||||
response = self._do_post('os-fixed-ips/192.168.1.1/action',
|
||||
'fixedip-post-req', {},
|
||||
api_version=self.microversion)
|
||||
'fixedip-post-req', {})
|
||||
self.assertEqual(202, response.status_code)
|
||||
self.assertEqual("", response.content)
|
||||
|
||||
def _test_get_fixed_ip(self, **kwargs):
|
||||
# Return data about the given fixed ip.
|
||||
response = self._do_get('os-fixed-ips/192.168.1.1',
|
||||
api_version=self.microversion)
|
||||
response = self._do_get('os-fixed-ips/192.168.1.1')
|
||||
project = {'cidr': '192.168.1.0/24',
|
||||
'hostname': 'openstack',
|
||||
'host': 'host',
|
||||
|
||||
@@ -47,6 +47,7 @@ class ServerActionsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||
|
||||
def setUp(self):
|
||||
super(ServerActionsSampleJsonTest, self).setUp()
|
||||
self.api.microversion = self.microversion
|
||||
self.actions = fake_server_actions.FAKE_ACTIONS
|
||||
self.events = fake_server_actions.FAKE_EVENTS
|
||||
self.instance = test_utils.get_test_instance(obj=True)
|
||||
@@ -79,8 +80,7 @@ class ServerActionsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||
fake_action = self.actions[fake_uuid][fake_request_id]
|
||||
|
||||
response = self._do_get('servers/%s/os-instance-actions/%s' %
|
||||
(fake_uuid, fake_request_id),
|
||||
api_version=self.microversion)
|
||||
(fake_uuid, fake_request_id))
|
||||
subs = {}
|
||||
subs['action'] = '(reboot)|(resize)'
|
||||
subs['instance_uuid'] = str(fake_uuid)
|
||||
@@ -93,8 +93,7 @@ class ServerActionsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||
|
||||
def test_instance_actions_list(self):
|
||||
fake_uuid = fake_server_actions.FAKE_UUID
|
||||
response = self._do_get('servers/%s/os-instance-actions' % (fake_uuid),
|
||||
api_version=self.microversion)
|
||||
response = self._do_get('servers/%s/os-instance-actions' % (fake_uuid))
|
||||
subs = {}
|
||||
subs['action'] = '(reboot)|(resize)'
|
||||
subs['integer_id'] = '[0-9]+'
|
||||
|
||||
@@ -39,6 +39,10 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||
'nova.api.openstack.compute.contrib.keypairs.Keypairs')
|
||||
return f
|
||||
|
||||
def setUp(self):
|
||||
super(KeyPairsSampleJsonTest, self).setUp()
|
||||
self.api.microversion = self.microversion
|
||||
|
||||
# TODO(sdague): this is only needed because we randomly choose the
|
||||
# uuid each time.
|
||||
def generalize_subs(self, subs, vanilla_regexes):
|
||||
@@ -52,8 +56,7 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||
"""Get api sample of key pairs post request."""
|
||||
key_name = 'keypair-' + str(uuid.uuid4())
|
||||
subs = dict(keypair_name=key_name, **kwargs)
|
||||
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
|
||||
api_version=self.microversion)
|
||||
response = self._do_post('os-keypairs', 'keypairs-post-req', subs)
|
||||
subs = {'keypair_name': key_name}
|
||||
|
||||
self._verify_response('keypairs-post-resp', subs, response,
|
||||
@@ -77,31 +80,28 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||
params['public_key'] = public_key
|
||||
params.update(**kwargs)
|
||||
response = self._do_post('os-keypairs', 'keypairs-import-post-req',
|
||||
params, api_version=self.microversion)
|
||||
params)
|
||||
self._verify_response('keypairs-import-post-resp', subs, response,
|
||||
self.expected_post_status_code)
|
||||
|
||||
def test_keypairs_list(self):
|
||||
# Get api sample of key pairs list request.
|
||||
key_name = self.test_keypairs_post()
|
||||
response = self._do_get('os-keypairs',
|
||||
api_version=self.microversion)
|
||||
response = self._do_get('os-keypairs')
|
||||
subs = {'keypair_name': key_name}
|
||||
self._verify_response('keypairs-list-resp', subs, response, 200)
|
||||
|
||||
def test_keypairs_get(self):
|
||||
# Get api sample of key pairs get request.
|
||||
key_name = self.test_keypairs_post()
|
||||
response = self._do_get('os-keypairs/%s' % key_name,
|
||||
api_version=self.microversion)
|
||||
response = self._do_get('os-keypairs/%s' % key_name)
|
||||
subs = {'keypair_name': key_name}
|
||||
self._verify_response('keypairs-get-resp', subs, response, 200)
|
||||
|
||||
def test_keypairs_delete(self):
|
||||
# Get api sample of key pairs delete request.
|
||||
key_name = self.test_keypairs_post()
|
||||
response = self._do_delete('os-keypairs/%s' % key_name,
|
||||
api_version=self.microversion)
|
||||
response = self._do_delete('os-keypairs/%s' % key_name)
|
||||
self.assertEqual(self.expected_delete_status_code,
|
||||
response.status_code)
|
||||
|
||||
@@ -128,8 +128,7 @@ class KeyPairsV22SampleJsonTest(KeyPairsSampleJsonTest):
|
||||
def test_keypairs_post_invalid(self):
|
||||
key_name = 'keypair-' + str(uuid.uuid4())
|
||||
subs = dict(keypair_name=key_name, keypair_type='fakey_type')
|
||||
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
|
||||
api_version=self.microversion)
|
||||
response = self._do_post('os-keypairs', 'keypairs-post-req', subs)
|
||||
|
||||
self.assertEqual(400, response.status_code)
|
||||
|
||||
@@ -154,7 +153,7 @@ class KeyPairsV22SampleJsonTest(KeyPairsSampleJsonTest):
|
||||
'public_key': fake_crypto.get_ssh_public_key()
|
||||
}
|
||||
response = self._do_post('os-keypairs', 'keypairs-import-post-req',
|
||||
subs, api_version=self.microversion)
|
||||
subs)
|
||||
|
||||
self.assertEqual(400, response.status_code)
|
||||
|
||||
@@ -203,8 +202,7 @@ class KeyPairsV210SampleJsonTest(KeyPairsSampleJsonTest):
|
||||
'user_id': "fake"
|
||||
}
|
||||
key_name = self._check_keypairs_post(**subs)
|
||||
response = self._do_delete('os-keypairs/%s?user_id=fake' % key_name,
|
||||
api_version=self.microversion)
|
||||
response = self._do_delete('os-keypairs/%s?user_id=fake' % key_name)
|
||||
self.assertEqual(self.expected_delete_status_code,
|
||||
response.status_code)
|
||||
|
||||
@@ -222,8 +220,6 @@ class KeyPairsV210SampleJsonTestNotAdmin(KeyPairsV210SampleJsonTest):
|
||||
subs = dict(keypair_name=key_name,
|
||||
keypair_type=keypair_obj.KEYPAIR_TYPE_SSH,
|
||||
user_id='fake1')
|
||||
response = self._do_post('os-keypairs', 'keypairs-post-req', subs,
|
||||
api_version=self.microversion,
|
||||
)
|
||||
response = self._do_post('os-keypairs', 'keypairs-post-req', subs)
|
||||
|
||||
self.assertEqual(403, response.status_code)
|
||||
|
||||
@@ -23,6 +23,7 @@ CONF.import_opt('osapi_compute_extension',
|
||||
|
||||
|
||||
class ConsolesSampleJsonTests(test_servers.ServersSampleBase):
|
||||
microversion = None
|
||||
extension_name = "os-remote-consoles"
|
||||
|
||||
def _get_flags(self):
|
||||
@@ -34,6 +35,7 @@ class ConsolesSampleJsonTests(test_servers.ServersSampleBase):
|
||||
|
||||
def setUp(self):
|
||||
super(ConsolesSampleJsonTests, self).setUp()
|
||||
self.api.microversion = self.microversion
|
||||
self.flags(enabled=True, group='vnc')
|
||||
self.flags(enabled=True, group='spice')
|
||||
self.flags(enabled=True, group='rdp')
|
||||
@@ -96,8 +98,7 @@ class ConsolesV26SampleJsonTests(test_servers.ServersSampleBase):
|
||||
|
||||
body = {'protocol': 'vnc', 'type': 'novnc'}
|
||||
response = self._do_post('servers/%s/remote-consoles' % uuid,
|
||||
'create-vnc-console-req', body,
|
||||
api_version='2.6')
|
||||
'create-vnc-console-req', body)
|
||||
subs = {"url": self.http_regex}
|
||||
self._verify_response('create-vnc-console-resp', subs, response, 200)
|
||||
|
||||
@@ -117,7 +118,6 @@ class ConsolesV28SampleJsonTests(test_servers.ServersSampleBase):
|
||||
|
||||
body = {'protocol': 'mks', 'type': 'webmks'}
|
||||
response = self._do_post('servers/%s/remote-consoles' % uuid,
|
||||
'create-mks-console-req', body,
|
||||
api_version='2.8')
|
||||
'create-mks-console-req', body)
|
||||
subs = {"url": self.http_regex}
|
||||
self._verify_response('create-mks-console-resp', subs, response, 200)
|
||||
|
||||
@@ -30,6 +30,7 @@ class ServerMigrationsSampleJsonTest(test_servers.ServersSampleBase):
|
||||
"""setUp method for server usage."""
|
||||
super(ServerMigrationsSampleJsonTest, self).setUp()
|
||||
self.uuid = self._post_server()
|
||||
self.api.microversion = '2.22'
|
||||
|
||||
@mock.patch.object(conductor_manager.ComputeTaskManager, '_live_migrate')
|
||||
@mock.patch.object(db, 'service_get_by_compute_host')
|
||||
@@ -47,6 +48,5 @@ class ServerMigrationsSampleJsonTest(test_servers.ServersSampleBase):
|
||||
self._do_post('servers/%s/action' % self.uuid, 'live-migrate-server',
|
||||
{'hostname': self.compute.host})
|
||||
response = self._do_post('servers/%s/migrations/%s/action'
|
||||
% (self.uuid, '3'), 'force_complete',
|
||||
{}, api_version='2.22')
|
||||
% (self.uuid, '3'), 'force_complete', {})
|
||||
self.assertEqual(202, response.status_code)
|
||||
|
||||
@@ -69,6 +69,10 @@ class ServersSampleJsonTest(ServersSampleBase):
|
||||
sample_dir = 'servers'
|
||||
microversion = None
|
||||
|
||||
def setUp(self):
|
||||
super(ServersSampleJsonTest, self).setUp()
|
||||
self.api.microversion = self.microversion
|
||||
|
||||
def _get_flags(self):
|
||||
f = super(ServersSampleBase, self)._get_flags()
|
||||
f['osapi_compute_extension'] = CONF.osapi_compute_extension[:]
|
||||
@@ -86,8 +90,7 @@ class ServersSampleJsonTest(ServersSampleBase):
|
||||
|
||||
def test_servers_get(self):
|
||||
uuid = self.test_servers_post()
|
||||
response = self._do_get('servers/%s' % uuid,
|
||||
api_version=self.microversion)
|
||||
response = self._do_get('servers/%s' % uuid)
|
||||
subs = {}
|
||||
subs['hostid'] = '[a-f0-9]+'
|
||||
subs['id'] = uuid
|
||||
@@ -99,15 +102,13 @@ class ServersSampleJsonTest(ServersSampleBase):
|
||||
|
||||
def test_servers_list(self):
|
||||
uuid = self._post_server()
|
||||
response = self._do_get('servers',
|
||||
api_version=self.microversion)
|
||||
response = self._do_get('servers')
|
||||
subs = {'id': uuid}
|
||||
self._verify_response('servers-list-resp', subs, response, 200)
|
||||
|
||||
def test_servers_details(self):
|
||||
uuid = self.test_servers_post()
|
||||
response = self._do_get('servers/detail',
|
||||
api_version=self.microversion)
|
||||
response = self._do_get('servers/detail')
|
||||
subs = {}
|
||||
subs['hostid'] = '[a-f0-9]+'
|
||||
subs['id'] = uuid
|
||||
@@ -349,7 +350,6 @@ class ServerTriggerCrashDumpJsonTest(ServersSampleBase):
|
||||
|
||||
response = self._do_post('servers/%s/action' % uuid,
|
||||
'server-action-trigger-crash-dump',
|
||||
{},
|
||||
api_version=self.microversion)
|
||||
{})
|
||||
self.assertEqual(response.status_code, 202)
|
||||
self.assertEqual(response.content, "")
|
||||
|
||||
@@ -44,6 +44,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||
|
||||
def setUp(self):
|
||||
super(ServicesJsonTest, self).setUp()
|
||||
self.api.microversion = self.microversion
|
||||
self.stub_out("nova.db.service_get_all",
|
||||
test_services.fake_db_api_service_get_all)
|
||||
self.stub_out("nova.db.service_get_by_host_and_binary",
|
||||
@@ -54,8 +55,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||
|
||||
def test_services_list(self):
|
||||
"""Return a list of all agent builds."""
|
||||
response = self._do_get('os-services',
|
||||
api_version=self.microversion)
|
||||
response = self._do_get('os-services')
|
||||
subs = {'binary': 'nova-compute',
|
||||
'host': 'host1',
|
||||
'zone': 'nova',
|
||||
@@ -68,8 +68,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||
subs = {"host": "host1",
|
||||
'binary': 'nova-compute'}
|
||||
response = self._do_put('os-services/enable',
|
||||
'service-enable-put-req', subs,
|
||||
api_version=self.microversion)
|
||||
'service-enable-put-req', subs)
|
||||
self._verify_response('service-enable-put-resp', subs, response, 200)
|
||||
|
||||
def test_service_disable(self):
|
||||
@@ -77,8 +76,7 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||
subs = {"host": "host1",
|
||||
'binary': 'nova-compute'}
|
||||
response = self._do_put('os-services/disable',
|
||||
'service-disable-put-req', subs,
|
||||
api_version=self.microversion)
|
||||
'service-disable-put-req', subs)
|
||||
self._verify_response('service-disable-put-resp', subs, response, 200)
|
||||
|
||||
def test_service_disable_log_reason(self):
|
||||
@@ -87,15 +85,13 @@ class ServicesJsonTest(api_sample_base.ApiSampleTestBaseV21):
|
||||
'binary': 'nova-compute',
|
||||
'disabled_reason': 'test2'}
|
||||
response = self._do_put('os-services/disable-log-reason',
|
||||
'service-disable-log-put-req', subs,
|
||||
api_version=self.microversion)
|
||||
'service-disable-log-put-req', subs)
|
||||
self._verify_response('service-disable-log-put-resp',
|
||||
subs, response, 200)
|
||||
|
||||
def test_service_delete(self):
|
||||
"""Delete an existing service."""
|
||||
response = self._do_delete('os-services/1',
|
||||
api_version=self.microversion)
|
||||
response = self._do_delete('os-services/1')
|
||||
self.assertEqual(204, response.status_code)
|
||||
self.assertEqual("", response.content)
|
||||
|
||||
@@ -108,8 +104,7 @@ class ServicesV211JsonTest(ServicesJsonTest):
|
||||
|
||||
def test_services_list(self):
|
||||
"""Return a list of all agent builds."""
|
||||
response = self._do_get('os-services',
|
||||
api_version=self.microversion)
|
||||
response = self._do_get('os-services')
|
||||
subs = {'binary': 'nova-compute',
|
||||
'host': 'host1',
|
||||
'zone': 'nova',
|
||||
@@ -124,7 +119,6 @@ class ServicesV211JsonTest(ServicesJsonTest):
|
||||
'binary': 'nova-compute',
|
||||
'forced_down': 'true'}
|
||||
response = self._do_put('os-services/force-down',
|
||||
'service-force-down-put-req', subs,
|
||||
api_version=self.microversion)
|
||||
'service-force-down-put-req', subs)
|
||||
self._verify_response('service-force-down-put-resp', subs,
|
||||
response, 200)
|
||||
|
||||
@@ -56,9 +56,8 @@ class TestServiceUpdateNotificationSample(
|
||||
body = {'host': 'host1',
|
||||
'binary': 'nova-compute',
|
||||
'forced_down': True}
|
||||
self.admin_api.api_put('os-services/force-down',
|
||||
body,
|
||||
api_version='2.12')
|
||||
self.admin_api.microversion = '2.12'
|
||||
self.admin_api.api_put('os-services/force-down', body)
|
||||
self._verify_notification('service-update',
|
||||
replacements={'forced_down': True,
|
||||
'disabled': True,
|
||||
|
||||
@@ -67,10 +67,13 @@ class InstanceActionsTestV21(InstanceActionsTestV2):
|
||||
class InstanceActionsTestV221(InstanceActionsTestV21):
|
||||
microversion = '2.21'
|
||||
|
||||
def setUp(self):
|
||||
super(InstanceActionsTestV221, self).setUp()
|
||||
self.api.microversion = self.microversion
|
||||
|
||||
def test_get_instance_actions_deleted(self):
|
||||
server = self._create_server()
|
||||
self._delete_server(server['id'])
|
||||
actions = self.api.get_instance_actions(server['id'],
|
||||
api_version=self.microversion)
|
||||
actions = self.api.get_instance_actions(server['id'])
|
||||
self.assertEqual('delete', actions[0]['action'])
|
||||
self.assertEqual('create', actions[1]['action'])
|
||||
|
||||
Reference in New Issue
Block a user