cli: Add wake subcommand

master
Dustin 2016-01-03 17:13:06 -06:00
parent e5315a6792
commit a73f090fe2
2 changed files with 21 additions and 0 deletions

View File

@ -78,6 +78,18 @@ def set_host(args):
print_host(host) print_host(host)
def wake_host(args):
rouse = client.Rouse()
keywords={}
keywords['macaddr'] = args.hint
keywords['ipaddr'] = args.hint
keywords['hostname'] = args.hint
hosts = client.Host.find(rouse=rouse, **keywords)
for host in hosts:
print('Sending WOL magic packet to {}'.format(host.macaddr))
host.wake()
def parse_args(): def parse_args():
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
sp = parser.add_subparsers(metavar='command') sp = parser.add_subparsers(metavar='command')
@ -116,6 +128,12 @@ def parse_args():
help='Hostname') help='Hostname')
p_set.set_defaults(func=set_host) p_set.set_defaults(func=set_host)
p_wake = sp.add_parser('wake', help='Wake host')
p_wake.add_argument('hint',
help='Hostname, IP address, or MAC address of host to'
'wake')
p_wake.set_defaults(func=wake_host)
return parser.parse_args() return parser.parse_args()

View File

@ -128,3 +128,6 @@ class Host(host.Host):
def update(self): def update(self):
self.rouse.put('/{}'.format(self.id), **self.as_dict()) self.rouse.put('/{}'.format(self.id), **self.as_dict())
def wake(self):
self.rouse.post('/{}/wake'.format(self.id))