add vm/host subcommands to add/remove subcommands

$ onedns add vm 3
$ onedns add host myhost 192.168.99.110
$ onedns remove vm 3
$ onedns remove host myhost 192.168.99.110
master
Justin Riley 2016-07-21 09:52:27 -04:00
parent 9bcddf29ad
commit d73dc5f692
1 changed files with 37 additions and 10 deletions

View File

@ -1,8 +1,9 @@
import argparse import argparse
from onedns import monitor from onedns import api
from onedns import utils from onedns import utils
from onedns import logger from onedns import logger
from onedns import monitor
from onedns.clients import skydns from onedns.clients import skydns
@ -19,16 +20,28 @@ def daemon(args, one_args, etcd_args):
mon.run(args.interval) mon.run(args.interval)
def add(args, one_args, etcd_args): def add_host(args, one_args, etcd_args):
client = skydns.SkyDNSClient(args.domain, etcd_kwargs=etcd_args) client = skydns.SkyDNSClient(args.domain, etcd_kwargs=etcd_args)
client.add_host(args.hostname, args.ip) client.add_host(args.hostname, args.ip)
def remove(args, one_args, etcd_args): def remove_host(args, one_args, etcd_args):
client = skydns.SkyDNSClient(args.domain, etcd_kwargs=etcd_args) client = skydns.SkyDNSClient(args.domain, etcd_kwargs=etcd_args)
client.remove_host(args.hostname, args.ip) client.remove_host(args.hostname, args.ip)
def add_vm(args, one_args, etcd_args):
client = api.OneDNS(args.domain, one_kwargs=one_args,
etcd_kwargs=etcd_args)
client.add_vm_by_id(args.id)
def remove_vm(args, one_args, etcd_args):
client = api.OneDNS(args.domain, one_kwargs=one_args,
etcd_kwargs=etcd_args)
client.remove_vm_by_id(args.id)
def shell(args, one_args, etcd_args): def shell(args, one_args, etcd_args):
onemon = monitor.OneMonitor(args.domain, one_kwargs=one_args, onemon = monitor.OneMonitor(args.domain, one_kwargs=one_args,
etcd_kwargs=etcd_args) etcd_kwargs=etcd_args)
@ -69,14 +82,28 @@ def main():
help="how often in seconds to poll ONE and update DNS") help="how often in seconds to poll ONE and update DNS")
add_parser = subparsers.add_parser('add') add_parser = subparsers.add_parser('add')
add_parser.set_defaults(func=add) add_subparser = add_parser.add_subparsers()
add_parser.add_argument('hostname', help='name of host to add')
add_parser.add_argument('ip', help='ip of host to add')
remove_parser = subparsers.add_parser('remove') add_vm_parser = add_subparser.add_parser('vm')
remove_parser.set_defaults(func=remove) add_vm_parser.set_defaults(func=add_vm)
remove_parser.add_argument('hostname', help='name of host to remove') add_vm_parser.add_argument('id', type=int, help='id of the vm to add')
remove_parser.add_argument('ip', help='ip of host to remove')
add_host_parser = add_subparser.add_parser('host')
add_host_parser.set_defaults(func=add_host)
add_host_parser.add_argument('hostname', help='name of host to add')
add_host_parser.add_argument('ip', help='ip of host to add')
rm_parser = subparsers.add_parser('remove')
rm_subparser = rm_parser.add_subparsers()
rm_vm_parser = rm_subparser.add_parser('vm')
rm_vm_parser.set_defaults(func=remove_vm)
rm_vm_parser.add_argument('id', type=int, help='id of the vm to add')
rm_host_parser = rm_subparser.add_parser('host')
rm_host_parser.set_defaults(func=remove_host)
rm_host_parser.add_argument('hostname', help='name of host to remove')
rm_host_parser.add_argument('ip', help='ip of host to remove')
shell_parser = subparsers.add_parser('shell') shell_parser = subparsers.add_parser('shell')
shell_parser.set_defaults(func=shell) shell_parser.set_defaults(func=shell)