Catch exceptions when using AsyncioTelnetServer. Fixes #1321.

This commit is contained in:
grossmj
2018-04-16 15:30:06 +08:00
parent 025441f027
commit a12c5a95b0
6 changed files with 26 additions and 7 deletions

View File

@ -167,8 +167,10 @@ class EthernetSwitch(Device):
self._telnet_shell = EthernetSwitchConsole(self)
self._telnet_shell.prompt = self._name + '> '
self._telnet = create_telnet_shell(self._telnet_shell)
self._telnet_server = (yield from asyncio.start_server(self._telnet.run, self._manager.port_manager.console_host, self.console))
try:
self._telnet_server = (yield from asyncio.start_server(self._telnet.run, self._manager.port_manager.console_host, self.console))
except OSError as e:
self.project.emit("log.warning", {"message": "Could not start Telnet server on socket {}:{}: {}".format(self._manager.port_manager.console_host, self.console, e)})
self._hypervisor.devices.append(self)
@asyncio.coroutine