コード例 #1
0
def test_present_exists(input_params, existing_obj):
    """
    Test to ensure that named value map is present and not changed
    """
    name = "Server HP Health"
    ret = {"name": name, "result": False, "comment": "", "changes": {}}

    with patch.dict(zabbix_valuemap.__opts__, {"test": False}):
        with patch.dict(
                zabbix_valuemap.__salt__,
            {
                "zabbix.get_zabbix_id_mapper":
                MagicMock(return_value={"valuemap": "valuemapid"}),
                "zabbix.substitute_params":
                MagicMock(side_effect=[input_params, existing_obj]),
                "zabbix.run_query":
                MagicMock(return_value=["length of result is 1"]),
                "zabbix.compare_params":
                MagicMock(return_value={}),
            },
        ):
            ret["result"] = True
            ret["comment"] = 'Zabbix Value map "{}" already exists and corresponds to a definition.'.format(
                name)
            assert zabbix_valuemap.present(name, {}) == ret
コード例 #2
0
    def test_present_update(self):
        """
        Test to ensure that named value map is present but must be updated
        """
        name = "Server HP Health"
        ret = {"name": name, "result": False, "comment": "", "changes": {}}

        def side_effect_run_query(*args):
            """
            Differentiate between __salt__ exec module function calls with different parameters.
            """
            if args[0] == "valuemap.get":
                return ["length of result is 1 = valuemap exists"]
            elif args[0] == "valuemap.update":
                return DIFF_PARAMS

        with patch.dict(zabbix_valuemap.__opts__, {"test": False}):
            with patch.dict(
                    zabbix_valuemap.__salt__,
                {
                    "zabbix.get_zabbix_id_mapper":
                    MagicMock(return_value={"valuemap": "valuemapid"}),
                    "zabbix.substitute_params":
                    MagicMock(side_effect=[INPUT_PARAMS, EXISTING_OBJ_DIFF]),
                    "zabbix.run_query":
                    MagicMock(side_effect=side_effect_run_query),
                    "zabbix.compare_params":
                    MagicMock(return_value=DIFF_PARAMS),
                },
            ):
                ret["result"] = True
                ret["comment"] = 'Zabbix Value map "{0}" updated.'.format(name)
                ret["changes"] = {
                    name: {
                        "old":
                        'Zabbix Value map "{0}" differed '
                        "in following parameters: {1}".format(
                            name, DIFF_PARAMS),
                        "new":
                        'Zabbix Value map "{0}" fixed.'.format(name),
                    }
                }
                self.assertDictEqual(zabbix_valuemap.present(name, {}), ret)
コード例 #3
0
    def test_present_update(self):
        '''
        Test to ensure that named value map is present but must be updated
        '''
        name = 'Server HP Health'
        ret = {'name': name, 'result': False, 'comment': '', 'changes': {}}

        def side_effect_run_query(*args):
            '''
            Differentiate between __salt__ exec module function calls with different parameters.
            '''
            if args[0] == 'valuemap.get':
                return ['length of result is 1 = valuemap exists']
            elif args[0] == 'valuemap.update':
                return DIFF_PARAMS

        with patch.dict(zabbix_valuemap.__opts__, {'test': False}):
            with patch.dict(
                    zabbix_valuemap.__salt__,
                {
                    'zabbix.get_zabbix_id_mapper':
                    MagicMock(return_value={'valuemap': 'valuemapid'}),
                    'zabbix.substitute_params':
                    MagicMock(side_effect=[INPUT_PARAMS, EXISTING_OBJ_DIFF]),
                    'zabbix.run_query':
                    MagicMock(side_effect=side_effect_run_query),
                    'zabbix.compare_params':
                    MagicMock(return_value=DIFF_PARAMS)
                }):
                ret['result'] = True
                ret['comment'] = 'Zabbix Value map "{0}" updated.'.format(name)
                ret['changes'] = {
                    name: {
                        'old':
                        'Zabbix Value map "{0}" differed '
                        'in following parameters: {1}'.format(
                            name, DIFF_PARAMS),
                        'new':
                        'Zabbix Value map "{0}" fixed.'.format(name)
                    }
                }
                self.assertDictEqual(zabbix_valuemap.present(name, {}), ret)
