Change EnvironmentError to OSError.

Fix bug when inserting WIC adapters.
Windows console allocation.
This commit is contained in:
grossmj
2014-04-03 19:54:35 -06:00
parent d3683958f3
commit e438edb5f9
14 changed files with 39 additions and 25 deletions

View File

@@ -22,7 +22,7 @@ Dependencies:
sudo python3 setup.py install
gns3
`Detailled instructions for Debian Jesse <http://forum.gns3.net/topic8988.html>`_.
`Detailed instructions for Debian Jesse <http://forum.gns3.net/topic8988.html>`_.
Windows
-------

View File

@@ -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

View File

@@ -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:

View File

@@ -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)

View File

@@ -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))

View File

@@ -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 ""

View File

@@ -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

View File

@@ -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))

View File

@@ -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 ""

View File

@@ -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

View File

@@ -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

View File

@@ -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)))

View File

@@ -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:

View File

@@ -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)