Exemple #1
0
def _load_minion(minion_id, cache):
    data_minion, grains, pillar = salt.utils.minions.get_minion_data(
        minion_id, __opts__)

    if minion_id != data_minion:
        log.error('Asked for minion {0}, got {1}'.format(
            minion_id, data_minion))
        raise LookupError

    if not grains:
        log.warning('No grain data for minion id {0}'.format(minion_id))
        grains = {}

    if not pillar:
        log.warning('No pillar data for minion id {0}'.format(minion_id))
        pillar = {}

    addrs = {
        4: sorted(
            [ipaddress.IPv4Address(addr) for addr in grains.get('ipv4', [])]),
        6: sorted(
            [ipaddress.IPv6Address(addr) for addr in grains.get('ipv6', [])])
    }

    mine = cache.fetch('minions/{0}'.format(minion_id), 'mine')

    return grains, pillar, addrs, mine
Exemple #2
0
    def test_data2rec(self):
        right = [
            "10.0.0.1",
            "10 mbox.example.com",
            "10 20 30 example.com",
        ]
        schemas = [
            OrderedDict((("address", ipaddress.IPv4Address),)),
            OrderedDict((("preference", int), ("name", str),)),
            OrderedDict(
                (("prio", int), ("weight", int), ("port", _to_port), ("name", str),)
            ),
        ]

        results = [
            ipaddress.IPv4Address(right[0]),
            {"preference": 10, "name": "mbox.example.com"},
            {"prio": 10, "weight": 20, "port": 30, "name": "example.com"},
        ]

        for rdata, rschema, res in zip(right, schemas, results):
            self.assertEqual(_data2rec(rschema, rdata), res)

        wrong = [
            "not-an-ip",
            "hundred 20 30 interror.example.com",
            "10 toolittle.example.com",
        ]

        for rdata, rschema in zip(wrong, schemas):
            self.assertRaises(ValueError, _data2rec, rschema, rdata)
def get_random_link_local():
    '''
    Return a random link local address

    This function returns a random address between 169.254.1.1 and 169.254.255.255
    '''
    prefix = long('10101001111111100000000000000000',2)
    return str(ipaddress.IPv4Address(prefix + randint(257,65278)))
Exemple #4
0
 def test_dns_return(self):
     '''
     test the return for a dns grain. test for issue:
     https://github.com/saltstack/salt/issues/41230
     '''
     resolv_mock = {'domain': '', 'sortlist': [], 'nameservers':
                [ipaddress.IPv4Address(IP4_ADD1),
                 ipaddress.IPv6Address(IP6_ADD1)], 'ip4_nameservers':
                [ipaddress.IPv4Address(IP4_ADD1)],
                'search': ['test.saltstack.com'], 'ip6_nameservers':
                [ipaddress.IPv6Address(IP6_ADD1)], 'options': []}
     ret = {'dns': {'domain': '', 'sortlist': [], 'nameservers':
                    [IP4_ADD1, IP6_ADD1], 'ip4_nameservers':
                    [IP4_ADD1], 'search': ['test.saltstack.com'],
                    'ip6_nameservers': [IP6_ADD1], 'options':
                    []}}
     with patch.object(salt.utils.dns, 'parse_resolv', MagicMock(return_value=resolv_mock)):
         assert core.dns() == ret
Exemple #5
0
    def test_data2rec(self):
        right = [
            '10.0.0.1',
            '10 mbox.example.com',
            '10 20 30 example.com',
        ]
        schemas = [
            OrderedDict((('address', ipaddress.IPv4Address), )),
            OrderedDict((
                ('preference', int),
                ('name', str),
            )),
            OrderedDict((
                ('prio', int),
                ('weight', int),
                ('port', _to_port),
                ('name', str),
            ))
        ]

        results = [
            ipaddress.IPv4Address(right[0]), {
                'preference': 10,
                'name': 'mbox.example.com'
            }, {
                'prio': 10,
                'weight': 20,
                'port': 30,
                'name': 'example.com'
            }
        ]

        for rdata, rschema, res in zip(right, schemas, results):
            self.assertEqual(_data2rec(rschema, rdata), res)

        wrong = [
            'not-an-ip',
            'hundred 20 30 interror.example.com',
            '10 toolittle.example.com',
        ]

        for rdata, rschema in zip(wrong, schemas):
            self.assertRaises(ValueError, _data2rec, rschema, rdata)