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