|
32 | 32 | from ..topology import Topology
|
33 | 33 | from ..utils.message_box import MessageBox
|
34 | 34 | from ..utils.progress_dialog import ProgressDialog
|
35 |
| -from ..utils.wait_for_connection_worker import WaitForConnectionWorker |
36 | 35 | from ..settings import LOCAL_SERVER_SETTINGS, SERVERS_SETTINGS
|
37 | 36 | from ..gns3_vm import GNS3VM
|
38 | 37 | from ..dialogs.edit_compute_dialog import EditComputeDialog
|
@@ -75,9 +74,6 @@ def __init__(self, parent=None):
|
75 | 74 | # load all available addresses
|
76 | 75 | for address in QtNetwork.QNetworkInterface.allAddresses():
|
77 | 76 | address_string = address.toString()
|
78 |
| - # if address.protocol() == QtNetwork.QAbstractSocket.IPv6Protocol: |
79 |
| - # we do not want the scope id when using an IPv6 address... |
80 |
| - # address.setScopeId("") |
81 | 77 | self.uiLocalServerHostComboBox.addItem(address_string, address.toString())
|
82 | 78 |
|
83 | 79 | # default is 127.0.0.1
|
@@ -185,17 +181,19 @@ def _useLocalServerAutoStartSlot(self, state):
|
185 | 181 | """
|
186 | 182 |
|
187 | 183 | if state:
|
188 |
| - self.uiGeneralSettingsGroupBox.setEnabled(True) |
189 |
| - self.uiConsolePortRangeGroupBox.setEnabled(True) |
190 |
| - self.uiUDPPortRangeGroupBox.setEnabled(True) |
| 184 | + self.uiGeneralSettingsGroupBox.setVisible(True) |
| 185 | + self.uiConsolePortRangeGroupBox.setVisible(True) |
| 186 | + self.uiUDPPortRangeGroupBox.setVisible(True) |
| 187 | + self.uiRemoteMainServerGroupBox.setVisible(False) |
191 | 188 | else:
|
192 | 189 | if self.uiEnableVMCheckBox.isChecked() and not self.uiRemoteRadioButton.isChecked():
|
193 | 190 | QtWidgets.QMessageBox.critical(self, "Local GNS3 VM", "The local server need to be enable in order to use a local GNS3 VM. Please deactivate the local GNS3 VM before turning off the local server.")
|
194 | 191 | self.uiLocalServerAutoStartCheckBox.setChecked(True)
|
195 | 192 | return
|
196 |
| - self.uiGeneralSettingsGroupBox.setEnabled(False) |
197 |
| - self.uiConsolePortRangeGroupBox.setEnabled(False) |
198 |
| - self.uiUDPPortRangeGroupBox.setEnabled(False) |
| 193 | + self.uiRemoteMainServerGroupBox.setVisible(True) |
| 194 | + self.uiGeneralSettingsGroupBox.setVisible(False) |
| 195 | + self.uiConsolePortRangeGroupBox.setVisible(False) |
| 196 | + self.uiUDPPortRangeGroupBox.setVisible(False) |
199 | 197 |
|
200 | 198 | def _restoreDefaultsSlot(self):
|
201 | 199 | """
|
@@ -293,7 +291,16 @@ def _populateWidgets(self, servers_settings, vm_settings):
|
293 | 291 | if index != -1:
|
294 | 292 | self.uiLocalServerHostComboBox.setCurrentIndex(index)
|
295 | 293 | self.uiLocalServerPortSpinBox.setValue(servers_settings["port"])
|
| 294 | + |
| 295 | + self.uiRemoteMainServerHostLineEdit.setText(servers_settings["host"]) |
| 296 | + self.uiRemoteMainServerPortSpinBox.setValue(servers_settings["port"]) |
| 297 | + self.uiRemoteMainServerUserLineEdit.setText(servers_settings["user"]) |
| 298 | + self.uiRemoteMainServerPasswordLineEdit.setText(servers_settings["password"]) |
| 299 | + self.uiRemoteMainServerProtocolComboBox.setCurrentText(servers_settings["protocol"]) |
| 300 | + |
296 | 301 | self.uiLocalServerAutoStartCheckBox.setChecked(servers_settings["auto_start"])
|
| 302 | + self._useLocalServerAutoStartSlot(servers_settings["auto_start"]) |
| 303 | + |
297 | 304 | self.uiLocalServerAuthCheckBox.setChecked(servers_settings["auth"])
|
298 | 305 | self.uiConsoleConnectionsToAnyIPCheckBox.setChecked(servers_settings["allow_console_from_anywhere"])
|
299 | 306 | self.uiConsoleStartPortSpinBox.setValue(servers_settings["console_start_port_range"])
|
@@ -410,10 +417,13 @@ def savePreferences(self):
|
410 | 417 | MessageBox(self, "Local server", "Please close your project or delete all the nodes running on the local server before changing the local server settings")
|
411 | 418 | return
|
412 | 419 | LocalServer.instance().updateLocalServerSettings(new_local_server_settings)
|
413 |
| - restart_local_server = True |
414 | 420 | else:
|
| 421 | + new_local_server_settings["host"] = self.uiRemoteMainServerHostLineEdit.text() |
| 422 | + new_local_server_settings["port"] = self.uiRemoteMainServerPortSpinBox.value() |
| 423 | + new_local_server_settings["protocol"] = self.uiRemoteMainServerProtocolComboBox.currentText() |
| 424 | + new_local_server_settings["user"] = self.uiRemoteMainServerUserLineEdit.text() |
| 425 | + new_local_server_settings["password"] = self.uiRemoteMainServerPasswordLineEdit.text() |
415 | 426 | LocalServer.instance().updateLocalServerSettings(new_local_server_settings)
|
416 |
| - LocalServer.instance().stopLocalServer(wait=True) |
417 | 427 |
|
418 | 428 | # save the GNS3 VM preferences
|
419 | 429 | # new_gns3vm_settings = servers_settings["vm"].copy()
|
@@ -471,15 +481,7 @@ def savePreferences(self):
|
471 | 481 | # restart_local_server = True
|
472 | 482 | # self.uiLocalServerHostComboBox.setCurrentIndex(index)
|
473 | 483 | #
|
474 |
| - # start or restart the local server if required |
475 |
| - if restart_local_server: |
476 |
| - LocalServer.instance().stopLocalServer(wait=True) |
477 |
| - if LocalServer.instance().startLocalServer(): |
478 |
| - worker = WaitForConnectionWorker(new_local_server_settings["host"], new_local_server_settings["port"]) |
479 |
| - dialog = ProgressDialog(worker, "Local server", "Connecting...", "Cancel", busy=True, parent=self) |
480 |
| - dialog.show() |
481 |
| - dialog.exec_() |
482 |
| - else: |
483 |
| - QtWidgets.QMessageBox.critical(self, "Local server", "Could not start the local server process: {}".format(new_local_server_settings["path"])) |
| 484 | + |
| 485 | + |
484 | 486 |
|
485 | 487 | self.loadPreferences()
|
0 commit comments