foo
[myplc.git] / siriusnodes.py
1 #!/usr/bin/python
2 '''
3 Subscribes new nodes to princeton_sirius slice.
4
5 $Id : XXXXXX $
6
7 '''
8
9 import sys
10 from sets import Set
11
12 # Load shell with default configuration
13 sys.path.append('/usr/share/plc_api')
14 from PLC.Shell import Shell
15 plc = Shell(globals())
16
17
18
19 def main(argv = None):
20         debug = False
21         allnodes = []
22         whitelist = []
23         newnodes = []
24
25         # Get All Nodes
26         for node in GetNodes(None, ['node_id']): allnodes.append(node['node_id'])
27
28         # Get WhiteListed nodes
29         for node in GetWhitelist(None, ['node_id']): whitelist.append(node['node_id'])
30
31         # Nodes already running slice
32         siriusnodes = GetSlices("princeton_sirius")[0]['node_ids']
33
34         available = Set(allnodes) - Set(whitelist)
35
36         nodestoadd = available - Set(siriusnodes)
37
38         for node in nodestoadd: newnodes.append(node)
39
40         # Add to Sirius slice
41         if debug:
42                 print newnodes
43         else:
44                 AddSliceToNodes("princeton_sirius", [newnodes])