def test_all_tasks_run_after_error(env, admin_remote, remove_service, rename_role, nova_conf_on_cmpt): """Test to check that all tasks are executed after 'error' state of one of them Steps to reproduce: 1. Delete 'p_heat-engine' service in order to have error for 'primary-heat' 2. Make change in os config 3. Rename keystone role 4. Run 'fuel2 env nodes deploy' with --noop option 5. Check that all messages are in result """ p_ctrl = env.primary_controller node2, changes = nova_conf_on_cmpt msg1 = ("/Pcmk_resource[p_heat-engine]/ensure', u'message': " "u'current_value absent, should be present (noop)'") msg2 = ("Nova_config[{0}/{1}]/value', u'message': u'current_value {2}, " "should be False (noop)").format(*changes[0]) msg3 = ("/Keystone_role[SwiftOperator]/ensure', u'message': " "u'current_value absent, should be present (noop)'") task = noop_common.run_noop_nodes_deploy(admin_remote, env, nodes=[p_ctrl, node2]) cmd_res_error = admin_remote.execute( "fuel deployment-tasks --tid {0} --status error".format(task.id)) assert "primary-heat" in cmd_res_error.stdout_string exp_messages = [(p_ctrl.id, msg1), (node2.id, msg2), (p_ctrl.id, msg3)] assert noop_common.are_messages_in_summary_results(admin_remote, task.id, exp_messages)
def test_changes_for_several_nodes(env, admin_remote, nova_conf_on_cmpt, delete_micro_flavor, puppet_file_new_mod): """Test to check the noop run for several nodes at the same time Steps to reproduce: 1. Make different custom changes for different nodes 2. Execute 'fuel2 env nodes deploy' with --noop 3. Wait for task finishing 4. Execute 'fuel deployment-tasks --tid <task_id> --include-summary' 5. Check that result contains the expected data for all nodes """ node1, changes = nova_conf_on_cmpt node2 = env.primary_controller node3 = puppet_file_new_mod['node'] task = noop_common.run_noop_nodes_deploy(admin_remote, env, nodes=[node1, node2, node3]) msg1 = ("Nova_config[{0}/{1}]/value', u'message': u'current_value {2}, " "should be False (noop)").format(*changes[0]) msg2 = ("/Exec[create-m1.micro-flavor]/returns', u'message': " "u'current_value notrun, should be 0 (noop)'") msg3 = ("u'message': u'current_value {0}, " "should be 0644 (noop)'".format(puppet_file_new_mod['new_mod'])) exp_messages = [(node1.id, msg1), (node2.id, msg2), (node3.id, msg3)] assert noop_common.are_messages_in_summary_results(admin_remote, task.id, exp_messages)
def test_redeploy_whole_env(env, admin_remote, stop_service, nova_conf_on_cmpt, disable_user): """Test to check the noop run feature for changes in whole env Steps to reproduce: 1. Stop the service neutron-metadata-agent on controller 2. Modify nova config on compute 3. Disable user 'glare' 4. Execute 'fuel2 env redeploy --noop' 5. Wait for task finishing 6. Execute 'fuel deployment-tasks --tid <task_id> --include-summary' 7. Check that result contains the expected data """ task = noop_common.run_noop_env_deploy(admin_remote, env, command='redeploy') expected_messages = [] msg1 = ("/Service[neutron-metadata]/ensure', u'message': " "u'current_value stopped, should be running (noop)") for node in env.get_nodes_by_role('controller'): expected_messages.append((node.id, msg1)) node2, changes = nova_conf_on_cmpt msg2 = ("Nova_config[{0}/{1}]/value', u'message': u'current_value {2}, " "should be False (noop)").format(*changes[0]) expected_messages.append((node2.id, msg2)) node3 = env.primary_controller msg3 = ("/Keystone_user[glare]/enabled', u'message': " "u'current_value false, should be true (noop)'") expected_messages.append((node3.id, msg3)) assert noop_common.are_messages_in_summary_results(admin_remote, task.id, expected_messages)
def test_stop_service(env, admin_remote, stop_service): """Test to check the noop run feature for stopped service Steps to reproduce: 1. Stop the service neutron-metadata-agent on controller 2. Execute 'deploy noop' 3. Wait for task finishing 4. Execute 'fuel deployment-tasks --tid <task_id> --include-summary' 5. Check that result contains the expected data """ nodes = env.get_nodes_by_role('controller') task = noop_common.run_noop_nodes_deploy(admin_remote, env, nodes=nodes) msg = ("/Service[neutron-metadata]/ensure', u'message': " "u'current_value stopped, should be running (noop)") expected_messages = [] for node in nodes: expected_messages.append((node.id, msg)) assert noop_common.are_messages_in_summary_results(admin_remote, task.id, expected_messages)
def test_default_graph(env, admin_remote, glance_api_conf, nova_conf_on_cmpt, puppet_file_new_owner): """Test to check the noop run feature for changes in whole env Steps to reproduce: 1. Modify glance config on controller 2. Modify nova config on compute 3. Change owner of /etc/logrotate.d/apache2 on controller 4. Execute 'fuel2 graph execute -t custom' 5. Wait for task finishing 6. Execute 'fuel deployment-tasks --tid <task_id> --include-summary' 7. Check that result contains the expected data """ nodes = [] expected_messages = [] node1, changes = glance_api_conf msg1 = ("Glance_api_config[{0}/{1}]/value', u'message': " "u'current_value {2}, should be False".format(*changes[0])) nodes.append(node1) expected_messages.append((node1.id, msg1)) node2, changes = nova_conf_on_cmpt msg2 = ("Nova_config[{0}/{1}]/value', u'message': u'current_value {2}, " "should be False (noop)").format(*changes[0]) nodes.append(node2) expected_messages.append((node2.id, msg2)) node3 = puppet_file_new_owner['node'] msg4 = ("u'message': u'current_value {0}, should be root (noop)'". format(puppet_file_new_owner['new_owner'])) nodes.append(node3) expected_messages.append((node3.id, msg4)) task = noop_common.run_noop_graph_execute(admin_remote, env, nodes=nodes, g_type='default') assert noop_common.are_messages_in_summary_results(admin_remote, task.id, expected_messages)