gooddata 2.1.19-java → 2.3.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/.gdc-ii-config.yaml +42 -1
  3. data/.github/workflows/build.yml +67 -0
  4. data/.github/workflows/pre-merge.yml +72 -0
  5. data/.pronto.yml +1 -0
  6. data/.rubocop.yml +2 -14
  7. data/CHANGELOG.md +47 -0
  8. data/Dockerfile +27 -14
  9. data/Dockerfile.jruby +5 -15
  10. data/Dockerfile.ruby +5 -7
  11. data/Gemfile +4 -2
  12. data/README.md +6 -6
  13. data/Rakefile +1 -1
  14. data/SDK_VERSION +1 -1
  15. data/VERSION +1 -1
  16. data/bin/run_brick.rb +7 -0
  17. data/ci/mssql/pom.xml +62 -0
  18. data/ci/mysql/pom.xml +62 -0
  19. data/ci/redshift/pom.xml +4 -5
  20. data/docker-compose.lcm.yml +42 -4
  21. data/docker-compose.yml +42 -0
  22. data/gooddata.gemspec +21 -21
  23. data/k8s/charts/lcm-bricks/Chart.yaml +1 -1
  24. data/lcm.rake +11 -8
  25. data/lib/gooddata/bricks/base_pipeline.rb +26 -0
  26. data/lib/gooddata/bricks/brick.rb +0 -1
  27. data/lib/gooddata/bricks/middleware/aws_middleware.rb +35 -9
  28. data/lib/gooddata/bricks/middleware/execution_result_middleware.rb +3 -3
  29. data/lib/gooddata/bricks/pipeline.rb +2 -14
  30. data/lib/gooddata/cloud_resources/blobstorage/blobstorage_client.rb +98 -0
  31. data/lib/gooddata/cloud_resources/mssql/drivers/.gitkeepme +0 -0
  32. data/lib/gooddata/cloud_resources/mssql/mssql_client.rb +122 -0
  33. data/lib/gooddata/cloud_resources/mysql/drivers/.gitkeepme +0 -0
  34. data/lib/gooddata/cloud_resources/mysql/mysql_client.rb +121 -0
  35. data/lib/gooddata/cloud_resources/postgresql/postgresql_client.rb +0 -1
  36. data/lib/gooddata/cloud_resources/redshift/drivers/.gitkeepme +0 -0
  37. data/lib/gooddata/cloud_resources/redshift/redshift_client.rb +0 -2
  38. data/lib/gooddata/cloud_resources/snowflake/snowflake_client.rb +18 -1
  39. data/lib/gooddata/helpers/data_helper.rb +9 -4
  40. data/lib/gooddata/lcm/actions/base_action.rb +157 -0
  41. data/lib/gooddata/lcm/actions/collect_data_product.rb +2 -1
  42. data/lib/gooddata/lcm/actions/collect_meta.rb +3 -1
  43. data/lib/gooddata/lcm/actions/collect_projects_warning_status.rb +53 -0
  44. data/lib/gooddata/lcm/actions/collect_segment_clients.rb +14 -0
  45. data/lib/gooddata/lcm/actions/initialize_continue_on_error_option.rb +87 -0
  46. data/lib/gooddata/lcm/actions/migrate_gdc_date_dimension.rb +31 -4
  47. data/lib/gooddata/lcm/actions/provision_clients.rb +34 -5
  48. data/lib/gooddata/lcm/actions/synchronize_cas.rb +24 -4
  49. data/lib/gooddata/lcm/actions/synchronize_clients.rb +112 -11
  50. data/lib/gooddata/lcm/actions/synchronize_dataset_mappings.rb +89 -0
  51. data/lib/gooddata/lcm/actions/synchronize_etls_in_segment.rb +48 -11
  52. data/lib/gooddata/lcm/actions/synchronize_kd_dashboard_permission.rb +103 -0
  53. data/lib/gooddata/lcm/actions/synchronize_ldm.rb +79 -23
  54. data/lib/gooddata/lcm/actions/synchronize_ldm_layout.rb +98 -0
  55. data/lib/gooddata/lcm/actions/synchronize_pp_dashboard_permission.rb +108 -0
  56. data/lib/gooddata/lcm/actions/synchronize_schedules.rb +31 -1
  57. data/lib/gooddata/lcm/actions/synchronize_user_filters.rb +26 -18
  58. data/lib/gooddata/lcm/actions/synchronize_user_groups.rb +30 -4
  59. data/lib/gooddata/lcm/actions/synchronize_users.rb +11 -10
  60. data/lib/gooddata/lcm/actions/update_metric_formats.rb +202 -0
  61. data/lib/gooddata/lcm/data/delete_from_lcm_release.sql.erb +5 -0
  62. data/lib/gooddata/lcm/exceptions/lcm_execution_warning.rb +15 -0
  63. data/lib/gooddata/lcm/helpers/check_helper.rb +19 -0
  64. data/lib/gooddata/lcm/helpers/release_table_helper.rb +42 -8
  65. data/lib/gooddata/lcm/lcm2.rb +50 -4
  66. data/lib/gooddata/lcm/user_bricks_helper.rb +9 -0
  67. data/lib/gooddata/mixins/inspector.rb +1 -1
  68. data/lib/gooddata/mixins/md_object_query.rb +1 -0
  69. data/lib/gooddata/models/data_source.rb +5 -1
  70. data/lib/gooddata/models/dataset_mapping.rb +36 -0
  71. data/lib/gooddata/models/ldm_layout.rb +38 -0
  72. data/lib/gooddata/models/metadata/label.rb +26 -27
  73. data/lib/gooddata/models/project.rb +230 -30
  74. data/lib/gooddata/models/project_creator.rb +83 -6
  75. data/lib/gooddata/models/schedule.rb +13 -1
  76. data/lib/gooddata/models/segment.rb +2 -1
  77. data/lib/gooddata/models/user_filters/user_filter_builder.rb +162 -68
  78. data/lib/gooddata/rest/connection.rb +5 -3
  79. data/lib/gooddata/rest/phmap.rb +2 -0
  80. data/lib/gooddata.rb +1 -0
  81. data/lib/gooddata_brick_base.rb +35 -0
  82. data/sonar-project.properties +6 -0
  83. metadata +96 -65
  84. data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +0 -37
  85. data/lib/gooddata/cloud_resources/redshift/drivers/log4j.properties +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6afb355f2eb0d504b8df9e7ef45485562eae844138055facb30e0d4b7fcd0fac
4
- data.tar.gz: cd6110513b671b762888123ed5d0531b0ffea0b9c4e3dd47e3e5c8caa30bf398
3
+ metadata.gz: 999e70b612230888fb6f66090aae9b6e5120529404e9b891622b39e8a1539762
4
+ data.tar.gz: 927761f24c55ce2c2466485ec02e023d638678c709e728f1a1d58f15457897cd
5
5
  SHA512:
6
- metadata.gz: 0b07a83593d66a7844ea50a5099bc13766ab96bc30246eec45e8c9a893307f753ac03ba15b9a75736dcef72df3c9a44e9947b0311811657e659eca1913908d71
7
- data.tar.gz: 7a978ba12fa8095e7b4fa020e571b7327b1e1c960f5e80ce5f8b4f0d0863ce652a5ce4924282e95cccb8239a9f70b380109f659f39e9a0bd01af7d56af072427
6
+ metadata.gz: dde329134c48e4599bfd08dbca167b4d5647558d98ef20feb7a60466307a2be5698c9bbe0986b34345ce7c869c400b54fcb7c223219d3cd0aad5b3ced1b538fd
7
+ data.tar.gz: 288cf5b7576ba785029695367654bf03ef44fffe067cca006425c32a18ddf016fdfec1204b1b819e04d1b452b61db0c453cef36efe6c9b4acbe5e6021f742055
data/.gdc-ii-config.yaml CHANGED
@@ -2,6 +2,23 @@ microservices:
2
2
  lcm-bricks:
3
3
  docker:
4
4
  dockerfile: './Dockerfile'
5
+ # specifies whether promote image to M3 image tag when release LCM. Default always promote image. Don't remote
6
+ # image when promoteImage configure false
7
+ promoteImage: false
8
+ # specifies whether run register pipeline components for the image when promote image. Default always run register
9
+ # pipeline components. Don't run register when registerPipelineComponentsWhenPromote configure false
10
+ registerPipelineComponentsWhenPromote: false
11
+ argumentsFromFiles:
12
+ BRICKS_VERSION: 'VERSION'
13
+ lcm-bricks-nextversion:
14
+ docker:
15
+ dockerfile: './Dockerfile'
16
+ # specifies whether promote image to M3 image tag when release LCM. Default always promote image. Don't remote
17
+ # image when promoteImage configure false
18
+ promoteImage: true
19
+ # specifies whether run register pipeline components for the image when promote image. Default always run register
20
+ # pipeline components. Don't run register when registerPipelineComponentsWhenPromote configure false
21
+ registerPipelineComponentsWhenPromote: false
5
22
  argumentsFromFiles:
6
23
  BRICKS_VERSION: 'VERSION'
7
24
 
@@ -11,6 +28,30 @@ integratedTests:
11
28
  path: .
12
29
  vault:
13
30
  GD_SPEC_PASSWORD: "$VAULT_SPECIAL_PREFIX/ruby-test-bia-encryption-key"
31
+ RT_S3_BUCKET_NAME: "$VAULT_SPECIAL_PREFIX/ruby-test-s3-credentials bucket_name"
32
+ RT_S3_ACCESS_KEY: "$VAULT_SPECIAL_PREFIX/ruby-test-s3-credentials access_key"
33
+ RT_S3_SECRET_KEY: "$VAULT_SPECIAL_PREFIX/ruby-test-s3-credentials secret_key"
34
+ GD_DEV_DEV_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg3 dev_token"
35
+ GD_DEV_PROD_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg3 prod_token"
36
+ GD_DEV_VERTICA_DEV_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg3 vertica_dev_token"
37
+ GD_DEV_VERTICA_PROD_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg3 vertica_prod_token"
38
+ GD_DEV_PASSWORD: "$VAULT_SPECIAL_PREFIX/ruby-test-stg3 gd_password"
39
+ GD_DEV_GD_PROJECT_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg3 gd_project_token"
40
+ GD_DEV_DEFAULT_PASSWORD: "$VAULT_SPECIAL_PREFIX/ruby-test-stg3 gd_default_password"
41
+ GD_TEST_DEV_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg2 dev_token"
42
+ GD_TEST_PROD_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg2 prod_token"
43
+ GD_TEST_VERTICA_DEV_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg2 vertica_dev_token"
44
+ GD_TEST_VERTICA_PROD_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg2 vertica_prod_token"
45
+ GD_TEST_PASSWORD: "$VAULT_SPECIAL_PREFIX/ruby-test-stg2 gd_password"
46
+ GD_TEST_GD_PROJECT_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg2 gd_project_token"
47
+ GD_TEST_DEFAULT_PASSWORD: "$VAULT_SPECIAL_PREFIX/ruby-test-stg2 gd_default_password"
48
+ GD_STG_DEV_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg1 dev_token"
49
+ GD_STG_PROD_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg1 prod_token"
50
+ GD_STG_VERTICA_DEV_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg1 vertica_dev_token"
51
+ GD_STG_VERTICA_PROD_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg1 vertica_prod_token"
52
+ GD_STG_PASSWORD: "$VAULT_SPECIAL_PREFIX/ruby-test-stg1 gd_password"
53
+ GD_STG_GD_PROJECT_TOKEN: "$VAULT_SPECIAL_PREFIX/ruby-test-stg1 gd_project_token"
54
+ GD_STG_DEFAULT_PASSWORD: "$VAULT_SPECIAL_PREFIX/ruby-test-stg1 gd_default_password"
14
55
  command: ./bin/run_smoke_tests.sh
15
56
  image: harbor.intgdc.com/staging/lcm-bricks:GIT_REV
16
57
  repo_mount_dir: /src
@@ -22,4 +63,4 @@ configFilesForUpdate:
22
63
  - '.gdc-ii-config-chart.yaml'
23
64
 
24
65
  customConstants:
25
- pipeline.deploy.testEnvironments: ['stg9', 'stg3', 'stg2', 'stg']
66
+ pipeline.gitops-deploy.testEnvironments: ['stg9', 'stg3', 'stg2', 'stg1']
@@ -0,0 +1,67 @@
1
+ name: build
2
+ on:
3
+ push:
4
+ branches: [master]
5
+ jobs:
6
+ jruby-gem-release:
7
+ runs-on: ubuntu-latest
8
+ steps:
9
+ - uses: actions/checkout@v2
10
+ with:
11
+ fetch-depth: 0
12
+ - uses: ruby/setup-ruby@v1
13
+ with:
14
+ ruby-version: jruby-9.4.1
15
+ bundler-cache: true
16
+ - uses: actions/setup-java@v2
17
+ with:
18
+ java-version: '8'
19
+ distribution: 'adopt'
20
+ - uses: actions/cache@v2
21
+ with:
22
+ path: ~/.m2
23
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
24
+ restore-keys: ${{ runner.os }}-m2
25
+ - name: Run gem release
26
+ run: |
27
+ echo ${SAMPLE_KEY:0:3}
28
+ echo ${GEM_HOST_API_KEY:0:20}
29
+ bundle exec rake gem:release
30
+ env:
31
+ SAMPLE_KEY: "a1234567"
32
+ GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
33
+ rubygems-release:
34
+ runs-on: ubuntu-latest
35
+ steps:
36
+ - uses: actions/checkout@v2
37
+ with:
38
+ fetch-depth: 0
39
+ - uses: ruby/setup-ruby@v1
40
+ with:
41
+ ruby-version: 3.2.1
42
+ bundler-cache: true
43
+ - name: Run gem release
44
+ run: |
45
+ echo ${SAMPLE_KEY:0:3}
46
+ echo ${GEM_HOST_API_KEY:0:20}
47
+ bundle exec rake gem:release
48
+ env:
49
+ SAMPLE_KEY: "a1234567"
50
+ GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
51
+ gem-smoke-test:
52
+ runs-on: ubuntu-latest
53
+ needs: [jruby-gem-release, rubygems-release]
54
+ strategy:
55
+ matrix:
56
+ ruby-version: [3.2.1, jruby-9.4.1]
57
+ steps:
58
+ - uses: actions/checkout@v3
59
+ with:
60
+ fetch-depth: 0
61
+ - uses: ruby/setup-ruby@v1
62
+ with:
63
+ ruby-version: ${{ matrix.ruby-version }}
64
+ bundler-cache: true
65
+ - run: |
66
+ gem install gooddata
67
+ ruby -e "require 'gooddata';GoodData.version"
@@ -0,0 +1,72 @@
1
+ name: pre-merge
2
+ on:
3
+ pull_request:
4
+ branches:
5
+ - develop
6
+ - master
7
+ jobs:
8
+ unit-tests:
9
+ runs-on: ubuntu-latest
10
+ strategy:
11
+ matrix:
12
+ ruby-version: [2.5, 2.6, 2.7.6, 3.2.1, jruby-9.2.21, jruby-9.3.14, jruby-9.4.1]
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+ with:
16
+ fetch-depth: 0
17
+ - uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: ${{ matrix.ruby-version }}
20
+ bundler-cache: true
21
+ - run: bundle exec rake test:unit
22
+ - run: bundle exec rake test:unit
23
+ continue-on-error: true
24
+ unit-tests-OSX:
25
+ runs-on: macos-latest
26
+ strategy:
27
+ matrix:
28
+ include:
29
+ - ruby-version: 2.5
30
+ xcode-version: 9
31
+ - ruby-version: 2.6
32
+ xcode-version: 9
33
+ - ruby-version: 2.7.6
34
+ xcode-version: 9
35
+ - ruby-version: 3.2.1
36
+ xcode-version: 9
37
+ - ruby-version: jruby-9.2.9
38
+ xcode-version: latest
39
+ - ruby-version: jruby-9.4.1
40
+ xcode-version: latest
41
+ steps:
42
+ - name: run prepare-env
43
+ run: brew install pkg-config
44
+ - uses: actions/checkout@v3
45
+ - uses: ruby/setup-ruby@v1
46
+ with:
47
+ ruby-version: ${{ matrix.ruby-version }}
48
+ bundler-cache: true
49
+ - name: run tests
50
+ run: bundle exec rake test:unit
51
+ pronto-code-review:
52
+ runs-on: ubuntu-latest
53
+ steps:
54
+ - uses: actions/checkout@v3
55
+ with:
56
+ fetch-depth: 0
57
+ - uses: ruby/setup-ruby@v1
58
+ with:
59
+ ruby-version: 3.2
60
+ bundler-cache: true
61
+ - name: run pronto-code-review
62
+ run: |
63
+ set -x
64
+ git remote add upstream https://github.com/gooddata/gooddata-ruby.git
65
+ git fetch upstream $GITHUB_BASE_REF
66
+ failed=0
67
+ PRONTO_FLAY_MASS_THRESHOLD=50 bundle exec pronto run -c upstream/$GITHUB_BASE_REF --exit-code lib || failed=1
68
+ PRONTO_FLAY_MASS_THRESHOLD=100 bundle exec pronto run -c upstream/$GITHUB_BASE_REF --exit-code spec || failed=1
69
+ if [ "$failed" -ne 0 ] ; then
70
+ exit 1
71
+ fi
72
+ shell: bash
data/.pronto.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  all:
2
2
  exclude:
3
3
  - 'spec/**/*'
4
+ - 'lib/gooddata/lcm/actions/base_action.rb'
4
5
  verbose: true
5
6
  github:
6
7
  slug: gooddata/gooddata-ruby
data/.rubocop.yml CHANGED
@@ -11,7 +11,7 @@ ClassLength:
11
11
  Enabled: false
12
12
 
13
13
  Metrics/BlockLength:
14
- Max: 40
14
+ Max: 60
15
15
 
16
16
  ModuleLength:
17
17
  Enabled: false
@@ -49,9 +49,6 @@ PerceivedComplexity:
49
49
  Alias:
50
50
  Enabled: false
51
51
 
52
- Casecmp:
53
- Enabled: false
54
-
55
52
  ConditionalAssignment:
56
53
  Enabled: false
57
54
 
@@ -73,12 +70,6 @@ MultilineMethodCallIndentation:
73
70
  MutableConstant:
74
71
  Enabled: false
75
72
 
76
- RedundantBlockCall:
77
- Enabled: false
78
-
79
- RedundantMerge:
80
- Enabled: false
81
-
82
73
  RedundantParentheses:
83
74
  Enabled: false
84
75
 
@@ -88,10 +79,7 @@ StringLiterals:
88
79
  SignalException:
89
80
  Enabled: false
90
81
 
91
- TimesMap:
92
- Enabled: false
93
-
94
- UnneededInterpolation:
82
+ RedundantInterpolation:
95
83
  Enabled: false
96
84
 
97
85
  UselessAccessModifier:
data/CHANGELOG.md CHANGED
@@ -1,4 +1,51 @@
1
1
  # GoodData Ruby SDK Changelog
2
+
3
+ ## 2.3.0
4
+ - BUGFIX: MSF-25800 Add SSLErrorWaitReadable error to retry error list
5
+ - MSF-24148: Upgrade LCM image to run with JRuby latest version 9.4.1
6
+ - BUGFIX: MSF-23944 Change log level of rest API call to DEBUG
7
+ - BUGFIX: TMA-1744 Store domain users to cache to avoid calling API multiple times
8
+ - FEATURE: MSF-23266 support mongo BI mysql
9
+ - BUGFIX: MSF-22958 - Lookup user in domain if not found in project
10
+ - FEATURE: MSF-23033 change to gooddata_platform snowflake connection
11
+
12
+ ## 2.2.0
13
+ - FEATURE: MSF-23003 Supports Ruby 2.7, remove salesforce_bulk_query dependency
14
+ - FEATURE:TMA-1737, TMA-1738 - Change to propagate dateFilterConfig and dashboardPlugin during LCM release and rollout.
15
+ - MSF-22739: Bump lcm-bricks chart version
16
+ - FEATURE: MSF-22133 bump LCM version to 3.7.42
17
+ - FEATURE: MSF-22578 Add Gooddata platform parameter for snowflake url
18
+ - FEATURE: MSF-22129 add support mysql input source
19
+ - BUGFIX: MSF-22215 Add more log to MigrateGdcDateDimension action of Rollout brick
20
+ - MSF-22480: Update MSF ruby docker images to Centos 8
21
+ - BUGFIX: MSF-22414 Should not fail rollout if any errors related to delete old master workspaces
22
+ - BUGFIX: MSF-22164 Diff against clients is done when there are no LDM changes
23
+ - BUGFIX:MSF-22296 - Fix frozen object when release with datasource in dev ws.
24
+ - FEATURE: MSF-22170 Update integration test for NFS when delete old master project
25
+ - BUGFIX:MSF-22175 - Revert to use Enumerator on MD object
26
+ - BUGFIX:MSF-22175 - Change to not use Enumerator
27
+ - FEATURE: MSF-22016 add support trigger execution status
28
+ - MSF-22170: Add integration test to rollout brick for delete old master workspace
29
+ - BUGFIX:MSF-22175 - bump LCM version to 3.7.33
30
+ - BUGFIX:MSF-22175 - Ignore empty log in table SynchronizeUserFilters
31
+ - BUGFIX:MSF-22140 - Fix error when user using numeric client_id
32
+ - MSF-21292: Add capability to remove old master workspaces to LCM brick
33
+ - FEATURE:TMA-1610 - Change redshift repos to nexus
34
+ - FEATURE:TMA-1610 - Update metric for client localization
35
+ - FEATURE: MSF-21860 bump LCM version 3.7.30
36
+ - BUGFIX: MSF-21805 Fix loop forever when sync schedules
37
+ - REQUEST: MSF-21521 - implement integration test for MSSQL Datasource
38
+ - BUGFIX: MSF-21477 Don’t use delete_suffix which not available for ruby 2.3
39
+ - BUGFIX:MSF-21702 - Fix for empty date-dimension and bump LCM version to 3.7.29
40
+ - FEATURE:MSF-21056 - Sync Dataset Mapping to Release, rollout, provisioning bricks
41
+ - FEATURE: MSF-21165 - implement mssql data source
42
+ - BUGFIX: MSF-21241 Poll validElements until task finished
43
+ - SETI-5977: Migrate Travis-CI to Github Actions - Merge gem-release and gem-smoke-test into build pipeline - Skip intergration tests from pre-merge pipeline
44
+ - MSF-20263: bump VERSION 3.7.27
45
+ - FEATURE: MSF-20653 Support Blob Storage input source
46
+ - Automated base image update (BUILD pipeline from gdc-docker-images, fcb7257)
47
+ - MSF-20737: Update another SSO provider instead of deprecated saleforce.com
48
+
2
49
  ## 2.1.19
3
50
  - BUGFIX: MSF-20827 Fix gem-smoke-test failed when release ruby SDK
4
51
  - BUGFIX: MSF-20826 Failure update license file when release ruby SDK
data/Dockerfile CHANGED
@@ -1,28 +1,26 @@
1
- FROM harbor.intgdc.com/tools/gdc-java-8-jre:89999e9
1
+ FROM 020413372491.dkr.ecr.us-east-1.amazonaws.com/tools/gdc-java-8-jdk-centos9:202311071405.4d8c665
2
2
 
3
3
  ARG RVM_VERSION=stable
4
- ARG JRUBY_VERSION=9.2.5.0
4
+ ARG JRUBY_VERSION=9.4.1.0
5
5
 
6
6
  LABEL image_name="GDC LCM Bricks"
7
7
  LABEL maintainer="LCM <lcm@gooddata.com>"
8
8
  LABEL git_repository_url="https://github.com/gooddata/gooddata-ruby/"
9
- LABEL parent_image="harbor.intgdc.com/tools/gdc-java-8-jre:89999e9"
9
+ LABEL parent_image="020413372491.dkr.ecr.us-east-1.amazonaws.com/tools/gdc-java-8-jdk-centos9:202311071405.4d8c665"
10
10
 
11
11
  # which is required by RVM
12
- RUN yum install -y curl which patch make git maven \
12
+ RUN yum install -y which patch make git maven procps \
13
13
  && yum clean all \
14
14
  && rm -rf /var/cache/yum
15
15
 
16
16
  # Install + verify RVM with gpg (https://rvm.io/rvm/security)
17
- RUN gpg2 --quiet --no-tty --logger-fd 1 --keyserver hkp://ipv4.pool.sks-keyservers.net \
18
- --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
19
- 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \
20
- && echo 409B6B1796C275462A1703113804BB82D39DC0E3:6: | \
21
- gpg2 --quiet --no-tty --logger-fd 1 --import-ownertrust \
22
- && curl -sSO https://raw.githubusercontent.com/rvm/rvm/${RVM_VERSION}/binscripts/rvm-installer \
23
- && curl -sSO https://raw.githubusercontent.com/rvm/rvm/${RVM_VERSION}/binscripts/rvm-installer.asc \
24
- && gpg2 --quiet --no-tty --logger-fd 1 --verify rvm-installer.asc \
25
- && bash rvm-installer ${RVM_VERSION} \
17
+ RUN curl -sSL https://rvm.io/mpapis.asc | gpg --import - \
18
+ && curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import - \
19
+ && curl -sSL https://get.rvm.io | bash -s ${RVM_VERSION} \
20
+ && curl -sSL https://raw.githubusercontent.com/rvm/rvm/${RVM_VERSION}/binscripts/rvm-installer -o rvm-installer \
21
+ && curl -sSL https://raw.githubusercontent.com/rvm/rvm/${RVM_VERSION}/binscripts/rvm-installer.asc -o rvm-installer.asc \
22
+ && gpg2 --verify rvm-installer.asc rvm-installer \
23
+ && bash rvm-installer \
26
24
  && rm rvm-installer rvm-installer.asc \
27
25
  && echo "bundler" >> /usr/local/rvm/gemsets/global.gems \
28
26
  && echo "rvm_silence_path_mismatch_check_flag=1" >> /etc/rvmrc \
@@ -32,7 +30,11 @@ RUN gpg2 --quiet --no-tty --logger-fd 1 --keyserver hkp://ipv4.pool.sks-keyserve
32
30
  SHELL ["/bin/bash", "-l", "-c"]
33
31
 
34
32
  RUN rvm install jruby-${JRUBY_VERSION} && gem update --system \
35
- && gem install bundler rake
33
+ && gem install bundler -v 2.4.6 \
34
+ && gem install rake -v 13.0.6
35
+
36
+ # Make sure java default running with java8
37
+ RUN update-alternatives --set java java-1.8.0-openjdk.x86_64
36
38
 
37
39
  WORKDIR /src
38
40
 
@@ -68,8 +70,19 @@ RUN cp -rf ci/bigquery/target/*.jar ./lib/gooddata/cloud_resources/bigquery/driv
68
70
  RUN mvn -f ci/postgresql/pom.xml clean install -P binary-packaging
69
71
  RUN cp -rf ci/postgresql/target/*.jar ./lib/gooddata/cloud_resources/postgresql/drivers/
70
72
 
73
+ #build mssql dependencies
74
+ RUN mvn -f ci/mssql/pom.xml clean install -P binary-packaging
75
+ RUN cp -rf ci/mssql/target/*.jar ./lib/gooddata/cloud_resources/mssql/drivers/
76
+
77
+ #build mysql dependencies
78
+ RUN mvn -f ci/mysql/pom.xml clean install -P binary-packaging
79
+ RUN cp -rf ci/mysql/target/*.jar ./lib/gooddata/cloud_resources/mysql/drivers/
80
+
71
81
  RUN bundle install
72
82
 
83
+ # Check to make sure Java version is always Java8
84
+ RUN java_version=$(java -version 2>&1) && echo "$java_version" | grep 'version.*1.8' || (echo "Java version is not 1.8" && exit 1)
85
+
73
86
  ARG GIT_COMMIT=unspecified
74
87
  ARG BRICKS_VERSION=unspecified
75
88
  LABEL git_commit=$GIT_COMMIT
data/Dockerfile.jruby CHANGED
@@ -1,17 +1,17 @@
1
- FROM jruby:9.1-alpine
1
+ FROM jruby:9.4.1.0
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++ postgresql postgresql-client openssl
5
+ RUN apt-get update && apt-get install -y curl make gcc git g++ python binutils-gold gnupg libstdc++6 cmake
6
6
 
7
7
  # Switch to directory with sources
8
8
  WORKDIR /src
9
9
  ENV HOME=/src
10
10
  ENV BUNDLE_PATH=$HOME/bundle
11
11
 
12
- RUN gem update --system 3.0.6 \
13
- && gem install --install-dir $BUNDLE_PATH bundler -v 1.17.3 \
14
- && gem install --install-dir $BUNDLE_PATH rake -v 11.3.0
12
+ RUN gem update --system \
13
+ && gem install --install-dir $BUNDLE_PATH bundler -v 2.4.6 \
14
+ && gem install --install-dir $BUNDLE_PATH rake -v 13.0.6
15
15
 
16
16
  ADD . .
17
17
 
@@ -20,13 +20,3 @@ 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/Dockerfile.ruby CHANGED
@@ -1,19 +1,17 @@
1
- FROM ruby:2.3-alpine
1
+ FROM ruby:3.2.1
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++ openssl cmake curl-dev
6
-
7
- RUN ln -s /usr/bin/make /usr/bin/gmake
5
+ RUN apt-get update && apt-get install -y curl make gcc git openssh-client g++ python binutils-gold gnupg libstdc++6 cmake
8
6
 
9
7
  # Switch to directory with sources
10
8
  WORKDIR /src
11
9
  ENV HOME=/src
12
10
  ENV BUNDLE_PATH=$HOME/bundle
13
11
 
14
- RUN gem update --system 3.0.6 \
15
- && gem install --install-dir $BUNDLE_PATH bundler -v 1.17.3 \
16
- && gem install --install-dir $BUNDLE_PATH rake -v 11.3.0
12
+ RUN gem update --system \
13
+ && gem install --install-dir $BUNDLE_PATH bundler -v 2.4.6 \
14
+ && gem install --install-dir $BUNDLE_PATH rake -v 13.0.6
17
15
 
18
16
  ADD . .
19
17
 
data/Gemfile CHANGED
@@ -1,10 +1,12 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'net-smtp', require: false
4
+
3
5
  group 'development' do
4
6
  unless RUBY_PLATFORM == 'java'
5
7
  gem 'pronto-flay',
6
- git: 'https://github.com/kubamahnert/pronto-flay',
7
- branch: 'flay-mass-threshold'
8
+ git: 'https://github.com/prontolabs/pronto-flay'
9
+ # branch: 'flay-mass-threshold'
8
10
  end
9
11
  end
10
12
 
data/README.md CHANGED
@@ -18,8 +18,7 @@ Feel free to check out the [GoodData community website](http://community.gooddat
18
18
  [![Downloads](http://img.shields.io/gem/dt/gooddata.svg)](http://rubygems.org/gems/gooddata)
19
19
  [![Dependency Status](https://gemnasium.com/gooddata/gooddata-ruby.png)](https://gemnasium.com/gooddata/gooddata-ruby)
20
20
  [![Code Climate](https://codeclimate.com/github/gooddata/gooddata-ruby.png)](https://codeclimate.com/github/gooddata/gooddata-ruby)
21
- [![Build Status](https://travis-ci.org/gooddata/gooddata-ruby.png)](https://travis-ci.org/gooddata/gooddata-ruby)
22
- [![Coverage Status](https://coveralls.io/repos/gooddata/gooddata-ruby/badge.png)](https://coveralls.io/r/gooddata/gooddata-ruby)
21
+ [![Build Status](https://github.com/gooddata/gooddata-ruby/actions/workflows/build.yml/badge.svg)](https://github.com/gooddata/gooddata-ruby/actions/workflows/build.yml/)
23
22
 
24
23
  ## Supported versions
25
24
 
@@ -72,16 +71,17 @@ See our [contribution guidelines](/CONTRIBUTING.md).
72
71
 
73
72
  **Originally started by**
74
73
 
75
- Pavel Kolesnikov [ <mailto:pavel@gooddata.com> / [@koles](http://twitter.com/koles) ]
74
+ Pavel Kolesnikov [ [@koles](http://twitter.com/koles) ]
76
75
 
77
76
  **Actively developed and maintained by**
78
77
 
79
- - [Jan Zdráhal](https://github.com/panjan) [ <mailto:jan.zdrahal@gooddata.com> ]
80
- - [Jakub Mahnert](https://github.com/kubamahnert) [ <mailto:jakub.mahnert@gooddata.com> ]
81
- - [Petr Gaďorek](https://github.com/Hahihula) [ <mailto:petr.gadorek@gooddata.com> ]
78
+ GoodData Team
82
79
 
83
80
  **Contributors**
84
81
 
82
+ - [Jan Zdráhal](https://github.com/panjan)
83
+ - [Jakub Mahnert](https://github.com/kubamahnert)
84
+ - [Petr Gaďorek](https://github.com/Hahihula)
85
85
  - [Tomas Korcak](https://github.com/korczis) [ <mailto:korczis@gmail.com> / [@korczis](http://twitter.com/korczis) ]
86
86
  - [Tomas Svarovsky](https://github.com/fluke777) [ <mailto:svarovsky.tomas@gmail.com> / [@fluke777](http://twitter.com/fluke777) ]
87
87
  - [Patrick McConlogue](https://github.com/thnkr/)
data/Rakefile CHANGED
@@ -39,7 +39,7 @@ namespace :gem do
39
39
  File.delete(origin_license_file) if File.exist?(origin_license_file)
40
40
  File.delete(notices_file) if File.exist?(notices_file)
41
41
  puts "Deleted files: #{origin_license_file} and #{notices_file}"
42
- File.rename(new_license_file, origin_license_file) if File.exists?(new_license_file)
42
+ File.rename(new_license_file, origin_license_file) if File.exist?(new_license_file)
43
43
  puts "Renamed file #{new_license_file} to #{origin_license_file}"
44
44
  puts "Building #{gem} ..."
45
45
  res = `gem build ./gooddata.gemspec`
data/SDK_VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.19
1
+ 2.3.0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.7.26
1
+ 3.7.63
data/bin/run_brick.rb CHANGED
@@ -17,6 +17,11 @@ def get_brick_params(prefix)
17
17
  ENV.select { |k,| k.to_s.match(/^#{prefix}.*/) }.map { |k, v| [k.slice(prefix.length..-1), v] }.to_h
18
18
  end
19
19
 
20
+ def handle_warning(params, log, brick_type, error, summary_error)
21
+ log.error "action=#{brick_type}_execution status=warning commit_hash=#{params['GOODDATA_RUBY_COMMIT']} execution_id=#{params['GDC_EXECUTION_ID']} exception=#{error}"
22
+ GoodData::Bricks::ExecutionResultMiddleware.update_execution_result(GoodData::Bricks::ExecutionStatus::WARNING, summary_error)
23
+ end
24
+
20
25
  def handle_error(params, log, brick_type, error, error_message)
21
26
  execution_log = GoodData.logger
22
27
  execution_log.error "Execution failed. Error: #{error}" unless execution_log.nil?
@@ -60,6 +65,8 @@ begin
60
65
  brick_pipeline.call(params)
61
66
  rescue GoodData::LcmExecutionError => lcm_error
62
67
  handle_error(execution_result_log_params, log, brick_type, lcm_error, lcm_error.summary_error)
68
+ rescue GoodData::LcmExecutionWarning => lcm_warning
69
+ handle_warning(execution_result_log_params, log, brick_type, lcm_warning, lcm_warning.summary_error)
63
70
  rescue Exception => e # rubocop:disable RescueException
64
71
  handle_error(execution_result_log_params, log, brick_type, e, e.to_s)
65
72
  end
data/ci/mssql/pom.xml ADDED
@@ -0,0 +1,62 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://maven.apache.org/POM/4.0.0"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+ <modelVersion>4.0.0</modelVersion>
6
+
7
+ <groupId>com.gooddata.lcm</groupId>
8
+ <artifactId>lcm-mssql-driver</artifactId>
9
+ <version>1.0-SNAPSHOT</version>
10
+
11
+ <dependencies>
12
+ <dependency>
13
+ <groupId>com.microsoft.sqlserver</groupId>
14
+ <artifactId>mssql-jdbc</artifactId>
15
+ <version>9.3.1.jre8-preview</version>
16
+ </dependency>
17
+ <dependency>
18
+ <groupId>com.microsoft.azure</groupId>
19
+ <artifactId>msal4j</artifactId>
20
+ <version>1.10.1</version>
21
+ </dependency>
22
+ <dependency>
23
+ <groupId>org.slf4j</groupId>
24
+ <artifactId>slf4j-api</artifactId>
25
+ <version>1.7.2</version>
26
+ </dependency>
27
+ </dependencies>
28
+
29
+ <profiles>
30
+ <profile>
31
+ <id>binary-packaging</id>
32
+ <build>
33
+ <plugins>
34
+ <plugin>
35
+ <artifactId>maven-dependency-plugin</artifactId>
36
+ <executions>
37
+ <execution>
38
+ <phase>package</phase>
39
+ <goals>
40
+ <goal>copy-dependencies</goal>
41
+ </goals>
42
+ <configuration>
43
+ <outputDirectory>${project.build.directory}</outputDirectory>
44
+ <!-- compile scope gives runtime and compile dependencies (skips test deps) -->
45
+ <includeScope>runtime</includeScope>
46
+ </configuration>
47
+ </execution>
48
+ </executions>
49
+ </plugin>
50
+ </plugins>
51
+ </build>
52
+ </profile>
53
+ </profiles>
54
+
55
+ <repositories>
56
+ <repository>
57
+ <id>my-repo1</id>
58
+ <name>my custom repo</name>
59
+ <url>https://repository.mulesoft.org/nexus/content/repositories/public/</url>
60
+ </repository>
61
+ </repositories>
62
+ </project>