def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ image = self.uiIOSImageLineEdit.text() if self.uiLocalRadioButton.isChecked(): server = "local" elif self.uiRemoteRadioButton.isChecked(): server = self.uiRemoteServersComboBox.currentText() elif self.uiVMRadioButton.isChecked(): server = "vm" platform = self.uiPlatformComboBox.currentText() settings = { "name": self.uiNameLineEdit.text(), "image": image, "startup_config": get_default_base_config(self._base_startup_config_template), "ram": self.uiRamSpinBox.value(), "nvram": PLATFORMS_DEFAULT_NVRAM[platform], "idlepc": self.uiIdlepcLineEdit.text(), "platform": platform, "chassis": self.uiChassisComboBox.currentText(), "server": server, } if self.uiEtherSwitchCheckBox.isChecked(): settings["default_name_format"] = "ESW" settings["startup_config"] = get_default_base_config( self._base_etherswitch_startup_config_template) settings["symbol"] = ":/symbols/multilayer_switch.svg" settings["disk0"] = 1 # adds 1MB disk to store vlan.dat settings["category"] = Node.switches else: settings["auto_delete_disks"] = True image_file = os.path.basename(image) if image_file.lower().startswith("c7200p"): settings["npe"] = "npe-g2" for slot_id, widget in self._widget_slots.items(): if widget.isEnabled(): settings["slot{}".format(slot_id)] = widget.currentText() for wic_id, widget in self._widget_wics.items(): if widget.isEnabled(): settings["wic{}".format(wic_id)] = widget.currentText() return settings
def _iouImageBrowserSlot(self): """ Slot to open a file browser and select an IOU image. """ from .iou_device_preferences_page import IOUDevicePreferencesPage path = IOUDevicePreferencesPage.getIOUImage(self, self._compute_id) if not path: return self.uiIOUImageLineEdit.clear() self.uiIOUImageLineEdit.setText(path) if len(self.uiStartupConfigLineEdit.text().strip()) == 0: if "l2" in path: # set the default L2 base startup-config default_base_config = get_default_base_config( self._base_iou_l2_config_template) if default_base_config: self.uiStartupConfigLineEdit.setText(default_base_config) else: # set the default L3 base startup-config default_base_config = get_default_base_config( self._base_iou_l3_config_template) if default_base_config: self.uiStartupConfigLineEdit.setText(default_base_config)
def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ path = self.uiIOUImageLineEdit.text() initial_config = "" if self.uiTypeComboBox.currentText() == "L2 image": # set the default L2 base initial-config default_base_config = get_default_base_config( self._base_iou_l2_config_template) if default_base_config: initial_config = default_base_config default_symbol = ":/symbols/multilayer_switch.normal.svg" hover_symbol = ":/symbols/multilayer_switch.selected.svg" category = Node.switches ethernet_adapters = 4 serial_adapters = 0 else: # set the default L3 base initial-config default_base_config = get_default_base_config( self._base_iou_l3_config_template) if default_base_config: initial_config = default_base_config default_symbol = ":/symbols/router.normal.svg" hover_symbol = ":/symbols/router.selected.svg" category = Node.routers ethernet_adapters = 2 serial_adapters = 2 if IOU.instance().settings( )["use_local_server"] or self.uiLocalRadioButton.isChecked(): server = "local" elif self.uiRemoteRadioButton.isChecked(): if self.uiLoadBalanceCheckBox.isChecked(): server = next(iter(Servers.instance())) server = "{}:{}".format(server.host, server.port) else: server = self.uiRemoteServersComboBox.currentText() else: # Cloud is selected server = "cloud" settings = { "name": self.uiNameLineEdit.text(), "path": path, "image": os.path.basename(path), "initial_config": initial_config, "ethernet_adapters": ethernet_adapters, "serial_adapters": serial_adapters, "default_symbol": default_symbol, "category": category, "hover_symbol": hover_symbol, "server": server, } return settings
def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ path = self.uiIOUImageLineEdit.text() initial_config = "" if self.uiTypeComboBox.currentText() == "L2 image": # set the default L2 base initial-config default_base_config = get_default_base_config(self._base_iou_l2_config_template) if default_base_config: initial_config = default_base_config default_symbol = ":/symbols/multilayer_switch.normal.svg" hover_symbol = ":/symbols/multilayer_switch.selected.svg" category = Node.switches ethernet_adapters = 4 serial_adapters = 0 else: # set the default L3 base initial-config default_base_config = get_default_base_config(self._base_iou_l3_config_template) if default_base_config: initial_config = default_base_config default_symbol = ":/symbols/router.normal.svg" hover_symbol = ":/symbols/router.selected.svg" category = Node.routers ethernet_adapters = 2 serial_adapters = 2 if IOU.instance().settings()["use_local_server"] or self.uiLocalRadioButton.isChecked(): server = "local" elif self.uiRemoteRadioButton.isChecked(): if self.uiLoadBalanceCheckBox.isChecked(): server = next(iter(Servers.instance())) server = "{}:{}".format(server.host, server.port) else: server = self.uiRemoteServersComboBox.currentText() else: # Cloud is selected server = "cloud" settings = { "name": self.uiNameLineEdit.text(), "path": path, "image": os.path.basename(path), "initial_config": initial_config, "ethernet_adapters": ethernet_adapters, "serial_adapters": serial_adapters, "default_symbol": default_symbol, "category": category, "hover_symbol": hover_symbol, "server": server, } return settings
def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ image = self.uiIOSImageLineEdit.text() if Dynamips.instance().settings()["use_local_server"] or self.uiLocalRadioButton.isChecked(): server = "local" elif self.uiRemoteRadioButton.isChecked(): if self.uiLoadBalanceCheckBox.isChecked(): server = next(iter(Servers.instance())) server = "{}:{}".format(server.host, server.port) else: server = self.uiRemoteServersComboBox.currentText() else: # Cloud is selected server = "cloud" platform = self.uiPlatformComboBox.currentText() settings = { "name": self.uiNameLineEdit.text(), "image": image, "startup_config": get_default_base_config(self._base_startup_config_template), "ram": self.uiRamSpinBox.value(), "nvram": PLATFORMS_DEFAULT_NVRAM[platform], "idlepc": self.uiIdlepcLineEdit.text(), "platform": platform, "chassis": self.uiChassisComboBox.currentText(), "server": server, } if self.uiEtherSwitchCheckBox.isChecked(): settings["startup_config"] = get_default_base_config(self._base_etherswitch_startup_config_template) settings["default_symbol"] = ":/symbols/multilayer_switch.normal.svg" settings["hover_symbol"] = ":/symbols/multilayer_switch.selected.svg" settings["disk0"] = 1 # adds 1MB disk to store vlan.dat settings["category"] = Node.switches else: settings["auto_delete_disks"] = True image_file = os.path.basename(image) if image_file.lower().startswith("c7200p"): settings["npe"] = "npe-g2" for slot_id, widget in self._widget_slots.items(): if widget.isEnabled(): settings["slot{}".format(slot_id)] = widget.currentText() for wic_id, widget in self._widget_wics.items(): if widget.isEnabled(): settings["wic{}".format(wic_id)] = widget.currentText() return settings
def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ path = self.uiIOUImageLineEdit.text() startup_config = "" if self.uiTypeComboBox.currentText() == "L2 image": # set the default L2 base startup-config default_base_config = get_default_base_config( self._base_iou_l2_config_template) if default_base_config: startup_config = default_base_config symbol = ":/symbols/multilayer_switch.svg" category = Node.switches ethernet_adapters = 4 serial_adapters = 0 else: # set the default L3 base startup-config default_base_config = get_default_base_config( self._base_iou_l3_config_template) if default_base_config: startup_config = default_base_config symbol = ":/symbols/router.svg" category = Node.routers ethernet_adapters = 2 serial_adapters = 2 if self.uiLocalRadioButton.isChecked(): server = "local" elif self.uiRemoteRadioButton.isChecked(): if self.uiLoadBalanceCheckBox.isChecked(): server = "load-balance" else: server = self.uiRemoteServersComboBox.currentText() elif self.uiVMRadioButton.isChecked(): server = "vm" settings = { "name": self.uiNameLineEdit.text(), "path": path, "image": os.path.basename(path), "startup_config": startup_config, "ethernet_adapters": ethernet_adapters, "serial_adapters": serial_adapters, "symbol": symbol, "category": category, "server": server, } return settings
def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ path = self.uiIOSImageLineEdit.text() image = os.path.basename(path) if Dynamips.instance().settings()["use_local_server"] or self.uiLocalRadioButton.isChecked(): server = "local" elif self.uiRemoteRadioButton.isChecked(): if self.uiLoadBalanceCheckBox.isChecked(): server = next(iter(Servers.instance())) server = "{}:{}".format(server.host, server.port) else: server = self.uiRemoteServersComboBox.currentText() else: # Cloud is selected server = "cloud" platform = self.uiPlatformComboBox.currentText() settings = { "name": self.uiNameLineEdit.text(), "path": path, "startup_config": get_default_base_config(self._base_startup_config_template), "private_config": get_default_base_config(self._base_private_config_template), "ram": self.uiRamSpinBox.value(), "nvram": PLATFORMS_DEFAULT_NVRAM[platform], "idlepc": self.uiIdlepcLineEdit.text(), "image": image, "platform": platform, "chassis": self.uiChassisComboBox.currentText(), "server": server, } if self.uiEtherSwitchCheckBox.isChecked(): settings["startup_config"] = get_default_base_config(self._base_etherswitch_startup_config_template) settings["default_symbol"] = ":/symbols/multilayer_switch.normal.svg" settings["hover_symbol"] = ":/symbols/multilayer_switch.selected.svg" settings["disk0"] = 1 # adds 1MB disk to store vlan.dat settings["category"] = Node.switches if image.lower().startswith("c7200p"): settings["npe"] = "npe-g2" for slot_id, widget in self._widget_slots.items(): if widget.isEnabled(): settings["slot{}".format(slot_id)] = widget.currentText() for wic_id, widget in self._widget_wics.items(): if widget.isEnabled(): settings["wic{}".format(wic_id)] = widget.currentText() return settings
def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ path = self.uiIOUImageLineEdit.text() startup_config = "" if self.uiTypeComboBox.currentText() == "L2 image": # set the default L2 base startup-config default_base_config = get_default_base_config(self._base_iou_l2_config_template) if default_base_config: startup_config = default_base_config symbol = ":/symbols/multilayer_switch.svg" category = Node.switches ethernet_adapters = 4 serial_adapters = 0 else: # set the default L3 base startup-config default_base_config = get_default_base_config(self._base_iou_l3_config_template) if default_base_config: startup_config = default_base_config symbol = ":/symbols/router.svg" category = Node.routers ethernet_adapters = 2 serial_adapters = 2 if self.uiLocalRadioButton.isChecked(): server = "local" elif self.uiRemoteRadioButton.isChecked(): if self.uiLoadBalanceCheckBox.isChecked(): server = "load-balance" else: server = self.uiRemoteServersComboBox.currentText() elif self.uiVMRadioButton.isChecked(): server = "vm" settings = { "name": self.uiNameLineEdit.text(), "path": path, "image": os.path.basename(path), "startup_config": startup_config, "ethernet_adapters": ethernet_adapters, "serial_adapters": serial_adapters, "symbol": symbol, "category": category, "server": server, } return settings
def createNode(self, node, node_name): """ Creates a node. :param node: Node instance :param node_name: Node name """ log.info("creating node {}".format(node)) if node_name: for node_key, info in self._vpcs_nodes.items(): if node_name == info["name"]: vm_settings = {} for setting_name, value in self._vpcs_nodes[ node_key].items(): if setting_name in node.settings( ) and setting_name != "name" and value != "" and value is not None: vm_settings[setting_name] = value node.create( default_name_format=info["default_name_format"], additional_settings=vm_settings) return vm_settings = { "base_script_file": self._settings.get( "base_script_file", get_default_base_config( get_resource( os.path.join("configs", "vpcs_base_config.txt")))) } node.create(additional_settings=vm_settings)
def _loadSettings(self): """ Loads the settings from the persistent settings file. """ local_config = LocalConfig.instance() # restore the VPCS settings from QSettings (for backward compatibility) legacy_settings = {} settings = QtCore.QSettings() settings.beginGroup(self.__class__.__name__) for name in VPCS_SETTINGS.keys(): if settings.contains(name): legacy_settings[name] = settings.value( name, type=VPCS_SETTING_TYPES[name]) settings.remove("") settings.endGroup() if legacy_settings: local_config.saveSectionSettings(self.__class__.__name__, legacy_settings) self._settings = local_config.loadSectionSettings( self.__class__.__name__, VPCS_SETTINGS) if not self._settings["base_script_file"]: self._settings["base_script_file"] = get_default_base_config( get_resource(os.path.join("configs", "vpcs_base_config.txt"))) if not os.path.exists(self._settings["vpcs_path"]): self._settings["vpcs_path"] = self._findVPCS(self) # keep the config file sync self._saveSettings()
def createNode(self, node, node_name): """ Creates a node. :param node: Node instance :param node_name: Node name """ log.info("creating node {}".format(node)) if node_name: for node_key, info in self._vpcs_nodes.items(): if node_name == info["name"]: vm_settings = {} for setting_name, value in self._vpcs_nodes[node_key].items(): if setting_name in node.settings() and setting_name != "name" and value != "" and value is not None: vm_settings[setting_name] = value node.create(default_name_format=info["default_name_format"], additional_settings=vm_settings) return vm_settings = { "base_script_file": self._settings.get("base_script_file", get_default_base_config(get_resource(os.path.join("configs", "vpcs_base_config.txt")))) } node.create(additional_settings=vm_settings)
def _loadSettings(self): """ Loads the settings from the persistent settings file. """ local_config = LocalConfig.instance() # restore the VPCS settings from QSettings (for backward compatibility) legacy_settings = {} settings = QtCore.QSettings() settings.beginGroup(self.__class__.__name__) for name in VPCS_SETTINGS.keys(): if settings.contains(name): legacy_settings[name] = settings.value(name, type=VPCS_SETTING_TYPES[name]) settings.remove("") settings.endGroup() if legacy_settings: local_config.saveSectionSettings(self.__class__.__name__, legacy_settings) self._settings = local_config.loadSectionSettings(self.__class__.__name__, VPCS_SETTINGS) if not self._settings["base_script_file"]: self._settings["base_script_file"] = get_default_base_config(get_resource(os.path.join("configs", "vpcs_base_config.txt"))) if not os.path.exists(self._settings["vpcs_path"]): self._settings["vpcs_path"] = self._findVPCS(self) # keep the config file sync self._saveSettings()
def _loadSettings(self): """ Loads the settings from the persistent settings file. """ # Copy the default base config in the final location get_default_base_config(get_resource(os.path.join("configs", "vpcs_base_config.txt"))) self._settings = LocalConfig.instance().loadSectionSettings(self.__class__.__name__, VPCS_SETTINGS) if not os.path.exists(self._settings["vpcs_path"]): vpcs_path = shutil.which("vpcs") if vpcs_path: self._settings["vpcs_path"] = os.path.abspath(vpcs_path) else: self._settings["vpcs_path"] = "" self._loadVPCSNodes()
def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ path = self.uiIOUImageLineEdit.text() startup_config = "" if self.uiTypeComboBox.currentText() == "L2 image": # set the default L2 base startup-config default_base_config = get_default_base_config( self._base_iou_l2_config_template) if default_base_config: startup_config = default_base_config symbol = ":/symbols/multilayer_switch.svg" category = Node.switches ethernet_adapters = 4 serial_adapters = 0 else: # set the default L3 base startup-config default_base_config = get_default_base_config( self._base_iou_l3_config_template) if default_base_config: startup_config = default_base_config symbol = ":/symbols/router.svg" category = Node.routers ethernet_adapters = 2 serial_adapters = 2 settings = { "name": self.uiNameLineEdit.text(), "path": path, "image": os.path.basename(path), "startup_config": startup_config, "ethernet_adapters": ethernet_adapters, "serial_adapters": serial_adapters, "symbol": symbol, "category": category, "server": self._compute_id, } return settings
def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ image = self.uiIOSImageLineEdit.text() platform = self.uiPlatformComboBox.currentText() settings = { "name": self.uiNameLineEdit.text(), "image": image, "startup_config": get_default_base_config(self._base_startup_config_template), "ram": self.uiRamSpinBox.value(), "nvram": PLATFORMS_DEFAULT_NVRAM[platform], "idlepc": self.uiIdlepcLineEdit.text(), "platform": platform, "chassis": self.uiChassisComboBox.currentText(), "server": self._compute_id, } if self.uiEtherSwitchCheckBox.isChecked(): settings["default_name_format"] = "ESW{0}" settings["startup_config"] = get_default_base_config(self._base_etherswitch_startup_config_template) settings["symbol"] = ":/symbols/multilayer_switch.svg" settings["disk0"] = 1 # adds 1MB disk to store vlan.dat settings["category"] = Node.switches else: settings["auto_delete_disks"] = True image_file = os.path.basename(image) if image_file.lower().startswith("c7200p"): settings["npe"] = "npe-g2" for slot_id, widget in self._widget_slots.items(): if widget.isEnabled(): settings["slot{}".format(slot_id)] = widget.currentText() for wic_id, widget in self._widget_wics.items(): if widget.isEnabled(): settings["wic{}".format(wic_id)] = widget.currentText() return settings
def _loadSettings(self): """ Loads the settings from the persistent settings file. """ # Copy the default base config in the final location get_default_base_config( get_resource(os.path.join("configs", "vpcs_base_config.txt"))) self._settings = LocalConfig.instance().loadSectionSettings( self.__class__.__name__, VPCS_SETTINGS) if not os.path.exists(self._settings["vpcs_path"]): vpcs_path = shutil.which("vpcs") if vpcs_path: self._settings["vpcs_path"] = os.path.abspath(vpcs_path) else: self._settings["vpcs_path"] = "" self._loadVPCSNodes()
def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ path = self.uiIOUImageLineEdit.text() startup_config = "" if self.uiTypeComboBox.currentText() == "L2 image": # set the default L2 base startup-config default_base_config = get_default_base_config(self._base_iou_l2_config_template) if default_base_config: startup_config = default_base_config symbol = ":/symbols/multilayer_switch.svg" category = Node.switches ethernet_adapters = 4 serial_adapters = 0 else: # set the default L3 base startup-config default_base_config = get_default_base_config(self._base_iou_l3_config_template) if default_base_config: startup_config = default_base_config symbol = ":/symbols/router.svg" category = Node.routers ethernet_adapters = 2 serial_adapters = 2 settings = { "name": self.uiNameLineEdit.text(), "path": path, "image": os.path.basename(path), "startup_config": startup_config, "ethernet_adapters": ethernet_adapters, "serial_adapters": serial_adapters, "symbol": symbol, "category": category, "server": self._compute_id, } return settings
def _iouImageBrowserSlot(self): """ Slot to open a file browser and select an IOU image. """ from .iou_device_preferences_page import IOUDevicePreferencesPage path = IOUDevicePreferencesPage.getIOUImage(self, self._server) if not path: return self.uiIOUImageLineEdit.clear() self.uiIOUImageLineEdit.setText(path) if "l2" in path: # set the default L2 base startup-config default_base_config = get_default_base_config(self._base_iou_l2_config_template) if default_base_config: self.uiStartupConfigLineEdit.setText(default_base_config) else: # set the default L3 base startup-config default_base_config = get_default_base_config(self._base_iou_l3_config_template) if default_base_config: self.uiStartupConfigLineEdit.setText(default_base_config)
def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ settings = {"name": self.uiNameLineEdit.text(), "base_script_file": get_default_base_config(get_resource(os.path.join("configs", "vpcs_base_config.txt"))), "symbol": ":/symbols/vpcs_guest.svg", "category": Node.end_devices, "server": self._compute_id} return settings
def getSettings(self): """ Returns the settings set in this Wizard. :return: settings dict """ settings = { "name": self.uiNameLineEdit.text(), "base_script_file": get_default_base_config( get_resource(os.path.join("configs", "vpcs_base_config.txt"))), "symbol": ":/symbols/vpcs_guest.svg", "category": Node.end_devices, "server": self._compute_id } return settings