Skip to content

Commit bb44e79

Browse files
committed
correctly detect uninitialized context
There are multiple steps involved while initializing a context. The initialization status should be stored in an explicit flag instead of checking certain fields of the context. This changes the `set_api_versions!` (which is what is used to initialize the context) to set a new flag in the context. All other methods check the flag and call `set_api_versions!` if the context is not initialized.
1 parent 325d577 commit bb44e79

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

.travis.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@ os:
55
- osx
66
julia:
77
- 1.0
8-
- 1.1
9-
- 1.2
10-
- 1.3
11-
- 1.4
8+
- 1
129
- nightly
1310
matrix:
1411
allow_failures:

src/helpers.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@ mutable struct KuberContext
1111
apis::Dict{Symbol,Vector{KApi}}
1212
modelapi::Dict{Symbol,KApi}
1313
namespace::String
14+
initialized::Bool
1415

1516
function KuberContext()
1617
ctx = Swagger.Client(DEFAULT_URI)
1718
ctx.headers["Connection"] = "close"
18-
new(ctx, Dict{Symbol,Vector}(), Dict{Symbol,KApi}(), DEFAULT_NAMESPACE)
19+
new(ctx, Dict{Symbol,Vector}(), Dict{Symbol,KApi}(), DEFAULT_NAMESPACE, false)
1920
end
2021
end
2122

@@ -211,6 +212,7 @@ function build_model_api_map(ctx::KuberContext)
211212
end
212213

213214
function set_api_versions!(ctx::KuberContext; override=nothing, verbose::Bool=false, max_tries=1)
215+
ctx.initialized = false
214216
empty!(ctx.apis)
215217
empty!(ctx.modelapi)
216218

@@ -225,5 +227,6 @@ function set_api_versions!(ctx::KuberContext; override=nothing, verbose::Bool=fa
225227

226228
# add custom models
227229
ctx.modelapi[:PodLog] = ctx.modelapi[:Pod]
230+
ctx.initialized = true
228231
nothing
229232
end

src/simpleapi.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ _api_function(name::Symbol) = isdefined(@__MODULE__, name) ? eval(name) : nothin
2424
_api_function(name) = _api_function(Symbol(name))
2525

2626
function list(ctx::KuberContext, O::Symbol, name::String; apiversion::Union{String,Nothing}=nothing, namespace::Union{String,Nothing}=ctx.namespace, kwargs...)
27-
isempty(ctx.apis) && set_api_versions!(ctx)
27+
ctx.initialized || set_api_versions!(ctx)
2828

2929
apictx = _get_apictx(ctx, O, apiversion)
3030
namespaced = (namespace !== nothing) && !isempty(namespace)
@@ -43,7 +43,7 @@ function list(ctx::KuberContext, O::Symbol, name::String; apiversion::Union{Stri
4343
end
4444

4545
function list(ctx::KuberContext, O::Symbol; apiversion::Union{String,Nothing}=nothing, namespace::Union{String,Nothing}=ctx.namespace, kwargs...)
46-
isempty(ctx.apis) && set_api_versions!(ctx)
46+
ctx.initialized || set_api_versions!(ctx)
4747

4848
apictx = _get_apictx(ctx, O, apiversion)
4949
namespaced = (namespace !== nothing) && !isempty(namespace)
@@ -62,7 +62,7 @@ function list(ctx::KuberContext, O::Symbol; apiversion::Union{String,Nothing}=no
6262
end
6363

6464
function get(ctx::KuberContext, O::Symbol, name::String; apiversion::Union{String,Nothing}=nothing, max_tries::Integer=1, kwargs...)
65-
isempty(ctx.apis) && set_api_versions!(ctx; max_tries=max_tries)
65+
ctx.initialized || set_api_versions!(ctx; max_tries=max_tries)
6666

6767
apictx = _get_apictx(ctx, O, apiversion)
6868
if (apicall = _api_function("read$O")) !== nothing
@@ -89,7 +89,7 @@ function get(ctx::KuberContext, O::Symbol, name::String; apiversion::Union{Strin
8989
end
9090

9191
function get(ctx::KuberContext, O::Symbol; apiversion::Union{String,Nothing}=nothing, label_selector=nothing, namespace::Union{String,Nothing}=ctx.namespace, max_tries::Integer=1)
92-
isempty(ctx.apis) && set_api_versions!(ctx; max_tries=max_tries)
92+
ctx.initialized || set_api_versions!(ctx; max_tries=max_tries)
9393

9494
apictx = _get_apictx(ctx, O, apiversion)
9595
apiname = "list$O"
@@ -123,7 +123,7 @@ function put!(ctx::KuberContext, v::T) where {T<:SwaggerModel}
123123
end
124124

125125
function put!(ctx::KuberContext, O::Symbol, d::Dict{String,Any})
126-
isempty(ctx.apis) && set_api_versions!(ctx)
126+
ctx.initialized || set_api_versions!(ctx)
127127

128128
apictx = _get_apictx(ctx, O, get(d, "apiVersion", nothing))
129129
if (apicall = _api_function("create$O")) !== nothing
@@ -143,7 +143,7 @@ function delete!(ctx::KuberContext, v::T; kwargs...) where {T<:SwaggerModel}
143143
end
144144

145145
function delete!(ctx::KuberContext, O::Symbol, name::String; apiversion::Union{String,Nothing}=nothing, kwargs...)
146-
isempty(ctx.apis) && set_api_versions!(ctx)
146+
ctx.initialized || set_api_versions!(ctx)
147147
apictx = _get_apictx(ctx, O, apiversion)
148148

149149
params = [apictx, name]
@@ -166,7 +166,7 @@ function update!(ctx::KuberContext, v::T, patch, patch_type) where {T<:SwaggerMo
166166
end
167167

168168
function update!(ctx::KuberContext, O::Symbol, name::String, patch, patch_type; apiversion::Union{String,Nothing}=nothing)
169-
isempty(ctx.apis) && set_api_versions!(ctx)
169+
ctx.initialized || set_api_versions!(ctx)
170170

171171
apictx = _get_apictx(ctx, O, apiversion)
172172

0 commit comments

Comments
 (0)