Example #1
0
    def test_get_group_failures_for_stage(self):
        dgm = DeploymentGroupManager(yaml.safe_load(_GROUPS_YAML), node_lookup)
        dgm._all_nodes = {'node%d' % x: Stage.DEPLOYED for x in range(1, 13)}

        for group_name in dgm._all_groups:
            assert not dgm.get_group_failures_for_stage(
                group_name, Stage.DEPLOYED)
            assert not dgm.get_group_failures_for_stage(
                group_name, Stage.PREPARED)

        dgm._all_nodes = {'node%d' % x: Stage.PREPARED for x in range(1, 13)}

        for group_name in dgm._all_groups:
            assert not dgm.get_group_failures_for_stage(
                group_name, Stage.PREPARED)

        for group_name in [
                'compute-nodes-1', 'monitoring-nodes', 'compute-nodes-2',
                'control-nodes', 'ntp-node'
        ]:
            # assert that these have a failure
            assert dgm.get_group_failures_for_stage(group_name, Stage.DEPLOYED)

        dgm._all_nodes = {
            'node1': Stage.FAILED,
            'node2': Stage.PREPARED,
            'node3': Stage.FAILED,
            'node4': Stage.PREPARED,
            'node5': Stage.FAILED,
            'node6': Stage.PREPARED,
            'node7': Stage.FAILED,
            'node8': Stage.PREPARED,
            'node9': Stage.FAILED,
            'node10': Stage.PREPARED,
            'node11': Stage.FAILED,
            'node12': Stage.PREPARED,
        }
        for group_name in dgm._all_groups:
            scf = dgm.get_group_failures_for_stage(group_name, Stage.PREPARED)
            if group_name == 'monitoring-nodes':
                assert scf[0] == {
                    'criteria': 'minimum_successful_nodes',
                    'needed': 3,
                    'actual': 2
                }
            if group_name == 'control-nodes':
                assert scf[0] == {
                    'criteria': 'percent_successful_nodes',
                    'needed': 100,
                    'actual': 50.0
                }
            if group_name == 'ntp-node':
                assert scf[0] == {
                    'criteria': 'minimum_successful_nodes',
                    'needed': 1,
                    'actual': 0
                }
Example #2
0
 def test_get_group_failures_for_stage_bad_input(self):
     dgm = DeploymentGroupManager(yaml.safe_load(_GROUPS_YAML), node_lookup)
     with pytest.raises(DeploymentGroupStageError):
         dgm.get_group_failures_for_stage('group1', Stage.FAILED)