コード例 #1
0
ファイル: rhn_page.py プロジェクト: xiaowenhao111/ovirt-node
    def __init__(self, title, description, plugin):
        self.keys = [
            "rhn.proxyhost", "rhn.proxyport", "rhn.proxyuser",
            "rhn.proxypassword"
        ]

        def clear_invalid(dialog, changes):
            [plugin.stash_change(prefix) for prefix in self.keys]

        title = _("RHSM Proxy Information")

        entries = [
            ui.Entry("rhn.proxyhost", "Server:"),
            ui.Entry("rhn.proxyport", "Port:"),
            ui.Entry("rhn.proxyuser", "Username:"******"rhn.proxypassword", "Password:"******"label[0]", description),
            ui.Divider("divider[0]")
        ]
        children.extend(entries)
        super(ProxyDialog, self).__init__("proxy.dialog", title, children)
        self.buttons = [
            ui.CloseButton("proxy.save", _("Save"), enabled=True),
            ui.CloseButton("proxy.close", _("Cancel"))
        ]

        b = plugins.UIElements(self.buttons)
        b["proxy.close"].on_activate.clear()
        b["proxy.close"].on_activate.connect(ui.CloseAction())
        b["proxy.close"].on_activate.connect(clear_invalid)
コード例 #2
0
    def __init__(self, plugin, iface, app_mode, config_nfs, db_type, firewall,
                 dc_type):
        super(AdvanceOptionsDialog, self).__init__("dialog.options", iface, [])
        self.plugin = plugin

        #padd = lambda l: l.ljust(14)
        ws = [
            ui.Options("engine_cfg.model", "App modes:", self._model),
            ui.Options("engine_cfg.storage", "Storage:", self._storage),
            ui.Options("engine_cfg.isoASK", "NFS ISO Domain:",
                       self._iso_domain),
            ui.Options("engine_cfg.dbTYPE", "DB type:", self._db_type),
            ui.Options("engine_cfg.firewall", "Firewall:", self._firewall),
        ]
        self.plugin._model_extra.update({
            "engine_cfg.firewall": firewall,
            "engine_cfg.model": app_mode or 'both',
            "engine_cfg.storage": dc_type or 'nfs',
            "engine_cfg.isoASK": config_nfs or False,
            "engine_cfg.dbTYPE": db_type,
        })
        self.plugin.widgets.add(ws)
        self.children = ws
        self.buttons = [
            ui.SaveButton("dialog.options.save", "Aplly"),
            ui.CloseButton("dialog.options.close", "Cancel"),
        ]
コード例 #3
0
 def _check_outstanding_changes(self):
     """This function checks if any UI Element has changed
     """
     has_outstanding_changes = False
     return has_outstanding_changes
     # FIXME the rest of this function has to be activated when it
     # is possible to set the selected menu item in the left-sided
     # main menu
     # otehrwise this popup will show, but the next menu item is selected
     # and we can not reset it to the entry which raised this popup
     if self.current_plugin() and self.current_plugin().pending_changes():
         pending_changes = self.current_plugin().pending_changes()
         elements = self.current_plugin().widgets
         self.logger.debug("Pending changes: %s" % pending_changes)
         self.logger.debug("Available elements: %s" % elements)
         msg = ""
         for path in [p for p in pending_changes if p in elements]:
             self.logger.debug("Element '%s' changed" % path)
             # assumption that element is a container
             element = elements[path]
             field = element.label()
             self.logger.debug("Changed widget: " +
                               "%s %s" % (path, element))
             msg += "- %s\n" % (field.strip(":"))
         if msg:
             txt = "The following fields have changed:\n%s" % msg
             txt += "\n\nPlease save or reset the page."
             dialog = ui.Dialog("dialog.changes", "Pending Changes",
                                [ui.Label("dialog.changes.txt", txt)])
             dialog.buttons = [ui.CloseButton("dialog.changes.close",
                                              "Back")]
             self.show(dialog)
             has_outstanding_changes = True
