smplkit 3.0.14 → 3.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/smplkit/logging/client.rb +2 -2
- data/lib/smplkit/management/client.rb +81 -17
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5d846979c77a96bd5b8f3fbd3bf36ddbe0a6556b7925a33302142b173c7c3e96
|
|
4
|
+
data.tar.gz: dd7e3c2b10238f038f2d9e5de715bb5b12e7a05eae85af9acf53d5ac7735b370
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 52eaa355e2937332ed2637f9cec86b2959b477ad577caeb36bda66c6ca966ca8d1782c9c8a0f6c5a5e3ce11e20f3ad08a54239f0069109b691797a09fe970810
|
|
7
|
+
data.tar.gz: 3931a2e34214aa78575f1dc7652631335608246fec988e5a5fca12488b330d59297d585c7e2b3cf3b60e9afe0ba38853107e66e6342ec58c1ad3d6906a0704f1
|
|
@@ -27,6 +27,12 @@ module Smplkit
|
|
|
27
27
|
# etc.) and converts at the boundary via the existing
|
|
28
28
|
# +<resource>_from_resource+ helpers.
|
|
29
29
|
class ManagementClient
|
|
30
|
+
# Default page[size] the runtime asks for when walking a list
|
|
31
|
+
# endpoint to completion. The platform caps page[size] at 1000;
|
|
32
|
+
# using the same value here makes the minimum number of round-trips
|
|
33
|
+
# per exhaustive fetch.
|
|
34
|
+
RUNTIME_PAGE_SIZE = 1000
|
|
35
|
+
|
|
30
36
|
attr_reader :contexts, :context_types, :environments, :account_settings,
|
|
31
37
|
:config, :flags, :loggers, :log_groups, :audit
|
|
32
38
|
|
|
@@ -126,6 +132,33 @@ module Smplkit
|
|
|
126
132
|
end
|
|
127
133
|
end
|
|
128
134
|
|
|
135
|
+
# Walk a generated paginated list endpoint to completion.
|
|
136
|
+
#
|
|
137
|
+
# The block receives a per-page +opts+ hash with +page_number+ and
|
|
138
|
+
# +page_size+ filled in, calls the generated list method through
|
|
139
|
+
# {ErrorMapping.call}, and returns the response object. Pages stop
|
|
140
|
+
# when the server returns fewer rows than requested — the platform's
|
|
141
|
+
# standard last-page signal across every offset-paginated list
|
|
142
|
+
# endpoint. Returns the concatenated +response.data+ rows.
|
|
143
|
+
module PaginatedFetch
|
|
144
|
+
module_function
|
|
145
|
+
|
|
146
|
+
def collect(page_size: RUNTIME_PAGE_SIZE)
|
|
147
|
+
rows = []
|
|
148
|
+
page_number = 1
|
|
149
|
+
loop do
|
|
150
|
+
opts = { page_number: page_number, page_size: page_size }
|
|
151
|
+
response = ErrorMapping.call { yield(opts) }
|
|
152
|
+
page = response.data || []
|
|
153
|
+
rows.concat(page)
|
|
154
|
+
break if page.length < page_size
|
|
155
|
+
|
|
156
|
+
page_number += 1
|
|
157
|
+
end
|
|
158
|
+
rows
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
|
|
129
162
|
# Deep-stringify Hash keys so resources returned by generated +to_hash+
|
|
130
163
|
# (symbol-keyed) match what the wrapper helpers expect (string-keyed).
|
|
131
164
|
module ResourceShim
|
|
@@ -175,8 +208,11 @@ module Smplkit
|
|
|
175
208
|
Smplkit.debug("registration", "context flush failed: #{e.class}: #{e.message}")
|
|
176
209
|
end
|
|
177
210
|
|
|
178
|
-
def list
|
|
179
|
-
|
|
211
|
+
def list(page_number: nil, page_size: nil)
|
|
212
|
+
opts = {}
|
|
213
|
+
opts[:page_number] = page_number unless page_number.nil?
|
|
214
|
+
opts[:page_size] = page_size unless page_size.nil?
|
|
215
|
+
response = ErrorMapping.call { @api.list_contexts(opts) }
|
|
180
216
|
(response.data || []).map { |r| context_from_resource(ResourceShim.from_model(r)) }
|
|
181
217
|
end
|
|
182
218
|
|
|
@@ -237,8 +273,11 @@ module Smplkit
|
|
|
237
273
|
@api = SmplkitGeneratedClient::App::ContextTypesApi.new(api_client)
|
|
238
274
|
end
|
|
239
275
|
|
|
240
|
-
def list
|
|
241
|
-
|
|
276
|
+
def list(page_number: nil, page_size: nil)
|
|
277
|
+
opts = {}
|
|
278
|
+
opts[:page_number] = page_number unless page_number.nil?
|
|
279
|
+
opts[:page_size] = page_size unless page_size.nil?
|
|
280
|
+
response = ErrorMapping.call { @api.list_context_types(opts) }
|
|
242
281
|
(response.data || []).map { |r| from_resource(ResourceShim.from_model(r)) }
|
|
243
282
|
end
|
|
244
283
|
|
|
@@ -296,8 +335,11 @@ module Smplkit
|
|
|
296
335
|
@api = SmplkitGeneratedClient::App::EnvironmentsApi.new(api_client)
|
|
297
336
|
end
|
|
298
337
|
|
|
299
|
-
def list
|
|
300
|
-
|
|
338
|
+
def list(page_number: nil, page_size: nil)
|
|
339
|
+
opts = {}
|
|
340
|
+
opts[:page_number] = page_number unless page_number.nil?
|
|
341
|
+
opts[:page_size] = page_size unless page_size.nil?
|
|
342
|
+
response = ErrorMapping.call { @api.list_environments(opts) }
|
|
301
343
|
(response.data || []).map { |r| from_resource(ResourceShim.from_model(r)) }
|
|
302
344
|
end
|
|
303
345
|
|
|
@@ -413,8 +455,11 @@ module Smplkit
|
|
|
413
455
|
@api = SmplkitGeneratedClient::Config::ConfigsApi.new(api_client)
|
|
414
456
|
end
|
|
415
457
|
|
|
416
|
-
def list
|
|
417
|
-
|
|
458
|
+
def list(page_number: nil, page_size: nil)
|
|
459
|
+
opts = {}
|
|
460
|
+
opts[:page_number] = page_number unless page_number.nil?
|
|
461
|
+
opts[:page_size] = page_size unless page_size.nil?
|
|
462
|
+
response = ErrorMapping.call { @api.list_configs(opts) }
|
|
418
463
|
(response.data || []).map { |r| Smplkit::Config::Helpers.config_from_json(self, ResourceShim.from_model(r)) }
|
|
419
464
|
end
|
|
420
465
|
|
|
@@ -451,8 +496,11 @@ module Smplkit
|
|
|
451
496
|
# Build the parent-chain for a given config, walking +parent_id+
|
|
452
497
|
# pointers across the full config list. Mirrors the Python SDK's
|
|
453
498
|
# client-side resolution — there is no server +/chain+ endpoint.
|
|
499
|
+
#
|
|
500
|
+
# Walks every page of +list_configs+ so an account with more than
|
|
501
|
+
# +RUNTIME_PAGE_SIZE+ configs still resolves chains correctly.
|
|
454
502
|
def fetch_chain(target_key)
|
|
455
|
-
all_configs =
|
|
503
|
+
all_configs = fetch_all_configs
|
|
456
504
|
by_key = all_configs.to_h { |c| [c.key, c] }
|
|
457
505
|
by_id = all_configs.to_h { |c| [c.id, c] }
|
|
458
506
|
|
|
@@ -475,6 +523,11 @@ module Smplkit
|
|
|
475
523
|
|
|
476
524
|
private
|
|
477
525
|
|
|
526
|
+
def fetch_all_configs
|
|
527
|
+
rows = PaginatedFetch.collect { |opts| @api.list_configs(opts) }
|
|
528
|
+
rows.map { |r| Smplkit::Config::Helpers.config_from_json(self, ResourceShim.from_model(r)) }
|
|
529
|
+
end
|
|
530
|
+
|
|
478
531
|
def config_body(config)
|
|
479
532
|
SmplkitGeneratedClient::Config::ConfigResponse.new(
|
|
480
533
|
data: SmplkitGeneratedClient::Config::ConfigResource.new(
|
|
@@ -576,8 +629,11 @@ module Smplkit
|
|
|
576
629
|
@buffer.pending_count
|
|
577
630
|
end
|
|
578
631
|
|
|
579
|
-
def list
|
|
580
|
-
|
|
632
|
+
def list(page_number: nil, page_size: nil)
|
|
633
|
+
opts = {}
|
|
634
|
+
opts[:page_number] = page_number unless page_number.nil?
|
|
635
|
+
opts[:page_size] = page_size unless page_size.nil?
|
|
636
|
+
response = ErrorMapping.call { @api.list_flags(opts) }
|
|
581
637
|
(response.data || []).map { |r| flag_from_resource(ResourceShim.from_model(r)) }
|
|
582
638
|
end
|
|
583
639
|
|
|
@@ -634,9 +690,11 @@ module Smplkit
|
|
|
634
690
|
Smplkit::Flags::Helpers.flag_dict_from_json(ResourceShim.from_model(response.data))
|
|
635
691
|
end
|
|
636
692
|
|
|
693
|
+
# Runtime entry — walks every page so an account holding more than
|
|
694
|
+
# +RUNTIME_PAGE_SIZE+ flags still gets a complete in-memory store.
|
|
637
695
|
def list_flags
|
|
638
|
-
|
|
639
|
-
|
|
696
|
+
rows = PaginatedFetch.collect { |opts| @api.list_flags(opts) }
|
|
697
|
+
rows.map { |r| Smplkit::Flags::Helpers.flag_dict_from_json(ResourceShim.from_model(r)) }
|
|
640
698
|
end
|
|
641
699
|
|
|
642
700
|
private
|
|
@@ -731,8 +789,11 @@ module Smplkit
|
|
|
731
789
|
Smplkit.debug("registration", "logger flush failed: #{e.class}: #{e.message}")
|
|
732
790
|
end
|
|
733
791
|
|
|
734
|
-
def list
|
|
735
|
-
|
|
792
|
+
def list(page_number: nil, page_size: nil)
|
|
793
|
+
opts = {}
|
|
794
|
+
opts[:page_number] = page_number unless page_number.nil?
|
|
795
|
+
opts[:page_size] = page_size unless page_size.nil?
|
|
796
|
+
response = ErrorMapping.call { @api.list_loggers(opts) }
|
|
736
797
|
(response.data || []).map do |r|
|
|
737
798
|
Smplkit::Logging::Helpers.logger_resource_to_model(self, ResourceShim.from_model(r))
|
|
738
799
|
end
|
|
@@ -781,8 +842,11 @@ module Smplkit
|
|
|
781
842
|
@api = SmplkitGeneratedClient::Logging::LogGroupsApi.new(api_client)
|
|
782
843
|
end
|
|
783
844
|
|
|
784
|
-
def list
|
|
785
|
-
|
|
845
|
+
def list(page_number: nil, page_size: nil)
|
|
846
|
+
opts = {}
|
|
847
|
+
opts[:page_number] = page_number unless page_number.nil?
|
|
848
|
+
opts[:page_size] = page_size unless page_size.nil?
|
|
849
|
+
response = ErrorMapping.call { @api.list_log_groups(opts) }
|
|
786
850
|
(response.data || []).map do |r|
|
|
787
851
|
Smplkit::Logging::Helpers.log_group_resource_to_model(self, ResourceShim.from_model(r))
|
|
788
852
|
end
|