Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Handle API key NotFound error when registering routes. (#4967)
This exception previously caused ./run_server.sh -e biomedical to fail: **Before** ``` (.env) [~/datcom-website]:$ ./run_server.sh -e biomedical Starting localhost with FLASK_ENV='biomedical' on port='8080' Not in Google network: <urlopen error [Errno 8] nodename nor servname provided, or not known> Traceback (most recent call last): File "/Users/calinc/datcom-website/web_app.py", line 22, in <module> app = create_app() ^^^^^^^^^^^^ File "/Users/calinc/datcom-website/server/__init__.py", line 344, in create_app register_routes_experiments(app, cfg) File "/Users/calinc/datcom-website/server/__init__.py", line 184, in register_routes_experiments app.config['GEMINI_API_KEY'] = _get_api_key(['GEMINI_API_KEY'], ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/calinc/datcom-website/server/__init__.py", line 71, in _get_api_key secret_response = secret_client.access_secret_version(name=secret_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/calinc/datcom-website/.env/lib/python3.12/site-packages/google/cloud/secretmanager_v1/services/secret_manager_service/client.py", line 1767, in access_secret_version response = rpc( ^^^^ File "/Users/calinc/datcom-website/.env/lib/python3.12/site-packages/google/api_core/gapic_v1/method.py", line 131, in __call__ return wrapped_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/calinc/datcom-website/.env/lib/python3.12/site-packages/google/api_core/retry/retry_unary.py", line 293, in retry_wrapped_func return retry_target( ^^^^^^^^^^^^^ File "/Users/calinc/datcom-website/.env/lib/python3.12/site-packages/google/api_core/retry/retry_unary.py", line 153, in retry_target _retry_error_helper( File "/Users/calinc/datcom-website/.env/lib/python3.12/site-packages/google/api_core/retry/retry_base.py", line 212, in _retry_error_helper raise final_exc from source_exc File "/Users/calinc/datcom-website/.env/lib/python3.12/site-packages/google/api_core/retry/retry_unary.py", line 144, in retry_target result = target() ^^^^^^^^ File "/Users/calinc/datcom-website/.env/lib/python3.12/site-packages/google/api_core/timeout.py", line 120, in func_with_timeout return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/Users/calinc/datcom-website/.env/lib/python3.12/site-packages/google/api_core/grpc_helpers.py", line 78, in error_remapped_callable raise exceptions.from_grpc_error(exc) from exc google.api_core.exceptions.NotFound: 404 Secret [projects/886336214270/secrets/gemini-api-key] not found or has no versions. [detail: "[ORIGINAL ERROR] generic::not_found: Secret [projects/886336214270/secrets/gemini-api-key] not found or has no versions. [google.rpc.error_details_ext] { message: \"Secret [projects/886336214270/secrets/gemini-api-key] not found or has no versions.\" }" ``` **After** ``` (.env) [~/datcom-website]:$ ./run_server.sh -e biomedical Starting localhost with FLASK_ENV='biomedical' on port='8080' Not in Google network: <urlopen error [Errno 8] nodename nor servname provided, or not known> [17:35:51][WARNING ][__init__.py:185] DataGemma routes not registered due to missing API key [17:35:54][INFO ][util.py:585] https://autopush.api.datacommons.org/version is up running [17:35:54][INFO ][web_app.py:27] Run web server in local mode * Serving Flask app 'server.__init__' * Debug mode: on ```
- Loading branch information