commit: 8b76f56050a609bf562053cb7201a9204901490e
parent 08e9d995f884f351d96c161e6c73cc668cc5bcd8
Author: Lain Soykaf <lain@lain.com>
Date:   Mon, 27 May 2024 13:57:42 +0400
QdrantSearch: Add healthcheck for qdrant
Diffstat:
2 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/lib/pleroma/search/qdrant_search.ex b/lib/pleroma/search/qdrant_search.ex
@@ -139,6 +139,17 @@ defmodule Pleroma.Search.QdrantSearch do
         []
     end
   end
+
+  @impl true
+  def healthcheck_endpoints do
+    qdrant_health =
+      Config.get([Pleroma.Search.QdrantSearch, :qdrant_url])
+      |> URI.parse()
+      |> Map.put(:path, "/healthz")
+      |> URI.to_string()
+
+    [qdrant_health]
+  end
 end
 
 defmodule Pleroma.Search.QdrantSearch.OpenAIClient do
diff --git a/test/pleroma/search/qdrant_search_test.exs b/test/pleroma/search/qdrant_search_test.exs
@@ -15,6 +15,18 @@ defmodule Pleroma.Search.QdrantSearchTest do
   alias Pleroma.Workers.SearchIndexingWorker
 
   describe "Qdrant search" do
+    test "returns the correct healthcheck endpoints" do
+      Config
+      |> expect(:get, 1, fn
+        [Pleroma.Search.QdrantSearch, key], nil ->
+          %{qdrant_url: "https://qdrant.url"}[key]
+      end)
+
+      health_endpoints = QdrantSearch.healthcheck_endpoints()
+
+      assert "https://qdrant.url/healthz" in health_endpoints
+    end
+
     test "searches for a term by encoding it and sending it to qdrant" do
       user = insert(:user)