Skip to content

Commit ab55081

Browse files
chore(internal): codegen related update
1 parent f291b96 commit ab55081

16 files changed

Lines changed: 194 additions & 72 deletions

File tree

lib/docker_engine_ruby/internal/util.rb

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,37 @@ def writable_enum(&blk)
490490
JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}
491491

492492
class << self
493+
# @api private
494+
#
495+
# @param query [Hash{Symbol=>Object}]
496+
#
497+
# @return [Hash{Symbol=>Object}]
498+
def encode_query_params(query)
499+
out = {}
500+
query.each { write_query_param_element!(out, _1, _2) }
501+
out
502+
end
503+
504+
# @api private
505+
#
506+
# @param collection [Hash{Symbol=>Object}]
507+
# @param key [String]
508+
# @param element [Object]
509+
#
510+
# @return [nil]
511+
private def write_query_param_element!(collection, key, element)
512+
case element
513+
in Hash
514+
element.each do |name, value|
515+
write_query_param_element!(collection, "#{key}[#{name}]", value)
516+
end
517+
in Array
518+
collection[key] = element.map(&:to_s).join(",")
519+
else
520+
collection[key] = element.to_s
521+
end
522+
end
523+
493524
# @api private
494525
#
495526
# @param y [Enumerator::Yielder]

lib/docker_engine_ruby/resources/configs.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,11 @@ def create(params)
4141
# @see DockerEngineRuby::Models::ConfigUpdateParams
4242
def update(id, params)
4343
parsed, options = DockerEngineRuby::ConfigUpdateParams.dump_request(params)
44+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed.except(:spec))
4445
@client.request(
4546
method: :post,
4647
path: ["configs/%1$s/update", id],
47-
query: parsed.except(:spec),
48+
query: query,
4849
body: parsed[:spec],
4950
model: NilClass,
5051
options: options
@@ -63,10 +64,11 @@ def update(id, params)
6364
# @see DockerEngineRuby::Models::ConfigListParams
6465
def list(params = {})
6566
parsed, options = DockerEngineRuby::ConfigListParams.dump_request(params)
67+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
6668
@client.request(
6769
method: :get,
6870
path: "configs",
69-
query: parsed,
71+
query: query,
7072
model: DockerEngineRuby::Internal::Type::ArrayOf[DockerEngineRuby::ConfigObject],
7173
options: options
7274
)

lib/docker_engine_ruby/resources/containers.rb

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@ class Containers
2020
# @see DockerEngineRuby::Models::ContainerCreateParams
2121
def create(params)
2222
parsed, options = DockerEngineRuby::ContainerCreateParams.dump_request(params)
23+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed.except(:config))
2324
@client.request(
2425
method: :post,
2526
path: "containers/create",
26-
query: parsed.except(:config),
27+
query: query,
2728
body: parsed[:config],
2829
model: DockerEngineRuby::CreateResponse,
2930
options: options
@@ -130,10 +131,11 @@ def update(id, params = {})
130131
# @see DockerEngineRuby::Models::ContainerListParams
131132
def list(params = {})
132133
parsed, options = DockerEngineRuby::ContainerListParams.dump_request(params)
134+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
133135
@client.request(
134136
method: :get,
135137
path: "containers/json",
136-
query: parsed,
138+
query: query,
137139
model: DockerEngineRuby::Internal::Type::ArrayOf[DockerEngineRuby::Summary],
138140
options: options
139141
)
@@ -154,10 +156,11 @@ def list(params = {})
154156
# @see DockerEngineRuby::Models::ContainerDeleteParams
155157
def delete(id, params = {})
156158
parsed, options = DockerEngineRuby::ContainerDeleteParams.dump_request(params)
159+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
157160
@client.request(
158161
method: :delete,
159162
path: ["containers/%1$s", id],
160-
query: parsed,
163+
query: query,
161164
model: NilClass,
162165
options: options
163166
)
@@ -176,10 +179,11 @@ def delete(id, params = {})
176179
# @see DockerEngineRuby::Models::ContainerArchiveParams
177180
def archive(id, params)
178181
parsed, options = DockerEngineRuby::ContainerArchiveParams.dump_request(params)
182+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
179183
@client.request(
180184
method: :get,
181185
path: ["containers/%1$s/archive", id],
182-
query: parsed,
186+
query: query,
183187
model: NilClass,
184188
options: options
185189
)
@@ -203,10 +207,11 @@ def archive(id, params)
203207
# @see DockerEngineRuby::Models::ContainerAttachParams
204208
def attach(id, params = {})
205209
parsed, options = DockerEngineRuby::ContainerAttachParams.dump_request(params)
210+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
206211
@client.request(
207212
method: :post,
208213
path: ["containers/%1$s/attach", id],
209-
query: parsed.transform_keys(detach_keys: "detachKeys"),
214+
query: query.transform_keys(detach_keys: "detachKeys"),
210215
model: NilClass,
211216
options: options
212217
)
@@ -295,10 +300,11 @@ def export(id, params = {})
295300
# @see DockerEngineRuby::Models::ContainerInspectParams
296301
def inspect_(id, params = {})
297302
parsed, options = DockerEngineRuby::ContainerInspectParams.dump_request(params)
303+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
298304
@client.request(
299305
method: :get,
300306
path: ["containers/%1$s/json", id],
301-
query: parsed,
307+
query: query,
302308
model: DockerEngineRuby::Container,
303309
options: options
304310
)
@@ -317,10 +323,11 @@ def inspect_(id, params = {})
317323
# @see DockerEngineRuby::Models::ContainerKillParams
318324
def kill(id, params = {})
319325
parsed, options = DockerEngineRuby::ContainerKillParams.dump_request(params)
326+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
320327
@client.request(
321328
method: :post,
322329
path: ["containers/%1$s/kill", id],
323-
query: parsed,
330+
query: query,
324331
model: NilClass,
325332
options: options
326333
)
@@ -345,10 +352,11 @@ def kill(id, params = {})
345352
# @see DockerEngineRuby::Models::ContainerLogsParams
346353
def logs(id, params = {})
347354
parsed, options = DockerEngineRuby::ContainerLogsParams.dump_request(params)
355+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
348356
@client.request(
349357
method: :get,
350358
path: ["containers/%1$s/logs", id],
351-
query: parsed.transform_keys(until_: "until"),
359+
query: query.transform_keys(until_: "until"),
352360
headers: {"accept" => "application/octet-stream"},
353361
model: StringIO,
354362
options: options
@@ -386,10 +394,11 @@ def pause(id, params = {})
386394
# @see DockerEngineRuby::Models::ContainerPruneParams
387395
def prune(params = {})
388396
parsed, options = DockerEngineRuby::ContainerPruneParams.dump_request(params)
397+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
389398
@client.request(
390399
method: :post,
391400
path: "containers/prune",
392-
query: parsed,
401+
query: query,
393402
model: DockerEngineRuby::Models::ContainerPruneResponse,
394403
options: options
395404
)
@@ -408,10 +417,11 @@ def prune(params = {})
408417
# @see DockerEngineRuby::Models::ContainerRenameParams
409418
def rename(id, params)
410419
parsed, options = DockerEngineRuby::ContainerRenameParams.dump_request(params)
420+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
411421
@client.request(
412422
method: :post,
413423
path: ["containers/%1$s/rename", id],
414-
query: parsed,
424+
query: query,
415425
model: NilClass,
416426
options: options
417427
)
@@ -431,10 +441,11 @@ def rename(id, params)
431441
# @see DockerEngineRuby::Models::ContainerResizeParams
432442
def resize(id, params)
433443
parsed, options = DockerEngineRuby::ContainerResizeParams.dump_request(params)
444+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
434445
@client.request(
435446
method: :post,
436447
path: ["containers/%1$s/resize", id],
437-
query: parsed,
448+
query: query,
438449
model: NilClass,
439450
options: options
440451
)
@@ -454,10 +465,11 @@ def resize(id, params)
454465
# @see DockerEngineRuby::Models::ContainerRestartParams
455466
def restart(id, params = {})
456467
parsed, options = DockerEngineRuby::ContainerRestartParams.dump_request(params)
468+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
457469
@client.request(
458470
method: :post,
459471
path: ["containers/%1$s/restart", id],
460-
query: parsed,
472+
query: query,
461473
model: NilClass,
462474
options: options
463475
)
@@ -476,10 +488,11 @@ def restart(id, params = {})
476488
# @see DockerEngineRuby::Models::ContainerStartParams
477489
def start(id, params = {})
478490
parsed, options = DockerEngineRuby::ContainerStartParams.dump_request(params)
491+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
479492
@client.request(
480493
method: :post,
481494
path: ["containers/%1$s/start", id],
482-
query: parsed.transform_keys(detach_keys: "detachKeys"),
495+
query: query.transform_keys(detach_keys: "detachKeys"),
483496
model: NilClass,
484497
options: options
485498
)
@@ -502,10 +515,11 @@ def start(id, params = {})
502515
# @see DockerEngineRuby::Models::ContainerStatsParams
503516
def stats(id, params = {})
504517
parsed, options = DockerEngineRuby::ContainerStatsParams.dump_request(params)
518+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
505519
@client.request(
506520
method: :get,
507521
path: ["containers/%1$s/stats", id],
508-
query: parsed.transform_keys(one_shot: "one-shot"),
522+
query: query.transform_keys(one_shot: "one-shot"),
509523
model: DockerEngineRuby::StatsResponse,
510524
options: options
511525
)
@@ -525,10 +539,11 @@ def stats(id, params = {})
525539
# @see DockerEngineRuby::Models::ContainerStopParams
526540
def stop(id, params = {})
527541
parsed, options = DockerEngineRuby::ContainerStopParams.dump_request(params)
542+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
528543
@client.request(
529544
method: :post,
530545
path: ["containers/%1$s/stop", id],
531-
query: parsed,
546+
query: query,
532547
model: NilClass,
533548
options: options
534549
)
@@ -550,10 +565,11 @@ def stop(id, params = {})
550565
# @see DockerEngineRuby::Models::ContainerTopParams
551566
def top(id, params = {})
552567
parsed, options = DockerEngineRuby::ContainerTopParams.dump_request(params)
568+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
553569
@client.request(
554570
method: :get,
555571
path: ["containers/%1$s/top", id],
556-
query: parsed,
572+
query: query,
557573
model: DockerEngineRuby::TopResponse,
558574
options: options
559575
)
@@ -591,10 +607,11 @@ def unpause(id, params = {})
591607
# @see DockerEngineRuby::Models::ContainerWaitParams
592608
def wait(id, params = {})
593609
parsed, options = DockerEngineRuby::ContainerWaitParams.dump_request(params)
610+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
594611
@client.request(
595612
method: :post,
596613
path: ["containers/%1$s/wait", id],
597-
query: parsed,
614+
query: query,
598615
model: DockerEngineRuby::WaitResponse,
599616
options: options
600617
)

lib/docker_engine_ruby/resources/exec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,11 @@ def inspect_(id, params = {})
3636
# @see DockerEngineRuby::Models::ExecResizeParams
3737
def resize(id, params)
3838
parsed, options = DockerEngineRuby::ExecResizeParams.dump_request(params)
39+
query = DockerEngineRuby::Internal::Util.encode_query_params(parsed)
3940
@client.request(
4041
method: :post,
4142
path: ["exec/%1$s/resize", id],
42-
query: parsed,
43+
query: query,
4344
model: NilClass,
4445
options: options
4546
)

0 commit comments

Comments
 (0)