Beispiel #1
0
    def __init__(self):

        super().__init__()
        self.setupUi(self)
        self._settings = None
        self._custom_adapters = []

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiCustomAdaptersConfigurationPushButton.clicked.connect(self._customAdaptersConfigurationSlot)
        self.uiAdapterTypesComboBox.clear()


        self._adapter_types = ["default",
                               "e1000",
                               "e1000e",
                               "flexible",
                               "vlance",
                               "vmxnet",
                               "vmxnet2",
                               "vmxnet3"]

        self.uiAdapterTypesComboBox.addItems(self._adapter_types)

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)

        # add the on close options
        for name, option_name in Node.onCloseOptions().items():
            self.uiOnCloseComboBox.addItem(name, option_name)
    def __init__(self):

        super().__init__()
        self.setupUi(self)
        self._node = None
        self._ports = []
        self._interfaces = []

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)

        # connect Ethernet slots
        self.uiEthernetListWidget.itemSelectionChanged.connect(self._EthernetChangedSlot)
        self.uiEthernetWarningPushButton.clicked.connect(self._EthernetWarningSlot)
        self.uiAddEthernetPushButton.clicked.connect(self._EthernetAddSlot)
        self.uiAddAllEthernetPushButton.clicked.connect(self._EthernetAddAllSlot)
        self.uiDeleteEthernetPushButton.clicked.connect(self._EthernetDeleteSlot)

        # connect TAP slots
        self.uiTAPComboBox.currentIndexChanged.connect(self._TAPSelectedSlot)
        self.uiTAPListWidget.itemSelectionChanged.connect(self._TAPChangedSlot)
        self.uiAddTAPPushButton.clicked.connect(self._TAPAddSlot)
        self.uiAddAllTAPPushButton.clicked.connect(self._TAPAddAllSlot)
        self.uiDeleteTAPPushButton.clicked.connect(self._TAPDeleteSlot)

        # connect UDP slots
        self.uiUDPTreeWidget.itemActivated.connect(self._UDPSelectedSlot)
        self.uiUDPTreeWidget.itemSelectionChanged.connect(self._UDPChangedSlot)
        self.uiAddUDPPushButton.clicked.connect(self._UDPAddSlot)
        self.uiDeleteUDPPushButton.clicked.connect(self._UDPDeleteSlot)

        self.uiShowSpecialInterfacesCheckBox.stateChanged.connect(self._showSpecialInterfacesSlot)
        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        self._widget_slots = {0: self.uiSlot0comboBox,
                              1: self.uiSlot1comboBox,
                              2: self.uiSlot2comboBox,
                              3: self.uiSlot3comboBox,
                              4: self.uiSlot4comboBox,
                              5: self.uiSlot5comboBox,
                              6: self.uiSlot6comboBox}

        self._widget_wics = {0: self.uiWic0comboBox,
                             1: self.uiWic1comboBox,
                             2: self.uiWic2comboBox}

        self.uiStartupConfigToolButton.clicked.connect(self._startupConfigBrowserSlot)
        self.uiPrivateConfigToolButton.clicked.connect(self._privateConfigBrowserSlot)
        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiIOSImageToolButton.clicked.connect(self._iosImageBrowserSlot)
        self._server = None
        self._idle_valid = False
        idle_pc_rgx = QtCore.QRegExp("^(0x[0-9a-fA-F]{8})?$")
        validator = QtGui.QRegExpValidator(idle_pc_rgx, self)
        self.uiIdlepcLineEdit.setValidator(validator)
        self.uiIdlepcLineEdit.textChanged.connect(self._idlePCValidateSlot)
        self.uiIdlepcLineEdit.textChanged.emit(self.uiIdlepcLineEdit.text())
        self._default_configs_dir = Servers.instance().localServerSettings()["configs_path"]

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiStartupConfigToolButton.clicked.connect(
            self._startupConfigBrowserSlot)
        self.uiPrivateConfigToolButton.clicked.connect(
            self._privateConfigBrowserSlot)
        self.uiIOUImageToolButton.clicked.connect(self._iouImageBrowserSlot)
        self.uiDefaultValuesCheckBox.stateChanged.connect(
            self._useDefaultValuesSlot)
        self._current_iou_image = ""
        self._compute_id = None

        # location of the base config templates
        self._base_iou_l2_config_template = get_resource(
            os.path.join("configs", "iou_l2_base_startup-config.txt"))
        self._base_iou_l3_config_template = get_resource(
            os.path.join("configs", "iou_l3_base_startup-config.txt"))
        self._default_configs_dir = LocalServer.instance().localServerSettings(
        )["configs_path"]

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        self._widget_slots = {0: self.uiSlot0comboBox,
                              1: self.uiSlot1comboBox,
                              2: self.uiSlot2comboBox,
                              3: self.uiSlot3comboBox,
                              4: self.uiSlot4comboBox,
                              5: self.uiSlot5comboBox,
                              6: self.uiSlot6comboBox}

        self._widget_wics = {0: self.uiWic0comboBox,
                             1: self.uiWic1comboBox,
                             2: self.uiWic2comboBox}

        self.uiStartupConfigToolButton.clicked.connect(self._startupConfigBrowserSlot)
        self.uiPrivateConfigToolButton.clicked.connect(self._privateConfigBrowserSlot)
        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiIOSImageToolButton.clicked.connect(self._iosImageBrowserSlot)
        self._server = None
        self._idle_valid = False
        idle_pc_rgx = QtCore.QRegExp("^(0x[0-9a-fA-F]{8})?$")
        validator = QtGui.QRegExpValidator(idle_pc_rgx, self)
        self.uiIdlepcLineEdit.setValidator(validator)
        self.uiIdlepcLineEdit.textChanged.connect(self._idlePCValidateSlot)
        self.uiIdlepcLineEdit.textChanged.emit(self.uiIdlepcLineEdit.text())
        self._default_configs_dir = Servers.instance().localServerSettings()["configs_path"]

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
Beispiel #6
0
    def __init__(self):

        super().__init__()
        self.setupUi(self)
        self._settings = None
        self._custom_adapters = []

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiCustomAdaptersConfigurationPushButton.clicked.connect(
            self._customAdaptersConfigurationSlot)
        self.uiAdapterTypesComboBox.clear()

        # add the on close options
        for name, option_name in Node.onCloseOptions().items():
            self.uiOnCloseComboBox.addItem(name, option_name)

        self._adapter_types = [
            "PCnet-PCI II (Am79C970A)", "PCNet-FAST III (Am79C973)",
            "Intel PRO/1000 MT Desktop (82540EM)",
            "Intel PRO/1000 T Server (82543GC)",
            "Intel PRO/1000 MT Server (82545EM)",
            "Paravirtualized Network (virtio-net)"
        ]
        self.uiAdapterTypesComboBox.addItems(self._adapter_types)

        # TODO: finish VM name change
        self.uiVMListLabel.hide()
        self.uiVMListComboBox.hide()

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
Beispiel #8
0
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
Beispiel #9
0
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self._default_configs_dir = LocalServer.instance().localServerSettings()["configs_path"]
        if Controller.instance().isRemote():
            self.uiScriptFileToolButton.hide()

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
    def __init__(self):

        super().__init__()
        self.setupUi(self)
        self._node = None
        self._ports = []
        self._interfaces = []

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)

        # connect Ethernet slots
        self.uiEthernetListWidget.itemSelectionChanged.connect(
            self._EthernetChangedSlot)
        self.uiEthernetWarningPushButton.clicked.connect(
            self._EthernetWarningSlot)
        self.uiAddEthernetPushButton.clicked.connect(self._EthernetAddSlot)
        self.uiAddAllEthernetPushButton.clicked.connect(
            self._EthernetAddAllSlot)
        self.uiRefreshEthernetPushButton.clicked.connect(
            self._EthernetRefreshSlot)
        self.uiDeleteEthernetPushButton.clicked.connect(
            self._EthernetDeleteSlot)

        # connect TAP slots
        self.uiTAPComboBox.currentIndexChanged.connect(self._TAPSelectedSlot)
        self.uiTAPListWidget.itemSelectionChanged.connect(self._TAPChangedSlot)
        self.uiAddTAPPushButton.clicked.connect(self._TAPAddSlot)
        self.uiAddAllTAPPushButton.clicked.connect(self._TAPAddAllSlot)
        self.uiRefreshTAPPushButton.clicked.connect(self._TAPRefreshSlot)
        self.uiDeleteTAPPushButton.clicked.connect(self._TAPDeleteSlot)

        # connect UDP slots
        self.uiUDPTreeWidget.itemActivated.connect(self._UDPSelectedSlot)
        self.uiUDPTreeWidget.itemSelectionChanged.connect(self._UDPChangedSlot)
        self.uiAddUDPPushButton.clicked.connect(self._UDPAddSlot)
        self.uiDeleteUDPPushButton.clicked.connect(self._UDPDeleteSlot)

        # connect other slots
        self.uiShowSpecialInterfacesCheckBox.stateChanged.connect(
            self._showSpecialInterfacesSlot)
        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiConsoleTypeComboBox.currentTextChanged.connect(
            self._consoleTypeChangedSlot)

        # add an icon to the warning button
        icon = QtGui.QIcon.fromTheme("dialog-warning")
        if icon.isNull():
            icon = QtGui.QIcon(':/icons/dialog-warning.svg')
        self.uiEthernetWarningPushButton.setIcon(icon)
    def __init__(self):

        super().__init__()
        self.setupUi(self)
        self._settings = None
        self._custom_adapters = []

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiNetworkConfigEditButton.released.connect(self._networkConfigEditSlot)
        self.uiCustomAdaptersConfigurationPushButton.clicked.connect(self._customAdaptersConfigurationSlot)

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiAdapterTypesComboBox.clear()
        self.uiAdapterTypesComboBox.addItems([
            "default", "e1000", "e1000e", "flexible", "vlance", "vmxnet",
            "vmxnet2", "vmxnet3"
        ])

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        # connect signals
        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiUseLocalServercheckBox.stateChanged.connect(self._useLocalServerSlot)
        self.uiRestoreDefaultsPushButton.clicked.connect(self._restoreDefaultsSlot)
        self.uiVPCSPathToolButton.clicked.connect(self._vpcsPathBrowserSlot)
        self.uiScriptFileToolButton.clicked.connect(self._scriptFileBrowserSlot)
        self._default_configs_dir = Servers.instance().localServerSettings()["configs_path"]

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
Beispiel #14
0
    def __init__(self):

        super().__init__()
        self.setupUi(self)
        self._settings = None
        self._custom_adapters = []

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiNetworkConfigEditButton.released.connect(
            self._networkConfigEditSlot)
        self.uiCustomAdaptersConfigurationPushButton.clicked.connect(
            self._customAdaptersConfigurationSlot)

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiAdapterTypesComboBox.clear()
        self.uiAdapterTypesComboBox.addItems(["default",
                                              "e1000",
                                              "e1000e",
                                              "flexible",
                                              "vlance",
                                              "vmxnet",
                                              "vmxnet2",
                                              "vmxnet3"])

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
Beispiel #16
0
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        # connect signals
        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiUseLocalServercheckBox.stateChanged.connect(
            self._useLocalServerSlot)
        self.uiRestoreDefaultsPushButton.clicked.connect(
            self._restoreDefaultsSlot)
        self.uiVPCSPathToolButton.clicked.connect(self._vpcsPathBrowserSlot)
        self.uiScriptFileToolButton.clicked.connect(
            self._scriptFileBrowserSlot)
        self._default_configs_dir = Servers.instance().localServerSettings(
        )["configs_path"]

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiStartupConfigToolButton.clicked.connect(self._startupConfigBrowserSlot)
        self.uiPrivateConfigToolButton.clicked.connect(self._privateConfigBrowserSlot)
        self.uiIOUImageToolButton.clicked.connect(self._iouImageBrowserSlot)
        self.uiDefaultValuesCheckBox.stateChanged.connect(self._useDefaultValuesSlot)
        self._current_iou_image = ""
        self._server = None

        # location of the base config templates
        self._base_iou_l2_config_template = get_resource(os.path.join("configs", "iou_l2_base_startup-config.txt"))
        self._base_iou_l3_config_template = get_resource(os.path.join("configs", "iou_l3_base_startup-config.txt"))
        self._default_configs_dir = Servers.instance().localServerSettings()["configs_path"]

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiAdapterTypesComboBox.clear()
        self.uiAdapterTypesComboBox.addItems(["PCnet-PCI II (Am79C970A)",
                                              "PCNet-FAST III (Am79C973)",
                                              "Intel PRO/1000 MT Desktop (82540EM)",
                                              "Intel PRO/1000 T Server (82543GC)",
                                              "Intel PRO/1000 MT Server (82545EM)",
                                              "Paravirtualized Network (virtio-net)"])

        # TODO: finish VM name change
        self.uiVMListLabel.hide()
        self.uiVMListComboBox.hide()

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
    def __init__(self):

        super().__init__()
        self.setupUi(self)
        self._ports = {}

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)

        # connect slots
        self.uiAddPushButton.clicked.connect(self._addPortSlot)
        self.uiDeletePushButton.clicked.connect(self._deletePortSlot)
        self.uiPortsTreeWidget.itemActivated.connect(self._portSelectedSlot)
        self.uiPortsTreeWidget.itemSelectionChanged.connect(self._portSelectionChangedSlot)
        self.uiPortTypeComboBox.currentIndexChanged.connect(self._typeSelectionChangedSlot)

        # enable sorting
        self.uiPortsTreeWidget.sortByColumn(0, QtCore.Qt.AscendingOrder)
        self.uiPortsTreeWidget.setSortingEnabled(True)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
    def __init__(self):

        super().__init__()
        self.setupUi(self)
        self._ports = {}

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)

        # connect slots
        self.uiAddPushButton.clicked.connect(self._addPortSlot)
        self.uiDeletePushButton.clicked.connect(self._deletePortSlot)
        self.uiPortsTreeWidget.itemActivated.connect(self._portSelectedSlot)
        self.uiPortsTreeWidget.itemSelectionChanged.connect(self._portSelectionChangedSlot)
        self.uiPortTypeComboBox.currentIndexChanged.connect(self._typeSelectionChangedSlot)

        # enable sorting
        self.uiPortsTreeWidget.sortByColumn(0, QtCore.Qt.AscendingOrder)
        self.uiPortsTreeWidget.setSortingEnabled(True)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
