예제 #1
0
 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
예제 #2
0
    def test_ordering_stages_flow_failure(self):
        dgm = DeploymentGroupManager(yaml.safe_load(_GROUPS_YAML), node_lookup)

        group = dgm.get_next_group(Stage.PREPARED)
        if group.name == 'monitoring-nodes':
            dgm.mark_group_prepared(group.name)
            dgm.mark_group_deployed(group.name)
            group = dgm.get_next_group(Stage.PREPARED)
        if group.name == 'ntp-node':
            dgm.mark_group_failed(group.name)

        group = dgm.get_next_group(Stage.PREPARED)
        if group and group.name == 'monitoring-nodes':
            dgm.mark_group_prepared(group.name)
            dgm.mark_group_deployed(group.name)
            group = dgm.get_next_group(Stage.PREPARED)
        # all remaining groups should be failed, so no more to prepare
        for name, grp in dgm._all_groups.items():
            if (name == 'monitoring-nodes'):
                assert grp.stage == Stage.DEPLOYED
            else:
                assert grp.stage == Stage.FAILED
        assert group is None
예제 #3
0
 def test_critical_groups_failed(self):
     dgm = DeploymentGroupManager(yaml.safe_load(GROUPS_YAML), node_lookup)
     assert not dgm.critical_groups_failed()
     dgm.mark_group_failed('control-nodes')
     assert dgm.critical_groups_failed()