zenodo / zenodo-rdm

Zenodo, powered by InvenioRDM
https://zenodo.org
GNU General Public License v2.0
41 stars 25 forks source link

bug: don't call uptime robot when no API key passed #798

Closed carlinmack closed 5 months ago

carlinmack commented 5 months ago

Close https://github.com/zenodo/ops/issues/392

Error:

[2024-03-20 16:12:19,477: ERROR/ForkPoolWorker-17] Metric evaluation failed
Traceback (most recent call last):
  File "/Users/cmackenz/git/zenodo-rdm/site/zenodo_rdm/metrics/utils.py", line 29, in calculate_metrics
    metric["value"] = metric["value"]()
  File "/Users/cmackenz/git/zenodo-rdm/site/zenodo_rdm/metrics/api.py", line 107, in get_uptime
    for d in res.json()["monitors"]
KeyError: 'monitors'

The key is not found as when run locally the API returns:

{"stat": "fail", "error": {"type": "missing_parameter", "parameter_name": "api_key", "message": "api_key parameter is missing."}}

Also datetime.utcnow() is deprecated so I have exchanged it for the correct implementation https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow