Skip to content

Commit ef4355e

Browse files
committed
handle arbirtary Dict types in kuber_obj
OpenAPI conversions insist that JSONs objects are always `Dict{String,Any}`. To ensure that for a user supplied Dict, we serialize that to string and parse it back as json.
1 parent 209377b commit ef4355e

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/helpers.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,11 @@ function kuber_type(ctx::KuberContext, T, j::Dict{String,Any})
206206
T
207207
end
208208

209-
kuber_obj(ctx::KuberContext, data::String) = kuber_obj(ctx, JSON.parse(data))
210-
kuber_obj(ctx::KuberContext, j::Dict{String,Any}) = convert(kind_to_type(ctx, j["kind"], get(j, "apiVersion", nothing)), j)
209+
# OpenAPI conversions insist that JSONs objects are always `Dict{String,Any}`.
210+
# To ensure that for a user supplied Dict, we serialize that to string and parse it back as json.
211+
kuber_obj(ctx::KuberContext, j::Dict{String,Any}) = kuber_obj(ctx, JSON.json(j))
212+
kuber_obj(ctx::KuberContext, data::String) = _kuber_obj(ctx, JSON.parse(data))
213+
_kuber_obj(ctx::KuberContext, j::Dict{String,Any}) = convert(kind_to_type(ctx, j["kind"], get(j, "apiVersion", nothing)), j)
211214

212215
show(io::IO, ctx::KuberContext) = print(io, "Kubernetes namespace ", ctx.namespace, " at ", ctx.client.root)
213216

0 commit comments

Comments
 (0)