2
0
mirror of https://github.com/xcat2/confluent.git synced 2024-11-23 01:53:28 +00:00
confluent/misc/snakeidentify.py

42 lines
1.2 KiB
Python
Raw Normal View History

import argparse
import confluent.client as cli
import sys
import time
c = cli.Command()
nodes = []
ap = argparse.ArgumentParser(description='Snake identify light through nodes')
ap.add_argument('noderange', help='Noderange to iterate through')
ap.add_argument('-d', '--duration', type=float, help='How long to have each system illuminated')
args = ap.parse_args()
def runit(itera):
for rsp in itera:
if 'error' in rsp:
sys.stderr.write('{0}\n'.format(repr(rsp)))
for ret in c.read('/noderange/{0}/nodes/'.format(args.noderange)):
node = ret.get('item', {}).get('href', None)
if node:
node = node.replace('/', '')
nodes.append(node)
else:
print(repr(ret))
if not nodes:
sys.exit(1)
lastnode = None
interval = args.duration
if interval:
interval = interval / 2
else:
interval = 0.25
while True:
for node in nodes:
print('Lighting {0}'.format(node))
runit(c.update('/nodes/{0}/identify'.format(node), {'identify': 'on'}))
time.sleep(interval)
if lastnode:
runit(c.update('/nodes/{0}/identify'.format(lastnode), {'identify': 'off'}))
lastnode = node
time.sleep(interval)