Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into remove-obsolete-data-…
Browse files Browse the repository at this point in the history
…classes
  • Loading branch information
Flix6x committed Jul 15, 2023
2 parents 83dba25 + 0c7275d commit 4c61494
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 12 deletions.
13 changes: 3 additions & 10 deletions .github/workflows/lint-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,17 +56,10 @@ jobs:
- name: Install FlexMeasures & latest dependencies for tests
run: make install-for-test pinned=no
if: github.event_name == 'pull_request'
- name: Run all tests except those marked to be skipped by GitHub
run: |
pip install coveralls
pytest -m "not skip_github"
if: ${{ matrix.coverage != 'yes' }}
- name: Run all tests except those marked to be skipped by GitHub AND record coverage
run: pytest -v -m "not skip_github" --cov=flexmeasures --cov-branch
if: ${{ matrix.coverage == 'yes' }}
- run: coveralls --service=github
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: pytest -v -m "not skip_github" --cov=flexmeasures --cov-branch --cov-report=lcov
- name: Coveralls
uses: coverallsapp/github-action@v2
if: ${{ matrix.coverage == 'yes' }}
env:
PGHOST: 127.0.0.1
Expand Down
1 change: 1 addition & 0 deletions documentation/api/change_log.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ v3.0-10 | 2023-06-12
""""""""""""""""""""

- Introduced the ``storage-efficiency`` field to the ``flex-model``field for `/sensors/<id>/schedules/trigger` (POST).
- Introduced the ``database_redis`` optional field to the response of the endpoint `/health/ready` (GET).

v3.0-9 | 2023-04-26
"""""""""""""""""""
Expand Down
3 changes: 3 additions & 0 deletions documentation/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,11 @@ Infrastructure / Support
----------------------

* Add support for profiling Flask API calls using ``pyinstrument`` (if installed). Can be enabled by setting the environment variable ``FLEXMEASURES_PROFILE_REQUESTS`` to ``True`` [see `PR #722 <https://www.github.com/FlexMeasures/flexmeasures/pull/722>`_]
* The endpoint `[POST] /health/ready <api/v3_0.html#get--api-v3_0-health-ready>`_ returns the status of the Redis connection, if configured [see `PR #699 <https://www.github.com/FlexMeasures/flexmeasures/pull/699>`_]


/api/v3_0/health/ready

v0.14.1 | June 26, 2023
============================

Expand Down
26 changes: 24 additions & 2 deletions flexmeasures/api/v3_0/health.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
from flask_classful import FlaskView, route
from flask_json import as_json


from redis.exceptions import ConnectionError
from flexmeasures.data import db


Expand All @@ -14,6 +16,18 @@ def _check_sql_database():
return False


def _check_redis() -> bool:
"""Check status of the redis instance
:return: True if the redis instance is active, False otherwise
"""
try:
current_app.redis_connection.ping()
return True
except ConnectionError:
return False


class HealthAPI(FlaskView):

route_base = "/health"
Expand All @@ -32,11 +46,19 @@ def is_ready(self):
.. sourcecode:: json
{
'database_sql': True
'database_sql': True,
'database_redis': False
}
"""
status = {"database_sql": _check_sql_database()} # TODO: check redis

status = {
"database_sql": _check_sql_database(),
}

if current_app.config.get("FLEXMEASURES_REDIS_PASSWORD") is not None:
status["database_redis"] = _check_redis()

if all(status.values()):
return status, 200
else:
Expand Down

0 comments on commit 4c61494

Please sign in to comment.