Changed 'import auth' statements to use plc.py or monitorconfig.py
[monitor.git] / nodeaction.py
1 #!/usr/bin/python
2
3 import plc
4 api = plc.getAuthAPI()
5
6 import reboot
7
8 import time
9 from model import *
10
11 from config import config
12 from optparse import OptionParser
13
14 parser = OptionParser()
15 parser.set_defaults(node=None, rins=False, bootstate=None, endrecord=False)
16 parser.add_option("", "--backoff", dest="backoff", action="store_true",
17                                         help="Back off all penalties applied to a site.")
18 parser.add_option("", "--rins", dest="rins", action="store_true",
19                                         help="Back off all penalties applied to a site.")
20 parser.add_option("", "--bootstate", dest="bootstate", 
21                                         help="set the bootstate for a node.")
22 config = config(parser)
23 config.parse_args()
24
25 for node in config.args:
26         config.node = node
27
28         #plc_nodeinfo = api.GetNodes({'hostname': config.node}, None)[0]
29         #fb_nodeinfo  = fb['nodes'][config.node]['values']
30
31         if config.bootstate:
32                 print "Setting %s to bootstate %s" % ( node, config.bootstate )
33                 api.UpdateNode(node, {'boot_state' : config.bootstate})
34
35         if config.rins:
36                 print "Setting %s to rins" % node
37                 api.UpdateNode(node, {'boot_state' : 'rins'})
38
39         if config.backoff:
40                 print "Enabling Slices & Slice Creation for %s" % node
41                 plc.enableSlices(node)
42                 plc.enableSliceCreation(node)
43
44                 # plc_print_nodeinfo(plc_nodeinfo)
45                 # fb_print_nodeinfo(fb_nodeinfo)