mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
52 lines
1.0 KiB
Python
Executable File
52 lines
1.0 KiB
Python
Executable File
#!/usr/bin/env python
|
|
'''
|
|
Octo-DNS Validator
|
|
'''
|
|
|
|
from logging import WARNING, getLogger
|
|
from sys import exit
|
|
|
|
from octodns.cmds.args import ArgumentParser
|
|
from octodns.manager import Manager
|
|
|
|
|
|
class FlaggingHandler:
|
|
level = WARNING
|
|
|
|
def __init__(self):
|
|
self.flag = False
|
|
|
|
def handle(self, record):
|
|
self.flag = True
|
|
|
|
|
|
def main():
|
|
parser = ArgumentParser(description=__doc__.split('\n')[1])
|
|
|
|
parser.add_argument(
|
|
'--config-file',
|
|
required=True,
|
|
help='The Manager configuration file to use',
|
|
)
|
|
parser.add_argument(
|
|
'--all',
|
|
action='store_true',
|
|
default=False,
|
|
help='Validate records in lenient mode, printing warnings so that all validation issues are shown',
|
|
)
|
|
|
|
args = parser.parse_args(WARNING)
|
|
|
|
flagging = FlaggingHandler()
|
|
getLogger('Record').addHandler(flagging)
|
|
|
|
manager = Manager(args.config_file)
|
|
manager.validate_configs(lenient=args.all)
|
|
|
|
if flagging.flag:
|
|
exit(1)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|