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