def _server_create_software_config(self, server_name='server_sc', md=None, ret_tmpl=False): stack_name = '%s_s' % server_name (tmpl, stack) = self._setup_test_stack(stack_name, server_sc_tmpl) self.stack = stack self.server_props = tmpl.t['resources']['server']['properties'] if md is not None: tmpl.t['resources']['server']['metadata'] = md stack.stack_user_project_id = '8888' resource_defns = tmpl.resource_definitions(stack) server = deployed_server.DeployedServer('server', resource_defns['server'], stack) self.patchobject(server, 'heat') scheduler.TaskRunner(server.create)() self.assertEqual('4567', server.access_key) self.assertEqual('8901', server.secret_key) self.assertEqual('1234', server._get_user_id()) self.assertEqual('POLL_SERVER_CFN', server.properties.get('software_config_transport')) self.assertTrue(stack.access_allowed('4567', 'server')) self.assertFalse(stack.access_allowed('45678', 'server')) self.assertFalse(stack.access_allowed('4567', 'wserver')) if ret_tmpl: return server, tmpl else: return server
def test_server_create_deployment_swift_data_bad_container(self): server_name = 'server' stack_name = '%s_s' % server_name (tmpl, stack) = self._setup_test_stack( stack_name, ds_deployment_data_bad_container_tmpl) props = tmpl.t['resources']['server']['properties'] props['software_config_transport'] = 'POLL_TEMP_URL' self.server_props = props resource_defns = tmpl.resource_definitions(stack) server = deployed_server.DeployedServer(server_name, resource_defns[server_name], stack) self.assertRaises(exception.StackValidationFailed, server.validate)
def test_server_create_deployment_swift_data_none_object(self): server_name = 'server' stack_name = '%s_s' % server_name (tmpl, stack) = self._setup_test_stack(stack_name, ds_deployment_data_none_object_tmpl) props = tmpl.t['resources']['server']['properties'] props['software_config_transport'] = 'POLL_TEMP_URL' self.server_props = props resource_defns = tmpl.resource_definitions(stack) server = deployed_server.DeployedServer(server_name, resource_defns[server_name], stack) sc = mock.Mock() sc.head_account.return_value = { 'x-account-meta-temp-url-key': 'secrit' } sc.url = 'http://192.0.2.2' self.patchobject(swift.SwiftClientPlugin, '_create', return_value=sc) scheduler.TaskRunner(server.create)() # self._create_test_server(server_name) metadata_put_url = server.data().get('metadata_put_url') md = server.metadata_get() metadata_url = md['os-collect-config']['request']['metadata_url'] self.assertNotEqual(metadata_url, metadata_put_url) container_name = 'my-custom-container' object_name = '0' test_path = '/v1/AUTH_test_tenant_id/%s/%s' % (container_name, object_name) self.assertEqual(test_path, urlparse.urlparse(metadata_put_url).path) self.assertEqual(test_path, urlparse.urlparse(metadata_url).path) sc.put_object.assert_called_once_with(container_name, object_name, jsonutils.dumps(md)) sc.head_container.return_value = {'x-container-object-count': '0'} server._delete_temp_url() sc.delete_object.assert_called_once_with(container_name, object_name) sc.head_container.assert_called_once_with(container_name) sc.delete_container.assert_called_once_with(container_name) return metadata_url, server
def _server_create_software_config_zaqar(self, server_name='server_zaqar', md=None): stack_name = '%s_s' % server_name (tmpl, stack) = self._setup_test_stack(stack_name, server_zaqar_tmpl) self.stack = stack props = tmpl.t['resources']['server']['properties'] props['software_config_transport'] = 'ZAQAR_MESSAGE' if md is not None: tmpl.t['resources']['server']['metadata'] = md self.server_props = props resource_defns = tmpl.resource_definitions(stack) server = deployed_server.DeployedServer('server', resource_defns['server'], stack) zcc = self.patchobject(zaqar.ZaqarClientPlugin, 'create_for_tenant') zc = mock.Mock() zcc.return_value = zc queue = mock.Mock() zc.queue.return_value = queue scheduler.TaskRunner(server.create)() metadata_queue_id = server.data().get('metadata_queue_id') md = server.metadata_get() queue_id = md['os-collect-config']['zaqar']['queue_id'] self.assertEqual(queue_id, metadata_queue_id) zc.queue.assert_called_once_with(queue_id) queue.post.assert_called_once_with({ 'body': server.metadata_get(), 'ttl': 3600 }) zc.queue.reset_mock() server._delete_queue() zc.queue.assert_called_once_with(queue_id) zc.queue(queue_id).delete.assert_called_once_with() return queue_id, server
def _server_create_software_config_poll_heat(self, server_name='server_heat', md=None): stack_name = '%s_s' % server_name (tmpl, stack) = self._setup_test_stack(stack_name, server_heat_tmpl) self.stack = stack props = tmpl.t['resources']['server']['properties'] props['software_config_transport'] = 'POLL_SERVER_HEAT' if md is not None: tmpl.t['resources']['server']['metadata'] = md self.server_props = props resource_defns = tmpl.resource_definitions(stack) server = deployed_server.DeployedServer('server', resource_defns['server'], stack) scheduler.TaskRunner(server.create)() self.assertEqual('1234', server._get_user_id()) self.assertTrue(stack.access_allowed('1234', 'server')) self.assertFalse(stack.access_allowed('45678', 'server')) self.assertFalse(stack.access_allowed('4567', 'wserver')) return stack, server