Exemple #1
0
    def test_update(self):
        '''
        Test for Execute the configured functions
        '''
        with patch.dict(mine.__salt__,
                        {'config.option': MagicMock(return_value={'A': 'B'}),
                         'data.update': MagicMock(return_value='A')}):
            with patch.dict(mine.__opts__, {'file_client': 'local',
                                            'id': 'id'}):
                self.assertEqual(mine.update(True), 'A')

                with patch.object(mine, '_mine_send', return_value='A'):
                    self.assertEqual(mine.update(True), 'A')
 def test_update_local_specific(self):
     """
     Tests the ``update``-function on the minion's local cache.
     Updates mine functions from kwargs only.
     """
     manual_mine_functions = {
         "ip_addr": {
             "mine_function": "network.ip_addrs"
         },
         "network.ip_addrs": [],
         "kernel": [
             {
                 "mine_function": "grains.get"
             },
             "kernel",
             {
                 "allow_tgt": "web*"
             },
         ],
         "foo.bar": {
             "allow_tgt": "G@roles:webserver",
             "allow_tgt_type": "compound"
         },
     }
     with patch.dict(mine.__opts__, {
             "file_client": "local",
             "id": "webserver"
     }), patch.dict(
             mine.__salt__,
         {
             "config.merge": MagicMock(return_value={}),
             "grains.get": lambda x: "Linux!!",
             "network.ip_addrs": MagicMock(return_value=self.ip_ret),
             "foo.bar": MagicMock(return_value=self.foo_ret),
         },
     ):
         ret = mine.update(mine_functions=manual_mine_functions)
     self.assertEqual(ret, "FakeCache:StoreSuccess!")
     # Check if the mine entries have been stored properly in the FakeCache.
     self.assertEqual(
         self.cache.fetch("minions/webserver", "mine_cache"),
         {
             "ip_addr": self.ip_ret,
             "network.ip_addrs": self.ip_ret,
             "foo.bar": {
                 salt.utils.mine.MINE_ITEM_ACL_DATA: self.foo_ret,
                 salt.utils.mine.MINE_ITEM_ACL_ID:
                 salt.utils.mine.MINE_ITEM_ACL_VERSION,
                 "allow_tgt": "G@roles:webserver",
                 "allow_tgt_type": "compound",
             },
             "kernel": {
                 salt.utils.mine.MINE_ITEM_ACL_DATA: "Linux!!",
                 salt.utils.mine.MINE_ITEM_ACL_ID:
                 salt.utils.mine.MINE_ITEM_ACL_VERSION,
                 "allow_tgt": "web*",
             },
         },
     )
Exemple #3
0
 def test_update_master(self):
     '''
     Tests whether the ``update``-function sends the correct data to the master.
     '''
     config_mine_functions = {
         'ip_addr': {
             'mine_function': 'network.ip_addrs'
         },
         'network.ip_addrs': [],
         'kernel': [{
             'mine_function': 'grains.get'
         }, 'kernel'],
         'foo.bar': {},
     }
     mock_load = {
         'id': 'webserver',
         'cmd': '_mine',
         'data': {
             'ip_addr': {
                 salt.utils.mine.MINE_ITEM_ACL_DATA:
                 '2001:db8::1:3',
                 salt.utils.mine.MINE_ITEM_ACL_ID:
                 salt.utils.mine.MINE_ITEM_ACL_VERSION,
             },
             'network.ip_addrs': {
                 salt.utils.mine.MINE_ITEM_ACL_DATA:
                 '2001:db8::1:3',
                 salt.utils.mine.MINE_ITEM_ACL_ID:
                 salt.utils.mine.MINE_ITEM_ACL_VERSION,
             },
             'foo.bar': {
                 salt.utils.mine.MINE_ITEM_ACL_DATA:
                 'baz',
                 salt.utils.mine.MINE_ITEM_ACL_ID:
                 salt.utils.mine.MINE_ITEM_ACL_VERSION,
             },
             'kernel': {
                 salt.utils.mine.MINE_ITEM_ACL_DATA:
                 'Linux!',
                 salt.utils.mine.MINE_ITEM_ACL_ID:
                 salt.utils.mine.MINE_ITEM_ACL_VERSION,
             },
         },
         'clear': False,
     }
     with \
             patch.object(mine, '_mine_send', MagicMock(side_effect=lambda x, y: x)),\
             patch.dict(mine.__opts__, {
                 'file_client': 'remote',
                 'id': 'webserver',
             }), \
             patch.dict(mine.__salt__, {
                 'config.merge': MagicMock(return_value=config_mine_functions),
                 'grains.get': lambda x: 'Linux!',
                 'network.ip_addrs': MagicMock(return_value='2001:db8::1:3'),
                 'foo.bar': MagicMock(return_value='baz'),
             }):
         # Verify the correct load
         self.assertEqual(mine.update(), mock_load)
