add option to specify the rdap server
Signed-off-by: Alarig Le Lay <alarig@swordarmor.fr>
This commit is contained in:
parent
7a34bd7060
commit
eacd1368d6
|
@ -105,10 +105,13 @@ def parse_ldap(domain, rdap_server):
|
||||||
|
|
||||||
return raw_expiration
|
return raw_expiration
|
||||||
|
|
||||||
def expiration(domain):
|
def expiration(domain, server):
|
||||||
"""Find the expiration date for the domain."""
|
"""Find the expiration date for the domain."""
|
||||||
|
|
||||||
raw_expiration = parse_ldap(domain, find_rdap_server(domain))
|
if server is None:
|
||||||
|
raw_expiration = parse_ldap(domain, find_rdap_server(domain))
|
||||||
|
else:
|
||||||
|
raw_expiration = parse_ldap(domain, server)
|
||||||
|
|
||||||
# we have parsed the eventAction field about expiration
|
# we have parsed the eventAction field about expiration
|
||||||
if isinstance(raw_expiration[0], int):
|
if isinstance(raw_expiration[0], int):
|
||||||
|
@ -161,12 +164,13 @@ class Expiration(nagiosplugin.Resource):
|
||||||
not cached because we can not presume of the data lifetime.
|
not cached because we can not presume of the data lifetime.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, domain):
|
def __init__(self, domain, server):
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
self.server = server
|
||||||
|
|
||||||
def probe(self):
|
def probe(self):
|
||||||
try:
|
try:
|
||||||
days_to_expiration = expiration(self.domain)
|
days_to_expiration = expiration(self.domain, self.server)
|
||||||
except requests.exceptions.ConnectionError as err:
|
except requests.exceptions.ConnectionError as err:
|
||||||
raise nagiosplugin.CheckError(
|
raise nagiosplugin.CheckError(
|
||||||
f'The connection to the RDAP server failed: {err}'
|
f'The connection to the RDAP server failed: {err}'
|
||||||
|
@ -206,6 +210,9 @@ def main():
|
||||||
'-c', '--critical', metavar='range', default='15',
|
'-c', '--critical', metavar='range', default='15',
|
||||||
help='critical expiration max days. Default=15'
|
help='critical expiration max days. Default=15'
|
||||||
)
|
)
|
||||||
|
argp.add_argument(
|
||||||
|
'-s', '--server', default=None, help='Specify the RDAP base URL (eg. https://rdap.nic.bzh/)'
|
||||||
|
)
|
||||||
argp.add_argument(
|
argp.add_argument(
|
||||||
'-v', '--verbose', action='count', default=0, help='be more verbose'
|
'-v', '--verbose', action='count', default=0, help='be more verbose'
|
||||||
)
|
)
|
||||||
|
@ -229,7 +236,7 @@ def main():
|
||||||
|
|
||||||
domain = pyunycode.convert(args.domain)
|
domain = pyunycode.convert(args.domain)
|
||||||
check = nagiosplugin.Check(
|
check = nagiosplugin.Check(
|
||||||
Expiration(domain),
|
Expiration(domain, args.server),
|
||||||
nagiosplugin.ScalarContext(
|
nagiosplugin.ScalarContext(
|
||||||
'daystoexpiration',
|
'daystoexpiration',
|
||||||
warning=wrange,
|
warning=wrange,
|
||||||
|
|
Loading…
Reference in a new issue