Skip to content

Commit

Permalink
[IMP] connector_carepoint: Add session reconnect handling
Browse files Browse the repository at this point in the history
* Add support to reconnect sessions on certain errors
* Bump `carepoint` lib version for `_init_env` method
  • Loading branch information
lasley committed Oct 25, 2016
1 parent 27a094d commit da7389e
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 4 deletions.
19 changes: 17 additions & 2 deletions connector_carepoint/unit/backend_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@

from openerp.addons.connector.unit.backend_adapter import CRUDAdapter

try:
from sqlalchemy.exc import InvalidRequestError
except ImportError:
pass

try:
from carepoint import Carepoint
except ImportError:
Expand All @@ -13,6 +18,10 @@
class CarepointCRUDAdapter(CRUDAdapter):
""" External Records Adapter for Carepoint """

RECONNECT_EXCEPTIONS = [
InvalidRequestError,
]

def __init__(self, connector_env):
""" Ready the DB adapter
:param connector_env: current environment (backend, session, ...)
Expand All @@ -36,13 +45,19 @@ def __to_camel_case(self, snake_case):
parts = snake_case.split('_')
return "".join(x.title() for x in parts)

def __get_cp_model(self):
def __get_cp_model(self, retry=True):
""" Get the correct model object by name from Carepoint lib
:rtype: :class:`sqlalchemy.schema.Table`
"""
name = self.connector_env.model._cp_lib
camel_name = self.__to_camel_case(name)
return self.carepoint[camel_name]
try:
return self.carepoint[camel_name]
except self.RECONNECT_EXCEPTIONS:
if retry:
self.carepoint._init_env(True)
return self.__get_cp_model(False)
raise

def search(self, **filters):
""" Search table by filters and return record ids
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ pint>=0.7.2
SQLAlchemy>=1.1.1
pysmb>=1.1.18
phonenumbers>=7.7.2
carepoint>=0.1.3.dev170
carepoint>=0.1.7
2 changes: 1 addition & 1 deletion test_requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ xmlrunner>=1.7.7
pysmb>=1.1.18
pint>=0.7.2
phonenumbers>=7.7.2
carepoint>=0.1.3.dev170
carepoint>=0.1.7

0 comments on commit da7389e

Please sign in to comment.