コード例 #1
0
    def test_dgm(self):
        all_yaml_dict = yaml.safe_load(INPUT_YAML)
        group_dict_list = all_yaml_dict['data']['groups']

        dgm = DeploymentGroupManager(group_dict_list, node_lookup)
        assert dgm is not None
        # topological sort doesn't guarantee a specific order.
        assert dgm.get_next_group(Stage.PREPARED).name == 'masters'
        assert len(dgm._all_groups) == 4
        assert len(dgm._all_nodes) == 6
コード例 #2
0
 def test_basic_class(self):
     dgm = DeploymentGroupManager(yaml.safe_load(_GROUPS_YAML), node_lookup)
     assert dgm is not None
     # topological sort doesn't guarantee a specific order.
     assert dgm.get_next_group(Stage.PREPARED).name in ['ntp-node',
                                                        'monitoring-nodes']
     assert len(dgm._all_groups) == 7
     assert len(dgm._all_nodes) == 12
     for name, group in dgm._all_groups.items():
         assert name == group.name
コード例 #3
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
コード例 #4
0
 def test_no_next_group(self):
     dgm = DeploymentGroupManager(yaml.safe_load(_GROUPS_YAML), node_lookup)
     assert dgm.get_next_group(Stage.DEPLOYED) is None