mirror of
				https://github.com/xcat2/confluent.git
				synced 2025-11-03 21:02:36 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
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)
 | 
						|
 |