From a992934e11233f907d93c15e2884e10053d7cc66 Mon Sep 17 00:00:00 2001 From: mithereal Date: Fri, 29 Jul 2022 21:55:47 -0700 Subject: [PATCH] fix test url issue --- lib/farside.ex | 4 ++-- lib/farside/application.ex | 30 ++++++++++++++++++------------ lib/farside/router.ex | 2 -- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/lib/farside.ex b/lib/farside.ex index c7fe80c..2182e51 100644 --- a/lib/farside.ex +++ b/lib/farside.ex @@ -38,7 +38,7 @@ defmodule Farside do Farside.Instance.Supervisor.list() |> Enum.reduce(%{}, fn service, acc -> {_, data} = :ets.lookup(String.to_atom(service), :data) |> List.first() - +IO.inspect(data, label: "data") Map.put( acc, String.replace_prefix( @@ -51,7 +51,7 @@ defmodule Farside do end) end - def get_service(service \\ "libreddit/r/popular") do + def get_service(service) do service_name = Enum.find_value( @parent_services, diff --git a/lib/farside/application.ex b/lib/farside/application.ex index 068fdab..251764d 100644 --- a/lib/farside/application.ex +++ b/lib/farside/application.ex @@ -62,20 +62,23 @@ defmodule Farside.Application do service = struct(%Service{}, service_atom) - request_urls = + test_urls = Enum.map(service.instances, fn x -> - x <> - EEx.eval_string( - service.test_url, - query: Enum.random(queries) - ) + test_url = + x <> + EEx.eval_string( + service.test_url, + query: Enum.random(queries) + ) + + {test_url, x} end) tasks = - for request_url <- request_urls do + for {test_url, instance} <- test_urls do Task.async(fn -> - reply = Farside.Http.request(request_url, service.type) - {request_url, reply} + reply = Farside.Http.request(test_url, service.type) + {test_url, reply, instance} end) end @@ -87,11 +90,14 @@ defmodule Farside.Application do res || Task.shutdown(task, :brutal_kill) end) |> Enum.reject(fn x -> x == nil end) - |> Enum.map(fn {_, value} -> value end) - |> Enum.filter(fn {instance_url, value} -> + |> Enum.filter(fn {_, data} -> + {_test_url, value, _instance} = data value == :good end) - |> Enum.map(fn {url, _} -> url end) + |> Enum.map(fn {_, data} -> + {_test_url, _value, instance} = data + instance + end) service = %{service | instances: instances} diff --git a/lib/farside/router.ex b/lib/farside/router.ex index 65b6e53..f729ebc 100644 --- a/lib/farside/router.ex +++ b/lib/farside/router.ex @@ -51,8 +51,6 @@ defmodule Farside.Router do service end - IO.inspect(service_name, label: "service_name") - path = cond do service_name != service ->