1
0
Fork 0
mirror of https://github.com/benbusby/farside.git synced 2025-05-03 17:10:03 +00:00

Validate status code for all service instances

Updated to filter out all instances that either time out (I believe
default timeout for HTTPoison is 5s) or return a non-200 status code.
This commit is contained in:
Ben Busby 2021-10-21 21:15:58 -06:00
parent cf8dfc5a85
commit b0953f0777
No known key found for this signature in database
GPG key ID: 339B7B7EB5333D14
4 changed files with 30 additions and 8 deletions

View file

@ -1,19 +1,31 @@
defmodule Instance do
defstruct [
instance_type: nil,
instance_test: nil,
instance_list: []
]
end
defmodule Instances do
def request(url) do
case HTTPoison.get(url) do
{:ok, %HTTPoison.Response{status_code: 200}} ->
# TODO: Add validation of results, not just status code
:good
_ ->
:bad
end
end
def update(filename) do
{:ok, file} = File.read(filename)
{:ok, json} = Poison.decode(file, as: [%Instance{}])
for x <- json do
IO.puts(x.instance_type)
for y <- x.instance_list do
IO.puts(" - " <> y)
end
for service <- json do
result = Enum.filter(service.instance_list, fn(url) ->
request(url <> service.instance_test) == :good
end)
# TODO: Output result to redis
IO.inspect(result)
end
end
end