Skip to content

Commit a6e3af4

Browse files
committed
Consider Kubernetes API [] and null equivalent
See kubernetes/kubernetes#45294.
1 parent e2bbc78 commit a6e3af4

File tree

1 file changed

+19
-25
lines changed

1 file changed

+19
-25
lines changed

lib/strategy/kubernetes.ex

+19-25
Original file line numberDiff line numberDiff line change
@@ -169,19 +169,16 @@ defmodule Cluster.Strategy.Kubernetes do
169169

170170
defp parse_response(:ip, app_name, resp) do
171171
case resp do
172-
%{"items" => []} ->
173-
[]
174-
%{"items" => items} ->
172+
%{"items" => items} when is_list(items) ->
175173
Enum.reduce(items, [], fn
176-
%{"subsets" => []}, acc ->
177-
acc
178-
%{"subsets" => subsets}, acc ->
179-
addrs = Enum.flat_map(subsets, fn
180-
%{"addresses" => addresses} ->
181-
Enum.map(addresses, fn %{"ip" => ip} -> :"#{app_name}@#{ip}" end)
182-
_ ->
183-
[]
184-
end)
174+
%{"subsets" => subsets}, acc when is_list(subsets) ->
175+
addrs =
176+
Enum.flat_map(subsets, fn
177+
%{"addresses" => addresses} when is_list(addresses) ->
178+
Enum.map(addresses, fn %{"ip" => ip} -> :"#{app_name}@#{ip}" end)
179+
_ ->
180+
[]
181+
end)
185182
acc ++ addrs
186183
_, acc ->
187184
acc
@@ -193,20 +190,17 @@ defmodule Cluster.Strategy.Kubernetes do
193190

194191
defp parse_response(:dns, app_name, resp) do
195192
case resp do
196-
%{"items" => []} ->
197-
[]
198-
%{"items" => items} ->
193+
%{"items" => items} when is_list(items) ->
199194
Enum.reduce(items, [], fn
200-
%{"subsets" => []}, acc ->
201-
acc
202-
%{"subsets" => subsets}, acc ->
203-
addrs = Enum.flat_map(subsets, fn
204-
%{"addresses" => addresses} ->
205-
Enum.map(addresses, fn %{"ip" => ip, "targetRef" => %{"namespace" => namespace}} -> format_dns_record(app_name, ip, namespace) end)
206-
_ ->
207-
[]
208-
end)
209-
acc ++ addrs
195+
%{"subsets" => subsets}, acc when is_list(subsets) ->
196+
addrs =
197+
Enum.flat_map(subsets, fn
198+
%{"addresses" => addresses} when is_list(addresses) ->
199+
Enum.map(addresses, fn %{"ip" => ip, "targetRef" => %{"namespace" => namespace}} -> format_dns_record(app_name, ip, namespace) end)
200+
_ ->
201+
[]
202+
end)
203+
acc ++ addrs
210204
_, acc ->
211205
acc
212206
end)

0 commit comments

Comments
 (0)