コード例 #4
0
ファイル: app.py プロジェクト: ArchipelProject/Node
 def display_exception_as_notice(e):
     self.logger.debug(traceback.format_exc())
     children = [ui.Label("dialog.notice.exception", "%s" % e)]
     notice = ui.Dialog("dialog.notice", "An exception occurred",
                        children)
     notice.buttons = [
         ui.CloseButton("dialog.notice.action.close", "Close")
     ]
     self.show(notice)
コード例 #5
0
 def notice(self, msg):
     """Displays a notice on the screen
     """
     if True:
         children = [ui.Label("app.notice.text", msg)]
         dialog = ui.Dialog("app.notice", "Notice", children)
         dialog.buttons = [ui.CloseButton("app.notice.close")]
         self.show(dialog)
     else:
         self.ui._show_on_notice(msg)
コード例 #6
0
    def __init__(self, path, title, description):
        title = "Custom Block Device"

        device_entry = ui.Entry("boot.device.custom", "Device path:")
        children = [ui.Label("label[0]", description),
                    ui.Divider("divider[0]"),
                    device_entry]
        super(CustomDeviceDialog, self).__init__(path, title, children)
        self.buttons = [ui.SaveButton("dialog.device.custom.save"),
                        ui.CloseButton("dialog.device.custom.close", "Cancel")]
コード例 #7
0
 def __init__(self, path, title):
     super(HostkeyDialog, self).__init__(path, title, [])
     ssh = security.Ssh()
     fp, hk = ssh.get_hostkey()
     self.children = [
         ui.Label("hostkey.label[0]", "RSA Host Key Fingerprint:"),
         ui.Label("hostkey.fp", fp),
         ui.Divider("hostkey.divider[0]"),
         ui.Label("hostkey.label[1]", "RSA Host Key:"),
         ui.Label("hostkey", "\n".join(textwrap.wrap(hk, 64))),
     ]
     self.buttons = [ui.CloseButton("dialog.close")]
コード例 #8
0
    def __init__(self, path_prefix, title, description):
        title = _("Custom Block Device")

        device_entry = ui.Entry(path_prefix, _("Device path:"))
        children = [ui.Label("label[0]", description),
                    ui.Divider("divider[0]"),
                    device_entry]
        super(CustomDeviceDialog, self).__init__("%s.dialog" % path_prefix,
                                                 title, children)
        self.buttons = [ui.SaveButton("dialog.device.custom.save", _("Save"),
                                      enabled=False),
                        ui.CloseButton("dialog.device.custom.close",
                                       _("Cancel"))]
コード例 #9
0
def quit(instance):
    def ui_quit(dialog, changes):
        instance.ui.quit()

    txt = "Are you sure you want to quit?"
    dialog = ui.ConfirmationDialog("dialog.exit", "Exit", txt, [
        ui.Button("dialog.exit.yes", "Yes"),
        ui.CloseButton("dialog.exit.close", "No")
    ])

    dialog.buttons[0].on_activate.clear()
    dialog.buttons[0].on_activate.connect(ui.CloseAction())
    dialog.buttons[0].on_activate.connect(ui_quit)
    instance.show(dialog)
コード例 #10
0
def quit(instance):
    def ui_quit(dialog, changes):
        utils.system.reboot()
        instance.ui.quit()

    txt = "Are you sure you want to quit? The system will be rebooted."
    dialog = ui.ConfirmationDialog("dialog.exit", "Exit", txt, [
        ui.Button("dialog.exit.yes", "Reboot"),
        ui.CloseButton("dialog.exit.close", "Cancel")
    ])

    dialog.buttons[0].on_activate.clear()
    dialog.buttons[0].on_activate.connect(ui.CloseAction())
    dialog.buttons[0].on_activate.connect(ui_quit)
    instance.show(dialog)
コード例 #11
0
    def __init__(self, path_prefix, title, description, plugin):
        def clear_invalid(dialog, changes):
            plugin.stash_change(path_prefix)

        title = _("Custom Block Device")

        device_entry = ui.Entry(path_prefix, _("Device path:"))
        children = [ui.Label("label[0]", description),
                    ui.Divider("divider[0]"),
                    device_entry]
        super(CustomDeviceDialog, self).__init__("%s.dialog" % path_prefix,
                                                 title, children)
        self.buttons = [ui.SaveButton("dialog.device.custom.save", _("Save"),
                                      enabled=False),
                        ui.CloseButton("dialog.device.custom.close",
                                       _("Cancel"))]

        b = plugins.UIElements(self.buttons)
        b["dialog.device.custom.close"].on_activate.clear()
        b["dialog.device.custom.close"].on_activate.connect(ui.CloseAction())
        b["dialog.device.custom.close"].on_activate.connect(clear_invalid)
コード例 #12
0
    def __init__(self, title, plugin):
        self.keys = ["maintenance.level"]
        self.plugin = plugin

        def clear_invalid(dialog, changes):
            [plugin.stash_change(prefix) for prefix in self.keys]

        entries = [ui.Options("maintenance.level", "Maintenance Level",
                              self.states, selected=self.__vm_status())]
        children = [ui.Divider("divider.options"),
                    ui.Label("label[0]", "Please select the maintenance "
                             "level"),
                    ui.Divider("divider[0]")]
        children.extend(entries)
        super(MaintenanceDialog, self).__init__(
            "maintenance.dialog", title, children)
        self.buttons = [ui.SaveButton("maintenance.confirm", "Set"),
                        ui.CloseButton("maintenance.close", "Cancel")]

        b = plugins.UIElements(self.buttons)
        b["maintenance.close"].on_activate.clear()
        b["maintenance.close"].on_activate.connect(ui.CloseAction())
        b["maintenance.close"].on_activate.connect(clear_invalid)
コード例 #13
0
    def __init__(self, title, plugin):
        self.keys = ["hosted_engine.diskpath", "hosted_engine.pxe"]

        def clear_invalid(dialog, changes):
            [plugin.stash_change(prefix) for prefix in self.keys]

        entries = [ui.Entry("hosted_engine.diskpath",
                            "Engine ISO/OVA URL for download:"),
                   ui.Checkbox("hosted_engine.pxe", "PXE Boot Engine VM"),
                   ui.Divider("divider[1]"),
                   ui.SaveButton("deploy.additional",
                                 "Add this host to an existing group")]
        children = [ui.Label("label[0]", "Please provide details for "
                             "deployment of hosted engine"),
                    ui.Divider("divider[0]")]
        children.extend(entries)
        super(DeployDialog, self).__init__("deploy.dialog", title, children)
        self.buttons = [ui.SaveButton("deploy.confirm", "Deploy"),
                        ui.CloseButton("deploy.close", "Cancel")]

        b = plugins.UIElements(self.buttons)
        b["deploy.close"].on_activate.clear()
        b["deploy.close"].on_activate.connect(ui.CloseAction())
        b["deploy.close"].on_activate.connect(clear_invalid)
コード例 #14
0
 def notice(self, msg):
     children = [ui.Label("app.notice.text", msg)]
     dialog = ui.Dialog("app.notice", "Notice", children)
     dialog.buttons = [ui.CloseButton("app.notice.close")]
コード例 #15
0
    def __init__(self, plugin, ifname):
        super(NicDetailsDialog, self).__init__("dialog.nic",
                                               "NIC Details: %s" % ifname, [])
        self.plugin = plugin

        # Populate model with nic specific informations
        self.logger.debug("Building NIC details dialog for %s" % ifname)

        nic = utils.network.NodeNetwork().nics()[ifname]

        model = defaults.Network().retrieve()
        ip6model = defaults.IPv6().retrieve()

        self.logger.debug("nic: %s" % nic)
        self.logger.debug("model: %s" % model)
        self.logger.debug("ip6model: %s" % ip6model)

        is_primary_interface = model["iface"] == ifname

        link_status_txt = ("Connected" if nic.has_link() else "Disconnected")
        vendor_txt = nic.vendor[:24] if nic.vendor else ""

        self.plugin._model_extra.update({
            "dialog.nic.driver": nic.driver,
            "dialog.nic.vendor": vendor_txt,
            "dialog.nic.link_status": link_status_txt,
            "dialog.nic.hwaddress": nic.hwaddr,
        })

        if isinstance(nic, network.BondedNIC):
            self.plugin._model_extra.update({
                "dialog.nic.bond_mode":
                nic.mode,
                "dialog.nic.bond_slaves":
                " ".join(nic.slaves)
            })

        bootproto = model["bootproto"]
        ipaddr = model["ipaddr"]
        netmask = model["netmask"]
        gateway = model["gateway"]
        vlanid = model["vlanid"]

        if model["bootproto"] == "dhcp":
            if nic.exists():
                routes = utils.network.Routes()
                gateway = routes.default()
                ipaddr, netmask = nic.ipv4_address().items()
                vlanid = ",".join(nic.vlanids())
        else:
            if ipaddr:
                bootproto = "static"

        nicfields = {
            "dialog.nic.ipv4.bootproto": bootproto,
            "dialog.nic.ipv4.address": ipaddr,
            "dialog.nic.ipv4.netmask": netmask,
            "dialog.nic.ipv4.gateway": gateway,
            "dialog.nic.ipv6.bootproto": ip6model["bootproto"],
            "dialog.nic.ipv6.address": ip6model["ipaddr"],
            "dialog.nic.ipv6.netmask": ip6model["netmask"],
            "dialog.nic.ipv6.gateway": ip6model["gateway"],
            "dialog.nic.vlanid": vlanid,
        }
        self.plugin._model_extra.update(nicfields)

        if not is_primary_interface:
            # Unset all NIC fields. Because their values are only relevant
            # for the primary interface
            self.plugin._model_extra.update(dict.fromkeys(nicfields.keys()))

        self.logger.debug("model: %s" % self.plugin.model())

        padd = lambda l: l.ljust(12)
        ws = [
            ui.Row("dialog.nic._row[0]", [
                ui.KeywordLabel("dialog.nic.driver", padd(_("Driver: "))),
                ui.KeywordLabel("dialog.nic.vendor", padd(_("Vendor: "))),
            ]),
            ui.Row("dialog.nic._row[2]", [
                ui.KeywordLabel("dialog.nic.link_status",
                                padd("Link Status: ")),
                ui.KeywordLabel("dialog.nic.hwaddress", padd("MAC Address: ")),
            ])
        ]

        if isinstance(nic, network.BondedNIC):
            ws += [
                ui.Row("dialog.nic._row[3]", [
                    ui.KeywordLabel("dialog.nic.bond_mode", _("Bond Mode: ")),
                    ui.KeywordLabel("dialog.nic.bond_slaves",
                                    _("Bond Slaves: "))
                ])
            ]

        ws += [
            ui.Divider("dialog.nic._divider[0]"),
            ui.Label("dialog.nic.ipv4._header", _("IPv4 Settings")),
            ui.Options("dialog.nic.ipv4.bootproto", "Bootprotocol: ",
                       [("none", _("Disabled")), ("dhcp", _("DHCP")),
                        ("static", _("Static"))]),
            ui.Row("dialog.nic._row[4]", [
                ui.Entry("dialog.nic.ipv4.address", padd(_("IP Address: "))),
                ui.Entry("dialog.nic.ipv4.netmask", padd(_("  Netmask: ")))
            ]),
            ui.Row("dialog.nic._row[5]", [
                ui.Entry("dialog.nic.ipv4.gateway", padd(_("Gateway: "))),
                ui.Label("dummy[0]", "")
            ]),
            ui.Divider("dialog.nic._divider[1]"),
            ui.Label("dialog.nic.ipv6._header", _("IPv6 Settings")),
            ui.Options("dialog.nic.ipv6.bootproto", "Bootprotocol: ",
                       [("none", _("Disabled")), ("auto", _("Auto")),
                        ("dhcp", _("DHCP")), ("static", _("Static"))]),
            ui.Row("dialog.nic._row[6]", [
                ui.Entry("dialog.nic.ipv6.address", padd(_("IP Address: "))),
                ui.Entry("dialog.nic.ipv6.netmask", padd(
                    _("  Prefix Length: ")))
            ]),
            ui.Row("dialog.nic._row[7]", [
                ui.Entry("dialog.nic.ipv6.gateway", padd(_("Gateway: "))),
                ui.Label("dummy[1]", "")
            ]),
            ui.Divider("dialog.nic._divider[2]"),
            ui.Row("dialog.nic._row[8]", [
                ui.Entry("dialog.nic.vlanid", padd(_("VLAN ID: "))),
                ui.Label("dummy[2]", "")
            ]),
            ui.Divider("dialog.nic._divider[3]"),
            ui.Divider("dialog.nic._divider[4]"),
            ui.Button("dialog.nic.identify", _("Flash Lights to Identify"))
        ]

        self.plugin.widgets.add(ws)
        self.children = ws
        self.plugin._nic_details_group.enabled(False)
        if isinstance(nic, network.BridgedNIC):
            self.buttons = [ui.CloseButton("dialog.nic.close", _("Close"))]
        else:
            self.plugin.widgets["dialog.nic.vlanid"].enabled(True)
            self.buttons = [
                ui.SaveButton("dialog.nic.save", _("Save")),
                ui.CloseButton("dialog.nic.close", _("Close"))
            ]
