Merge "Move nova cell v1 job to check pipeline"
diff --git a/tempest/api/compute/servers/test_server_actions.py b/tempest/api/compute/servers/test_server_actions.py
index ec7b505..9fc5af0 100644
--- a/tempest/api/compute/servers/test_server_actions.py
+++ b/tempest/api/compute/servers/test_server_actions.py
@@ -393,7 +393,7 @@
resp = self.client.create_backup(self.server_id,
backup_type='daily',
rotation=2,
- name=backup1).response
+ name=backup1)
oldest_backup_exist = True
# the oldest one should be deleted automatically in this test
@@ -409,10 +409,10 @@
"deleted during rotation.", oldest_backup)
if api_version_utils.compare_version_header_to_response(
- "OpenStack-API-Version", "compute 2.45", resp, "lt"):
+ "OpenStack-API-Version", "compute 2.45", resp.response, "lt"):
image1_id = resp['image_id']
else:
- image1_id = data_utils.parse_image_id(resp['location'])
+ image1_id = data_utils.parse_image_id(resp.response['location'])
self.addCleanup(_clean_oldest_backup, image1_id)
waiters.wait_for_image_status(glance_client,
image1_id, 'active')
@@ -422,12 +422,12 @@
resp = self.client.create_backup(self.server_id,
backup_type='daily',
rotation=2,
- name=backup2).response
+ name=backup2)
if api_version_utils.compare_version_header_to_response(
- "OpenStack-API-Version", "compute 2.45", resp, "lt"):
+ "OpenStack-API-Version", "compute 2.45", resp.response, "lt"):
image2_id = resp['image_id']
else:
- image2_id = data_utils.parse_image_id(resp['location'])
+ image2_id = data_utils.parse_image_id(resp.response['location'])
self.addCleanup(glance_client.delete_image, image2_id)
waiters.wait_for_image_status(glance_client,
image2_id, 'active')
@@ -465,12 +465,12 @@
resp = self.client.create_backup(self.server_id,
backup_type='daily',
rotation=2,
- name=backup3).response
+ name=backup3)
if api_version_utils.compare_version_header_to_response(
- "OpenStack-API-Version", "compute 2.45", resp, "lt"):
+ "OpenStack-API-Version", "compute 2.45", resp.response, "lt"):
image3_id = resp['image_id']
else:
- image3_id = data_utils.parse_image_id(resp['location'])
+ image3_id = data_utils.parse_image_id(resp.response['location'])
self.addCleanup(glance_client.delete_image, image3_id)
# the first back up should be deleted
waiters.wait_for_server_status(self.client, self.server_id, 'ACTIVE')
diff --git a/tempest/api/identity/admin/v3/test_roles.py b/tempest/api/identity/admin/v3/test_roles.py
index 69cac33..62ced19 100644
--- a/tempest/api/identity/admin/v3/test_roles.py
+++ b/tempest/api/identity/admin/v3/test_roles.py
@@ -384,12 +384,23 @@
rules = self.roles_client.list_all_role_inference_rules()[
'role_inferences']
+
+ # NOTE(jaosorior): With the work related to the define-default-roles
+ # blueprint, we now have 'admin', 'member' and 'reader' by default. So
+ # we filter every other implied role to only take into account the ones
+ # relates to this test.
+ relevant_roles = (self.roles[0]['id'], self.roles[1]['id'],
+ self.roles[2]['id'], self.role['id'])
+
+ def is_implied_role_relevant(rule):
+ return any(r for r in rule['implies'] if r['id'] in relevant_roles)
+
+ relevant_rules = filter(is_implied_role_relevant, rules)
# Sort the rules by the number of inferences, since there should be 1
# inference between "roles[2]" and "role" and 2 inferences for
# "roles[0]": between "roles[1]" and "roles[2]".
- sorted_rules = sorted(rules, key=lambda r: len(r['implies']))
+ sorted_rules = sorted(relevant_rules, key=lambda r: len(r['implies']))
- # Check that 2 sets of rules are returned.
self.assertEqual(2, len(sorted_rules))
# Check that only 1 inference rule exists between "roles[2]" and "role"
self.assertEqual(1, len(sorted_rules[0]['implies']))
diff --git a/tempest/tests/common/test_waiters.py b/tempest/tests/common/test_waiters.py
index eb1e2b6..938d226 100644
--- a/tempest/tests/common/test_waiters.py
+++ b/tempest/tests/common/test_waiters.py
@@ -75,61 +75,76 @@
class TestInterfaceWaiters(base.TestCase):
- def setUp(self):
- super(TestInterfaceWaiters, self).setUp()
- self.client = mock.MagicMock()
- self.client.build_timeout = 1
- self.client.build_interval = 1
- def _port_down(self):
- return {'interfaceAttachment': {'port_state': 'DOWN'}}
+ build_timeout = 1.
+ build_interval = 1
+ port_down = {'interfaceAttachment': {'port_state': 'DOWN'}}
+ port_active = {'interfaceAttachment': {'port_state': 'ACTIVE'}}
- def _port_active(self):
- return {'interfaceAttachment': {'port_state': 'ACTIVE'}}
+ def mock_client(self, **kwargs):
+ return mock.MagicMock(
+ build_timeout=self.build_timeout,
+ build_interval=self.build_interval,
+ **kwargs)
def test_wait_for_interface_status(self):
- self.client.show_interface.side_effect = [self._port_down(),
- self._port_active()]
- with mock.patch.object(time, 'sleep') as sleep_mock:
- start_time = int(time.time())
- waiters.wait_for_interface_status(self.client, 'server_id',
- 'port_id', 'ACTIVE')
- end_time = int(time.time())
- self.assertLess(end_time, (start_time + self.client.build_timeout))
- sleep_mock.assert_called_once_with(self.client.build_interval)
+ show_interface = mock.Mock(
+ side_effect=[self.port_down, self.port_active])
+ client = self.mock_client(show_interface=show_interface)
+ self.patch('time.time', return_value=0.)
+ sleep = self.patch('time.sleep')
+
+ result = waiters.wait_for_interface_status(
+ client, 'server_id', 'port_id', 'ACTIVE')
+
+ self.assertIs(self.port_active['interfaceAttachment'], result)
+ show_interface.assert_has_calls([mock.call('server_id', 'port_id'),
+ mock.call('server_id', 'port_id')])
+ sleep.assert_called_once_with(client.build_interval)
def test_wait_for_interface_status_timeout(self):
- time_mock = self.patch('time.time')
- time_mock.side_effect = utils.generate_timeout_series(1)
+ show_interface = mock.MagicMock(return_value=self.port_down)
+ client = self.mock_client(show_interface=show_interface)
+ self.patch('time.time', side_effect=[0., client.build_timeout + 1.])
+ sleep = self.patch('time.sleep')
- self.client.show_interface.return_value = self._port_down()
self.assertRaises(lib_exc.TimeoutException,
waiters.wait_for_interface_status,
- self.client, 'server_id', 'port_id', 'ACTIVE')
+ client, 'server_id', 'port_id', 'ACTIVE')
- def _one_interface(self):
- return {'interfaceAttachments': [{'port_id': 'port_one'}]}
+ show_interface.assert_has_calls([mock.call('server_id', 'port_id'),
+ mock.call('server_id', 'port_id')])
+ sleep.assert_called_once_with(client.build_interval)
- def _two_interfaces(self):
- return {'interfaceAttachments': [{'port_id': 'port_one'},
- {'port_id': 'port_two'}]}
+ one_interface = {'interfaceAttachments': [{'port_id': 'port_one'}]}
+ two_interfaces = {'interfaceAttachments': [{'port_id': 'port_one'},
+ {'port_id': 'port_two'}]}
def test_wait_for_interface_detach(self):
- self.client.list_interfaces.side_effect = [self._two_interfaces(),
- self._one_interface()]
- with mock.patch.object(time, 'sleep') as sleep_mock:
- start_time = int(time.time())
- waiters.wait_for_interface_detach(self.client, 'server_id',
- 'port_two')
- end_time = int(time.time())
- self.assertLess(end_time, (start_time + self.client.build_timeout))
- sleep_mock.assert_called_once_with(self.client.build_interval)
+ list_interfaces = mock.MagicMock(
+ side_effect=[self.two_interfaces, self.one_interface])
+ client = self.mock_client(list_interfaces=list_interfaces)
+ self.patch('time.time', return_value=0.)
+ sleep = self.patch('time.sleep')
+
+ result = waiters.wait_for_interface_detach(
+ client, 'server_id', 'port_two')
+
+ self.assertIs(self.one_interface['interfaceAttachments'], result)
+ list_interfaces.assert_has_calls([mock.call('server_id'),
+ mock.call('server_id')])
+ sleep.assert_called_once_with(client.build_interval)
def test_wait_for_interface_detach_timeout(self):
- time_mock = self.patch('time.time')
- time_mock.side_effect = utils.generate_timeout_series(1)
+ list_interfaces = mock.MagicMock(return_value=self.one_interface)
+ client = self.mock_client(list_interfaces=list_interfaces)
+ self.patch('time.time', side_effect=[0., client.build_timeout + 1.])
+ sleep = self.patch('time.sleep')
- self.client.list_interfaces.return_value = self._one_interface()
self.assertRaises(lib_exc.TimeoutException,
waiters.wait_for_interface_detach,
- self.client, 'server_id', 'port_one')
+ client, 'server_id', 'port_one')
+
+ list_interfaces.assert_has_calls([mock.call('server_id'),
+ mock.call('server_id')])
+ sleep.assert_called_once_with(client.build_interval)