onedns/onedns/cli.py

57 lines
2.0 KiB
Python
Raw Normal View History

2016-07-14 16:56:32 +03:00
import argparse
from onedns import utils
2016-08-02 20:29:53 +03:00
from onedns import server
2016-07-14 16:56:32 +03:00
from onedns import logger
2016-08-19 16:19:50 +03:00
def daemon(args, one_args, **kwargs):
testing = kwargs.get('testing', False)
vms = kwargs.get('vms')
2016-08-02 20:29:53 +03:00
srv = server.OneDNS(args.domain, one_kwargs=one_args)
2016-08-19 16:19:50 +03:00
srv.sync(vms=vms)
srv.daemon(dns_port=args.dns_port, testing=testing)
2016-08-19 16:19:50 +03:00
def shell(args, one_args, **kwargs):
2016-08-02 20:29:53 +03:00
srv = server.OneDNS(args.domain, one_kwargs=one_args)
oneclient = srv._one
ns = dict(one_dns=srv, oneclient=oneclient, log=logger.log)
utils.shell(local_ns=ns)
2016-08-19 16:19:50 +03:00
def get_parser():
2016-07-15 05:28:22 +03:00
parser = argparse.ArgumentParser(
description='OneDNS - Dynamic DNS for OpenNebula')
parser.add_argument('--debug', required=False,
action='store_true', default=False,
2016-07-15 05:28:22 +03:00
help='ONE controller host address')
parser.add_argument('-d', '--domain', required=False, default='one.local',
help='DNS domain to use')
2016-07-14 16:56:32 +03:00
parser.add_argument('--one-address', required=False,
help='ONE controller host address')
parser.add_argument('--one-secret', required=False,
help='ONE credentials to use (e.g. user:key)')
parser.add_argument('--one-proxy', required=False,
help='proxy host to use to connect to ONE controller')
subparsers = parser.add_subparsers()
daemon_parser = subparsers.add_parser('daemon')
daemon_parser.set_defaults(func=daemon)
daemon_parser.add_argument(
2016-10-17 22:40:35 +03:00
'--dns-port', required=False, default=53, type=int,
2016-08-02 20:29:53 +03:00
help="port for DNS server to listen on")
shell_parser = subparsers.add_parser('shell')
shell_parser.set_defaults(func=shell)
2016-08-19 16:19:50 +03:00
return parser
2016-08-19 16:19:50 +03:00
def main(**kwargs):
parser = get_parser()
args = parser.parse_args(args=kwargs.pop('args', None))
2016-07-15 05:28:22 +03:00
logger.configure_onedns_logging(debug=args.debug)
args_dict = vars(args)
one_args = utils.get_kwargs_from_dict(args_dict, 'one_')
2016-08-19 16:19:50 +03:00
args.func(args, one_args, **kwargs)