surok/surok/discovery.py

19 lines
630 B
Python
Raw Normal View History

2016-08-01 14:56:35 +03:00
import dns.resolver
def resolve(app, conf):
2016-08-03 09:54:09 +03:00
hosts = {}
2016-08-02 19:02:25 +03:00
services = app['services']
2016-08-01 14:56:35 +03:00
domain = conf['domain']
2016-08-02 19:02:25 +03:00
for service in services:
2016-08-03 09:54:09 +03:00
hosts[service['name']] = []
try:
for rdata in dns.resolver.query('_' + service['name'] + '.' + service['group'] + '._tcp.' + domain, 'SRV'):
info = str(rdata).split()
server = { 'name': info[3], 'port': info[2] }
hosts[ service['name'] ].append(server)
except Exception as e:
print("Could not resolve " + service['name'] + '.' + service['group'] + '._tcp.' + domain)
2016-08-01 14:56:35 +03:00
return hosts