diff --git a/README.rst b/README.rst index dd70da2f..0dab3974 100644 --- a/README.rst +++ b/README.rst @@ -22,7 +22,7 @@ Dependencies: sudo python3 setup.py install gns3 -`Detailled instructions for Debian Jesse `_. +`Detailed instructions for Debian Jesse `_. Windows ------- diff --git a/gns3/early_release_dialog.py b/gns3/early_release_dialog.py index 48ef6305..31d44ef1 100644 --- a/gns3/early_release_dialog.py +++ b/gns3/early_release_dialog.py @@ -42,11 +42,11 @@ class EarlyReleaseDialog(QtGui.QDialog, Ui_EarlyReleaseDialog): if not result: # cancelled QtGui.QApplication.quit() else: - username = self.uiUsernameLineEdit.text() + username = self.uiUsernameLineEdit.text().strip() if not username: QtGui.QMessageBox.critical(self, "Username", "Please provide an username") return - email = self.uiEmailLineEdit.text() + email = self.uiEmailLineEdit.text().strip() if not email: QtGui.QMessageBox.critical(self, "Email", "Please provide an email address") return diff --git a/gns3/main.py b/gns3/main.py index e2f7f51b..62dd4678 100644 --- a/gns3/main.py +++ b/gns3/main.py @@ -43,7 +43,7 @@ def main(): logfile.write("=== GNS3 {} traceback on {} ===\n".format(__version__, curdate)) logfile.write("\n" . join(lines)) logfile.close() - except EnvironmentError as e: + except OSError as e: print("Could not save in exception.log: {}".format(e)) # catch exceptions to write them in a file @@ -84,6 +84,20 @@ def main(): if sys.platform.startswith('win'): QtCore.QSettings.setDefaultFormat(QtCore.QSettings.IniFormat) + try: + import win32console + import win32con + import win32gui + except ImportError: + raise RuntimeError("Python for Windows exentions must be installed.") + + try: + win32console.AllocConsole() + #console_window = win32console.GetConsoleWindow() + #win32gui.ShowWindow(console_window, win32con.SW_HIDE) + except win32console.error as e: + print("warning: could not allocate console: {}".format(e)) + exit_code = MainWindow.exit_code_reboot while exit_code == MainWindow.exit_code_reboot: diff --git a/gns3/main_window.py b/gns3/main_window.py index ec178cf6..be4041fb 100644 --- a/gns3/main_window.py +++ b/gns3/main_window.py @@ -733,14 +733,14 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # check if the local address still exists with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: sock.bind((server.host, 0)) - except socket.error as e: + except OSError as e: QtGui.QMessageBox.critical(self, "Local server", "Could not bind with {host}: {error} (please check your host binding setting)".format(host=server.host, error=e)) return try: server.connect() log.info("use an already started local server on {}:{}".format(server.host, server.port)) - except socket.error as e: + except OSError as e: log.info("starting local server {} on {}:{}".format(servers.localServerPath(), server.host, server.port)) if not servers.localServerPath(): @@ -758,7 +758,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): return try: server.connect() - except socket.error as e: + except OSError as e: QtGui.QMessageBox.critical(self, "Local server", "Could not connect to the local server {host} on port {port}: {error}".format(host=server.host, port=server.port, error=e)) @@ -826,7 +826,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): with open(path, "w") as f: log.info("saving project: {}".format(path)) json.dump(topology.dump(), f, sort_keys=True, indent=4) - except EnvironmentError as e: + except OSError as e: QtGui.QMessageBox.critical(self, "Save", "Could not save project to {}: {}".format(path, e)) return False @@ -859,7 +859,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): with open(path, "r") as f: log.info("loading project: {}".format(path)) topology.load(json.load(f)) - except EnvironmentError as e: + except OSError as e: QtGui.QMessageBox.critical(self, "Load", "Could not load project from {}: {}".format(path, e)) return False except ValueError as e: @@ -882,7 +882,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): try: log.info("deleting temporary topology file: {}".format(self._project_path)) os.remove(self._project_path) - except EnvironmentError as e: + except OSError as e: log.warning("could not delete temporary topology file: {}: e".format(self._project_path, e)) def _createTemporaryProject(self): @@ -902,7 +902,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self._project_files_dir = project_files_dir self._project_path = f.name - except EnvironmentError as e: + except OSError as e: QtGui.QMessageBox.critical(self, "Save", "Could not create project: {}".format(e)) self.uiGraphicsView.setLocalBaseWorkingDirtoAllModules(self._project_files_dir) diff --git a/gns3/modules/dynamips/__init__.py b/gns3/modules/dynamips/__init__.py index 4f6fcaf5..96e4629d 100644 --- a/gns3/modules/dynamips/__init__.py +++ b/gns3/modules/dynamips/__init__.py @@ -314,7 +314,7 @@ class Dynamips(Module): try: log.info("reconnecting to server {}:{}".format(server.host, server.port)) server.reconnect() - except socket.error as e: + except OSError as e: raise ModuleError("Could not connect to server {}:{}: {}".format(server.host, server.port, e)) diff --git a/gns3/modules/dynamips/nodes/router.py b/gns3/modules/dynamips/nodes/router.py index bba5b0fb..e2838971 100644 --- a/gns3/modules/dynamips/nodes/router.py +++ b/gns3/modules/dynamips/nodes/router.py @@ -137,7 +137,7 @@ class Router(Node): new_port = port(port_name) new_port.setPortNumber(base + port_number) # WICs are always in adapter slot 0. - new_port.setslotNumber(0) + new_port.setSlotNumber(0) self._ports.append(new_port) log.debug("port {} has been added".format(port_name)) @@ -312,7 +312,7 @@ class Router(Node): config = '!\n' + config.replace('\r', "") encoded = ("").join(base64.encodestring(config.encode("utf-8")).decode("utf-8").split()) return encoded - except EnvironmentError as e: + except OSError as e: log.warn("could not base64 encode {}: {}".format(config_path, e)) return "" diff --git a/gns3/modules/dynamips/pages/ios_router_preferences_page.py b/gns3/modules/dynamips/pages/ios_router_preferences_page.py index cbed14fd..94458d5d 100644 --- a/gns3/modules/dynamips/pages/ios_router_preferences_page.py +++ b/gns3/modules/dynamips/pages/ios_router_preferences_page.py @@ -197,7 +197,7 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget) with open(path, "rb") as f: # read the first 7 bytes of the file. elf_header_start = f.read(7) - except EnvironmentError as e: + except OSError as e: QtGui.QMessageBox.critical(self, "IOS image", "Cannot read ELF magic number: {}".format(e)) return diff --git a/gns3/modules/iou/__init__.py b/gns3/modules/iou/__init__.py index 84bc24ec..e39b5b01 100644 --- a/gns3/modules/iou/__init__.py +++ b/gns3/modules/iou/__init__.py @@ -232,7 +232,7 @@ class IOU(Module): config = f.read() encoded = ("").join(base64.encodestring(config.encode("utf-8")).decode("utf-8").split()) return encoded - except EnvironmentError as e: + except OSError as e: log.warn("could not base64 encode {}: {}".format(iourc_path, e)) return "" @@ -330,7 +330,7 @@ class IOU(Module): try: log.info("reconnecting to server {}:{}".format(server.host, server.port)) server.reconnect() - except socket.error as e: + except OSError as e: raise ModuleError("Could not connect to server {}:{}: {}".format(server.host, server.port, e)) diff --git a/gns3/modules/iou/iou_device.py b/gns3/modules/iou/iou_device.py index ba995ac2..f7d7c179 100644 --- a/gns3/modules/iou/iou_device.py +++ b/gns3/modules/iou/iou_device.py @@ -196,7 +196,7 @@ class IOUDevice(Node): config = '!\n' + config.replace('\r', "") encoded = ("").join(base64.encodestring(config.encode("utf-8")).decode("utf-8").split()) return encoded - except EnvironmentError as e: + except OSError as e: log.warn("could not base64 encode {}: {}".format(config_path, e)) return "" diff --git a/gns3/modules/iou/pages/iou_device_preferences_page.py b/gns3/modules/iou/pages/iou_device_preferences_page.py index 5903efe4..efc91b28 100644 --- a/gns3/modules/iou/pages/iou_device_preferences_page.py +++ b/gns3/modules/iou/pages/iou_device_preferences_page.py @@ -154,7 +154,7 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget) with open(path, "rb") as f: # read the first 7 bytes of the file. elf_header_start = f.read(7) - except EnvironmentError as e: + except OSError as e: QtGui.QMessageBox.critical(self, "IOU image", "Cannot read ELF magic number: {}".format(e)) return diff --git a/gns3/servers.py b/gns3/servers.py index eb81b618..1d3f9753 100644 --- a/gns3/servers.py +++ b/gns3/servers.py @@ -153,7 +153,7 @@ class Servers(QtCore.QObject): # use arguments on other platforms args = shlex.split(command) self._local_server_proccess = subprocess.Popen(args) - except EnvironmentError as e: + except OSError as e: log.warning('could not start local server "{}": {}'.format(command, e)) return False diff --git a/gns3/utils/process_files_thread.py b/gns3/utils/process_files_thread.py index 3036b9af..c8ec6b3d 100644 --- a/gns3/utils/process_files_thread.py +++ b/gns3/utils/process_files_thread.py @@ -59,7 +59,7 @@ class ProcessFilesThread(QtCore.QThread): if not os.path.exists(self._destination): try: os.makedirs(self._destination) - except EnvironmentError as e: + except OSError as e: self.error.emit("Could not create directory {}: {}".format(self._destination, str(e))) return @@ -76,7 +76,7 @@ class ProcessFilesThread(QtCore.QThread): destination_dir = os.path.join(base_dir, directory) if not os.path.exists(destination_dir): os.makedirs(destination_dir) - except EnvironmentError as e: + except OSError as e: self.error.emit("Could not create directory {}: {}".format(destination_dir, str(e))) return @@ -91,7 +91,7 @@ class ProcessFilesThread(QtCore.QThread): shutil.move(source_file, destination_file) else: shutil.copy2(source_file, destination_file) - except EnvironmentError as e: + except OSError as e: pass # FIXME # if self._move: # self.error.emit("Could not move file to {}: {}".format(destination_file, str(e))) diff --git a/gns3/utils/wait_for_connection_thread.py b/gns3/utils/wait_for_connection_thread.py index 55fbd0bc..edc72d57 100644 --- a/gns3/utils/wait_for_connection_thread.py +++ b/gns3/utils/wait_for_connection_thread.py @@ -60,7 +60,7 @@ class WaitForConnectionThread(QtCore.QThread): sock = None try: sock = socket.create_connection((self._host, self._port), timeout=10) - except socket.error as e: + except OSError as e: last_exception = e continue finally: diff --git a/gns3/version.py b/gns3/version.py index 2d6efe5c..9062332c 100644 --- a/gns3/version.py +++ b/gns3/version.py @@ -25,5 +25,5 @@ or negative for a release candidate or beta (after the base version number has been incremented) """ -__version__ = "1.0-alpha1" +__version__ = "1.0a2.dev1" __version_info__ = (1, 0, 0, -99)