OpenIPMI.shutdown_everything() print "done" sys.exit(0) return class DummyLogHandler: def __init__(self): pass def log(self, level, log): sys.stderr.write(level + ": " + log + "\n") OpenIPMI.enable_debug_malloc() rv = OpenIPMI.init() if (rv != 0): print "OpenIPMI init failed: " + str(rv) sys.exit(1) main_handler = Handlers("hello") OpenIPMI.set_log_handler(main_handler) a = OpenIPMI.open_domain2("test", [ "-noall", ] + sys.argv[1:], main_handler, main_handler) if not a: print "open failed" sys.exit(1) pass
def run(args): global verbosity preffile = os.path.join(os.environ['HOME'], '.openipmigui.startup') histfile = os.path.join(os.environ['HOME'], '.openipmigui.history') debug_msg = False debug_rawmsg = False debug_mem = False do_trace = False read_preffile = True log_file = None # Skip program name. carg = 1 while (carg < len(args)): arg = args[carg] carg += 1 if (arg == "--dmsg"): debug_msg = True elif (arg == "--drawmsg"): debug_msg = True elif (arg == "--dmem"): debug_mem = True elif (arg == "--verbose"): verbosity += 1 elif (arg == "--trace"): do_trace = True elif (arg == "--logstderr"): log_file = sys.stderr elif (arg == "--logstdout"): log_file = sys.stdout elif (arg == "-n"): read_preffile = False elif (arg == '-p'): if (len(args) == 0): print "No argument given for -p"; return preffile = args[carg] carg += 1 else: print "Unknown argument: " + arg return pass if (debug_mem): OpenIPMI.enable_debug_malloc() pass top = TopHandler(preffile, log_file, histfile) # Detect if we need a separate OpenIPMI driver thread. See the # openipmi_driver function above for the reason. try: import thread try: top.tk.getvar("tcl_platform", "threaded") # Tcl is threaded, no need for another thread. need_separate_openipmi_thread = False except: # Python is threaded, but Tcl is not. Need to run the # OpenIPMI event loop in another thread. need_separate_openipmi_thread = True pass pass except: # No thread support, can't use another thread. need_separate_openipmi_thread = False pass if (need_separate_openipmi_thread): if (verbosity >= 1): print "Creating separate OpenIPMI event driver thread" pass OpenIPMI.init() thread.start_new_thread(openipmi_driver, ()) pass else: if (verbosity >= 1): print "Using TCL event loop, no threads" pass OpenIPMI.init_tcl() pass if (debug_rawmsg): OpenIPMI.enable_debug_rawmsg() pass if (debug_msg): OpenIPMI.enable_debug_msg() pass if (do_trace): sys.settrace(trace) pass if (read_preffile): _saveprefs.restore(preffile) gui_cmdwin._HistoryRestore(histfile) mainhandler = top OpenIPMI.add_domain_change_handler(_domain.DomainWatcher(mainhandler)) mainhandler.debug_mem = debug_mem top.title('OpenIPMI GUI') ui = gui.IPMIGUI(top, mainhandler) mainhandler.SetUI(ui) OpenIPMI.add_domain_change_handler(mainhandler) OpenIPMI.set_log_handler(mainhandler) _domain.RestoreDomains(mainhandler) OpenIPMI.set_cmdlang_event_handler(CmdlangEventHandler(mainhandler)) top.mainloop() mainhandler.quit()
def run(args): global verbosity preffile = os.path.join(os.environ['HOME'], '.openipmigui.startup') histfile = os.path.join(os.environ['HOME'], '.openipmigui.history') debug_msg = False debug_rawmsg = False debug_mem = False do_trace = False read_preffile = True log_file = None # Skip program name. carg = 1 while (carg < len(args)): arg = args[carg] carg += 1 if (arg == "--dmsg"): debug_msg = True elif (arg == "--drawmsg"): debug_msg = True elif (arg == "--dmem"): debug_mem = True elif (arg == "--verbose"): verbosity += 1 elif (arg == "--trace"): do_trace = True elif (arg == "--logstderr"): log_file = sys.stderr elif (arg == "--logstdout"): log_file = sys.stdout elif (arg == "-n"): read_preffile = False elif (arg == '-p'): if (len(args) == 0): print("No argument given for -p") return preffile = args[carg] carg += 1 else: print("Unknown argument: " + arg) return pass if (debug_mem): OpenIPMI.enable_debug_malloc() pass top = TopHandler(preffile, log_file, histfile) # Detect if we need a separate OpenIPMI driver thread. See the # openipmi_driver function above for the reason. try: import threading try: top.tk.getvar("tcl_platform", "threaded") # Tcl is threaded, no need for another thread. need_separate_openipmi_thread = False except: # Python is threaded, but Tcl is not. Need to run the # OpenIPMI event loop in another thread. need_separate_openipmi_thread = True pass pass except: # No thread support, can't use another thread. need_separate_openipmi_thread = False pass if (need_separate_openipmi_thread): if (verbosity >= 1): print("Creating separate OpenIPMI event driver thread") pass rv = OpenIPMI.init() if (rv != 0): print("Unable to initialize OpenIPMI") return thread.start_new_thread(openipmi_driver, ()) pass else: if (verbosity >= 1): print("Using TCL event loop, no threads") pass rv = OpenIPMI.init_tcl() if (rv != 0): print("Unable to initialize OpenIPMI, probably no TCL support") return pass if (debug_rawmsg): OpenIPMI.enable_debug_rawmsg() pass if (debug_msg): OpenIPMI.enable_debug_msg() pass if (do_trace): sys.settrace(trace) pass mainhandler = top _domain._DomainRestore(mainhandler) gui._GUIRestore(mainhandler) if (read_preffile): _saveprefs.restore(mainhandler, preffile) gui_cmdwin._HistoryRestore(mainhandler, histfile) OpenIPMI.add_domain_change_handler(_domain.DomainWatcher(mainhandler)) mainhandler.debug_mem = debug_mem top.title('OpenIPMI GUI') ui = gui.IPMIGUI(top, mainhandler) mainhandler.SetUI(ui) OpenIPMI.add_domain_change_handler(mainhandler) OpenIPMI.set_log_handler(mainhandler) _domain.RestoreDomains(mainhandler) OpenIPMI.set_cmdlang_event_handler(CmdlangEventHandler(mainhandler)) top.mainloop() mainhandler.quit()