gooddata 2.3.1 → 2.3.3
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/.gdc-ii-config.yaml +1 -1
- data/.github/workflows/build.yml +10 -16
- data/.github/workflows/check-extended.yaml +245 -0
- data/.github/workflows/check.yaml +190 -0
- data/.github/workflows/gate.yaml +200 -0
- data/.github/workflows/pre-merge.yml +23 -54
- data/.travis.yml +0 -35
- data/CHANGELOG.md +6 -0
- data/Dockerfile +4 -10
- data/Dockerfile.jruby +14 -2
- data/DockerfileOldImage +88 -0
- data/SDK_VERSION +1 -1
- data/VERSION +1 -1
- data/bin/provision.sh +1 -1
- data/bin/release.sh +1 -1
- data/bin/rollout.sh +1 -1
- data/bin/user_filters.sh +1 -1
- data/bin/users.sh +1 -1
- data/ci/bigquery/pom.xml +1 -1
- data/ci/postgresql/pom.xml +1 -1
- data/ci/snowflake/pom.xml +11 -1
- data/gooddata.gemspec +27 -11
- data/lib/gooddata/cloud_resources/mssql/mssql_client.rb +2 -1
- data/lib/gooddata/cloud_resources/mysql/mysql_client.rb +2 -1
- data/lib/gooddata/cloud_resources/postgresql/postgresql_client.rb +2 -1
- data/lib/gooddata/cloud_resources/redshift/redshift_client.rb +2 -1
- data/lib/gooddata/cloud_resources/snowflake/snowflake_client.rb +58 -3
- data/lib/gooddata/helpers/global_helpers.rb +1 -1
- data/lib/gooddata/lcm/actions/import_object_collections.rb +23 -2
- data/lib/gooddata/lcm/actions/synchronize_clients.rb +31 -3
- data/lib/gooddata/lcm/actions/synchronize_dataset_mappings.rb +6 -2
- data/lib/gooddata/lcm/actions/synchronize_etls_in_segment.rb +3 -3
- data/lib/gooddata/lcm/actions/synchronize_user_filters.rb +5 -1
- data/lib/gooddata/lcm/lcm2.rb +4 -0
- data/lib/gooddata/models/domain.rb +16 -4
- data/lib/gooddata/models/metadata/label.rb +21 -4
- data/lib/gooddata/models/model.rb +1 -1
- data/lib/gooddata/models/project.rb +17 -2
- data/lib/gooddata/models/segment.rb +3 -2
- data/lib/gooddata/models/user_filters/user_filter_builder.rb +4 -3
- data/lib/gooddata/rest/client.rb +6 -1
- data/lib/gooddata/rest/connection.rb +20 -5
- metadata +126 -88
@@ -58,6 +58,8 @@ module GoodData
|
|
58
58
|
RETRYABLE_ERRORS = [
|
59
59
|
Net::HTTPBadResponse,
|
60
60
|
RestClient::InternalServerError,
|
61
|
+
RestClient::Exceptions::OpenTimeout,
|
62
|
+
RestClient::Exceptions::ReadTimeout,
|
61
63
|
RestClient::RequestTimeout,
|
62
64
|
RestClient::MethodNotAllowed,
|
63
65
|
SystemCallError,
|
@@ -65,7 +67,7 @@ module GoodData
|
|
65
67
|
]
|
66
68
|
|
67
69
|
RETRY_TIME_INITIAL_VALUE = 1
|
68
|
-
RETRY_TIME_COEFFICIENT =
|
70
|
+
RETRY_TIME_COEFFICIENT = 2
|
69
71
|
RETRYABLE_ERRORS << Net::ReadTimeout if Net.const_defined?(:ReadTimeout)
|
70
72
|
|
71
73
|
RETRYABLE_ERRORS << OpenSSL::SSL::SSLErrorWaitReadable if OpenSSL::SSL.const_defined?(:SSLErrorWaitReadable)
|
@@ -94,7 +96,7 @@ module GoodData
|
|
94
96
|
|
95
97
|
# Retry block if exception thrown
|
96
98
|
def retryable(options = {}, &_block)
|
97
|
-
opts = { :tries =>
|
99
|
+
opts = { :tries => 14, :on => RETRYABLE_ERRORS }.merge(options)
|
98
100
|
|
99
101
|
retry_exception = opts[:on]
|
100
102
|
retries = opts[:tries]
|
@@ -110,6 +112,7 @@ module GoodData
|
|
110
112
|
raise e unless options[:refresh_token]
|
111
113
|
raise e if options[:dont_reauth]
|
112
114
|
|
115
|
+
logging_retry_error(e, retry_time)
|
113
116
|
options[:refresh_token].call # (dont_reauth: true)
|
114
117
|
if (retries -= 1) > 0
|
115
118
|
retry
|
@@ -117,11 +120,17 @@ module GoodData
|
|
117
120
|
fail e
|
118
121
|
end
|
119
122
|
rescue RestClient::TooManyRequests, RestClient::ServiceUnavailable, *retry_exception => e
|
120
|
-
|
123
|
+
logging_retry_error(e, retry_time)
|
121
124
|
sleep retry_time
|
122
|
-
|
123
|
-
|
125
|
+
if OpenSSL::SSL.const_defined?(:SSLErrorWaitReadable) && e.is_a?(OpenSSL::SSL::SSLErrorWaitReadable)
|
126
|
+
GoodData.gd_logger.warn "Refresh token status=start retry_time=#{retry_time}. Error: #{e.message}"
|
127
|
+
options[:refresh_token].call # (dont_reauth: true)
|
128
|
+
GoodData.gd_logger.warn "Refresh token status=success retry_time=#{retry_time}. Error: #{e.message}"
|
129
|
+
end
|
130
|
+
|
131
|
+
# Total 10 retry requests with 1.5 coefficent should take ~ 2 mins to finish
|
124
132
|
if (retries -= 1) > 0
|
133
|
+
retry_time *= RETRY_TIME_COEFFICIENT
|
125
134
|
retry
|
126
135
|
else
|
127
136
|
fail e
|
@@ -129,6 +138,12 @@ module GoodData
|
|
129
138
|
end
|
130
139
|
yield
|
131
140
|
end
|
141
|
+
|
142
|
+
def logging_retry_error(e, retry_time)
|
143
|
+
error_message = "#{e.message}, retrying in #{retry_time} seconds"
|
144
|
+
GoodData.logger.warn error_message
|
145
|
+
GoodData.gd_logger.warn error_message
|
146
|
+
end
|
132
147
|
end
|
133
148
|
|
134
149
|
attr_reader :request_params
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gooddata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kolesnikov
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date:
|
17
|
+
date: 2025-08-06 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: license_finder
|
@@ -30,6 +30,20 @@ dependencies:
|
|
30
30
|
- - "~>"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '2.0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: redcarpet
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '3.1'
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.1'
|
33
47
|
- !ruby/object:Gem::Dependency
|
34
48
|
name: rake
|
35
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -45,19 +59,39 @@ dependencies:
|
|
45
59
|
- !ruby/object:Gem::Version
|
46
60
|
version: '13.0'
|
47
61
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
62
|
+
name: rubocop
|
49
63
|
requirement: !ruby/object:Gem::Requirement
|
50
64
|
requirements:
|
51
|
-
- - "
|
65
|
+
- - ">="
|
52
66
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
67
|
+
version: '1.28'
|
54
68
|
type: :development
|
55
69
|
prerelease: false
|
56
70
|
version_requirements: !ruby/object:Gem::Requirement
|
57
71
|
requirements:
|
58
|
-
- - "
|
72
|
+
- - ">="
|
59
73
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
74
|
+
version: '1.28'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rubocop-ast
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 1.24.1
|
82
|
+
- - "<="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 1.42.0
|
85
|
+
type: :development
|
86
|
+
prerelease: false
|
87
|
+
version_requirements: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: 1.24.1
|
92
|
+
- - "<="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 1.42.0
|
61
95
|
- !ruby/object:Gem::Dependency
|
62
96
|
name: rspec
|
63
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,19 +135,81 @@ dependencies:
|
|
101
135
|
- !ruby/object:Gem::Version
|
102
136
|
version: 0.6.0
|
103
137
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
138
|
+
name: azure-storage-blob
|
139
|
+
requirement: !ruby/object:Gem::Requirement
|
140
|
+
requirements:
|
141
|
+
- - "~>"
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '2.0'
|
144
|
+
type: :runtime
|
145
|
+
prerelease: false
|
146
|
+
version_requirements: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - "~>"
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '2.0'
|
151
|
+
- !ruby/object:Gem::Dependency
|
152
|
+
name: nokogiri
|
105
153
|
requirement: !ruby/object:Gem::Requirement
|
106
154
|
requirements:
|
155
|
+
- - "~>"
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '1'
|
107
158
|
- - ">="
|
108
159
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
110
|
-
type: :
|
160
|
+
version: 1.10.8
|
161
|
+
type: :runtime
|
111
162
|
prerelease: false
|
112
163
|
version_requirements: !ruby/object:Gem::Requirement
|
113
164
|
requirements:
|
165
|
+
- - "~>"
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '1'
|
114
168
|
- - ">="
|
115
169
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
170
|
+
version: 1.10.8
|
171
|
+
- !ruby/object:Gem::Dependency
|
172
|
+
name: json_pure
|
173
|
+
requirement: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
175
|
+
- - "~>"
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '2.6'
|
178
|
+
type: :runtime
|
179
|
+
prerelease: false
|
180
|
+
version_requirements: !ruby/object:Gem::Requirement
|
181
|
+
requirements:
|
182
|
+
- - "~>"
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
version: '2.6'
|
185
|
+
- !ruby/object:Gem::Dependency
|
186
|
+
name: restforce
|
187
|
+
requirement: !ruby/object:Gem::Requirement
|
188
|
+
requirements:
|
189
|
+
- - ">="
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
version: '2.4'
|
192
|
+
type: :runtime
|
193
|
+
prerelease: false
|
194
|
+
version_requirements: !ruby/object:Gem::Requirement
|
195
|
+
requirements:
|
196
|
+
- - ">="
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: '2.4'
|
199
|
+
- !ruby/object:Gem::Dependency
|
200
|
+
name: rubyzip
|
201
|
+
requirement: !ruby/object:Gem::Requirement
|
202
|
+
requirements:
|
203
|
+
- - ">="
|
204
|
+
- !ruby/object:Gem::Version
|
205
|
+
version: '0'
|
206
|
+
type: :runtime
|
207
|
+
prerelease: false
|
208
|
+
version_requirements: !ruby/object:Gem::Requirement
|
209
|
+
requirements:
|
210
|
+
- - ">="
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: '0'
|
117
213
|
- !ruby/object:Gem::Dependency
|
118
214
|
name: simplecov
|
119
215
|
requirement: !ruby/object:Gem::Requirement
|
@@ -286,16 +382,16 @@ dependencies:
|
|
286
382
|
name: activesupport
|
287
383
|
requirement: !ruby/object:Gem::Requirement
|
288
384
|
requirements:
|
289
|
-
- - "
|
385
|
+
- - ">="
|
290
386
|
- !ruby/object:Gem::Version
|
291
|
-
version:
|
387
|
+
version: 6.0.3.1
|
292
388
|
type: :runtime
|
293
389
|
prerelease: false
|
294
390
|
version_requirements: !ruby/object:Gem::Requirement
|
295
391
|
requirements:
|
296
|
-
- - "
|
392
|
+
- - ">="
|
297
393
|
- !ruby/object:Gem::Version
|
298
|
-
version:
|
394
|
+
version: 6.0.3.1
|
299
395
|
- !ruby/object:Gem::Dependency
|
300
396
|
name: net-smtp
|
301
397
|
requirement: !ruby/object:Gem::Requirement
|
@@ -366,40 +462,6 @@ dependencies:
|
|
366
462
|
- - "~>"
|
367
463
|
- !ruby/object:Gem::Version
|
368
464
|
version: '1.1'
|
369
|
-
- !ruby/object:Gem::Dependency
|
370
|
-
name: azure-storage-blob
|
371
|
-
requirement: !ruby/object:Gem::Requirement
|
372
|
-
requirements:
|
373
|
-
- - "~>"
|
374
|
-
- !ruby/object:Gem::Version
|
375
|
-
version: '2.0'
|
376
|
-
type: :runtime
|
377
|
-
prerelease: false
|
378
|
-
version_requirements: !ruby/object:Gem::Requirement
|
379
|
-
requirements:
|
380
|
-
- - "~>"
|
381
|
-
- !ruby/object:Gem::Version
|
382
|
-
version: '2.0'
|
383
|
-
- !ruby/object:Gem::Dependency
|
384
|
-
name: nokogiri
|
385
|
-
requirement: !ruby/object:Gem::Requirement
|
386
|
-
requirements:
|
387
|
-
- - "~>"
|
388
|
-
- !ruby/object:Gem::Version
|
389
|
-
version: '1'
|
390
|
-
- - ">="
|
391
|
-
- !ruby/object:Gem::Version
|
392
|
-
version: 1.10.8
|
393
|
-
type: :runtime
|
394
|
-
prerelease: false
|
395
|
-
version_requirements: !ruby/object:Gem::Requirement
|
396
|
-
requirements:
|
397
|
-
- - "~>"
|
398
|
-
- !ruby/object:Gem::Version
|
399
|
-
version: '1'
|
400
|
-
- - ">="
|
401
|
-
- !ruby/object:Gem::Version
|
402
|
-
version: 1.10.8
|
403
465
|
- !ruby/object:Gem::Dependency
|
404
466
|
name: gli
|
405
467
|
requirement: !ruby/object:Gem::Requirement
|
@@ -429,47 +491,47 @@ dependencies:
|
|
429
491
|
- !ruby/object:Gem::Version
|
430
492
|
version: 2.0.0.pre.develop.14
|
431
493
|
- !ruby/object:Gem::Dependency
|
432
|
-
name:
|
494
|
+
name: multi_json
|
433
495
|
requirement: !ruby/object:Gem::Requirement
|
434
496
|
requirements:
|
435
497
|
- - "~>"
|
436
498
|
- !ruby/object:Gem::Version
|
437
|
-
version: '
|
499
|
+
version: '1.12'
|
438
500
|
type: :runtime
|
439
501
|
prerelease: false
|
440
502
|
version_requirements: !ruby/object:Gem::Requirement
|
441
503
|
requirements:
|
442
504
|
- - "~>"
|
443
505
|
- !ruby/object:Gem::Version
|
444
|
-
version: '
|
506
|
+
version: '1.12'
|
445
507
|
- !ruby/object:Gem::Dependency
|
446
|
-
name:
|
508
|
+
name: parseconfig
|
447
509
|
requirement: !ruby/object:Gem::Requirement
|
448
510
|
requirements:
|
449
511
|
- - "~>"
|
450
512
|
- !ruby/object:Gem::Version
|
451
|
-
version: '1.
|
513
|
+
version: '1.0'
|
452
514
|
type: :runtime
|
453
515
|
prerelease: false
|
454
516
|
version_requirements: !ruby/object:Gem::Requirement
|
455
517
|
requirements:
|
456
518
|
- - "~>"
|
457
519
|
- !ruby/object:Gem::Version
|
458
|
-
version: '1.
|
520
|
+
version: '1.0'
|
459
521
|
- !ruby/object:Gem::Dependency
|
460
|
-
name:
|
522
|
+
name: path_expander
|
461
523
|
requirement: !ruby/object:Gem::Requirement
|
462
524
|
requirements:
|
463
|
-
- - "
|
525
|
+
- - "<"
|
464
526
|
- !ruby/object:Gem::Version
|
465
|
-
version:
|
527
|
+
version: 1.1.2
|
466
528
|
type: :runtime
|
467
529
|
prerelease: false
|
468
530
|
version_requirements: !ruby/object:Gem::Requirement
|
469
531
|
requirements:
|
470
|
-
- - "
|
532
|
+
- - "<"
|
471
533
|
- !ruby/object:Gem::Version
|
472
|
-
version:
|
534
|
+
version: 1.1.2
|
473
535
|
- !ruby/object:Gem::Dependency
|
474
536
|
name: pmap
|
475
537
|
requirement: !ruby/object:Gem::Requirement
|
@@ -512,20 +574,6 @@ dependencies:
|
|
512
574
|
- - "~>"
|
513
575
|
- !ruby/object:Gem::Version
|
514
576
|
version: 1.0.3
|
515
|
-
- !ruby/object:Gem::Dependency
|
516
|
-
name: restforce
|
517
|
-
requirement: !ruby/object:Gem::Requirement
|
518
|
-
requirements:
|
519
|
-
- - ">="
|
520
|
-
- !ruby/object:Gem::Version
|
521
|
-
version: '2.4'
|
522
|
-
type: :runtime
|
523
|
-
prerelease: false
|
524
|
-
version_requirements: !ruby/object:Gem::Requirement
|
525
|
-
requirements:
|
526
|
-
- - ">="
|
527
|
-
- !ruby/object:Gem::Version
|
528
|
-
version: '2.4'
|
529
577
|
- !ruby/object:Gem::Dependency
|
530
578
|
name: rest-client
|
531
579
|
requirement: !ruby/object:Gem::Requirement
|
@@ -540,20 +588,6 @@ dependencies:
|
|
540
588
|
- - "~>"
|
541
589
|
- !ruby/object:Gem::Version
|
542
590
|
version: '2.0'
|
543
|
-
- !ruby/object:Gem::Dependency
|
544
|
-
name: rubyzip
|
545
|
-
requirement: !ruby/object:Gem::Requirement
|
546
|
-
requirements:
|
547
|
-
- - ">="
|
548
|
-
- !ruby/object:Gem::Version
|
549
|
-
version: '0'
|
550
|
-
type: :runtime
|
551
|
-
prerelease: false
|
552
|
-
version_requirements: !ruby/object:Gem::Requirement
|
553
|
-
requirements:
|
554
|
-
- - ">="
|
555
|
-
- !ruby/object:Gem::Version
|
556
|
-
version: '0'
|
557
591
|
- !ruby/object:Gem::Dependency
|
558
592
|
name: terminal-table
|
559
593
|
requirement: !ruby/object:Gem::Requirement
|
@@ -637,6 +671,9 @@ files:
|
|
637
671
|
- ".gdc-ii-config-chart.yaml"
|
638
672
|
- ".gdc-ii-config.yaml"
|
639
673
|
- ".github/workflows/build.yml"
|
674
|
+
- ".github/workflows/check-extended.yaml"
|
675
|
+
- ".github/workflows/check.yaml"
|
676
|
+
- ".github/workflows/gate.yaml"
|
640
677
|
- ".github/workflows/pre-merge.yml"
|
641
678
|
- ".gitignore"
|
642
679
|
- ".pronto.yml"
|
@@ -651,6 +688,7 @@ files:
|
|
651
688
|
- Dockerfile
|
652
689
|
- Dockerfile.jruby
|
653
690
|
- Dockerfile.ruby
|
691
|
+
- DockerfileOldImage
|
654
692
|
- Gemfile
|
655
693
|
- Guardfile
|
656
694
|
- Jenkinsfile
|