Beispiel #21
0
    def __init__(self):

        super().__init__()
        self.setupUi(self)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiAdapterTypesComboBox.clear()
        self.uiAdapterTypesComboBox.addItems([
            "PCnet-PCI II (Am79C970A)", "PCNet-FAST III (Am79C973)",
            "Intel PRO/1000 MT Desktop (82540EM)",
            "Intel PRO/1000 T Server (82543GC)",
            "Intel PRO/1000 MT Server (82545EM)",
            "Paravirtualized Network (virtio-net)"
        ])

        # TODO: finish VM name change
        self.uiVMListLabel.hide()
        self.uiVMListComboBox.hide()

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)
    def __init__(self):

        super().__init__()
        self.setupUi(self)
        self._compute_id = None

        self.uiBootPriorityComboBox.addItem("HDD", "c")
        self.uiBootPriorityComboBox.addItem("CD/DVD-ROM", "d")
        self.uiBootPriorityComboBox.addItem("Network", "n")
        self.uiBootPriorityComboBox.addItem("HDD or Network", "cn")
        self.uiBootPriorityComboBox.addItem("HDD or CD/DVD-ROM", "cd")

        self.uiHdaDiskImageToolButton.clicked.connect(
            self._hdaDiskImageBrowserSlot)
        self.uiHdbDiskImageToolButton.clicked.connect(
            self._hdbDiskImageBrowserSlot)
        self.uiHdcDiskImageToolButton.clicked.connect(
            self._hdcDiskImageBrowserSlot)
        self.uiHddDiskImageToolButton.clicked.connect(
            self._hddDiskImageBrowserSlot)
        self.uiCdromImageToolButton.clicked.connect(
            self._cdromImageBrowserSlot)
        self.uiBiosImageToolButton.clicked.connect(self._biosImageBrowserSlot)

        self.uiHdaDiskImageCreateToolButton.clicked.connect(
            self._hdaDiskImageCreateSlot)
        self.uiHdbDiskImageCreateToolButton.clicked.connect(
            self._hdbDiskImageCreateSlot)
        self.uiHdcDiskImageCreateToolButton.clicked.connect(
            self._hdcDiskImageCreateSlot)
        self.uiHddDiskImageCreateToolButton.clicked.connect(
            self._hddDiskImageCreateSlot)

        disk_interfaces = [
            "ide", "sata", "scsi", "sd", "mtd", "floppy", "pflash", "virtio",
            "none"
        ]
        self.uiHdaDiskInterfaceComboBox.addItems(disk_interfaces)
        self.uiHdbDiskInterfaceComboBox.addItems(disk_interfaces)
        self.uiHdcDiskInterfaceComboBox.addItems(disk_interfaces)
        self.uiHddDiskInterfaceComboBox.addItems(disk_interfaces)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiInitrdToolButton.clicked.connect(self._initrdBrowserSlot)
        self.uiKernelImageToolButton.clicked.connect(
            self._kernelImageBrowserSlot)
        self.uiActivateCPUThrottlingCheckBox.stateChanged.connect(
            self._cpuThrottlingChangedSlot)
        self.uiLegacyNetworkingCheckBox.stateChanged.connect(
            self._legacyNetworkingChangedSlot)

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)

        self._legacy_devices = ("e1000", "i82551", "i82557b", "i82559er",
                                "ne2k_pci", "pcnet", "rtl8139", "virtio")
        self._qemu_network_devices = OrderedDict([
            ("e1000", "Intel Gigabit Ethernet"),
            ("i82550", "Intel i82550 Ethernet"),
            ("i82551", "Intel i82551 Ethernet"),
            ("i82557a", "Intel i82557A Ethernet"),
            ("i82557b", "Intel i82557B Ethernet"),
            ("i82557c", "Intel i82557C Ethernet"),
            ("i82558a", "Intel i82558A Ethernet"),
            ("i82558b", "Intel i82558B Ethernet"),
            ("i82559a", "Intel i82559A Ethernet"),
            ("i82559b", "Intel i82559B Ethernet"),
            ("i82559c", "Intel i82559C Ethernet"),
            ("i82559er", "Intel i82559ER Ethernet"),
            ("i82562", "Intel i82562 Ethernet"),
            ("i82801", "Intel i82801 Ethernet"),
            ("ne2k_pci", "NE2000 Ethernet"), ("pcnet", "AMD PCNet Ethernet"),
            ("rtl8139", "Realtek 8139 Ethernet"),
            ("virtio", "Legacy paravirtualized Network I/O"),
            ("virtio-net-pci", "Paravirtualized Network I/O"),
            ("vmxnet3", "VMWare Paravirtualized Ethernet v3")
        ])

        self._refreshQemuNetworkDevices()