コード例 #4
0
def test_present_create(input_params):
    """
    Test to ensure that named value map is created
    """
    name = "Server HP Health"
    ret = {"name": name, "result": False, "comment": "", "changes": {}}

    def side_effect_run_query(*args):
        """
        Differentiate between __salt__ exec module function calls with different parameters.
        """
        if args[0] == "valuemap.get":
            return False
        elif args[0] == "valuemap.create":
            return True

    with patch.dict(zabbix_valuemap.__opts__, {"test": False}):
        with patch.dict(
                zabbix_valuemap.__salt__,
            {
                "zabbix.get_zabbix_id_mapper":
                MagicMock(return_value={"valuemap": "valuemapid"}),
                "zabbix.substitute_params":
                MagicMock(side_effect=[input_params, False]),
                "zabbix.run_query":
                MagicMock(side_effect=side_effect_run_query),
                "zabbix.compare_params":
                MagicMock(return_value={}),
            },
        ):
            ret["result"] = True
            ret["comment"] = 'Zabbix Value map "{}" created.'.format(name)
            ret["changes"] = {
                name: {
                    "old":
                    'Zabbix Value map "{}" did not exist.'.format(name),
                    "new":
                    'Zabbix Value map "{}" created according definition.'.
                    format(name),
                }
            }
            assert zabbix_valuemap.present(name, {}) == ret
コード例 #5
0
    def test_present_create(self):
        '''
        Test to ensure that named value map is created
        '''
        name = 'Server HP Health'
        ret = {'name': name, 'result': False, 'comment': '', 'changes': {}}

        def side_effect_run_query(*args):
            '''
            Differentiate between __salt__ exec module function calls with different parameters.
            '''
            if args[0] == 'valuemap.get':
                return False
            elif args[0] == 'valuemap.create':
                return True

        with patch.dict(zabbix_valuemap.__opts__, {'test': False}):
            with patch.dict(
                    zabbix_valuemap.__salt__, {
                        'zabbix.get_zabbix_id_mapper':
                        MagicMock(return_value={'valuemap': 'valuemapid'}),
                        'zabbix.substitute_params':
                        MagicMock(side_effect=[INPUT_PARAMS, False]),
                        'zabbix.run_query':
                        MagicMock(side_effect=side_effect_run_query),
                        'zabbix.compare_params':
                        MagicMock(return_value={})
                    }):
                ret['result'] = True
                ret['comment'] = 'Zabbix Value map "{0}" created.'.format(name)
                ret['changes'] = {
                    name: {
                        'old':
                        'Zabbix Value map "{0}" did not exist.'.format(name),
                        'new':
                        'Zabbix Value map "{0}" created according definition.'.
                        format(name)
                    }
                }
                self.assertDictEqual(zabbix_valuemap.present(name, {}), ret)
コード例 #6
0
    def test_present_exists(self):
        '''
        Test to ensure that named value map is present and not changed
        '''
        name = 'Server HP Health'
        ret = {'name': name, 'result': False, 'comment': '', 'changes': {}}

        with patch.dict(zabbix_valuemap.__opts__, {'test': False}):
            with patch.dict(
                    zabbix_valuemap.__salt__, {
                        'zabbix.get_zabbix_id_mapper':
                        MagicMock(return_value={'valuemap': 'valuemapid'}),
                        'zabbix.substitute_params':
                        MagicMock(side_effect=[INPUT_PARAMS, EXISTING_OBJ]),
                        'zabbix.run_query':
                        MagicMock(return_value=['length of result is 1']),
                        'zabbix.compare_params':
                        MagicMock(return_value={})
                    }):
                ret['result'] = True
                ret['comment'] = 'Zabbix Value map "{0}" already exists and corresponds to a definition.'.format(
                    name)
                self.assertDictEqual(zabbix_valuemap.present(name, {}), ret)