def ok(self, vals): rv = self.node.set_field(self.aidx, self.ptype, str(vals[0])) if (rv != 0): self.glist.SetError("Invalid data value: " + OpenIPMI.get_error_string(rv)) return try: if (self.reiniter != None): if self.reiniter.reinit(self, self.currval, vals[0]): return pass pass except: pass name_s = [""] type_s = [""] value_s = [""] node_s = [None] rv = self.node.get_field(self.aidx, name_s, type_s, value_s, node_s) if (rv != 0): self.glist.SetError("Could not re-get field: " + OpenIPMI.get_error_string(rv)) return self.glist.cleanup_field(type_s[0], value_s) self.currval = value_s[0] self.glist.SetColumn(self.item, self.currval, 1) return
def ok(self, vals): rv = self.node.set_field(self.aidx, self.ptype, str(vals[0])) if (rv != 0): self.glist.SetError("Invalid data value: " + OpenIPMI.get_error_string(rv)) return try: if (self.reiniter != None): if self.reiniter.reinit(self, self.currval, vals[0]): return pass pass except: pass name_s = [ "" ] type_s = [ "" ] value_s = [ "" ] node_s = [ None ] rv = self.node.get_field(self.aidx, name_s, type_s, value_s, node_s) if (rv != 0): self.glist.SetError("Could not re-get field: " + OpenIPMI.get_error_string(rv)) return self.glist.cleanup_field(type_s[0], value_s) self.currval = value_s[0] self.glist.SetColumn(self.item, self.currval, 1) return
def got_pef_cb(self, pef, err): if err: self.ui.ReportError("Error fetching PEF: " + OpenIPMI.get_error_string(err)) return rv = pef.get_config(self) if rv: self.ui.ReportError("Error starting PEF config fetch: " + OpenIPMI.get_error_string(rv)) pass return
def got_pef_cb(self, pef, err): if (err): self.ui.ReportError("Error fetching PEF: " + OpenIPMI.get_error_string(err)) return rv = pef.get_config(self) if (rv): self.ui.ReportError("Error starting PEF config fetch: " + OpenIPMI.get_error_string(rv)) pass return
def fru_written(self, domain, fru, err): if (err): self.glist.SetError("Could not write FRU: " + OpenIPMI.get_error_string(err)) return self.Close() return
def SetupArgs(self): self.errstr.SetError("") args = self.args for f in self.fields: idx = f[0] vtype = f[2] fw = f[3] if (vtype == "bool"): if (fw.get()): val = "true" else: val = "false" pass pass elif (vtype == "enum"): val = str(fw.get()) pass elif ((vtype == "str") or (vtype == "int")): val = str(fw.get()) if (val == ""): val = None pass pass else: continue rv = args.set_val(idx, None, val) if (rv != 0): err = ("Error setting field " + f[1] + ": " + OpenIPMI.get_error_string(rv)) self.errstr.SetError(err) raise Exception(err) pass return args
def mc_get_event_log_enable_cb(self, mc, err, val): if err: _oi_logging.error( "Error getting MC event log enable for " + self.name + ": " + OpenIPMI.get_error_string(err) ) return self.ui.set_item_text(self.el_item, str(val != 0))
def mc_get_event_log_enable_cb(self, mc, err, val): if (err): _oi_logging.error("Error getting MC event log enable for " + self.name + ": " + OpenIPMI.get_error_string(err)) return self.ui.set_item_text(self.el_item, str(val != 0))
def conn_change_cb(self, domain, err, connum, portnum, anything_connected): if (err): self.ui.new_log("Connection error for " + self.name + "(" + str(connum) + "," + str(portnum) + "): " + OpenIPMI.get_error_string(err)) pass if (not self.first_conn): self.first_conn = True self.ipmb_rescan_time = domain.get_ipmb_rescan_time() self.sel_rescan_time = domain.get_sel_rescan_time() domain.iterate_connections(self) pass if (connum not in self.connections): self.ui.new_log("Got connection for invalid connection number") return self.connections[connum].SetPortUp(domain, portnum, err) any_con_up = False for c in self.connections.itervalues(): any_con_up = c.IsUp() or any_con_up pass if (any_con_up): if (not self.any_con_up): self.ui.decr_item_critical(self.treeroot) pass pass else: if (self.any_con_up): self.ui.incr_item_critical(self.treeroot) pass pass self.any_con_up = any_con_up return
def ok(self, vals): tlist = [] if (vals[0]): tlist.append("events") pass del vals[0] if (vals[0]): tlist.append("scanning") pass del vals[0] for en in self.enables: if vals[0]: tlist.append(en) pass del vals[0] pass self.event_enable_str = " ".join(tlist) self.setting = True rv = self.s.sensor_id.to_sensor(self) if (rv == 0): rv = self.err pass if (rv != 0): return ("Error setting sensor event enables: " + OpenIPMI.get_error_string(rv)) return
def SetupArgs(self): self.errstr.SetError("") args = self.args for f in self.fields: idx = f[0] vtype = f[2] fw = f[3] if (vtype == "bool"): if (fw.get()): val = "true" else: val = "false" pass pass elif (vtype == "enum"): val = str(fw.get()) pass elif ((vtype == "str") or (vtype == "int")): val = str(fw.get()) if (val == ""): val = None pass pass else: continue rv = args.set_val(idx, None, val); if (rv != 0): err = ("Error setting field " + f[1] + ": " + OpenIPMI.get_error_string(rv)) self.errstr.SetError(err) raise Exception(err) pass return args
def fru_written(self, domain, fru, err): if (err): self.glist.SetError("Could not write FRU: " + OpenIPMI.get_error_string(err)) return self.Close() return
def ok(self, vals): tlist = [ ] if (vals[0]): tlist.append("events") pass del vals[0] if (vals[0]): tlist.append("scanning") pass del vals[0] for en in self.enables: if vals[0]: tlist.append(en) pass del vals[0] pass self.event_enable_str = " ".join(tlist) self.setting = True rv = self.s.sensor_id.to_sensor(self) if (rv == 0): rv = self.err pass if (rv != 0): return ("Error setting sensor event enables: " + OpenIPMI.get_error_string(rv)) return
def mc_events_enable_cb(self, mc, err): if (err): _oi_logging.error("Error setting MC events for " + self.name + ": " + OpenIPMI.get_error_string(err)) return self.ee_refr.DoUpdate()
def conn_change_cb(self, domain, err, connum, portnum, anything_connected): if (err): self.ui.new_log("Connection error for " + self.name + "(" + str(connum) + "," + str(portnum) + "): " + OpenIPMI.get_error_string(err)) pass if (not self.first_conn): self.first_conn = True self.ipmb_rescan_time = domain.get_ipmb_rescan_time() self.sel_rescan_time = domain.get_sel_rescan_time() domain.iterate_connections(self) pass if (connum not in self.connections): self.ui.new_log("Got connection for invalid connection number") return self.connections[connum].SetPortUp(domain, portnum, err) any_con_up = False for c in self.connections.itervalues(): any_con_up = c.IsUp() or any_con_up pass if (any_con_up): if (not self.any_con_up): self.ui.decr_item_critical(self.treeroot) pass pass else: if (self.any_con_up): self.ui.incr_item_critical(self.treeroot) pass pass self.any_con_up = any_con_up return
def ok(self, val): self.ival = int(val[0]) self.init = False rv = self.d.domain_id.to_domain(self) if (rv != 0): return ("Error setting SEL rescan time: " + OpenIPMI.get_error_string(rv)) return
def ok(self, val): self.ival = int(val[0]) self.init = False rv = self.d.domain_id.to_domain(self) if (rv != 0): return ("Error setting SEL rescan time: " + OpenIPMI.get_error_string(rv)) return
def setval(self, val): rv = self.setter(val) if rv: mcusers.SetError("Could not set value: " + OpenIPMI.get_error_string(rv)) return self.user.changed = True self.mcusers.SetColumn(self.item, GetPrivilegeString(val), 1) return
def mc_set_event_log_enable_cb(self, mc, err): if err: _oi_logging.error( "Error setting MC event log enable for" + self.name + ": " + OpenIPMI.get_error_string(err) ) return self.el_refr.DoUpdate() return
def setval(self, val): rv = self.setter(val) if (rv): mcchan.SetError("Could not set value: " + OpenIPMI.get_error_string(rv)) return self.mcchanSetColumn(self.item, OpenIPMI.privilege_string(val), 1) return
def ok(self, vals): val = int(vals[0]) rv = self.setter(val) if rv: return "Could not set value: " + OpenIPMI.get_error_string(rv) self.user.changed = True self.mcusers.SetColumn(self.item, str(val), 1) self.currval = val return
def ok(self, vals): rv = self.solc.set_val(self.parm, self.aidx, self.ptype, str(vals[0])) if (rv != 0): self.glist.SetError("Invalid data value: " + OpenIPMI.get_error_string(rv)) return self.currval = vals[0] self.glist.SetColumn(self.idx, 1, vals[0]) return
def setval(self, val): rv = self.setter(val) if (rv): mcusers.SetError("Could not set value: " + OpenIPMI.get_error_string(rv)) return self.user.changed = True self.mcusers.SetColumn(self.item, GetPrivilegeString(val), 1) return
def ok(self, vals): rv = self.lpc.set_val(self.parm, self.aidx, self.ptype, str(vals[0])) if (rv != 0): self.glist.SetError("Invalid data value: " + OpenIPMI.get_error_string(rv)) return self.currval = vals[0] self.glist.SetColumn(self.idx, 1, vals[0]) return
def ok(self, vals): val = str(vals[0]) rv = self.setter(val) if (rv): return ("Could not set value: " + OpenIPMI.get_error_string(rv)) self.user.changed = True self.mcusers.SetColumn(self.item, str(val), 1) self.currval = val return
def ok(self, vals): self.ival = int(vals[0]) self.init = False rv = self.m.mc_id.to_mc(self) if rv == 0: rv = self.err pass if rv != 0: return "Error setting SEL rescan time: " + OpenIPMI.get_error_string(rv) return
def insert_element(self, child): rv = self.node.set_field(self.aidx, "integer", str(child.aidx)) if (rv != 0): self.glist.SetError("Could not insert item: " + OpenIPMI.get_error_string(rv)) return self.redisplay_item(child.aidx, child.item) self.reidx_children() self.length += 1 return
def ok(self, val): self.acttime = int(val) rv = self.e.entity_id.to_entity(self) if (rv == 0): rv = self.err pass if (rv != 0): return ("Error setting activation time: " + OpenIPMI.get_error_string(rv)) return
def ok(self, val): self.acttime = int(val) rv = self.e.entity_id.to_entity(self) if (rv == 0): rv = self.err pass if (rv != 0): return ("Error setting activation time: " + OpenIPMI.get_error_string(rv)) return
def insert_element(self, child): rv = self.node.set_field(self.aidx, "integer", str(child.aidx)) if (rv != 0): self.glist.SetError("Could not insert item: " + OpenIPMI.get_error_string(rv)) return self.redisplay_item(child.aidx, child.item) self.reidx_children() self.length += 1 return
def setval(self, val): rv = self.setter(val) if (rv): mcchan.SetError("Could not set value: " + OpenIPMI.get_error_string(rv)) return self.mcchanSetColumn(self.item, OpenIPMI.privilege_string(val), 1) return
def ok(self, vals): self.positive = int(vals[0]) self.negative = int(vals[1]) rv = self.s.sensor_id.to_sensor(self) if (rv == 0): rv = self.err pass if (rv != 0): return ("Error setting sensor thresholds: " + OpenIPMI.get_error_string(rv)) return
def ok(self, vals): self.positive = int(vals[0]) self.negative = int(vals[1]) rv = self.s.sensor_id.to_sensor(self) if (rv == 0): rv = self.err pass if (rv != 0): return ("Error setting sensor thresholds: " + OpenIPMI.get_error_string(rv)) return
def delete_element(self, child): rv = self.node.set_field(self.aidx, "integer", str(-(child.aidx + 1))) if (rv != 0): self.glist.SetError("Could not delete item: " + OpenIPMI.get_error_string(rv)) return self.glist.Remove(child.item) del self.children[child.aidx] self.reidx_children() self.length -= 1 return
def ok(self, vals): self.ival = int(vals[0]) self.init = False rv = self.m.mc_id.to_mc(self) if (rv == 0): rv = self.err pass if (rv != 0): return ("Error setting SEL rescan time: " + OpenIPMI.get_error_string(rv)) return
def delete_element(self, child): rv = self.node.set_field(self.aidx, "integer", str(-(child.aidx+1))) if (rv != 0): self.glist.SetError("Could not delete item: " + OpenIPMI.get_error_string(rv)) return self.glist.Remove(child.item) del self.children[child.aidx] self.reidx_children() self.length -= 1 return
def pef_got_config_cb(self, pef, err, pefconfig): if err: if err == OpenIPMI.eagain: self.ui.ReportError("PEF already locked by another user, " "Try clearing the lock.") pass else: self.ui.ReportError("Error fetching PEF config: " + OpenIPMI.get_error_string(err)) pass return _mc_pefparm.MCPefParm(self, pef, pefconfig) return
def setenum(self, val): rv = self.solc.set_val(self.parm, self.aidx, "integer", str(val)) if (rv != 0): self.glist.SetError("Could not set value to " + str(val) + ": " + OpenIPMI.get_error_string(rv)) return self.currval = val nval = [ 0 ] sval = [ "" ] OpenIPMI.solconfig_enum_val(self.parm, val, nval, sval) self.glib.SetColumn(self.idx, 1, sval[0]) return
def setenum(self, val): rv = self.lpc.set_val(self.parm, self.aidx, "integer", str(val)) if (rv != 0): self.glist.SetError("Could not set value to " + str(val) + ": " + OpenIPMI.get_error_string(rv)) return self.currval = val nval = [0] sval = [""] OpenIPMI.lanconfig_enum_val(self.parm, val, nval, sval) self.glist.SetColumn(self.idx, 1, sval[0]) return
def lanparm_got_config_cb(self, lanparm, err, lanconfig): if (err): if (err == OpenIPMI.eagain): self.mcchan.SetError( "LANPARMs are locked, clear the lock if necessary") else: self.mcchan.SetError("Error getting lanparms: " + OpenIPMI.get_error_string(err)) pass return _mc_lanparm.MCLanParm(self.mcchan.m, lanparm, lanconfig, self.idx) return
def save(self): rv = self.lp.set_config(self.lpc) if (rv != 0): self.SetError("Error setting config: " + OpenIPMI.get_error_string(rv)) return # Don't forget to set self.lp to None when done so OnClose # doesn't clear it again self.lp = None self.Close() return
def solparm_got_config_cb(self, solparm, err, solconfig): if (err): if (err == OpenIPMI.eagain): self.mcchan.SetError( "SOLPARMs are locked, clear the lock if necessary") else: self.mcchan.SetError("Error getting solparms: " + OpenIPMI.get_error_string(err)) pass return _mc_solparm.MCSolParm(self.mcchan.m, solparm, solconfig, self.idx) return
def save(self): rv = self.sol.set_config(self.solc) if (rv != 0): self.errstr.SetError("Error setting config: " + OpenIPMI.get_error_string(rv)) return # Don't forget to set self.sol to None when done so OnClose # doesn't clear it again self.sol = None self.Close() return
def fru_fetched(self, domain, fru, err): s = str(self.d) + "(" + str(self.is_logical) + ", " s += str(self.ipmb) + ", " s += str(self.devid) + ", " s += str(self.lun) + ", " s += str(self.private_bus) + ", " s += str(self.channel) + ")" if (err): self.d.ui.new_log("Error fetching FRU iformation for " + s + ": " + OpenIPMI.get_error_string(err)) return _fru.FruInfoDisplay(fru, s) return
def pef_got_config_cb(self, pef, err, pefconfig): if (err): if (err == OpenIPMI.eagain): self.ui.ReportError("PEF already locked by another user, " "Try clearing the lock.") pass else: self.ui.ReportError("Error fetching PEF config: " + OpenIPMI.get_error_string(err)) pass return _mc_pefparm.MCPefParm(self, pef, pefconfig) return
def redisplay_item(self, idx, before=None): name_s = [""] type_s = [""] value_s = [""] node_s = [None] rv = self.subnode.get_field(idx, name_s, type_s, value_s, node_s) if (rv != 0): self.glist.SetError("Could not get field: " + OpenIPMI.get_error_string(rv)) return self.glist.add_fru_data(self.item, self.subnode, idx, self, False, idx, before) return
def user_set(self, mc, err, num): if err: self.SetError("Error setting user " + str(num) + ": " + OpenIPMI.get_error_string(err)) self.errnum += 1 pass self.waitcount -= 1 if self.waitcount <= 0: self.in_save = False if self.errnum == 0: self.Close() pass pass return
def fru_fetched(self, domain, fru, err): s = str(self.d) + "(" + str(self.is_logical) + ", " s += str(self.ipmb) + ", " s += str(self.devid) + ", " s += str(self.lun) + ", " s += str(self.private_bus) + ", " s += str(self.channel) + ")" if (err): self.d.ui.new_log("Error fetching FRU iformation for " + s + ": " + OpenIPMI.get_error_string(err)) return _fru.FruInfoDisplay(fru, s) return
def solparm_got_config_cb(self, solparm, err, solconfig): if (err): if (err == OpenIPMI.eagain): self.mcchan.SetError( "SOLPARMs are locked, clear the lock if necessary") else: self.mcchan.SetError( "Error getting solparms: " + OpenIPMI.get_error_string(err)) pass return _mc_solparm.MCSolParm(self.mcchan.m, solparm, solconfig, self.idx) return
def redisplay_item(self, idx, before=None): name_s = [ "" ] type_s = [ "" ] value_s = [ "" ] node_s = [ None ] rv = self.subnode.get_field(idx, name_s, type_s, value_s, node_s) if (rv != 0): self.glist.SetError("Could not get field: " + OpenIPMI.get_error_string(rv)) return self.glist.add_fru_data(self.item, self.subnode, idx, self, False, idx, before) return
def lanparm_got_config_cb(self, lanparm, err, lanconfig): if (err): if (err == OpenIPMI.eagain): self.mcchan.SetError( "LANPARMs are locked, clear the lock if necessary") else: self.mcchan.SetError( "Error getting lanparms: " + OpenIPMI.get_error_string(err)) pass return _mc_lanparm.MCLanParm(self.mcchan.m, lanparm, lanconfig, self.idx) return
def mc_channel_got_users_cb(self, mc, err, max_users, enabled_users, fixed_users, users): if (err): self.mcchan.SetError("Error fetching users: " + OpenIPMI.get_error_string(err)) return if (len(users) == 0): self.mcchan.SetError("No users") return v = [ 0 ] users[0].get_channel(v) ch = v[0] _mc_user.MCUsers(mc, ch, max_users, enabled_users, fixed_users, users) return
def mc_channel_got_users_cb(self, mc, err, max_users, enabled_users, fixed_users, users): if (err): self.mcchan.SetError("Error fetching users: " + OpenIPMI.get_error_string(err)) return if (len(users) == 0): self.mcchan.SetError("No users") return v = [0] users[0].get_channel(v) ch = v[0] _mc_user.MCUsers(mc, ch, max_users, enabled_users, fixed_users, users) return
def user_set(self, mc, err, num): if (err): self.SetError("Error setting user " + str(num) + ": " + OpenIPMI.get_error_string(err)) self.errnum += 1 pass self.waitcount -= 1 if (self.waitcount <= 0): self.in_save = False if (self.errnum == 0): self.Close() pass pass return
def togglevalue(self, event): if (self.currval == "True"): newval = "False" else: newval = "True" pass rv = self.node.set_field(self.aidx, self.ptype, newval) if (rv != 0): self.glist.SetError("Could not toggle value: " + OpenIPMI.get_error_string(rv)) return self.currval = newval self.glist.SetColumn(self.item, newval, 1) return
def togglevalue(self, event): if (self.currval == "True"): newval = "False" else: newval = "True" pass rv = self.node.set_field(self.aidx, self.ptype, newval) if (rv != 0): self.glist.SetError("Could not toggle value: " + OpenIPMI.get_error_string(rv)) return self.currval = newval self.glist.SetColumn(self.item, newval, 1) return
def togglevalue(self, event): if (self.currval == "true"): newval = "false" else: newval = "true" pass rv = self.solc.set_val(self.parm, self.aidx, self.ptype, newval) if (rv != 0): self.glist.SetError("Could not toggle value: " + OpenIPMI.get_error_string(rv)) return self.currval = newval self.glist.SetColumn(self.idx, 1, newval) return
def cmdlang_done(self, cmdlang): err = cmdlang.get_err() if (err != 0): errtext = cmdlang.get_errstr() objstr = cmdlang.get_objstr() location = cmdlang.get_location() if (location == None): location = "" pass if (objstr == ""): str = ( "error: %s: %s (0x%x, %s)\n" % (location, errtext, err, OpenIPMI.get_error_string(err))) pass else: str = ("error: %s %s: %s (0x%x, %s)\n" % (location, objstr, errtext, err, OpenIPMI.get_error_string(err))) pass self.InsertString(str) pass self.cmd_in_progress = False self.text.insert("end", "> ") return
def cmdlang_done(self, cmdlang): err = cmdlang.get_err() if (err != 0): errtext = cmdlang.get_errstr() objstr = cmdlang.get_objstr() location = cmdlang.get_location() if (location == None): location = "" pass if (objstr == ""): str = ("error: %s: %s (0x%x, %s)\n" % (location, errtext, err, OpenIPMI.get_error_string(err))) pass else: str = ("error: %s %s: %s (0x%x, %s)\n" % (location, objstr, errtext, err, OpenIPMI.get_error_string(err))) pass self.InsertString(str) pass self.cmd_in_progress = False self.text.insert("end", "> ") return
def togglevalue(self, event): if (self.currval == "true"): newval = "false" else: newval = "true" pass rv = self.lpc.set_val(self.parm, self.aidx, self.ptype, newval) if (rv != 0): self.glist.SetError("Could not toggle value: " + OpenIPMI.get_error_string(rv)) return self.currval = newval self.glist.SetColumn(self.idx, 1, newval) return