diff --git a/queue_job/__init__.py b/queue_job/__init__.py index 6ca18c330..19ffa60c2 100644 --- a/queue_job/__init__.py +++ b/queue_job/__init__.py @@ -4,7 +4,6 @@ from . import wizards from . import jobrunner from .post_init_hook import post_init_hook -from .post_load import post_load # shortcuts from .job import identity_exact diff --git a/queue_job/__manifest__.py b/queue_job/__manifest__.py index 38e0f5f31..aa15799b1 100644 --- a/queue_job/__manifest__.py +++ b/queue_job/__manifest__.py @@ -31,5 +31,4 @@ "development_status": "Mature", "maintainers": ["guewen", "sbidoul"], "post_init_hook": "post_init_hook", - "post_load": "post_load", } diff --git a/queue_job/controllers/main.py b/queue_job/controllers/main.py index a1729b1fe..b4a5a596c 100644 --- a/queue_job/controllers/main.py +++ b/queue_job/controllers/main.py @@ -213,8 +213,7 @@ def _get_failure_values(cls, job, traceback_txt, orig_exception): save_session=False, readonly=False, ) - def runjob(self, db, job_uuid, **kw): - http.request.session.db = db + def runjob(self, job_uuid, **kw): env = http.request.env(user=SUPERUSER_ID) job = self._acquire_job(env, job_uuid) if not job: diff --git a/queue_job/jobrunner/runner.py b/queue_job/jobrunner/runner.py index 7fd91d68b..6ff2e2f26 100644 --- a/queue_job/jobrunner/runner.py +++ b/queue_job/jobrunner/runner.py @@ -90,7 +90,7 @@ def _async_http_get(scheme, host, port, user, password, db_name, job_uuid): # if this was python3 I would be doing this with # asyncio, aiohttp and aiopg def urlopen(): - url = f"{scheme}://{host}:{port}/queue_job/runjob?db={db_name}&job_uuid={job_uuid}" + url = f"{scheme}://{host}:{port}/queue_job/runjob?job_uuid={job_uuid}" # pylint: disable=except-pass try: auth = None @@ -98,7 +98,9 @@ def urlopen(): auth = (user, password) # we are not interested in the result, so we set a short timeout # but not too short so we trap and log hard configuration errors - response = requests.get(url, timeout=1, auth=auth) + response = requests.get( + url, timeout=1, auth=auth, headers={"X-Odoo-Database": db_name} + ) # raise_for_status will result in either nothing, a Client Error # for HTTP Response codes between 400 and 500 or a Server Error diff --git a/queue_job/post_load.py b/queue_job/post_load.py deleted file mode 100644 index f0c1df870..000000000 --- a/queue_job/post_load.py +++ /dev/null @@ -1,25 +0,0 @@ -import logging - -from odoo import http - -_logger = logging.getLogger(__name__) - - -def post_load(): - _logger.info( - "Apply Request._get_session_and_dbname monkey patch to capture db" - " from request with multiple databases" - ) - _get_session_and_dbname_orig = http.Request._get_session_and_dbname - - def _get_session_and_dbname(self): - session, dbname = _get_session_and_dbname_orig(self) - if ( - not dbname - and self.httprequest.path == "/queue_job/runjob" - and self.httprequest.args.get("db") - ): - dbname = self.httprequest.args["db"] - return session, dbname - - http.Request._get_session_and_dbname = _get_session_and_dbname