Beispiel #23
0
    def __init__(self):

        super().__init__()
        self.setupUi(self)
        self._compute_id = None
        self._settings = None
        self._custom_adapters = []

        self.uiBootPriorityComboBox.addItem("HDD", "c")
        self.uiBootPriorityComboBox.addItem("CD/DVD-ROM", "d")
        self.uiBootPriorityComboBox.addItem("Network", "n")
        self.uiBootPriorityComboBox.addItem("HDD or Network", "cn")
        self.uiBootPriorityComboBox.addItem("HDD or CD/DVD-ROM", "cd")
        self.uiBootPriorityComboBox.addItem("CD/DVD-ROM or Network", "dn")
        self.uiBootPriorityComboBox.addItem("CD/DVD-ROM or HDD", "dc")
        self.uiBootPriorityComboBox.addItem("Network or HDD", "nc")
        self.uiBootPriorityComboBox.addItem("Network or CD/DVD-ROM", "nd")

        self.uiHdaDiskImageToolButton.clicked.connect(
            self._hdaDiskImageBrowserSlot)
        self.uiHdbDiskImageToolButton.clicked.connect(
            self._hdbDiskImageBrowserSlot)
        self.uiHdcDiskImageToolButton.clicked.connect(
            self._hdcDiskImageBrowserSlot)
        self.uiHddDiskImageToolButton.clicked.connect(
            self._hddDiskImageBrowserSlot)
        self.uiCdromImageToolButton.clicked.connect(
            self._cdromImageBrowserSlot)
        self.uiBiosImageToolButton.clicked.connect(self._biosImageBrowserSlot)

        self.uiHdaDiskImageCreateToolButton.clicked.connect(
            self._hdaDiskImageCreateSlot)
        self.uiHdbDiskImageCreateToolButton.clicked.connect(
            self._hdbDiskImageCreateSlot)
        self.uiHdcDiskImageCreateToolButton.clicked.connect(
            self._hdcDiskImageCreateSlot)
        self.uiHddDiskImageCreateToolButton.clicked.connect(
            self._hddDiskImageCreateSlot)

        self.uiHdaDiskImageResizeToolButton.clicked.connect(
            self._hdaDiskImageResizeSlot)
        self.uiHdbDiskImageResizeToolButton.clicked.connect(
            self._hdbDiskImageResizeSlot)
        self.uiHdcDiskImageResizeToolButton.clicked.connect(
            self._hdcDiskImageResizeSlot)
        self.uiHddDiskImageResizeToolButton.clicked.connect(
            self._hddDiskImageResizeSlot)

        disk_interfaces = [
            "ide", "sata", "nvme", "scsi", "sd", "mtd", "floppy", "pflash",
            "virtio", "none"
        ]
        self.uiHdaDiskInterfaceComboBox.addItems(disk_interfaces)
        self.uiHdbDiskInterfaceComboBox.addItems(disk_interfaces)
        self.uiHdcDiskInterfaceComboBox.addItems(disk_interfaces)
        self.uiHddDiskInterfaceComboBox.addItems(disk_interfaces)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiInitrdToolButton.clicked.connect(self._initrdBrowserSlot)
        self.uiKernelImageToolButton.clicked.connect(
            self._kernelImageBrowserSlot)
        self.uiActivateCPUThrottlingCheckBox.stateChanged.connect(
            self._cpuThrottlingChangedSlot)
        self.uiLegacyNetworkingCheckBox.stateChanged.connect(
            self._legacyNetworkingChangedSlot)
        self.uiCustomAdaptersConfigurationPushButton.clicked.connect(
            self._customAdaptersConfigurationSlot)

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)

        # add the on close options
        for name, option_name in Node.onCloseOptions().items():
            self.uiOnCloseComboBox.addItem(name, option_name)

        # Supported NIC models: e1000, e1000-82544gc, e1000-82545em, e1000e, i82550, i82551, i82557a, i82557b, i82557c, i82558a
        # i82558b, i82559a, i82559b, i82559c, i82559er, i82562, i82801, ne2k_pci, pcnet, rocker, rtl8139, virtio-net-pci, vmxnet3
        self._legacy_devices = ("e1000", "i82551", "i82557b", "i82559er",
                                "ne2k_pci", "pcnet", "rtl8139", "virtio")
        self._qemu_network_devices = OrderedDict([
            ("e1000", "Intel Gigabit Ethernet"),
            ("e1000-82544gc", "Intel 82544GC Gigabit Ethernet"),
            ("e1000-82545em", "Intel 82545EM Gigabit Ethernet"),
            ("e1000e", "Intel PCIe Gigabit Ethernet"),
            ("i82550", "Intel i82550 Ethernet"),
            ("i82551", "Intel i82551 Ethernet"),
            ("i82557a", "Intel i82557A Ethernet"),
            ("i82557b", "Intel i82557B Ethernet"),
            ("i82557c", "Intel i82557C Ethernet"),
            ("i82558a", "Intel i82558A Ethernet"),
            ("i82558b", "Intel i82558B Ethernet"),
            ("i82559a", "Intel i82559A Ethernet"),
            ("i82559b", "Intel i82559B Ethernet"),
            ("i82559c", "Intel i82559C Ethernet"),
            ("i82559er", "Intel i82559ER Ethernet"),
            ("i82562", "Intel i82562 Ethernet"),
            ("i82801", "Intel i82801 Ethernet"),
            ("ne2k_pci", "NE2000 Ethernet"), ("pcnet", "AMD PCNet Ethernet"),
            ("rocker", "Rocker L2 switch device"),
            ("rtl8139", "Realtek 8139 Ethernet"),
            ("virtio", "Legacy paravirtualized Network I/O"),
            ("virtio-net-pci", "Paravirtualized Network I/O"),
            ("vmxnet3", "VMWare Paravirtualized Ethernet v3")
        ])

        self._refreshQemuNetworkDevices()
    def __init__(self):

        super().__init__()
        self.setupUi(self)
        self._server = None

        self.uiBootPriorityComboBox.addItem("HDD", "c")
        self.uiBootPriorityComboBox.addItem("CD/DVD-ROM", "d")
        self.uiBootPriorityComboBox.addItem("Network", "n")
        self.uiBootPriorityComboBox.addItem("HDD or Network", "cn")
        self.uiBootPriorityComboBox.addItem("HDD or CD/DVD-ROM", "cd")

        self.uiHdaDiskImageToolButton.clicked.connect(self._hdaDiskImageBrowserSlot)
        self.uiHdbDiskImageToolButton.clicked.connect(self._hdbDiskImageBrowserSlot)
        self.uiHdcDiskImageToolButton.clicked.connect(self._hdcDiskImageBrowserSlot)
        self.uiHddDiskImageToolButton.clicked.connect(self._hddDiskImageBrowserSlot)
        self.uiCdromImageToolButton.clicked.connect(self._cdromImageBrowserSlot)

        self.uiHdaDiskImageCreateToolButton.clicked.connect(self._hdaDiskImageCreateSlot)
        self.uiHdbDiskImageCreateToolButton.clicked.connect(self._hdbDiskImageCreateSlot)
        self.uiHdcDiskImageCreateToolButton.clicked.connect(self._hdcDiskImageCreateSlot)
        self.uiHddDiskImageCreateToolButton.clicked.connect(self._hddDiskImageCreateSlot)

        disk_interfaces = ["ide", "scsi", "sd", "mtd", "floppy", "pflash", "virtio"]
        self.uiHdaDiskInterfaceComboBox.addItems(disk_interfaces)
        self.uiHdbDiskInterfaceComboBox.addItems(disk_interfaces)
        self.uiHdcDiskInterfaceComboBox.addItems(disk_interfaces)
        self.uiHddDiskInterfaceComboBox.addItems(disk_interfaces)

        self.uiSymbolToolButton.clicked.connect(self._symbolBrowserSlot)
        self.uiInitrdToolButton.clicked.connect(self._initrdBrowserSlot)
        self.uiKernelImageToolButton.clicked.connect(self._kernelImageBrowserSlot)
        self.uiActivateCPUThrottlingCheckBox.stateChanged.connect(self._cpuThrottlingChangedSlot)
        self.uiLegacyNetworkingCheckBox.stateChanged.connect(self._legacyNetworkingChangedSlot)

        # add the categories
        for name, category in Node.defaultCategories().items():
            self.uiCategoryComboBox.addItem(name, category)

        self._legacy_devices = ("e1000", "i82551", "i82557b", "i82559er", "ne2k_pci", "pcnet", "rtl8139", "virtio")
        self._qemu_network_devices = OrderedDict([("e1000", "Intel Gigabit Ethernet"),
                                                  ("i82550", "Intel i82550 Ethernet"),
                                                  ("i82551", "Intel i82551 Ethernet"),
                                                  ("i82557a", "Intel i82557A Ethernet"),
                                                  ("i82557b", "Intel i82557B Ethernet"),
                                                  ("i82557c", "Intel i82557C Ethernet"),
                                                  ("i82558a", "Intel i82558A Ethernet"),
                                                  ("i82558b", "Intel i82558B Ethernet"),
                                                  ("i82559a", "Intel i82559A Ethernet"),
                                                  ("i82559b", "Intel i82559B Ethernet"),
                                                  ("i82559c", "Intel i82559C Ethernet"),
                                                  ("i82559er", "Intel i82559ER Ethernet"),
                                                  ("i82562", "Intel i82562 Ethernet"),
                                                  ("i82801", "Intel i82801 Ethernet"),
                                                  ("ne2k_pci", "NE2000 Ethernet"),
                                                  ("pcnet", "AMD PCNet Ethernet"),
                                                  ("rtl8139", "Realtek 8139 Ethernet"),
                                                  ("virtio", "Legacy paravirtualized Network I/O"),
                                                  ("virtio-net-pci", "Paravirtualized Network I/O"),
                                                  ("vmxnet3", "VMWare Paravirtualized Ethernet v3")])

        self._refreshQemuNetworkDevices()