Handle cleanups in try/except blocks

This commit is contained in:
Oleksii Shevchuk 2018-09-23 22:45:30 +03:00
parent 10e4c62453
commit ac3bcc1675
1 changed files with 10 additions and 8 deletions

View File

@ -17,12 +17,14 @@
import rpyc.core.service import rpyc.core.service
import rpyc import rpyc
import sys import sys
import logging
import traceback import traceback
import json import json
import zlib import zlib
import msgpack import msgpack
from . import getLogger
logger = getLogger('service')
from pupylib.PupyCredentials import Credentials from pupylib.PupyCredentials import Credentials
class PupyService(rpyc.Service): class PupyService(rpyc.Service):
@ -105,7 +107,10 @@ class PupyService(rpyc.Service):
def on_disconnect(self): def on_disconnect(self):
self.pupy_srv.remove_client(self) self.pupy_srv.remove_client(self)
for cleanup in self._local_cleanups: for cleanup in self._local_cleanups:
try:
cleanup() cleanup()
except Exception, e:
logger.exception(e)
# Compatibility call # Compatibility call
def exposed_set_modules(self, modules): def exposed_set_modules(self, modules):
@ -116,11 +121,8 @@ class PupyService(rpyc.Service):
try: try:
self.namespace = self._conn.root.namespace self.namespace = self._conn.root.namespace
except Exception: except Exception, e:
if logging.getLogger().getEffectiveLevel()==logging.DEBUG: logger.exception(e)
raise
else:
return
self.execute = self._conn.root.execute self.execute = self._conn.root.execute
try: try:
@ -146,7 +148,7 @@ class PupyService(rpyc.Service):
self.pupy_srv.add_client(self) self.pupy_srv.add_client(self)
except Exception: except Exception:
logging.error(traceback.format_exc()) logger.error(traceback.format_exc())
try: try:
self._conn.close() self._conn.close()
except: except: