def test_evaluate_group_succ_criteria(self): dgm = DeploymentGroupManager(yaml.safe_load(GROUPS_YAML), node_lookup) group = dgm._all_groups.get('control-nodes') nodes = ["node{}".format(i) for i in range(1, 12)] for node in nodes: dgm.mark_node_prepared(node) dgm.fail_unsuccessful_nodes(group, nodes) assert dgm.evaluate_group_succ_criteria('control-nodes', Stage.PREPARED) assert group.stage == Stage.PREPARED for node in nodes: dgm.mark_node_deployed(node) assert dgm.evaluate_group_succ_criteria('control-nodes', Stage.DEPLOYED) assert group.stage == Stage.DEPLOYED
def test_reports(self, caplog): dgm = DeploymentGroupManager(yaml.safe_load(GROUPS_YAML), node_lookup) dgm.mark_node_deployed('node1') dgm.mark_node_prepared('node2') dgm.mark_node_failed('node3') dgm.mark_group_prepared('control-nodes') dgm.mark_group_deployed('control-nodes') dgm.mark_group_prepared('compute-nodes-1') dgm.mark_group_failed('compute-nodes-2') dgm.report_group_summary() assert "===== Group Summary =====" in caplog.text assert ("Group ntp-node [Critical] ended with stage: " "Stage.NOT_STARTED") in caplog.text caplog.clear() dgm.report_node_summary() assert "Nodes Stage.PREPARED: node2" in caplog.text assert "Nodes Stage.FAILED: node3" in caplog.text assert "===== End Node Summary =====" in caplog.text assert "It was the best of times" not in caplog.text
def test_mark_node_prepared(self): dgm = DeploymentGroupManager(yaml.safe_load(_GROUPS_YAML), node_lookup) dgm.mark_node_prepared('node1') assert dgm.get_nodes(Stage.PREPARED) == ['node1']