add shell subcommand for IPython development
parent
b8b9dab77c
commit
388739a2e0
|
@ -1,6 +1,7 @@
|
|||
import argparse
|
||||
|
||||
from onedns import monitor
|
||||
from onedns import utils
|
||||
from onedns import logger
|
||||
from onedns.clients import skydns
|
||||
|
||||
|
@ -28,6 +29,17 @@ def remove(args, one_args, etcd_args):
|
|||
client.remove_host(args.hostname, args.ip)
|
||||
|
||||
|
||||
def shell(args, one_args, etcd_args):
|
||||
onemon = monitor.OneMonitor(args.domain, one_kwargs=one_args,
|
||||
etcd_kwargs=etcd_args)
|
||||
oneclient = onemon._one
|
||||
skyclient = onemon._skydns
|
||||
etcdclient = skyclient._etcd
|
||||
ns = dict(onemon=onemon, skyclient=skyclient, oneclient=oneclient,
|
||||
etcdclient=etcdclient)
|
||||
utils.shell(local_ns=ns)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
description='OneDNS - Dynamic DNS for OpenNebula')
|
||||
|
@ -66,6 +78,9 @@ def main():
|
|||
remove_parser.add_argument('hostname', help='name of host to remove')
|
||||
remove_parser.add_argument('ip', help='ip of host to remove')
|
||||
|
||||
shell_parser = subparsers.add_parser('shell')
|
||||
shell_parser.set_defaults(func=shell)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
logger.configure_onedns_logging(debug=args.debug)
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
from onedns.logger import log
|
||||
|
||||
|
||||
def shell(local_ns={}):
|
||||
try:
|
||||
from IPython import embed
|
||||
return embed(user_ns=local_ns)
|
||||
except ImportError as e:
|
||||
log.error("Unable to load IPython:\n\n%s\n" % e)
|
||||
log.error("Please check that IPython is installed and working.")
|
Loading…
Reference in New Issue