"TUI QETH Interface Module" import snack from netconfpkg.NCHardwareList import HW_CONF, getHardwareList from netconfpkg.NC_functions import _, QETH class NCQethInterfaceTui: "TUI QETH Interface Dialog" def __init__(self, dev=None): """ The constructor @screen A snack screen instance """ self.dev = dev self.name = snack.Entry(20, "") self.hwdev = snack.Entry(20, "") self.dynip = snack.Checkbox("") self.statip = snack.Entry(20, "") self.netmask = snack.Entry(20, "") self.gwy = snack.Entry(20, "") self.ioport = snack.Entry(20, "") self.ioport1 = snack.Entry(20, "") self.ioport2 = snack.Entry(20, "") self.options=snack.Entry(20,"") self.macaddr=snack.Entry(20,"") self.screen = None if dev: self.setState() def setState(self, dev=None): """ Set the default values of the fields according to the given device @dev The NCDevice (type devernet) to use as default values """ if not dev: dev = self.dev if dev: if dev.DeviceId: self.name.set(dev.DeviceId) if dev.Device: self.hwdev.set(dev.Device) if dev.BootProto: bp = dev.BootProto.lower() if (bp == "dhcp") or (bp == "bootp"): self.dynip.setValue("*") if dev.IP: self.statip.set(dev.IP) if dev.Netmask: self.netmask.set(dev.Netmask) if dev.Gateway: self.gwy.set(dev.Gateway) hardwarelist = getHardwareList() for hw in hardwarelist: if hw.Name == dev.Device: self.ioport.set(hw.Card.IoPort or '') self.ioport1.set(hw.Card.IoPort1 or '') self.ioport2.set(hw.Card.IoPort2 or '') self.options.set(hw.Card.Options or '') self.macaddr.set(hw.MacAddress or '') break def useDynamicCheckBox(self): """ Set the static IP field to enabled/disabled determined by the dynamic IP field """ if self.dynip.selected(): state = snack.FLAGS_SET else: state = snack.FLAGS_RESET for i in self.statip, self.netmask, self.gwy: i.setFlags(snack.FLAG_DISABLED, state) def processInfo(self): """ Extracts info from the screen, and puts it into a device object """ self.dev.DeviceId = self.name.value() self.dev.Device = self.hwdev.value() hardwarelist = getHardwareList() for hw in hardwarelist: if hw.Name == self.dev.Device: break else: i = hardwarelist.addHardware(QETH) hw = hardwarelist[i] hw.Status = HW_CONF hw.Name = self.dev.Device hw.Type = QETH # pylint: disable-msg=W0631 if not hw.Card: hw.createCard() hw.Card.ModuleName = "qeth" hw.Card.IoPort = self.ioport.value() hw.Card.IoPort1 = self.ioport1.value() hw.Card.IoPort2 = self.ioport2.value() hw.Card.Options = self.options.value() ports = "%s,%s,%s" % (hw.Card.IoPort, hw.Card.IoPort1, hw.Card.IoPort2) hw.Description = "qeth %s" % ports hw.MacAddress = self.macaddr.value() if self.dynip.value(): self.dev.BootProto = "dhcp" self.dev.IP = None self.dev.Netmask = None self.dev.Gateway = None else: self.dev.IP = self.statip.value() self.dev.Netmask = self.netmask.value() self.dev.Gateway = self.gwy.value() self.dev.BootProto = None def runIt(self, screen): """ Show and run the screen, save files if necesarry """ self.screen = screen g1 = snack.Grid(1, 1) g2 = snack.Grid(2, 11) g2.setField(snack.Label (_("Name")), 0, 0, anchorLeft = 1) g2.setField(snack.Label (_("Device")), 0, 1, anchorLeft = 1) g2.setField(snack.Label (_("Use DHCP")), 0, 2, anchorLeft = 1) g2.setField(snack.Label (_("Static IP")), 0, 3, anchorLeft = 1) g2.setField(snack.Label (_("Netmask")), 0, 4, anchorLeft=1) g2.setField(snack.Label (_("Default gateway IP")), 0, 5, anchorLeft = 1) g2.setField(snack.Label (_("Read Device Bus ID")), 0, 6, anchorLeft = 1) g2.setField(snack.Label (_("Data Device Bus ID")), 0, 7, anchorLeft = 1) g2.setField(snack.Label (_("Write Device Bus ID")), 0, 8, anchorLeft = 1) g2.setField(snack.Label (_("Options").replace("_", "")),0,9,anchorLeft=1) g2.setField(snack.Label (_("MAC Address")),0,10,anchorLeft=1) g2.setField(self.name, 1, 0, (1, 0, 0, 0)) g2.setField(self.hwdev, 1, 1, (1, 0, 0, 0)) g2.setField(self.dynip, 1, 2, (1, 0, 0, 0), anchorLeft=1) g2.setField(self.statip, 1, 3, (1, 0, 0, 0)) g2.setField(self.netmask, 1, 4, (1, 0, 0, 0)) g2.setField(self.gwy, 1, 5, (1, 0, 0, 0)) g2.setField(self.ioport, 1, 6, (1, 0, 0, 0)) g2.setField(self.ioport1, 1, 7, (1, 0, 0, 0)) g2.setField(self.ioport2, 1, 8, (1, 0, 0, 0)) g2.setField(self.options,1,9,(1,0,0,0)) g2.setField(self.macaddr,1,10,(1,0,0,0)) self.dynip.setCallback(self.useDynamicCheckBox) bb = snack.ButtonBar(self.screen, ((_("Ok"), "ok"), (_("Cancel"), "cancel"))) self.setState(self.dev) tl = snack.GridForm(screen, _("Network Configuration"), 1, 3) tl.add(g1, 0, 0, (0, 0, 0, 1), anchorLeft=1) tl.add(g2, 0, 1, (0, 0, 0, 1)) tl.add(bb, 0, 2, growx=1) self.useDynamicCheckBox() while 1: res = tl.run() if bb.buttonPressed(res) == "cancel": screen.popWindow() return False elif bb.buttonPressed(res) == "ok": screen.popWindow() self.processInfo() return True def register_plugin(): from netconfpkg.plugins.NCPluginDevQeth import setDevQethDialog setDevQethDialog(NCQethInterfaceTui) __author__ = "Harald Hoyer "