mirror of
				https://github.com/xcat2/confluent.git
				synced 2025-10-30 10:52:34 +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)
 | |
| 
 |