Skip to content
Snippets Groups Projects
Commit db897a3c authored by Nicolas KAROLAK's avatar Nicolas KAROLAK
Browse files

use dns-resolver

parent 0792e392
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,7 @@ from pathlib import Path
import re
import subprocess
import sys
import dns.resolver
try:
import pydbus
......@@ -81,24 +82,20 @@ def check_dns(hostname: str, expected_ip: str, resolvers: set) -> tuple:
warnings = 0
errors = 0
for resolver in resolvers:
status, output = subprocess.getstatusoutput(
"host {} {}".format(hostname, resolver)
)
if status == 0:
address = get_result(output)
resolver = dns.resolver.Resolver(configure=False)
resolver.nameservers = list(resolvers)
try:
answers = [rdata.address for rdata in resolver.query(hostname)]
except Exception as dns_err:
u.error("cannot resolve {}: {}".format(hostname, dns_err))
errors += 1
else:
for address in answers:
if address == expected_ip:
u.success("dns({}): {} -> {}".format(resolver, hostname, address))
u.success("{} -> {}".format(hostname, address))
else:
u.error(
"dns({}): {} -> {} (should be {})".format(
resolver, hostname, address, expected_ip
)
)
u.error("{} -> {} != {}".format(hostname, address, expected_ip))
errors += 1
else:
u.error("dns({}): cannot resolve {}".format(resolver, hostname))
errors += 1
return warnings, errors
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment