add external commands as stubs for the nagios plugins
[monitor.git] / commands / bootman.py
1 #!/usr/bin/python
2
3 # Attempt to reboot a node in debug state.
4
5
6
7 import os
8 import sys
9 import time
10 import random
11 import signal
12 import traceback
13 import subprocess
14 from sets import Set
15 from monitor.bootman import *
16
17 # MAIN -------------------------------------------------------------------
18
19 def main():
20         from monitor import parser as parsermodule
21         parser = parsermodule.getParser()
22
23         parser.set_defaults(child=False, collect=False, nosetup=False, verbose=False, 
24                                                 force=None, quiet=False)
25         parser.add_option("", "--child", dest="child", action="store_true", 
26                                                 help="This is the child mode of this process.")
27         parser.add_option("", "--force", dest="force", metavar="boot_state",
28                                                 help="Force a boot state passed to BootManager.py.")
29         parser.add_option("", "--quiet", dest="quiet", action="store_true", 
30                                                 help="Extra quiet output messages.")
31         parser.add_option("", "--verbose", dest="verbose", action="store_true", 
32                                                 help="Extra debug output messages.")
33         parser.add_option("", "--nonet", dest="nonet", action="store_true", 
34                                                 help="Do not setup the network, use existing log files to re-run a test pass.")
35         parser.add_option("", "--collect", dest="collect", action="store_true", 
36                                                 help="No action, just collect dmesg, and bm.log")
37         parser.add_option("", "--nosetup", dest="nosetup", action="store_true", 
38                                                 help="Do not perform the orginary setup phase.")
39
40         parser = parsermodule.getParser(['nodesets', 'defaults'], parser)
41         config = parsermodule.parse_args(parser)
42
43         if config.nodelist:
44                 nodes = config.getListFromFile(config.nodelist)
45         elif config.node:
46                 nodes = [ config.node ]
47         else:
48                 parser.print_help()
49                 sys.exit(1)
50
51         for node in nodes:
52                 # get sitehist
53                 lb = plccache.plcdb_hn2lb[node]
54                 sitehist = SiteInterface.get_or_make(loginbase=lb)
55                 #reboot(node, config)
56                 restore(sitehist, node, config=None, forced_action=None)
57
58 if __name__ == "__main__":
59         main()