From 01bd63773078dad39c717b68ce7823c1590b4662 Mon Sep 17 00:00:00 2001 From: norohind <60548839+norohind@users.noreply.github.com> Date: Fri, 13 Aug 2021 21:47:47 +0300 Subject: [PATCH 1/6] Add CL arg `--capi-pretend-down` in order to pretend that CAPI is down --- EDMarketConnector.py | 10 ++++++++++ companion.py | 10 ++++++++++ config.py | 1 + 3 files changed, 21 insertions(+) diff --git a/EDMarketConnector.py b/EDMarketConnector.py index b2d4cba8..886bf1a7 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -127,8 +127,18 @@ if __name__ == '__main__': # noqa: C901 nargs='*' ) + parser.add_argument( + '--capi-pretend-down', + help='Force to raise ServerError on any CAPI query', + action='store_true') + args = parser.parse_args() + if args.capi_pretend_down: + import config as conf_module + logger.info('Pretending CAPI is down') + conf_module.capi_pretend_down = True + level_to_set: Optional[int] = None if args.trace or args.trace_on: level_to_set = logging.TRACE # type: ignore # it exists diff --git a/companion.py b/companion.py index f2f571b6..7f55fc7f 100644 --- a/companion.py +++ b/companion.py @@ -25,6 +25,7 @@ from typing import TYPE_CHECKING, Any, Dict, List, Mapping, Optional, OrderedDic import requests from config import appname, appversion, config +import config as conf_module from edmc_data import companion_category_map as category_map from EDMCLogging import get_main_logger from monitor import monitor @@ -276,6 +277,9 @@ class Auth(object): logger.debug('Attempting refresh with Frontier...') try: + if conf_module.capi_pretend_down: + raise ServerError(_('Pretending CAPI is down')) + r = self.session.post(SERVER_AUTH + URL_TOKEN, data=data, timeout=auth_timeout) if r.status_code == requests.codes.ok: data = r.json() @@ -360,6 +364,9 @@ class Auth(object): # requests_log.setLevel(logging.DEBUG) # requests_log.propagate = True + if conf_module.capi_pretend_down: + raise ServerError(_('Pretending CAPI is down')) + r = self.session.post(SERVER_AUTH + URL_TOKEN, data=request_data, timeout=auth_timeout) data_token = r.json() if r.status_code == requests.codes.ok: @@ -565,6 +572,9 @@ class Session(object): try: logger.trace('Trying...') + if conf_module.capi_pretend_down: + raise ServerError('Pretending CAPI is down') + r = self.session.get(self.server + endpoint, timeout=timeout) # type: ignore except requests.ConnectionError as e: diff --git a/config.py b/config.py index 012eb84d..d1cfd403 100644 --- a/config.py +++ b/config.py @@ -45,6 +45,7 @@ debug_senders: List[str] = [] # *all* if only interested in some things. trace_on: List[str] = [] +capi_pretend_down: bool = False # This must be done here in order to avoid an import cycle with EDMCLogging. # Other code should use EDMCLogging.get_main_logger if os.getenv("EDMC_NO_UI"): From 92b131f81a079b20530cba97250f78747f406389 Mon Sep 17 00:00:00 2001 From: norohind <60548839+norohind@users.noreply.github.com> Date: Fri, 13 Aug 2021 23:07:18 +0300 Subject: [PATCH 2/6] companion.py: reorder `conf_module` import for isort --- companion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/companion.py b/companion.py index 5b5842e1..43722007 100644 --- a/companion.py +++ b/companion.py @@ -24,8 +24,8 @@ from typing import TYPE_CHECKING, Any, Dict, List, Mapping, Optional, OrderedDic import requests -from config import appname, appversion, config import config as conf_module +from config import appname, appversion, config from edmc_data import companion_category_map as category_map from EDMCLogging import get_main_logger from monitor import monitor From 2e90a1bbe9386673b703c885fb2deda1643acb3e Mon Sep 17 00:00:00 2001 From: norohind <60548839+norohind@users.noreply.github.com> Date: Mon, 16 Aug 2021 14:40:46 +0300 Subject: [PATCH 3/6] Remove raise CAPI pretend down on auth requests, add endpoint for which CAPI pretend down raising --- companion.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/companion.py b/companion.py index 43722007..eadfb1d9 100644 --- a/companion.py +++ b/companion.py @@ -277,9 +277,6 @@ class Auth(object): logger.debug('Attempting refresh with Frontier...') try: - if conf_module.capi_pretend_down: - raise ServerError(_('Pretending CAPI is down')) - r = self.session.post(SERVER_AUTH + URL_TOKEN, data=data, timeout=auth_timeout) if r.status_code == requests.codes.ok: data = r.json() @@ -364,9 +361,6 @@ class Auth(object): # requests_log.setLevel(logging.DEBUG) # requests_log.propagate = True - if conf_module.capi_pretend_down: - raise ServerError(_('Pretending CAPI is down')) - r = self.session.post(SERVER_AUTH + URL_TOKEN, data=request_data, timeout=auth_timeout) data_token = r.json() if r.status_code == requests.codes.ok: @@ -573,7 +567,7 @@ class Session(object): try: logger.trace_if('capi.query', 'Trying...') if conf_module.capi_pretend_down: - raise ServerError('Pretending CAPI is down') + raise ServerError(f'Pretending CAPI is down for {endpoint} endpoint') r = self.session.get(self.server + endpoint, timeout=timeout) # type: ignore From b30b25216bf1db86dd3a59f0a745423c67e8c939 Mon Sep 17 00:00:00 2001 From: norohind <60548839+norohind@users.noreply.github.com> Date: Mon, 16 Aug 2021 15:24:01 +0300 Subject: [PATCH 4/6] companion.py: change raising exception when pretending CAPI down --- companion.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/companion.py b/companion.py index eadfb1d9..f9ea3b37 100644 --- a/companion.py +++ b/companion.py @@ -567,7 +567,7 @@ class Session(object): try: logger.trace_if('capi.query', 'Trying...') if conf_module.capi_pretend_down: - raise ServerError(f'Pretending CAPI is down for {endpoint} endpoint') + raise ServerConnectionError(f'Pretending CAPI down: {endpoint}') r = self.session.get(self.server + endpoint, timeout=timeout) # type: ignore From 8d6fae6ef6faac6a8e0e47908f1813b27cb3ac94 Mon Sep 17 00:00:00 2001 From: norohind <60548839+norohind@users.noreply.github.com> Date: Mon, 16 Aug 2021 15:28:13 +0300 Subject: [PATCH 5/6] EDMarketConnector.py: style fix --- EDMarketConnector.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/EDMarketConnector.py b/EDMarketConnector.py index 8385af2b..ab893b50 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -130,7 +130,8 @@ if __name__ == '__main__': # noqa: C901 parser.add_argument( '--capi-pretend-down', help='Force to raise ServerError on any CAPI query', - action='store_true') + action='store_true' + ) args = parser.parse_args() From e6c6f7f1554b46bc86ffdf754d19a236b76c482a Mon Sep 17 00:00:00 2001 From: norohind <60548839+norohind@users.noreply.github.com> Date: Mon, 16 Aug 2021 15:30:14 +0300 Subject: [PATCH 6/6] companion.py: Move check for CAPI pretend down --- companion.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/companion.py b/companion.py index f9ea3b37..08c92b7d 100644 --- a/companion.py +++ b/companion.py @@ -564,11 +564,11 @@ class Session(object): logger.error('cannot make a query when unauthorized') raise CredentialsError('cannot make a query when unauthorized') - try: - logger.trace_if('capi.query', 'Trying...') - if conf_module.capi_pretend_down: - raise ServerConnectionError(f'Pretending CAPI down: {endpoint}') + logger.trace_if('capi.query', 'Trying...') + if conf_module.capi_pretend_down: + raise ServerConnectionError(f'Pretending CAPI down: {endpoint}') + try: r = self.session.get(self.server + endpoint, timeout=timeout) # type: ignore except requests.ConnectionError as e: