gooddata 2.1.17 → 2.1.19
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/.travis.yml +79 -14
- data/CHANGELOG.md +12 -0
- data/Dockerfile.jruby +11 -1
- data/SDK_VERSION +1 -1
- data/VERSION +1 -1
- data/bin/test_projects_cleanup.rb +44 -2
- data/dev-gooddata-sso.pub.encrypted +40 -40
- data/docker-compose.lcm.yml +3 -0
- data/gooddata.gemspec +5 -1
- data/lcm.rake +10 -4
- data/lib/gooddata/lcm/actions/associate_clients.rb +8 -2
- data/lib/gooddata/lcm/actions/provision_clients.rb +31 -10
- data/lib/gooddata/models/domain.rb +3 -1
- data/lib/gooddata/models/metadata/analytical_dashboard.rb +49 -0
- data/lib/gooddata/models/metadata/analytical_visualization_object.rb +30 -0
- data/lib/gooddata/models/metadata/visualization_object.rb +50 -0
- data/lib/gooddata/rest/phmap.rb +1 -1
- data/rubydev_public.gpg.encrypted +51 -51
- data/rubydev_secret_keys.gpg.encrypted +109 -109
- metadata +13 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f00b6b202dc2bcd6af02eda57b326c0ccf222a57683dcf12bacf6b318a212ec7
|
4
|
+
data.tar.gz: a2f73ed25aa53295e06648efaf0961c5eed43fc3f9defae3b5e640a167c948a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac6f6fd25919099b44ecaa302d81dab084de7540b158e35e02bb05b970eb8bba466a77d0eba3403dca66160f8e4c9c2b02603af9a8249afe7a4ebad295f22774
|
7
|
+
data.tar.gz: c075fe2ed8d29d0612f6fc01687c1d0cedc690df830642ebdac369026f7fc3158a07fcfbadd8c079a3574e222713b0cbce60a7b6b189ac3f6b4ba950b877e7b0
|
data/.travis.yml
CHANGED
@@ -73,23 +73,52 @@ jobs:
|
|
73
73
|
|
74
74
|
- name: lcm integration (vcr) tests - e2e
|
75
75
|
stage: before-merge
|
76
|
-
script: bundle exec rspec spec/lcm/integration/lcm_end_to_end_spec.rb
|
76
|
+
script: bundle exec rspec spec/lcm/integration/spec/e2e/lcm_end_to_end_spec.rb
|
77
77
|
env:
|
78
78
|
- VCR_RECORD_MODE=none
|
79
79
|
rvm: 2.3
|
80
80
|
|
81
81
|
# AFTER MERGE
|
82
82
|
# staging 1
|
83
|
-
- &lcm-integration-tests
|
84
|
-
name: staging1 - lcm integration tests
|
83
|
+
- &lcm-integration-e2e-tests
|
84
|
+
name: staging1 - lcm integration-e2e tests
|
85
85
|
stage: after-merge
|
86
86
|
script: |
|
87
87
|
bundle exec rake -f lcm.rake docker:build
|
88
88
|
bundle exec rake -f lcm.rake docker:bundle
|
89
|
-
bundle exec rake -f lcm.rake test:docker:integration
|
89
|
+
bundle exec rake -f lcm.rake test:docker:integration-e2e
|
90
90
|
env:
|
91
91
|
- VCR_ON=false
|
92
92
|
- GD_ENV=staging
|
93
|
+
- GD_MAX_RETRY=2
|
94
|
+
rvm: jruby-9.1.14
|
95
|
+
jdk: openjdk8
|
96
|
+
|
97
|
+
- &lcm-integration-release-tests
|
98
|
+
name: staging1 - lcm integration-release tests
|
99
|
+
stage: after-merge
|
100
|
+
script: |
|
101
|
+
bundle exec rake -f lcm.rake docker:build
|
102
|
+
bundle exec rake -f lcm.rake docker:bundle
|
103
|
+
bundle exec rake -f lcm.rake test:docker:integration-release
|
104
|
+
env:
|
105
|
+
- VCR_ON=false
|
106
|
+
- GD_ENV=staging
|
107
|
+
- GD_MAX_RETRY=2
|
108
|
+
rvm: jruby-9.1.14
|
109
|
+
jdk: openjdk8
|
110
|
+
|
111
|
+
- &lcm-integration-others-tests
|
112
|
+
name: staging1 - lcm integration-others tests
|
113
|
+
stage: after-merge
|
114
|
+
script: |
|
115
|
+
bundle exec rake -f lcm.rake docker:build
|
116
|
+
bundle exec rake -f lcm.rake docker:bundle
|
117
|
+
bundle exec rake -f lcm.rake test:docker:integration-others
|
118
|
+
env:
|
119
|
+
- VCR_ON=false
|
120
|
+
- GD_ENV=staging
|
121
|
+
- GD_MAX_RETRY=2
|
93
122
|
rvm: jruby-9.1.14
|
94
123
|
jdk: openjdk8
|
95
124
|
|
@@ -155,11 +184,26 @@ jobs:
|
|
155
184
|
jdk: openjdk8
|
156
185
|
|
157
186
|
# staging 2
|
158
|
-
- <<: *lcm-integration-tests
|
159
|
-
name: staging2 - lcm integration tests
|
187
|
+
- <<: *lcm-integration-e2e-tests
|
188
|
+
name: staging2 - lcm integration-e2e tests
|
189
|
+
env:
|
190
|
+
- GD_ENV=testing
|
191
|
+
- VCR_ON=false
|
192
|
+
- GD_MAX_RETRY=2
|
193
|
+
|
194
|
+
- <<: *lcm-integration-release-tests
|
195
|
+
name: staging2 - lcm integration-release tests
|
196
|
+
env:
|
197
|
+
- GD_ENV=testing
|
198
|
+
- VCR_ON=false
|
199
|
+
- GD_MAX_RETRY=2
|
200
|
+
|
201
|
+
- <<: *lcm-integration-others-tests
|
202
|
+
name: staging2 - lcm integration-others tests
|
160
203
|
env:
|
161
204
|
- GD_ENV=testing
|
162
205
|
- VCR_ON=false
|
206
|
+
- GD_MAX_RETRY=2
|
163
207
|
|
164
208
|
- <<: *lcm-slow-tests
|
165
209
|
name: staging2 - lcm slow tests
|
@@ -192,11 +236,26 @@ jobs:
|
|
192
236
|
- VCR_ON=false
|
193
237
|
|
194
238
|
# staging 3
|
195
|
-
- <<: *lcm-integration-tests
|
196
|
-
name: staging3 - lcm integration tests
|
239
|
+
- <<: *lcm-integration-e2e-tests
|
240
|
+
name: staging3 - lcm integration-e2e tests
|
241
|
+
env:
|
242
|
+
- GD_ENV=development
|
243
|
+
- VCR_ON=false
|
244
|
+
- GD_MAX_RETRY=2
|
245
|
+
|
246
|
+
- <<: *lcm-integration-release-tests
|
247
|
+
name: staging3 - lcm integration-release tests
|
248
|
+
env:
|
249
|
+
- GD_ENV=development
|
250
|
+
- VCR_ON=false
|
251
|
+
- GD_MAX_RETRY=2
|
252
|
+
|
253
|
+
- <<: *lcm-integration-others-tests
|
254
|
+
name: staging3 - lcm integration-others tests
|
197
255
|
env:
|
198
256
|
- GD_ENV=development
|
199
257
|
- VCR_ON=false
|
258
|
+
- GD_MAX_RETRY=2
|
200
259
|
|
201
260
|
- <<: *lcm-slow-tests
|
202
261
|
name: staging3 - lcm slow tests
|
@@ -234,15 +293,21 @@ jobs:
|
|
234
293
|
stage: after-merge
|
235
294
|
name: staging1 - test environment clean-up
|
236
295
|
script: travis_wait 30 bundle exec ruby bin/test_projects_cleanup.rb -f
|
237
|
-
env:
|
296
|
+
env:
|
297
|
+
- GD_ENV=staging
|
298
|
+
- GD_MAX_RETRY=2
|
238
299
|
|
239
300
|
- <<: *cleanup
|
240
|
-
name:
|
241
|
-
env:
|
301
|
+
name: staging2 - test environment clean-up
|
302
|
+
env:
|
303
|
+
- GD_ENV=testing
|
304
|
+
- GD_MAX_RETRY=2
|
242
305
|
|
243
306
|
- <<: *cleanup
|
244
|
-
name:
|
245
|
-
env:
|
307
|
+
name: staging3 - test environment clean-up
|
308
|
+
env:
|
309
|
+
- GD_ENV=development
|
310
|
+
- GD_MAX_RETRY=2
|
246
311
|
|
247
312
|
# AFTER MERGE UNIT TESTS ON ALTERNATIVE PLATFORM
|
248
313
|
|
@@ -279,7 +344,7 @@ jobs:
|
|
279
344
|
script: bundle exec rake test:unit
|
280
345
|
os: osx
|
281
346
|
rvm: jruby-9.1.14
|
282
|
-
osx_image:
|
347
|
+
osx_image: xcode9.4
|
283
348
|
|
284
349
|
- stage: gem-release
|
285
350
|
name: deploy MRI gem
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,16 @@
|
|
1
1
|
# GoodData Ruby SDK Changelog
|
2
|
+
## 2.1.19
|
3
|
+
- BUGFIX: MSF-20827 Fix gem-smoke-test failed when release ruby SDK
|
4
|
+
- BUGFIX: MSF-20826 Failure update license file when release ruby SDK
|
5
|
+
|
6
|
+
## 2.1.18
|
7
|
+
- BUGFIX: TMA-1700 Failed Provisioning Brick created clients without ETL
|
8
|
+
- FEATURE: BCO-1300 Add model for analytical dashboard and visualization object
|
9
|
+
- FEATURE: MSF-20118 Support PostgreSQL as input for LCM provisioning bricks
|
10
|
+
- BUGFIX: TMA-999 Improve API call statistics log: add grouping on PID for roles
|
11
|
+
- CONFIG: TMA-1714 Ruby SDK travis build is failing
|
12
|
+
- BUGFIX: TMA-707 Provisioning brick does not log client deletion
|
13
|
+
|
2
14
|
## 2.1.17
|
3
15
|
- BUGFIX:TMA-1704 - Enhance error message when not found clientId in source table
|
4
16
|
- BUGFIX: TMA-1694 [UsersBrick] Enhance messages add more log for missing users when running remove_from_organization
|
data/Dockerfile.jruby
CHANGED
@@ -2,7 +2,7 @@ FROM jruby:9.1-alpine
|
|
2
2
|
|
3
3
|
MAINTAINER Tomas Korcak <korczis@gmail.com>
|
4
4
|
|
5
|
-
RUN apk add --no-cache curl make gcc git g++ python linux-headers binutils-gold gnupg libstdc++
|
5
|
+
RUN apk add --no-cache curl make gcc git g++ python linux-headers binutils-gold gnupg libstdc++ postgresql postgresql-client openssl
|
6
6
|
|
7
7
|
# Switch to directory with sources
|
8
8
|
WORKDIR /src
|
@@ -20,3 +20,13 @@ ADD . .
|
|
20
20
|
RUN keytool -importcert -alias gooddata-2008 -file "./data/2008.crt" -keystore $JAVA_HOME/lib/security/cacerts -trustcacerts -storepass 'changeit' -noprompt
|
21
21
|
RUN keytool -importcert -alias gooddata-int -file "./data/new_ca.cer" -keystore $JAVA_HOME/lib/security/cacerts -trustcacerts -storepass 'changeit' -noprompt
|
22
22
|
RUN keytool -importcert -alias gooddata-prod -file "data/new_prodgdc_ca.crt" -keystore $JAVA_HOME/lib/security/cacerts -trustcacerts -storepass 'changeit' -noprompt
|
23
|
+
|
24
|
+
ENV LANG en_US.utf8
|
25
|
+
RUN adduser -D -g '' gooddata
|
26
|
+
RUN rm -rf $HOME/spec/postgresql
|
27
|
+
RUN mkdir $HOME/spec/postgresql
|
28
|
+
RUN chmod -R 0750 $HOME/spec/postgresql
|
29
|
+
RUN chown gooddata $HOME/spec/postgresql
|
30
|
+
RUN mkdir /run/postgresql; chmod 1777 -R /run;
|
31
|
+
RUN mkdir $HOME/pre-exec.d; mkdir $HOME/pre-init.d; chmod -R 1755 $HOME/pre-exec.d; chmod -R 1755 $HOME/pre-exec.d
|
32
|
+
USER gooddata
|
data/SDK_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1.
|
1
|
+
2.1.19
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.7.
|
1
|
+
3.7.26
|
@@ -22,6 +22,39 @@ require_relative '../spec/environment/environment'
|
|
22
22
|
GoodData::Environment.load
|
23
23
|
config = GoodData::Environment::ConnectionHelper::LCM_ENVIRONMENT
|
24
24
|
secrets = GoodData::Environment::ConnectionHelper::SECRETS
|
25
|
+
default_domain = GoodData::Environment::ConnectionHelper::DEFAULT_DOMAIN
|
26
|
+
|
27
|
+
def delete_segment_by_title(title, segments, days = 14, force = false)
|
28
|
+
return if segments.empty?
|
29
|
+
dead_line = Time.now - days * 60 * 60 * 24
|
30
|
+
|
31
|
+
filtered_segments = segments.select do |s|
|
32
|
+
if s.id.match(title) && s.id.length > 14 && s.id[s.id.length-14..-1]
|
33
|
+
segment_created = s.id[s.id.length-14..-1]
|
34
|
+
created = Time.parse(segment_created) if segment_created
|
35
|
+
|
36
|
+
s if created.year >= Time.new.year && created < dead_line
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
filtered_segments.each do |segment|
|
41
|
+
begin
|
42
|
+
if force
|
43
|
+
segment.clients.each do |segment_client|
|
44
|
+
GoodData.logger.info("Deleting segment: #{segment.id} - client: #{segment_client.client_id}")
|
45
|
+
segment_client.dissociate
|
46
|
+
end
|
47
|
+
|
48
|
+
puts "Deleting segment: #{segment.id}"
|
49
|
+
segment && segment.delete(force: true)
|
50
|
+
else
|
51
|
+
puts "Would delete segment: #{segment.id}"
|
52
|
+
end
|
53
|
+
rescue RuntimeError, StandardError => ex
|
54
|
+
puts "Failed to delete segment #{segment.id}, reason: #{ex}"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
25
58
|
|
26
59
|
def delete_project_by_title(title, projects, days = 14, force = false)
|
27
60
|
dead_line = Time.now - days * 60 * 60 * 24
|
@@ -73,8 +106,16 @@ def delete_ads_by_title(title, client, days = 14, force = false)
|
|
73
106
|
puts "#{deleted} ADS instances with title \"#{title}\" #{'would be ' unless force}deleted."
|
74
107
|
end
|
75
108
|
|
76
|
-
def clean_up!(client, force, days)
|
109
|
+
def clean_up!(client, force, days, opts = {})
|
77
110
|
projects = client.projects
|
111
|
+
|
112
|
+
if opts[:domain_id]
|
113
|
+
domain = client.domain(opts[:domain_id])
|
114
|
+
|
115
|
+
# segments id format: {title}_{hostname}_{datetime}
|
116
|
+
delete_segment_by_title(/CAR_DEMO_PREMIUM/, domain.segments, days, force)
|
117
|
+
end
|
118
|
+
|
78
119
|
delete_project_by_title(/Insurance Demo Master/, projects, days, force)
|
79
120
|
delete_project_by_title(/Car Demo Master/, projects, days, force)
|
80
121
|
delete_project_by_title(/Insurance Demo Workspace/, projects, days, force)
|
@@ -117,7 +158,8 @@ prod_client = init_client(username, password, "https://#{config[:prod_server]}")
|
|
117
158
|
|
118
159
|
force = options[:force]
|
119
160
|
days = options[:days] || 3
|
161
|
+
|
120
162
|
clean_up!(dev_client, force, days)
|
121
|
-
clean_up!(prod_client, force, days)
|
163
|
+
clean_up!(prod_client, force, days, {domain_id: default_domain})
|
122
164
|
|
123
165
|
dev_client.disconnect
|
@@ -1,40 +1,40 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
1
|
+
SRNgp8VSJ8HqV2LnLD3kYkMO39u9rn3ssPvJHQuNHnPUDcc/FkCh529uTiqq
|
2
|
+
ON9+j5fFTjsKHr437hwnUCAq5Nn3ANSAhOSXehi3wqxicQrUU2xgbQbI+hk7
|
3
|
+
mLWrLOsm9Cn19kz9yblDh4aHTQBydJ6JwdPVnd6igIDnfLMVVVpzWK08aFfc
|
4
|
+
Y5KAeyIlLn5RQPQJL85LhVTOEG871z8wCAigeGaP2vnLzBj/9GQdwdDTsQzL
|
5
|
+
k1Rz2K3tL9SoUIVZ56dr1U11MYXduRzYJMawk21t9B7yNeKyuZCXx9U8VxAr
|
6
|
+
dqecLJoBAQI2ppPikJS3ycna/lRYD0OsGv6B7AR8sAkAB0XjpJZ9nNJys/PK
|
7
|
+
bBnmmKq+hvDu9zsIba8ptz0L3F5bi+Cfa+5c/Hyj7Jm3xiq5IWyh5LmtTmOI
|
8
|
+
MQa/fUPlerGe+7VZYlIm17fjd99cgqRM8yII/bTMvAEQREu1UxEwC4JFe9Bz
|
9
|
+
eFHeg6EorQJyBBV+LCDk86WS5RJBhBoTVj/LOm3BIUVr7Xee7naJxuRpQjgl
|
10
|
+
iTft/IfVhiwEPPonasXRjD1XwPKXUz8rX1C5JWDreOQB4hCPcNm29y/dV7Z4
|
11
|
+
7hv4ki9YgIhhmc/sNqvSE7JO2w5dvyKo05mYQj1CQUdvqpbge68J8cV84wp5
|
12
|
+
Lj3jHRXyDf/2x0IdpJTACGUy4R8XQUYpLDAfbtmgTuHu8HndxVb3O+rpwk+K
|
13
|
+
ipXb0mj4YQvc2SbCJ58HryX9i9ZfzW1/PwNtHHw4q5+BhNVvRaqJ61aIS5LP
|
14
|
+
DzjqlJ4OtpZfNjgmwgk9pfDRmYS8MOld8lNfhIh9WjyuLAW+MiaMZy8o6hTS
|
15
|
+
5vI65QGpD7HbgKQ4tX8LXAPVB8/rF0ReRcb1wiWydeP1eh4Dz6vXvYaJ0Jju
|
16
|
+
Q0/yCzbXyGFqv4P6FcOkVAyWhtF2kH/H114DxLq759r3Hoh+IMZutWlWFWhA
|
17
|
+
qslFPWN4P9R0kPO2KeiRsLOvBplQIANExar26dRg8hFHx0y3aT3CB7sa9bYw
|
18
|
+
DE7t2gVdMEU765f+bZhZQ2M6N2GKQv/UtXUT8xJ9skxFf1aVLDNwFh+3xs1d
|
19
|
+
f2WosiqrQ/bsagdZVmuDob9qREdbRP+EF4toWFJyL4wAhTUht1jJFogIkHBl
|
20
|
+
GtuT9c/CDQ4je4gANU0vyNf0XmlwYnZ6oQfMl7XBmYeEtXBA5uQAWeFcy6vL
|
21
|
+
zqfzwksASCo9LdUqfctD3gjMsm2J+IdAh99OxRcfHvnbV6xL9m+4Ng0GJppJ
|
22
|
+
t+w42XqznLRXLTS9RcFD2GFm7mNZziDT2Mb9L4e6Bjy5SoqCftiCbDzGJyka
|
23
|
+
BHK/4+l1MsS+J4Qr4qGFF9+HVTP/EF8InQwQECaujyzsrfX8Wn4GuSX4ZdMt
|
24
|
+
F0kakkN8A+9LpmFlb8oi4bsmzFTo1tQPRJwann/5TO0jm+Vt6ETmepE0EZ1K
|
25
|
+
SIXfQT+a9laF/UJ3bGGxLXIRp3g/ICz0ofBDeSHOCjOVhXVfKnRs/2KpPPex
|
26
|
+
yPKLTUdIAtOsKTEtF9JF97C7D/JzxHbssTCj6518BHGxBepn0HZUpeGOlClj
|
27
|
+
HiKh8PGKtP0tix1NI/tmhSHCdoi6L/XEryU2pm87qKrlKJU/6z5w7rtpCxto
|
28
|
+
X5ztrFk91a3VPEzGRmh7Hw5oNzCi5jmSzZeVgIXxEkVfdUrGAi7ZmJtgEUz5
|
29
|
+
1BJYd2MSBlqHGHF1iIQoqtyklLuqOJR1GvS1/OxQXpXXcVTy47fzlNuKuYkg
|
30
|
+
7beiD5H0Sz/d6J4YNgaJnde+FscHuwOfjzH6uOGQMa6A1NEBW5J1TrAPiVh9
|
31
|
+
nm7pPtDg41dScUp3JqeMRA1Akm5wyGna8yocb3CwvSBEy7KrW/8mUR/TpLao
|
32
|
+
f9HuWE8UNPjqUl6nTzVpZ2TJFM4ffZbX3NsjS+wsZFtyRAD4z0bBKveUTm19
|
33
|
+
pMTBvNljgvGlS6mzYZybPh00l3kiRU9z4Xf7Y1KQH4oSxTpwmgmqiESD0Xv8
|
34
|
+
ZmJCU/4VAxbzHwogyeaQvX4pAeC2C1lqgwYdAh6lO7OwgAhkGg3p41V1j6BA
|
35
|
+
aOcqaHk+zKpP3pL3jzAZdLvL49y430UXDNN3M6nSafFzSMrPWPjGNyIXVx68
|
36
|
+
uDNKCSIcgwAGPtossk0qRKygoQUlKdKull+gOjP/bSIoENKE4rz8RdCsG5qA
|
37
|
+
5T7/iJflhrWGlXfI0MgIe7Lpl41jQ769rI6tSuHu9EsMFOW6/W55IsUR2+p7
|
38
|
+
RxClPslQd3tR/TSZvOM5onHK8sM/Lk+rG9BTi0h0ghwVYEiTXPSKPw70z3WY
|
39
|
+
1YlVQS9RSr0AVn9O/Esju2XFtkcE4spXgqiQx0Wx3Y9+21UryNu1amI8rzIH
|
40
|
+
N/WeNcE=
|
data/docker-compose.lcm.yml
CHANGED
data/gooddata.gemspec
CHANGED
@@ -61,7 +61,11 @@ Gem::Specification.new do |s|
|
|
61
61
|
end
|
62
62
|
|
63
63
|
s.add_dependency 'aws-sdk-s3', '~> 1.16'
|
64
|
-
|
64
|
+
if RUBY_VERSION >= '2.5'
|
65
|
+
s.add_dependency 'docile', '~> 1.1'
|
66
|
+
else
|
67
|
+
s.add_dependency 'docile', '> 1.1', '< 1.4.0'
|
68
|
+
end
|
65
69
|
s.add_dependency 'gli', '~> 2.15'
|
66
70
|
s.add_dependency 'gooddata_datawarehouse', '~> 0.0.10' if RUBY_PLATFORM == 'java'
|
67
71
|
s.add_dependency 'highline', '= 2.0.0.pre.develop.14'
|
data/lcm.rake
CHANGED
@@ -3,7 +3,7 @@ require 'fileutils'
|
|
3
3
|
require 'pathname'
|
4
4
|
require 'rspec/core/rake_task'
|
5
5
|
|
6
|
-
test_cases = %i[integration slow userprov load]
|
6
|
+
test_cases = %i[integration-e2e integration-release integration-others slow userprov load]
|
7
7
|
|
8
8
|
# Schema for new Bricks.
|
9
9
|
brick_info_schema = {
|
@@ -79,7 +79,7 @@ namespace :test do
|
|
79
79
|
test_cases.each do |test_case|
|
80
80
|
desc "Run #{test_case} tests"
|
81
81
|
RSpec::Core::RakeTask.new(test_case) do |task|
|
82
|
-
task.pattern = "spec/lcm/#{test_case}/**/*_spec.rb"
|
82
|
+
task.pattern = test_case['integration'] ? "spec/lcm/integration/spec/#{test_case.to_s.split('-')[-1]}/*_spec.rb" : "spec/lcm/#{test_case}/**/*_spec.rb"
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
@@ -101,8 +101,14 @@ namespace :test do
|
|
101
101
|
test_cases.each do |t|
|
102
102
|
desc "Run #{t} tests in Docker"
|
103
103
|
task t do
|
104
|
-
|
105
|
-
|
104
|
+
if t.to_s == 'integration'
|
105
|
+
system("docker-compose -f docker-compose.lcm.yml run --rm appstore /bin/bash -c ./spec/integration_with_postgresql.sh") ||
|
106
|
+
fail('Test execution failed!')
|
107
|
+
else
|
108
|
+
system("docker-compose -f docker-compose.lcm.yml run --rm appstore bundle exec rake -f lcm.rake test:#{t}") ||
|
109
|
+
fail('Test execution failed!')
|
110
|
+
end
|
111
|
+
|
106
112
|
end
|
107
113
|
end
|
108
114
|
end
|
@@ -43,7 +43,7 @@ module GoodData
|
|
43
43
|
RESULT_HEADER = [
|
44
44
|
:id,
|
45
45
|
:status,
|
46
|
-
:
|
46
|
+
:project,
|
47
47
|
:client,
|
48
48
|
:type
|
49
49
|
]
|
@@ -102,7 +102,13 @@ module GoodData
|
|
102
102
|
options = { delete_projects: delete_projects }
|
103
103
|
options.merge!(delete_extra_option(params, delete_extra)) if delete_extra
|
104
104
|
|
105
|
-
domain.update_clients(params.clients, options)
|
105
|
+
results = domain.update_clients(params.clients, options)
|
106
|
+
# Update status to CREATED if the client has no project
|
107
|
+
results&.each do |r|
|
108
|
+
r[:status] = 'CREATED' if r[:originalProject].nil?
|
109
|
+
r[:project] = r[:originalProject]
|
110
|
+
end
|
111
|
+
results
|
106
112
|
end
|
107
113
|
|
108
114
|
private
|
@@ -48,7 +48,8 @@ module GoodData
|
|
48
48
|
domain_name = params.organization || params.domain
|
49
49
|
fail "Either organisation or domain has to be specified in params" unless domain_name
|
50
50
|
domain = client.domain(domain_name) || fail("Invalid domain name specified - #{domain_name}")
|
51
|
-
|
51
|
+
error_message = nil
|
52
|
+
invalid_client_ids = []
|
52
53
|
begin
|
53
54
|
results = params.segments.map do |segment|
|
54
55
|
segment_object = domain.segments(segment.segment_id, data_product)
|
@@ -57,33 +58,53 @@ module GoodData
|
|
57
58
|
end
|
58
59
|
|
59
60
|
unless tmp.empty?
|
60
|
-
|
61
|
+
synchronize_project = {
|
61
62
|
segment_id: segment.segment_id,
|
62
63
|
from: segment.development_pid,
|
63
64
|
to: tmp.map do |entry|
|
64
65
|
unless entry[:project_uri]
|
65
|
-
|
66
|
+
error_message = "There was error during provisioning clients: #{entry[:error]}" unless error_message
|
67
|
+
invalid_client_ids << entry[:id]
|
68
|
+
next
|
66
69
|
end
|
67
70
|
{
|
68
71
|
pid: entry[:project_uri].split('/').last,
|
69
72
|
client_id: entry[:id]
|
70
73
|
}
|
71
|
-
end
|
74
|
+
end.compact
|
72
75
|
}
|
76
|
+
|
77
|
+
synchronize_projects << synchronize_project unless synchronize_project[:to].empty?
|
78
|
+
end
|
79
|
+
|
80
|
+
if error_message
|
81
|
+
params.gdc_logger.debug "#{error_message}. Purge all invalid clients now ..."
|
82
|
+
deleted_client_ids = []
|
83
|
+
|
84
|
+
segment_object.clients.map do |segment_client|
|
85
|
+
project = segment_client.project
|
86
|
+
if (project.nil? || project.deleted?)
|
87
|
+
client_id = segment_client.client_id
|
88
|
+
if invalid_client_ids.include?(client_id)
|
89
|
+
segment_client.delete
|
90
|
+
deleted_client_ids << client_id
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
params.gdc_logger.debug "Deleted clients: #{deleted_client_ids.join(', ')}"
|
96
|
+
raise error_message unless error_message['TooManyProjectsCreatedException'] || error_message['Max number registered projects']
|
97
|
+
break tmp
|
73
98
|
end
|
74
99
|
|
75
100
|
tmp
|
76
101
|
end
|
77
102
|
rescue => e
|
78
|
-
params.gdc_logger.error "Problem occurs when provisioning clients.
|
79
|
-
res = LCM2.run_action PurgeClients, params
|
80
|
-
params.gdc_logger.debug "Purge clients result: #{res}"
|
81
|
-
deleted_client_ids = res[:results].select { |r| r[:status] == 'purged' }.map { |r| r[:client_id] }
|
82
|
-
params.gdc_logger.error "Deleted clients: #{deleted_client_ids.join(', ')}"
|
103
|
+
params.gdc_logger.error "Problem occurs when provisioning clients."
|
83
104
|
raise e
|
84
105
|
end
|
85
106
|
|
86
|
-
results.flatten!
|
107
|
+
results.flatten! if results
|
87
108
|
|
88
109
|
# Return results
|
89
110
|
{
|
@@ -456,10 +456,12 @@ Available values for setting language are: #{available_languages}."
|
|
456
456
|
alias_method :add_clients_settings, :update_clients_settings
|
457
457
|
|
458
458
|
def update_clients(data, options = {})
|
459
|
+
results = []
|
459
460
|
data.group_by(&:data_product_id).each do |data_product_id, client_update_data|
|
460
461
|
data_product = data_products(data_product_id)
|
461
|
-
data_product.update_clients(client_update_data, options)
|
462
|
+
results.concat data_product.update_clients(client_update_data, options)
|
462
463
|
end
|
464
|
+
results
|
463
465
|
end
|
464
466
|
|
465
467
|
# Update user in domain
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# Copyright (c) 2010-2021 GoodData Corporation. All rights reserved.
|
5
|
+
# This source code is licensed under the BSD-style license found in the
|
6
|
+
# LICENSE file in the root directory of this source tree.
|
7
|
+
|
8
|
+
require_relative 'analytical_visualization_object'
|
9
|
+
|
10
|
+
module GoodData
|
11
|
+
class AnalyticalDashboard < GoodData::AnalyticalVisualizationObject
|
12
|
+
EMPTY_OBJECT = {
|
13
|
+
'analyticalDashboard' => {
|
14
|
+
'content' => {
|
15
|
+
'filterContext' => '',
|
16
|
+
'layout' => {},
|
17
|
+
'widgets' => []
|
18
|
+
},
|
19
|
+
'meta' => {
|
20
|
+
'deprecated' => '0',
|
21
|
+
'summary' => '',
|
22
|
+
'title' => ''
|
23
|
+
}
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
ASSIGNABLE_MEMBERS = %i[filterContext layout widgets deprecated summary title]
|
28
|
+
|
29
|
+
class << self
|
30
|
+
# Method intended to get all AnalyticalDashboard objects in a specified project
|
31
|
+
#
|
32
|
+
# @param options [Hash] the options hash
|
33
|
+
# @option options [Boolean] :full with true value will pull in full objects. Default is false value
|
34
|
+
# @return [Array<GoodData::AnalyticalDashboard>] Return AnalyticalDashboard list
|
35
|
+
def all(options = { :client => GoodData.connection, :project => GoodData.project })
|
36
|
+
query('analyticalDashboard', AnalyticalDashboard, options)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Create Analytical Dashboard in the specify project
|
40
|
+
#
|
41
|
+
# @param analytical_dashboard [Hash] the data of object will be created
|
42
|
+
# @param options [Hash] The project that the object will be created in
|
43
|
+
# @return GoodData::AnalyticalDashboard object
|
44
|
+
def create(analytical_dashboard = {}, options = { :client => GoodData.client, :project => GoodData.project })
|
45
|
+
GoodData::AnalyticalVisualizationObject.create(analytical_dashboard, AnalyticalDashboard, EMPTY_OBJECT, ASSIGNABLE_MEMBERS, options)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# Copyright (c) 2010-2021 GoodData Corporation. All rights reserved.
|
5
|
+
# This source code is licensed under the BSD-style license found in the
|
6
|
+
# LICENSE file in the root directory of this source tree.
|
7
|
+
|
8
|
+
module GoodData
|
9
|
+
class AnalyticalVisualizationObject < GoodData::MdObject
|
10
|
+
class << self
|
11
|
+
# Create a specify object in the specify project
|
12
|
+
#
|
13
|
+
# @param object_data [Hash] the data of object will be created
|
14
|
+
# @param klass [Class] A class used for instantiating the returned data
|
15
|
+
# @param empty_data_object [Hash] the empty data of object will be created
|
16
|
+
# @param assignable_properties [Hash] the properties allow updating
|
17
|
+
# @param options [Hash] The project that the object will be created in
|
18
|
+
# @return klass object
|
19
|
+
def create(object_data, klass, empty_data_object = {}, assignable_properties = [], options = { :client => GoodData.client, :project => GoodData.project })
|
20
|
+
client, project = GoodData.get_client_and_project(GoodData::Helpers.symbolize_keys(options))
|
21
|
+
|
22
|
+
res = client.create(klass, GoodData::Helpers.deep_dup(GoodData::Helpers.stringify_keys(empty_data_object)), :project => project)
|
23
|
+
object_data.each do |k, v|
|
24
|
+
res.send("#{k}=", v) if assignable_properties.include? k
|
25
|
+
end
|
26
|
+
res
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
#
|
4
|
+
# Copyright (c) 2010-2021 GoodData Corporation. All rights reserved.
|
5
|
+
# This source code is licensed under the BSD-style license found in the
|
6
|
+
# LICENSE file in the root directory of this source tree.
|
7
|
+
|
8
|
+
require_relative 'analytical_visualization_object'
|
9
|
+
|
10
|
+
module GoodData
|
11
|
+
class VisualizationObject < GoodData::AnalyticalVisualizationObject
|
12
|
+
EMPTY_OBJECT = {
|
13
|
+
'visualizationObject' => {
|
14
|
+
'content' => {
|
15
|
+
'buckets' => [],
|
16
|
+
'properties' => '',
|
17
|
+
'visualizationClass' => {}
|
18
|
+
},
|
19
|
+
'links' => {},
|
20
|
+
'meta' => {
|
21
|
+
'deprecated' => '0',
|
22
|
+
'summary' => '',
|
23
|
+
'title' => ''
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
ASSIGNABLE_MEMBERS = %i[buckets properties visualizationClass deprecated summary title]
|
29
|
+
|
30
|
+
class << self
|
31
|
+
# Method intended to get all VisualizationObject objects in a specified project
|
32
|
+
#
|
33
|
+
# @param options [Hash] the options hash
|
34
|
+
# @option options [Boolean] :full with true value to pull full objects
|
35
|
+
# @return [Array<GoodData::VisualizationObject>] Return VisualizationObject list
|
36
|
+
def all(options = { :client => GoodData.connection, :project => GoodData.project })
|
37
|
+
query('visualizationObject', VisualizationObject, options)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Create Visualization Object in the specify project
|
41
|
+
#
|
42
|
+
# @param visualization_object [Hash] the data of object will be created
|
43
|
+
# @param options [Hash] The project that the object will be created in
|
44
|
+
# @return GoodData::VisualizationObject object
|
45
|
+
def create(visualization_object = {}, options = { :client => GoodData.client, :project => GoodData.project })
|
46
|
+
GoodData::AnalyticalVisualizationObject.create(visualization_object, VisualizationObject, EMPTY_OBJECT, ASSIGNABLE_MEMBERS, options)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/gooddata/rest/phmap.rb
CHANGED
@@ -81,7 +81,7 @@ module GoodData
|
|
81
81
|
%r{/gdc/internal/lcm/domains/[^\/]+/dataproducts/[^\/]+/segments/[^\/]+/syncProcesses}],
|
82
82
|
|
83
83
|
['/gdc/internal/projects/{id}/objects/setPermissions', %r{/gdc/internal/projects/[^\/]+/objects/setPermissions}],
|
84
|
-
|
84
|
+
['/gdc/internal/projects/{id}/roles', %r{/gdc/internal/projects/[^\/]+/roles}],
|
85
85
|
['/gdc/md/{id}/variables/item/{id}', %r{/gdc/md/[^\/]+/variables/item/[\d]+}],
|
86
86
|
['/gdc/md/{id}/validate/task/{id}', %r{/gdc/md/[^\/]+/validate/task/[^\/]+}],
|
87
87
|
['/gdc/md/{id}/using2/{id}/{id}', %r{/gdc/md/[^\/]+/using2/[\d]+/[\d]+}],
|
@@ -1,51 +1,51 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
+
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
1
|
+
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
|
@@ -1,109 +1,109 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
1
|
+
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
|
109
|
+
j9/cqg==
|
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.1.
|
4
|
+
version: 2.1.19
|
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: 2021-
|
17
|
+
date: 2021-05-21 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: license_finder
|
@@ -320,16 +320,22 @@ dependencies:
|
|
320
320
|
name: docile
|
321
321
|
requirement: !ruby/object:Gem::Requirement
|
322
322
|
requirements:
|
323
|
-
- - "
|
323
|
+
- - ">"
|
324
324
|
- !ruby/object:Gem::Version
|
325
325
|
version: '1.1'
|
326
|
+
- - "<"
|
327
|
+
- !ruby/object:Gem::Version
|
328
|
+
version: 1.4.0
|
326
329
|
type: :runtime
|
327
330
|
prerelease: false
|
328
331
|
version_requirements: !ruby/object:Gem::Requirement
|
329
332
|
requirements:
|
330
|
-
- - "
|
333
|
+
- - ">"
|
331
334
|
- !ruby/object:Gem::Version
|
332
335
|
version: '1.1'
|
336
|
+
- - "<"
|
337
|
+
- !ruby/object:Gem::Version
|
338
|
+
version: 1.4.0
|
333
339
|
- !ruby/object:Gem::Dependency
|
334
340
|
name: gli
|
335
341
|
requirement: !ruby/object:Gem::Requirement
|
@@ -920,6 +926,8 @@ files:
|
|
920
926
|
- lib/gooddata/models/links.rb
|
921
927
|
- lib/gooddata/models/membership.rb
|
922
928
|
- lib/gooddata/models/metadata.rb
|
929
|
+
- lib/gooddata/models/metadata/analytical_dashboard.rb
|
930
|
+
- lib/gooddata/models/metadata/analytical_visualization_object.rb
|
923
931
|
- lib/gooddata/models/metadata/attribute.rb
|
924
932
|
- lib/gooddata/models/metadata/dashboard.rb
|
925
933
|
- lib/gooddata/models/metadata/dashboard/dashboard_item.rb
|
@@ -944,6 +952,7 @@ files:
|
|
944
952
|
- lib/gooddata/models/metadata/scheduled_mail/dashboard_attachment.rb
|
945
953
|
- lib/gooddata/models/metadata/scheduled_mail/report_attachment.rb
|
946
954
|
- lib/gooddata/models/metadata/variable.rb
|
955
|
+
- lib/gooddata/models/metadata/visualization_object.rb
|
947
956
|
- lib/gooddata/models/model.rb
|
948
957
|
- lib/gooddata/models/models.rb
|
949
958
|
- lib/gooddata/models/module_constants.rb
|