Exemple #4
0
    def test_update(self):
        '''
        Test for Execute the configured functions
        '''
        with patch.dict(
                mine.__salt__, {
                    'config.option': MagicMock(return_value={'A': 'B'}),
                    'data.update': MagicMock(return_value='A')
                }):
            with patch.dict(mine.__opts__, {
                    'file_client': 'local',
                    'id': 'id'
            }):
                self.assertEqual(mine.update(True), 'A')

                with patch.object(mine, '_mine_send', return_value='A'):
                    self.assertEqual(mine.update(True), 'A')
Exemple #5
0
 def test_update_local_specific(self):
     '''
     Tests the ``update``-function on the minion's local cache.
     Updates mine functions from kwargs only.
     '''
     manual_mine_functions = {
         'ip_addr': {
             'mine_function': 'network.ip_addrs'
         },
         'network.ip_addrs': [],
         'kernel': [{
             'mine_function': 'grains.get'
         }, 'kernel', {
             'allow_tgt': 'web*'
         }],
         'foo.bar': {
             'allow_tgt': 'G@roles:webserver',
             'allow_tgt_type': 'compound'
         },
     }
     with \
             patch.dict(mine.__opts__, {
                 'file_client': 'local',
                 'id': 'webserver',
             }), \
             patch.dict(mine.__salt__, {
                 'config.merge': MagicMock(return_value={}),
                 'grains.get': lambda x: 'Linux!!',
                 'network.ip_addrs': MagicMock(return_value=self.ip_ret),
                 'foo.bar': MagicMock(return_value=self.foo_ret),
             }):
         ret = mine.update(mine_functions=manual_mine_functions)
     self.assertEqual(ret, 'FakeCache:StoreSuccess!')
     # Check if the mine entries have been stored properly in the FakeCache.
     self.assertEqual(
         self.cache.fetch('minions/webserver', 'mine_cache'), {
             'ip_addr': self.ip_ret,
             'network.ip_addrs': self.ip_ret,
             'foo.bar': {
                 salt.utils.mine.MINE_ITEM_ACL_DATA: self.foo_ret,
                 salt.utils.mine.MINE_ITEM_ACL_ID:
                 salt.utils.mine.MINE_ITEM_ACL_VERSION,
                 'allow_tgt': 'G@roles:webserver',
                 'allow_tgt_type': 'compound',
             },
             'kernel': {
                 salt.utils.mine.MINE_ITEM_ACL_DATA: 'Linux!!',
                 salt.utils.mine.MINE_ITEM_ACL_ID:
                 salt.utils.mine.MINE_ITEM_ACL_VERSION,
                 'allow_tgt': 'web*',
             },
         })
 def test_update_master(self):
     """
     Tests whether the ``update``-function sends the correct data to the master.
     """
     config_mine_functions = {
         "ip_addr": {
             "mine_function": "network.ip_addrs"
         },
         "network.ip_addrs": [],
         "kernel": [{
             "mine_function": "grains.get"
         }, "kernel"],
         "foo.bar": {},
     }
     mock_load = {
         "id": "webserver",
         "cmd": "_mine",
         "data": {
             "ip_addr": self.ip_ret,
             "network.ip_addrs": self.ip_ret,
             "foo.bar": self.foo_ret,
             "kernel": self.kernel_ret,
         },
         "clear": False,
     }
     with patch.object(
             mine, "_mine_send",
             MagicMock(side_effect=lambda x, y: x)), patch.dict(
                 mine.__opts__, {
                     "file_client": "remote",
                     "id": "webserver"
                 }), patch.dict(
                     mine.__salt__,
                     {
                         "config.merge":
                         MagicMock(return_value=config_mine_functions),
                         "grains.get":
                         lambda x: self.kernel_ret,
                         "network.ip_addrs":
                         MagicMock(return_value=self.ip_ret),
                         "foo.bar":
                         MagicMock(return_value=self.foo_ret),
                     },
                 ):
         # Verify the correct load
         self.assertEqual(mine.update(), mock_load)
