Compare commits

...

6 Commits

Author SHA1 Message Date
Jeremy
68e9842bd9 Bump version to 1.2.3 2015-01-16 17:58:09 -07:00
Jeremy
54552031d8 Fixes broken -netdev + legacy virtio in Qemu support. 2015-01-16 17:44:07 -07:00
Jeremy
bfabccc60d Fixes bug with WICs interfaces no showing up in the port list. 2015-01-16 15:17:03 -07:00
Jeremy
17fe1df029 Fixes #175. 2015-01-16 11:36:44 -07:00
Jeremy
e10ccea86c Fixes #177 (broken ASA kernel/initrd) file browsers). 2015-01-16 10:51:07 -07:00
Jeremy
fa470bd8bf Fixes missing devices from the node view that use a remote server. 2015-01-16 10:43:25 -07:00
5 changed files with 61 additions and 29 deletions

View File

@@ -354,8 +354,11 @@ class NodeItem(QtSvg.QGraphicsSvgItem):
ports_dict = {}
for port in ports:
if port.slotNumber() is not None:
# multiply the slot number by 16 to make the port number unique.
ports_dict[(port.slotNumber() * 16) + port.portNumber()] = port
# make the port number unique (special case with WICs).
port_number = port.portNumber()
if port_number >= 16:
port_number *= 4
ports_dict[(port.slotNumber() * 16) + port_number] = port
elif port.portNumber()is not None:
ports_dict[port.portNumber()] = port
else:

View File

@@ -195,6 +195,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
# restore packet capture settings
Port.loadPacketCaptureSettings()
# restore the temporary directory location
tempfile.tempdir = self._settings["temporary_files_path"]
def settings(self):
"""
Returns the general settings.
@@ -238,6 +241,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
if not self._setStyle(style):
self._setLegacyStyle()
# set the temporary directory
tempfile.tempdir = new_settings["temporary_files_path"]
# save the settings
self._settings.update(new_settings)
settings = QtCore.QSettings()

View File

@@ -51,30 +51,43 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
self.uiInitrdToolButton.clicked.connect(self._initrdBrowserSlot)
self.uiKernelImageToolButton.clicked.connect(self._kernelImageBrowserSlot)
self.uiActivateCPUThrottlingCheckBox.stateChanged.connect(self._cpuThrottlingChangedSlot)
self.uiLegacyNetworkingCheckBox.stateChanged.connect(self._legacyNetworkingChangedSlot)
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-net-pci", "Paravirtualized Network I/O"),
("vmxnet3", "VMWare Paravirtualized Ethernet v3")])
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()
def _refreshQemuNetworkDevices(self, legacy_networking=False):
"""
Refreshes the Qemu network device list.
:param legacy_networking: True if legacy networking is enabled.
"""
self.uiAdapterTypesComboBox.clear()
for device_name, device_description in qemu_network_devices.items():
for device_name, device_description in self._qemu_network_devices.items():
if legacy_networking and device_name not in self._legacy_devices:
continue
self.uiAdapterTypesComboBox.addItem("{} ({})".format(device_description, device_name), device_name)
@staticmethod
@@ -146,7 +159,7 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
Slot to open a file browser and select a QEMU initrd.
"""
path = self._getDiskImage()
path = self.getDiskImage(self)
if path:
self.uiInitrdLineEdit.clear()
self.uiInitrdLineEdit.setText(path)
@@ -156,7 +169,7 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
Slot to open a file browser and select a QEMU kernel image.
"""
path = self._getDiskImage()
path = self.getDiskImage(self)
if path:
self.uiKernelImageLineEdit.clear()
self.uiKernelImageLineEdit.setText(path)
@@ -200,6 +213,16 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
else:
self.uiCPUThrottlingSpinBox.setEnabled(False)
def _legacyNetworkingChangedSlot(self, state):
"""
Slot to enable or not legacy networking.
"""
if state:
self._refreshQemuNetworkDevices(legacy_networking=True)
else:
self._refreshQemuNetworkDevices()
def loadSettings(self, settings, node=None, group=False):
"""
Loads the QEMU VM settings.
@@ -275,10 +298,10 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
self.uiKernelCommandLineEdit.setText(settings["kernel_command_line"])
self.uiAdaptersSpinBox.setValue(settings["adapters"])
self.uiLegacyNetworkingCheckBox.setChecked(settings["legacy_networking"])
index = self.uiAdapterTypesComboBox.findData(settings["adapter_type"])
if index != -1:
self.uiAdapterTypesComboBox.setCurrentIndex(index)
self.uiLegacyNetworkingCheckBox.setChecked(settings["legacy_networking"])
self.uiRamSpinBox.setValue(settings["ram"])
if settings["cpu_throttling"]:

View File

@@ -52,7 +52,7 @@ class NodesView(QtGui.QTreeWidget):
if category is not None and category not in node["categories"]:
continue
server_type = node.get("server", None)
if server_type is not None and server_type != project_type:
if server_type is not None and server_type == "cloud" and server_type != project_type:
continue
item = QtGui.QTreeWidgetItem(self)
item.setText(0, node["name"])

View File

@@ -25,5 +25,5 @@ or negative for a release candidate or beta (after the base version
number has been incremented)
"""
__version__ = "1.2.2"
__version_info__ = (1, 2, 2, 0)
__version__ = "1.2.3"
__version_info__ = (1, 2, 3, 0)