コード例 #16
0
    def __init__(self, plugin, iface):
        super(NicDetailsDialog, self).__init__("dialog.nic",
                                               "NIC Details: %s" % iface, [])
        self.plugin = plugin

        # Populate model with nic specific informations
        self.logger.debug("Building NIC details dialog for %s" % iface)

        self.logger.debug("Getting informations for NIC details page")
        live = utils.network.node_nics()[iface]
        cfg = defaults.Network().retrieve()

        self.logger.debug("live: %s" % live)
        self.logger.debug("cfg: %s" % cfg)

        # The primary interface of this Node:
        node_bridge_slave = config.network.node_bridge_slave()

        if node_bridge_slave != iface:
            # The config contains the information for the primary iface,
            # because this iface is not the primary iface we clear the config
            cfg = {k: "" for k in cfg.keys()}

        ipaddr, netmask, gateway, vlanid = (cfg["ipaddr"], cfg["netmask"],
                                            cfg["gateway"], cfg["vlanid"])

        bridge_nic = utils.network.NIC(live["bridge"])
        if cfg["bootproto"] == "dhcp":
            if bridge_nic.exists():
                routes = utils.network.Routes()
                ipaddr, netmask = bridge_nic.ipv4_address().items()
                gateway = routes.default()
                vlanid = bridge_nic.vlanid()
            else:
                self.logger.warning("Bridge assigned but couldn't gather " +
                                    "live info: %s" % bridge_nic)

        self.plugin._model_extra.update({
            "dialog.nic.iface":
            live["name"],
            "dialog.nic.driver":
            live["driver"],
            "dialog.nic.protocol":
            live["bootproto"] or "N/A",
            "dialog.nic.vendor":
            live["vendor"],
            "dialog.nic.link_status":
            "Connected" if live["link_detected"] else "Disconnected",
            "dialog.nic.hwaddress":
            live["hwaddr"],
            "dialog.nic.ipv4.bootproto":
            cfg["bootproto"],
            "dialog.nic.ipv4.address":
            ipaddr,
            "dialog.nic.ipv4.netmask":
            netmask,
            "dialog.nic.ipv4.gateway":
            gateway,
            "dialog.nic.vlanid":
            vlanid,
        })

        self.logger.debug("model: %s" % self.plugin.model())

        padd = lambda l: l.ljust(14)
        ws = [
            ui.Row("dialog.nic._row[0]", [
                ui.KeywordLabel("dialog.nic.iface", padd("Interface: ")),
                ui.KeywordLabel("dialog.nic.driver", padd("Driver: ")),
            ]),
            ui.Row("dialog.nic._row[1]", [
                ui.KeywordLabel("dialog.nic.protocol", padd("Protocol: ")),
                ui.KeywordLabel("dialog.nic.vendor", padd("Vendor: ")),
            ]),
            ui.Row("dialog.nic._row[2]", [
                ui.KeywordLabel("dialog.nic.link_status",
                                padd("Link Status: ")),
                ui.KeywordLabel("dialog.nic.hwaddress", padd("MAC Address: ")),
            ]),
            ui.Divider("dialog.nic._divider[0]"),
            ui.Header("dialog.nic.ipv4._header", "IPv4 Settings"),
            ui.Options("dialog.nic.ipv4.bootproto", "Bootprotocol: ",
                       [("none", "Disabled"), ("dhcp", "DHCP"),
                        ("static", "Static")]),
            ui.Entry("dialog.nic.ipv4.address", padd("IP Address: ")),
            ui.Entry("dialog.nic.ipv4.netmask", padd("Netmask: ")),
            ui.Entry("dialog.nic.ipv4.gateway", padd("Gateway: ")),
            ui.Divider("dialog.nic._divider[1]"),
            ui.Entry("dialog.nic.vlanid", padd("VLAN ID: ")),
        ]
        self.plugin.widgets.add(ws)
        self.children = ws
        self.buttons = [
            ui.SaveButton("dialog.nic.save", "Save"),
            ui.CloseButton("dialog.nic.close", "Close"),
        ]
        self.plugin._nic_details_group.enabled(False)
