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