def test_execution_action(self): metadata = {'testkey1': 'value3'} res = {'meta': {'testkey1': 'value3'}} server = self._create_test_server() congress_client = self.admin_manager.congress_client servers_client = self.admin_manager.servers_client policy = self._create_random_policy() service = 'nova' action = 'servers.set_meta' action_args = {'args': {'positional': [], 'named': {'server': server['id'], 'metadata': metadata}}} body = action_args f = lambda: servers_client.show_server_metadata_item(server['id'], 'testkey1') # execute via datasource api body.update({'name': action}) congress_client.execute_datasource_action(service, "execute", body) helper.retry_check_function_return_value(f, res) # execute via policy api body.update({'name': service + ':' + action}) congress_client.execute_policy_action(policy, "execute", False, False, body) helper.retry_check_function_return_value(f, res)
def test_execution_action(self): metadata = {'testkey1': 'value3'} res = {'meta': {'testkey1': 'value3'}} server = self._create_test_server() congress_client = self.admin_manager.congress_client servers_client = self.admin_manager.servers_client policy = self._create_random_policy() service = 'nova' action = 'servers.set_meta' action_args = { 'args': { 'positional': [], 'named': { 'server': server['id'], 'metadata': metadata } } } body = action_args f = lambda: servers_client.show_server_metadata_item( server['id'], 'testkey1') # execute via datasource api body.update({'name': action}) congress_client.execute_datasource_action(service, "execute", body) helper.retry_check_function_return_value(f, res) # execute via policy api body.update({'name': service + ':' + action}) congress_client.execute_policy_action(policy, "execute", False, False, body) helper.retry_check_function_return_value(f, res)
def test_reactive_enforcement(self): servers_client = self.admin_manager.servers_client server_name = 'server_under_test' server = self._create_test_server(name=server_name) policy_name = self._create_random_policy() meta_key = 'meta_test_key1' meta_val = 'value1' meta_data = {'meta': {meta_key: meta_val}} rules = [ 'execute[nova:servers_set_meta(id, "%s", "%s")] :- ' 'test_servers(id)' % (meta_key, meta_val), 'test_servers(id) :- ' 'nova:servers(id, name, host_id, status, tenant_id,' 'user_id, image_id, flavor_id, zone, host_name),' 'equal(name, "%s")' % server_name] for rule in rules: self._create_policy_rule(policy_name, rule) f = lambda: servers_client.show_server_metadata_item(server['id'], meta_key) helper.retry_check_function_return_value(f, meta_data)