Skip to content

Commit ef40dbb

Browse files
authored
Merge pull request #56 from JuliaComputing/tan/misc
better handling in `kuber_obj` method, add debug flag
2 parents 4a702bb + abd6740 commit ef40dbb

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ authors = ["Tanmay Mohapatra <[email protected]>"]
44
keywords = ["kubernetes", "client"]
55
license = "MIT"
66
desc = "Julia Kubernetes Client"
7-
version = "0.7.0"
7+
version = "0.7.1"
88

99
[deps]
1010
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"

src/helpers.jl

Lines changed: 8 additions & 4 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

@@ -235,10 +238,11 @@ function set_server(
235238
reset_api_versions::Bool=false;
236239
max_tries=retries(ctx, false),
237240
verbose::Bool=false,
241+
debug::Bool=false,
238242
kwargs...
239243
)
240244
rtfn = (return_types,response_code,response_data)->kuber_type(ctx, return_types, response_code, response_data)
241-
ctx.client = OpenAPI.Clients.Client(uri; get_return_type=rtfn, kwargs...)
245+
ctx.client = OpenAPI.Clients.Client(uri; get_return_type=rtfn, verbose=debug, kwargs...)
242246
ctx.client.headers["Connection"] = "close"
243247
reset_api_versions && set_api_versions!(
244248
ctx;
@@ -453,4 +457,4 @@ end
453457

454458
# Add validations for the k8s spec specific int-or-string format
455459
OpenAPI.val_format(val::Union{AbstractString,Integer}, ::Val{Symbol("int-or-string")}) = true
456-
OpenAPI.val_format(val, ::Val{Symbol("int-or-string")}) = false
460+
OpenAPI.val_format(val, ::Val{Symbol("int-or-string")}) = false

0 commit comments

Comments
 (0)