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
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)))
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
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)