Exemple #7
0
 def test_update_master(self):
     '''
     Tests whether the ``update``-function sends the correct data to the master.
     '''
     config_mine_functions = {
         'ip_addr': {
             'mine_function': 'network.ip_addrs'
         },
         'network.ip_addrs': [],
         'kernel': [{
             'mine_function': 'grains.get'
         }, 'kernel'],
         'foo.bar': {},
     }
     mock_load = {
         'id': 'webserver',
         'cmd': '_mine',
         'data': {
             'ip_addr': self.ip_ret,
             'network.ip_addrs': self.ip_ret,
             'foo.bar': self.foo_ret,
             'kernel': self.kernel_ret,
         },
         'clear': False,
     }
     with \
             patch.object(mine, '_mine_send', MagicMock(side_effect=lambda x, y: x)),\
             patch.dict(mine.__opts__, {
                 'file_client': 'remote',
                 'id': 'webserver',
             }), \
             patch.dict(mine.__salt__, {
                 'config.merge': MagicMock(return_value=config_mine_functions),
                 'grains.get': lambda x: self.kernel_ret,
                 'network.ip_addrs': MagicMock(return_value=self.ip_ret),
                 'foo.bar': MagicMock(return_value=self.foo_ret),
             }):
         # Verify the correct load
         self.assertEqual(mine.update(), mock_load)
Exemple #8
0
def test_update_local_specific(mock_cache):
    """
    Tests the ``update``-function on the minion's local cache.
    Updates mine functions from kwargs only.
    """
    foo_ret = "baz"
    ip_ret = "2001:db8::1:3"
    manual_mine_functions = {
        "ip_addr": {
            "mine_function": "network.ip_addrs"
        },
        "network.ip_addrs": [],
        "kernel": [
            {
                "mine_function": "grains.get"
            },
            "kernel",
            {
                "allow_tgt": "web*"
            },
        ],
        "foo.bar": {
            "allow_tgt": "G@roles:webserver",
            "allow_tgt_type": "compound"
        },
    }
    with patch.dict(mine.__opts__, {
            "file_client": "local",
            "id": "webserver"
    }), patch.dict(
            mine.__salt__,
        {
            "config.merge": MagicMock(return_value={}),
            "grains.get": lambda x: "Linux!!",
            "network.ip_addrs": MagicMock(return_value=ip_ret),
            "foo.bar": MagicMock(return_value=foo_ret),
        },
    ):
        ret = mine.update(mine_functions=manual_mine_functions)
    assert ret == "FakeCache:StoreSuccess!"
    assert mock_cache.fetch("minions/webserver",
                            "mine_cache") == {
                                "ip_addr": ip_ret,
                                "network.ip_addrs": ip_ret,
                                "foo.bar": {
                                    salt.utils.mine.MINE_ITEM_ACL_DATA:
                                    foo_ret,
                                    salt.utils.mine.MINE_ITEM_ACL_ID:
                                    salt.utils.mine.MINE_ITEM_ACL_VERSION,
                                    "allow_tgt":
                                    "G@roles:webserver",
                                    "allow_tgt_type":
                                    "compound",
                                },
                                "kernel": {
                                    salt.utils.mine.MINE_ITEM_ACL_DATA:
                                    "Linux!!",
                                    salt.utils.mine.MINE_ITEM_ACL_ID:
                                    salt.utils.mine.MINE_ITEM_ACL_VERSION,
                                    "allow_tgt":
                                    "web*",
                                },
                            }