コード例 #17
0
ファイル: network_page.py プロジェクト: fabiand/ovirt-node
    def __init__(self, plugin, ifname):
        super(NicDetailsDialog, self).__init__("dialog.nic",
                                               "NIC Details: %s" % ifname, [])
        self.plugin = plugin

        # Populate model with nic specific informations
        self.logger.debug("Building NIC details dialog for %s" % ifname)

        nic = utils.network.NodeNetwork().nics()[ifname]

        model = defaults.Network().retrieve()
        ip6model = defaults.IPv6().retrieve()
        m_layout = defaults.NetworkLayout().retrieve()

        self.logger.debug("nic: %s" % nic)
        self.logger.debug("model: %s" % model)
        self.logger.debug("ip6model: %s" % ip6model)

        is_primary_interface = model["iface"] == ifname

        if not is_primary_interface:
            # The config contains the information for the primary ifnamee,
            # because this ifnamee is not the primaryifnameme we clear the
            # config
            model = dict((k, "") for k in model.keys())

        ipaddr, netmask, gateway, vlanid = (model["ipaddr"], model["netmask"],
                                            model["gateway"], model["vlanid"])

        ip6addr, ip6netmask, ip6gateway, ip6bootproto = (ip6model["ipaddr"],
                                                         ip6model["netmask"],
                                                         ip6model["gateway"],
                                                         ip6model["bootproto"])

        bootproto = model["bootproto"]
        if model["bootproto"] == "dhcp":
            if nic.exists():
                routes = utils.network.Routes()
                gateway = routes.default()
                ipaddr, netmask = nic.ipv4_address().items()
                vlanid = ",".join(nic.vlanids())
        else:
            if ipaddr:
                bootproto = "static"

        link_status_txt = ("Connected" if nic.has_link() else "Disconnected")
        vendor_txt = nic.vendor[:24] if nic.vendor else ""

        self.plugin._model_extra.update({
            "dialog.nic.driver":
            nic.driver,
            "dialog.nic.vendor":
            vendor_txt,
            "dialog.nic.link_status":
            link_status_txt,
            "dialog.nic.hwaddress":
            nic.hwaddr,
            "dialog.nic.ipv4.bootproto":
            bootproto,
            "dialog.nic.ipv4.address":
            ipaddr,
            "dialog.nic.ipv4.netmask":
            netmask,
            "dialog.nic.ipv4.gateway":
            gateway,
            "dialog.nic.ipv6.bootproto":
            ip6bootproto,
            "dialog.nic.ipv6.address":
            ip6addr,
            "dialog.nic.ipv6.netmask":
            ip6netmask,
            "dialog.nic.ipv6.gateway":
            ip6gateway,
            "dialog.nic.vlanid":
            vlanid,
            "dialog.nic.layout_bridged":
            m_layout["layout"] == "bridged",
        })

        self.logger.debug("model: %s" % self.plugin.model())

        padd = lambda l: l.ljust(12)
        ws = [
            ui.Row("dialog.nic._row[0]", [
                ui.KeywordLabel("dialog.nic.driver", padd("Driver: ")),
                ui.KeywordLabel("dialog.nic.vendor", padd("Vendor: ")),
            ]),
            ui.Row("dialog.nic._row[2]", [
                ui.KeywordLabel("dialog.nic.link_status",
                                padd("Link Status: ")),
                ui.KeywordLabel("dialog.nic.hwaddress", padd("MAC Address: ")),
            ]),
            ui.Divider("dialog.nic._divider[0]"),
            ui.Label("dialog.nic.ipv4._header", "IPv4 Settings"),
            ui.Options("dialog.nic.ipv4.bootproto", "Bootprotocol: ",
                       [("none", "Disabled"), ("dhcp", "DHCP"),
                        ("static", "Static")]),
            ui.Row("dialog.nic._row[4]", [
                ui.Entry("dialog.nic.ipv4.address", padd("IP Address: ")),
                ui.Entry("dialog.nic.ipv4.netmask", padd("  Netmask: "))
            ]),
            ui.Row("dialog.nic._row[5]", [
                ui.Entry("dialog.nic.ipv4.gateway", padd("Gateway: ")),
                ui.Label("dummy[0]", "")
            ]),
            ui.Divider("dialog.nic._divider[1]"),
            ui.Label("dialog.nic.ipv6._header", "IPv6 Settings"),
            ui.Options("dialog.nic.ipv6.bootproto", "Bootprotocol: ",
                       [("none", "Disabled"), ("auto", "Auto"),
                        ("dhcp", "DHCP"), ("static", "Static")]),
            ui.Row("dialog.nic._row[6]", [
                ui.Entry("dialog.nic.ipv6.address", padd("IP Address: ")),
                ui.Entry("dialog.nic.ipv6.netmask", padd("  Prefix Length: "))
            ]),
            ui.Row("dialog.nic._row[7]", [
                ui.Entry("dialog.nic.ipv6.gateway", padd("Gateway: ")),
                ui.Label("dummy[1]", "")
            ]),
            ui.Divider("dialog.nic._divider[2]"),
            ui.Row("dialog.nic._row[8]", [
                ui.Entry("dialog.nic.vlanid", padd("VLAN ID: ")),
                ui.Label("dummy[2]", "")
            ]),
            ui.Divider("dialog.nic._divider[3]"),
            ui.Checkbox("dialog.nic.layout_bridged", "Use Bridge: "),
            ui.Divider("dialog.nic._divider[4]"),
            ui.Button("dialog.nic.identify", "Flash Lights to Identify"),
        ]

        self.plugin.widgets.add(ws)
        self.children = ws
        self.buttons = [
            ui.SaveButton("dialog.nic.save", "Save"),
            ui.CloseButton("dialog.nic.close", "Close")
        ]
        self.plugin._nic_details_group.enabled(False)
        self.plugin.widgets["dialog.nic.vlanid"].enabled(True)
        self.plugin.widgets["dialog.nic.layout_bridged"].enabled(True)
コード例 #18
0
 def __init__(self, path, title):
     super(CPUFeaturesDialog, self).__init__(path, title, [])
     self.children = [
         ui.Label("label[0]", utils.system.cpu_details()),
     ]
     self.buttons = [ui.CloseButton("dialog.close")]