Skip to content

Custom Redis settings not respected #13

Open
@tacerus

Description

@tacerus

NetBox HealthCheck Plugin version

0.1.4

NetBox version

3.7.5

Python version

3.11

Steps to Reproduce

  1. Install the plugin
  2. Configure NetBox to use a Redis database other than localhost
  3. Query the healthcheck endpoint

Expected Behavior

It should use the Redis server and database specified in the REDIS section in configuration.py.

Observed Behavior

This plugin uses the default Redis adapter of the django-health-check module, which connects to redis://localhost:6379/1 by default, or to a REDIS_URL from settings.py.

NetBox does not expose REDIS_URL in the hidden settings.py, so the health check fails if any a database host and/or database number other than redis://localhost:6379/1 are used.

Currently I work around it with a hacky patch in django-health-check:

--- a/health_check/contrib/redis/backends.py    2024-05-03 23:37:27.000000000 +0200
+++ b/health_check/contrib/redis/backends.py    2024-05-04 22:11:02.448929656 +0200
@@ -12,7 +12,7 @@
 class RedisHealthCheck(BaseHealthCheckBackend):
     """Health check for Redis."""

-    redis_url = getattr(settings, "REDIS_URL", "redis://localhost/1")
+    redis_url = getattr(settings, "CACHES", {}).get("default", {}).get("LOCATION", getattr(settings, "REDIS_URL", "redis://localhost/1"))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions