gooddata 2.1.8 → 2.1.13
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/.rubocop.yml +7 -0
- data/.travis.yml +2 -4
- data/CHANGELOG.md +43 -0
- data/Dockerfile +19 -4
- data/Dockerfile.jruby +4 -4
- data/Dockerfile.ruby +5 -4
- data/README.md +2 -0
- data/SDK_VERSION +1 -1
- data/VERSION +1 -1
- data/bin/provision.sh +2 -0
- data/bin/release.sh +2 -0
- data/bin/rollout.sh +2 -0
- data/bin/run_brick.rb +31 -7
- data/bin/test_projects_cleanup.rb +10 -2
- data/bin/user_filters.sh +2 -0
- data/ci.rake +1 -1
- data/ci/bigquery/pom.xml +54 -0
- data/ci/redshift/pom.xml +73 -0
- data/ci/snowflake/pom.xml +57 -0
- data/dev-gooddata-sso.pub.encrypted +40 -40
- data/gdc_fossa_lcm.yaml +2 -0
- data/gdc_fossa_ruby_sdk.yaml +4 -0
- data/gooddata.gemspec +6 -2
- data/k8s/charts/lcm-bricks/Chart.yaml +1 -1
- data/k8s/charts/lcm-bricks/templates/prometheus/alertingRules.yaml +22 -12
- data/lcm.rake +14 -0
- data/lib/gooddata/bricks/middleware/execution_result_middleware.rb +68 -0
- data/lib/gooddata/bricks/middleware/logger_middleware.rb +2 -1
- data/lib/gooddata/bricks/middleware/mask_logger_decorator.rb +5 -1
- data/lib/gooddata/bricks/pipeline.rb +7 -0
- data/lib/gooddata/cloud_resources/bigquery/bigquery_client.rb +86 -0
- data/lib/gooddata/cloud_resources/bigquery/drivers/.gitkeepme +0 -0
- data/lib/gooddata/cloud_resources/cloud_resouce_factory.rb +28 -0
- data/lib/gooddata/cloud_resources/cloud_resource_client.rb +24 -0
- data/lib/gooddata/cloud_resources/cloud_resources.rb +12 -0
- data/lib/gooddata/cloud_resources/redshift/drivers/log4j.properties +15 -0
- data/lib/gooddata/cloud_resources/redshift/redshift_client.rb +101 -0
- data/lib/gooddata/cloud_resources/snowflake/drivers/.gitkeepme +0 -0
- data/lib/gooddata/cloud_resources/snowflake/snowflake_client.rb +84 -0
- data/lib/gooddata/exceptions/invalid_env_error.rb +15 -0
- data/lib/gooddata/helpers/data_helper.rb +10 -0
- data/lib/gooddata/helpers/data_source_helpers.rb +47 -0
- data/lib/gooddata/helpers/global_helpers.rb +4 -0
- data/lib/gooddata/helpers/global_helpers_params.rb +6 -9
- data/lib/gooddata/lcm/actions/collect_clients.rb +6 -6
- data/lib/gooddata/lcm/actions/collect_dynamic_schedule_params.rb +6 -6
- data/lib/gooddata/lcm/actions/collect_segment_clients.rb +4 -1
- data/lib/gooddata/lcm/actions/collect_segments.rb +1 -2
- data/lib/gooddata/lcm/actions/collect_users_brick_users.rb +7 -6
- data/lib/gooddata/lcm/actions/create_segment_masters.rb +5 -3
- data/lib/gooddata/lcm/actions/migrate_gdc_date_dimension.rb +116 -0
- data/lib/gooddata/lcm/actions/set_master_project.rb +76 -0
- data/lib/gooddata/lcm/actions/synchronize_clients.rb +1 -1
- data/lib/gooddata/lcm/actions/synchronize_etls_in_segment.rb +1 -2
- data/lib/gooddata/lcm/actions/synchronize_ldm.rb +20 -3
- data/lib/gooddata/lcm/actions/synchronize_user_filters.rb +23 -3
- data/lib/gooddata/lcm/actions/synchronize_users.rb +50 -30
- data/lib/gooddata/lcm/actions/update_release_table.rb +7 -1
- data/lib/gooddata/lcm/exceptions/lcm_execution_error.rb +16 -0
- data/lib/gooddata/lcm/helpers/release_table_helper.rb +16 -8
- data/lib/gooddata/lcm/lcm2.rb +28 -5
- data/lib/gooddata/models/domain.rb +17 -15
- data/lib/gooddata/models/execution.rb +0 -1
- data/lib/gooddata/models/execution_detail.rb +0 -1
- data/lib/gooddata/models/from_wire.rb +1 -0
- data/lib/gooddata/models/process.rb +11 -3
- data/lib/gooddata/models/profile.rb +33 -11
- data/lib/gooddata/models/project.rb +120 -31
- data/lib/gooddata/models/project_creator.rb +2 -0
- data/lib/gooddata/models/schedule.rb +0 -1
- data/lib/gooddata/rest/client.rb +2 -2
- data/lib/gooddata/rest/connection.rb +5 -3
- data/rubydev_public.gpg.encrypted +51 -51
- data/rubydev_secret_keys.gpg.encrypted +109 -109
- metadata +32 -13
- data/lib/gooddata/extensions/hash.rb +0 -18
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8ab34a80c9d1b2d1d7608b70b767f3801fc1f47538b5d87678c83820f86765b1
         | 
| 4 | 
            +
              data.tar.gz: f44173431a6599fcc7854e81027ca516ede3b24fba6f9720035295c52e05f821
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ed09925ea424e7ffb355eca2c9a1a769231d170b0c266cd858c0ab22076f90cf77e5123de9f1f45d768e17445397fa054fce480f52fb1dcec6193bd35198501f
         | 
| 7 | 
            +
              data.tar.gz: 6f31fb629a09bddacd4a256c4ec660f589918e7aa712a375b58457c42789756cfc0b462782b8bf479dc6e98e8e9e91d64ce4e816a7396cf785dfcf5a47ac1fcc
         | 
    
        data/.rubocop.yml
    CHANGED
    
    | @@ -2,6 +2,7 @@ AllCops: | |
| 2 2 | 
             
              DisplayCopNames: true
         | 
| 3 3 | 
             
              Exclude:
         | 
| 4 4 | 
             
                  - 'spec/helpers/appstore_project_helper.rb'
         | 
| 5 | 
            +
              TargetRubyVersion: 2.3
         | 
| 5 6 |  | 
| 6 7 | 
             
            AbcSize:
         | 
| 7 8 | 
             
              Enabled: false
         | 
| @@ -98,3 +99,9 @@ UselessAccessModifier: | |
| 98 99 |  | 
| 99 100 | 
             
            Style/PerlBackrefs:
         | 
| 100 101 | 
             
              Enabled: false
         | 
| 102 | 
            +
             | 
| 103 | 
            +
            Style/Encoding:
         | 
| 104 | 
            +
              Enabled: false
         | 
| 105 | 
            +
             | 
| 106 | 
            +
            Layout/EmptyLineAfterMagicComment:
         | 
| 107 | 
            +
              Enabled: false
         | 
    
        data/.travis.yml
    CHANGED
    
    | @@ -15,11 +15,9 @@ stages: | |
| 15 15 | 
             
            git:
         | 
| 16 16 | 
             
              depth: false # this is needed for pronto
         | 
| 17 17 |  | 
| 18 | 
            -
             | 
| 18 | 
            +
            jobs:
         | 
| 19 19 | 
             
              allow_failures:
         | 
| 20 20 | 
             
                - rvm: jruby-9.1.14
         | 
| 21 | 
            -
             | 
| 22 | 
            -
            jobs:
         | 
| 23 21 | 
             
              include:
         | 
| 24 22 | 
             
              # BEFORE MERGE
         | 
| 25 23 | 
             
              - name: pronto code review
         | 
| @@ -259,7 +257,7 @@ jobs: | |
| 259 257 | 
             
                stage: after-merge
         | 
| 260 258 | 
             
                script: bundle exec rake test:unit
         | 
| 261 259 | 
             
                os: osx
         | 
| 262 | 
            -
                osx_image: xcode9. | 
| 260 | 
            +
                osx_image: xcode9.4
         | 
| 263 261 | 
             
                rvm: 2.4.3
         | 
| 264 262 |  | 
| 265 263 | 
             
              - name: unit tests 2.5
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,4 +1,47 @@ | |
| 1 1 | 
             
            # GoodData Ruby SDK Changelog
         | 
| 2 | 
            +
            ## 2.1.13
         | 
| 3 | 
            +
             - FEATURE: TMA-1676 Support LCM release across domain
         | 
| 4 | 
            +
             - FEATURE: TMA-1672 Support sync process with generic datasource
         | 
| 5 | 
            +
             - FEATURE: MSF-17743 upgrade custom v2 for rollout brick
         | 
| 6 | 
            +
             - BUGFIX: MSF-17975 Introduce gdcshare to lcm bricks
         | 
| 7 | 
            +
             - BUGFIX: TMA-1673 Update params processing to accept dot and space
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ## 2.1.12
         | 
| 10 | 
            +
             - FEATURE: MSF-17621 Apply patched version for activesupport to fix vulnerable issue
         | 
| 11 | 
            +
             - CONFIG: SETI-4379 Add gdc-fossa configuration for gooddata-ruby
         | 
| 12 | 
            +
             - CONFIG: MSF-17345 Set umask 0002 for lcm brick
         | 
| 13 | 
            +
             - BUGFIX: TMA-1015 check case sensitivity for group name
         | 
| 14 | 
            +
             - BUGFIX: MSF-17219 Fixed incorrect client used in domain.users
         | 
| 15 | 
            +
             - BUGFIX: TMA-1022 Add more logs for case roll out without LDM change in master
         | 
| 16 | 
            +
             - FEATURE: TMA-1640 Add alert for CPU limit hit
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            ## 2.1.11
         | 
| 19 | 
            +
             - FEATURE: TMA-1647 Set VCR version to 5.0.0 due to incompatible license of the latest version
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            ## 2.1.10
         | 
| 22 | 
            +
             - BUGFIX: TMA-1653 fix performance issue in functions project.users and domain.users
         | 
| 23 | 
            +
             - BUGFIX: TMA-1643 Don't convert null value to empty string
         | 
| 24 | 
            +
             - BUGFIX: TMA-1620 Users Brick, sometimes update users are conflicted
         | 
| 25 | 
            +
             - BUGFIX: TMA-1642 parse csv from input source with case insensitive
         | 
| 26 | 
            +
             - BUGFIX: TMA-1528: remove CollectSegments and CollectDataProduct for add and remove in users brick
         | 
| 27 | 
            +
             - FEATURE: TMA-1629 Add parameter "set_master_project" to support reset latest master project
         | 
| 28 | 
            +
             - FEATURE: TMA-1630 Support Snowflake, BigQuery as input source
         | 
| 29 | 
            +
            ## 2.1.9
         | 
| 30 | 
            +
             - FEATURE: TMA-1076 support new version api 2
         | 
| 31 | 
            +
             - BUGFIX: TMA-1637 handle input_source of dynamic params
         | 
| 32 | 
            +
             - BUGFIX: TMA-1636 Build csv file with force_quotes
         | 
| 33 | 
            +
             - FEATURE: TMA-1614 Support redshift input source
         | 
| 34 | 
            +
             - FEATURE: TMA-1259 Start using dataproduct in NFS release table
         | 
| 35 | 
            +
             - FEATURE: MSF-16455 support yellow WARNING status into RubySDK
         | 
| 36 | 
            +
             - CONFIG: TMA-1625 update version lock for test docker images
         | 
| 37 | 
            +
             - BUGFIX: TMA-1602 User filter brick failed - K8s bricks don't show error properly
         | 
| 38 | 
            +
             - BUGFIX: TMA-1593 Increase java heap space during execute bricks
         | 
| 39 | 
            +
             - BUGFIX: TMA-1558 K8s bricks don't show error when config invalid
         | 
| 40 | 
            +
             - BUGFIX: TMA-1596 The error propagated from a LCM brick is shown multiple times in the log
         | 
| 41 | 
            +
             - BUGFIX: TMA-1582 show synchronize ldm mode is running
         | 
| 42 | 
            +
             - FEATURE: TMA-1588 support schedule param include deprecated
         | 
| 43 | 
            +
             - FEATURE: TMA-1597 Logging lcm execution result
         | 
| 44 | 
            +
             | 
| 2 45 | 
             
            ## 2.1.8
         | 
| 3 46 | 
             
             - FEATURE: TMA-1604 Upgrade Restforce version to 3.x
         | 
| 4 47 |  | 
    
        data/Dockerfile
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            FROM harbor.intgdc.com/tools/gdc-java-8-jre: | 
| 1 | 
            +
            FROM harbor.intgdc.com/tools/gdc-java-8-jre:2fce51b
         | 
| 2 2 |  | 
| 3 3 | 
             
            ARG RVM_VERSION=stable
         | 
| 4 4 | 
             
            ARG JRUBY_VERSION=9.2.5.0
         | 
| @@ -6,10 +6,10 @@ ARG JRUBY_VERSION=9.2.5.0 | |
| 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: | 
| 9 | 
            +
            LABEL parent_image="harbor.intgdc.com/tools/gdc-java-8-jre:2fce51b"
         | 
| 10 10 |  | 
| 11 11 | 
             
            # which is required by RVM
         | 
| 12 | 
            -
            RUN yum install -y curl which patch make git \
         | 
| 12 | 
            +
            RUN yum install -y curl which patch make git maven \
         | 
| 13 13 | 
             
                && yum clean all \
         | 
| 14 14 | 
             
                && rm -rf /var/cache/yum
         | 
| 15 15 |  | 
| @@ -37,18 +37,33 @@ RUN rvm install jruby-${JRUBY_VERSION} && gem update --system \ | |
| 37 37 | 
             
            WORKDIR /src
         | 
| 38 38 |  | 
| 39 39 | 
             
            RUN groupadd -g 48 apache \
         | 
| 40 | 
            +
                && groupadd -g 65065 gdcshare \
         | 
| 40 41 | 
             
                && useradd -u 48 -m --no-log-init -r -g apache -G rvm apache \
         | 
| 42 | 
            +
                && usermod -a -G gdcshare apache \
         | 
| 41 43 | 
             
                && chown apache: /src
         | 
| 42 44 |  | 
| 43 45 | 
             
            USER apache
         | 
| 44 46 |  | 
| 45 47 | 
             
            ADD ./bin ./bin
         | 
| 46 | 
            -
            ADD ./ | 
| 48 | 
            +
            ADD --chown=apache:apache ./ci ./ci
         | 
| 49 | 
            +
            ADD --chown=apache:apache ./lib ./lib
         | 
| 47 50 | 
             
            ADD ./SDK_VERSION .
         | 
| 48 51 | 
             
            ADD ./VERSION .
         | 
| 49 52 | 
             
            ADD ./Gemfile .
         | 
| 50 53 | 
             
            ADD ./gooddata.gemspec .
         | 
| 51 54 |  | 
| 55 | 
            +
            #build redshift dependencies
         | 
| 56 | 
            +
            RUN mvn -f ci/redshift/pom.xml clean install -P binary-packaging
         | 
| 57 | 
            +
            RUN cp -rf ci/redshift/target/*.jar ./lib/gooddata/cloud_resources/redshift/drivers/
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            #build snowflake dependencies
         | 
| 60 | 
            +
            RUN mvn -f ci/snowflake/pom.xml clean install -P binary-packaging
         | 
| 61 | 
            +
            RUN cp -rf ci/snowflake/target/*.jar ./lib/gooddata/cloud_resources/snowflake/drivers/
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            #build bigquery dependencies
         | 
| 64 | 
            +
            RUN mvn -f ci/bigquery/pom.xml clean install -P binary-packaging
         | 
| 65 | 
            +
            RUN cp -rf ci/bigquery/target/*.jar ./lib/gooddata/cloud_resources/bigquery/drivers/
         | 
| 66 | 
            +
             | 
| 52 67 | 
             
            RUN bundle install
         | 
| 53 68 |  | 
| 54 69 | 
             
            ARG GIT_COMMIT=unspecified
         | 
    
        data/Dockerfile.jruby
    CHANGED
    
    | @@ -7,11 +7,11 @@ RUN apk add --no-cache curl make gcc git g++ python linux-headers binutils-gold | |
| 7 7 | 
             
            # Switch to directory with sources
         | 
| 8 8 | 
             
            WORKDIR /src
         | 
| 9 9 | 
             
            ENV HOME=/src
         | 
| 10 | 
            +
            ENV BUNDLE_PATH=$HOME/bundle
         | 
| 10 11 |  | 
| 11 | 
            -
            RUN gem update --system \
         | 
| 12 | 
            -
                && gem install bundler
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            ENV BUNDLE_PATH=/bundle
         | 
| 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
         | 
| 15 15 |  | 
| 16 16 | 
             
            ADD . .
         | 
| 17 17 |  | 
    
        data/Dockerfile.ruby
    CHANGED
    
    | @@ -8,11 +8,12 @@ RUN ln -s /usr/bin/make /usr/bin/gmake | |
| 8 8 |  | 
| 9 9 | 
             
            # Switch to directory with sources
         | 
| 10 10 | 
             
            WORKDIR /src
         | 
| 11 | 
            +
            ENV HOME=/src
         | 
| 12 | 
            +
            ENV BUNDLE_PATH=$HOME/bundle
         | 
| 11 13 |  | 
| 12 | 
            -
            RUN gem update --system \
         | 
| 13 | 
            -
                && gem install bundler
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            ENV BUNDLE_PATH=/bundle
         | 
| 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
         | 
| 16 17 |  | 
| 17 18 | 
             
            ADD . .
         | 
| 18 19 |  | 
    
        data/README.md
    CHANGED
    
    | @@ -9,6 +9,8 @@ The best documentation for the GoodData API can be found using these resources: | |
| 9 9 | 
             
             * http://developer.gooddata.com/api
         | 
| 10 10 | 
             
             * https://secure.gooddata.com/gdc
         | 
| 11 11 | 
             
             * http://rubydoc.info/gems/gooddata/frames
         | 
| 12 | 
            +
             
         | 
| 13 | 
            +
            Feel free to check out the [GoodData community website](http://community.gooddata.com/) if you have any questions about the GoodData Analytics platform, our API, or this library.
         | 
| 12 14 |  | 
| 13 15 | 
             
            ## Status
         | 
| 14 16 |  | 
    
        data/SDK_VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            2.1. | 
| 1 | 
            +
            2.1.13
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            3.7. | 
| 1 | 
            +
            3.7.22
         | 
    
        data/bin/provision.sh
    CHANGED
    
    
    
        data/bin/release.sh
    CHANGED
    
    
    
        data/bin/rollout.sh
    CHANGED
    
    
    
        data/bin/run_brick.rb
    CHANGED
    
    | @@ -8,34 +8,58 @@ DEFAULT_BRICK = 'hello_world_brick' | |
| 8 8 | 
             
            BRICK_PARAM_PREFIX = 'BRICK_PARAM_'
         | 
| 9 9 | 
             
            HIDDEN_BRICK_PARAMS_PREFIX = 'HIDDEN_BRICK_PARAM_'
         | 
| 10 10 |  | 
| 11 | 
            +
            # MSF-17345 Set umask so files are group-writable
         | 
| 12 | 
            +
            File.umask(0002)
         | 
| 13 | 
            +
             | 
| 11 14 | 
             
            brick_type = !ARGV.empty? ? ARGV[0] : DEFAULT_BRICK
         | 
| 12 15 |  | 
| 13 16 | 
             
            def get_brick_params(prefix)
         | 
| 14 17 | 
             
              ENV.select { |k,| k.to_s.match(/^#{prefix}.*/) }.map { |k, v| [k.slice(prefix.length..-1), v] }.to_h
         | 
| 15 18 | 
             
            end
         | 
| 16 19 |  | 
| 20 | 
            +
            def handle_error(params, log, brick_type, error, error_message)
         | 
| 21 | 
            +
              execution_log = GoodData.logger
         | 
| 22 | 
            +
              execution_log.error "Execution failed. Error: #{error}" unless execution_log.nil?
         | 
| 23 | 
            +
              GoodData::Bricks::ExecutionResultMiddleware.update_execution_result(GoodData::Bricks::ExecutionStatus::ERROR, error_message)
         | 
| 24 | 
            +
              log.error "action=#{brick_type}_execution status=failed commit_hash=#{params['GOODDATA_RUBY_COMMIT']} execution_id=#{params['GDC_EXECUTION_ID']} exception=#{error}"
         | 
| 25 | 
            +
              raise
         | 
| 26 | 
            +
            end
         | 
| 27 | 
            +
             | 
| 17 28 | 
             
            syslog_node = ENV['NODE_NAME']
         | 
| 18 29 | 
             
            log = RemoteSyslogLogger.new(syslog_node, 514, :program => "ruby_#{brick_type}", :facility => 'local2')
         | 
| 19 30 |  | 
| 20 31 | 
             
            log.info "action=#{brick_type}_execution status=init"
         | 
| 21 32 |  | 
| 22 33 | 
             
            begin
         | 
| 34 | 
            +
              commit_hash = ENV['GOODDATA_RUBY_COMMIT'] || ''
         | 
| 35 | 
            +
              execution_id = ENV['GDC_EXECUTION_ID']
         | 
| 36 | 
            +
              log_directory = ENV['GDC_LOG_DIRECTORY'] || '/tmp/'
         | 
| 37 | 
            +
              execution_log_path = ENV['GDC_EXECUTION_LOG_PATH']
         | 
| 38 | 
            +
              execution_result_log_path = ENV['GDC_EXECUTION_RESULT_LOG_PATH']
         | 
| 39 | 
            +
              execution_result_log_params = {
         | 
| 40 | 
            +
                'GOODDATA_RUBY_COMMIT' => commit_hash,
         | 
| 41 | 
            +
                'GDC_EXECUTION_ID' => execution_id,
         | 
| 42 | 
            +
                'GDC_LOG_DIRECTORY' => log_directory,
         | 
| 43 | 
            +
                'GDC_EXECUTION_LOG_PATH' => execution_log_path,
         | 
| 44 | 
            +
                'GDC_EXECUTION_RESULT_LOG_PATH' => execution_result_log_path
         | 
| 45 | 
            +
              }
         | 
| 46 | 
            +
             | 
| 23 47 | 
             
              brick_pipeline = GoodData::Bricks::Pipeline.send("#{brick_type}_pipeline")
         | 
| 24 48 | 
             
              normal_params = get_brick_params(BRICK_PARAM_PREFIX)
         | 
| 25 49 | 
             
              hidden_params = get_brick_params(HIDDEN_BRICK_PARAMS_PREFIX)
         | 
| 26 50 | 
             
              params = normal_params.merge(hidden_params)
         | 
| 27 51 |  | 
| 28 52 | 
             
              params['values_to_mask'] = hidden_params.values
         | 
| 29 | 
            -
              commit_hash = ENV['GOODDATA_RUBY_COMMIT'] || ''
         | 
| 30 | 
            -
              execution_id = ENV['GDC_EXECUTION_ID']
         | 
| 31 53 | 
             
              params['gooddata_ruby_commit'] = commit_hash
         | 
| 32 | 
            -
              params['GDC_LOG_DIRECTORY'] =  | 
| 54 | 
            +
              params['GDC_LOG_DIRECTORY'] = log_directory
         | 
| 33 55 | 
             
              params['GDC_EXECUTION_ID'] = execution_id
         | 
| 56 | 
            +
              params['GDC_EXECUTION_LOG_PATH'] = execution_log_path
         | 
| 57 | 
            +
              params['GDC_EXECUTION_RESULT_LOG_PATH'] = execution_result_log_path
         | 
| 58 | 
            +
             | 
| 34 59 | 
             
              log.info "action=#{brick_type}_execution status=start commit_hash=#{commit_hash} execution_id=#{execution_id}"
         | 
| 35 60 | 
             
              brick_pipeline.call(params)
         | 
| 61 | 
            +
            rescue GoodData::LcmExecutionError => lcm_error
         | 
| 62 | 
            +
              handle_error(execution_result_log_params, log, brick_type, lcm_error, lcm_error.summary_error)
         | 
| 36 63 | 
             
            rescue Exception => e # rubocop:disable RescueException
         | 
| 37 | 
            -
             | 
| 38 | 
            -
            	execution_log.error "Execution failed. Message: #{e.message}. Error: #{e}" unless execution_log.nil?
         | 
| 39 | 
            -
              log.info "action=#{brick_type}_execution status=failed commit_hash=#{commit_hash} execution_id=#{execution_id} exception=#{e}"
         | 
| 40 | 
            -
              raise
         | 
| 64 | 
            +
              handle_error(execution_result_log_params, log, brick_type, e, e.to_s)
         | 
| 41 65 | 
             
            end
         | 
| @@ -29,6 +29,7 @@ def delete_project_by_title(title, projects, days = 14, force = false) | |
| 29 29 | 
             
                p.title.match(title) && p.created < dead_line
         | 
| 30 30 | 
             
              end
         | 
| 31 31 | 
             
              filtered_projects.each do |project|
         | 
| 32 | 
            +
                begin
         | 
| 32 33 | 
             
                if force
         | 
| 33 34 | 
             
                  puts "Deleting: #{project.pid} - #{project.title} - #{project.created}"
         | 
| 34 35 | 
             
                  project_add = project.add
         | 
| @@ -37,6 +38,9 @@ def delete_project_by_title(title, projects, days = 14, force = false) | |
| 37 38 | 
             
                else
         | 
| 38 39 | 
             
                  puts "Would delete: #{project.pid} - #{project.title} - #{project.created}"
         | 
| 39 40 | 
             
                end
         | 
| 41 | 
            +
                rescue StandardError => ex
         | 
| 42 | 
            +
                  puts "Failed to delete project #{project.pid}, reason: #{ex}"
         | 
| 43 | 
            +
                end
         | 
| 40 44 | 
             
              end
         | 
| 41 45 | 
             
              puts "#{filtered_projects.length} projects matching \"#{title}\" #{'would be ' unless force}deleted."
         | 
| 42 46 | 
             
            end
         | 
| @@ -86,7 +90,11 @@ def clean_up!(client, force, days) | |
| 86 90 | 
             
              delete_project_by_title(/LCM spec Client With Conflicting LDM Changes/, projects, days, force)
         | 
| 87 91 | 
             
              delete_project_by_title(/LCM spec master project/, projects, days, force)
         | 
| 88 92 | 
             
              delete_project_by_title(/users brick load test/, projects, days, force)
         | 
| 89 | 
            -
              delete_project_by_title( | 
| 93 | 
            +
              delete_project_by_title(/transfer_processes and #transfer_schedules test/, projects, days, force)
         | 
| 94 | 
            +
              delete_project_by_title(/DailyUse Project for gooddata-ruby integration tests/, projects, days, force)
         | 
| 95 | 
            +
              delete_project_by_title(/^New project$/, projects, days, force)
         | 
| 96 | 
            +
              delete_project_by_title(/RubyGem Dev Week test/, projects, days, force)
         | 
| 97 | 
            +
              delete_project_by_title(/My project from blueprint/, projects, days, force)
         | 
| 90 98 | 
             
              delete_ads_by_title(/Development ADS/, client, days, force)
         | 
| 91 99 | 
             
              delete_ads_by_title(/Production ADS/, client, days, force)
         | 
| 92 100 | 
             
              delete_ads_by_title(/TEST ADS/, client, days, force)
         | 
| @@ -108,7 +116,7 @@ dev_client = init_client(username, password, "https://#{config[:dev_server]}") | |
| 108 116 | 
             
            prod_client = init_client(username, password, "https://#{config[:prod_server]}")
         | 
| 109 117 |  | 
| 110 118 | 
             
            force = options[:force]
         | 
| 111 | 
            -
            days = options[:days] ||  | 
| 119 | 
            +
            days = options[:days] || 3
         | 
| 112 120 | 
             
            clean_up!(dev_client, force, days)
         | 
| 113 121 | 
             
            clean_up!(prod_client, force, days)
         | 
| 114 122 |  | 
    
        data/bin/user_filters.sh
    CHANGED
    
    
    
        data/ci.rake
    CHANGED
    
    
    
        data/ci/bigquery/pom.xml
    ADDED
    
    | @@ -0,0 +1,54 @@ | |
| 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-bigquery-driver</artifactId>
         | 
| 9 | 
            +
                <version>1.0-SNAPSHOT</version>
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                <dependencies>
         | 
| 12 | 
            +
                    <dependency>
         | 
| 13 | 
            +
                        <groupId>com.google.auth</groupId>
         | 
| 14 | 
            +
                        <artifactId>google-auth-library-oauth2-http</artifactId>
         | 
| 15 | 
            +
                        <version>0.16.2</version>
         | 
| 16 | 
            +
                    </dependency>
         | 
| 17 | 
            +
                    <dependency>
         | 
| 18 | 
            +
                        <groupId>org.apache.commons</groupId>
         | 
| 19 | 
            +
                        <artifactId>commons-text</artifactId>
         | 
| 20 | 
            +
                        <version>1.7</version>
         | 
| 21 | 
            +
                    </dependency>
         | 
| 22 | 
            +
                    <dependency>
         | 
| 23 | 
            +
                        <groupId>com.google.cloud</groupId>
         | 
| 24 | 
            +
                        <artifactId>google-cloud-bigquery</artifactId>
         | 
| 25 | 
            +
                        <version>1.102.0</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 | 
            +
            </project>
         | 
    
        data/ci/redshift/pom.xml
    ADDED
    
    | @@ -0,0 +1,73 @@ | |
| 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-redshift-driver</artifactId>
         | 
| 9 | 
            +
                <version>1.0-SNAPSHOT</version>
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                <dependencies>
         | 
| 12 | 
            +
                    <dependency>
         | 
| 13 | 
            +
                        <groupId>com.amazon.redshift</groupId>
         | 
| 14 | 
            +
                        <artifactId>redshift-jdbc42-no-awssdk</artifactId>
         | 
| 15 | 
            +
                        <version>1.2.36.1060</version>
         | 
| 16 | 
            +
                    </dependency>
         | 
| 17 | 
            +
                    <dependency>
         | 
| 18 | 
            +
                        <groupId>com.amazonaws</groupId>
         | 
| 19 | 
            +
                        <artifactId>aws-java-sdk-core</artifactId>
         | 
| 20 | 
            +
                        <version>1.11.633</version>
         | 
| 21 | 
            +
                    </dependency>
         | 
| 22 | 
            +
                    <dependency>
         | 
| 23 | 
            +
                        <groupId>com.amazonaws</groupId>
         | 
| 24 | 
            +
                        <artifactId>aws-java-sdk-redshift</artifactId>
         | 
| 25 | 
            +
                        <version>1.11.633</version>
         | 
| 26 | 
            +
                    </dependency>
         | 
| 27 | 
            +
                    <dependency>
         | 
| 28 | 
            +
                        <groupId>com.amazonaws</groupId>
         | 
| 29 | 
            +
                        <artifactId>aws-java-sdk-sts</artifactId>
         | 
| 30 | 
            +
                        <version>1.11.633</version>
         | 
| 31 | 
            +
                    </dependency>
         | 
| 32 | 
            +
                    <dependency>
         | 
| 33 | 
            +
                        <groupId>log4j</groupId>
         | 
| 34 | 
            +
                        <artifactId>log4j</artifactId>
         | 
| 35 | 
            +
                        <version>1.2.17</version>
         | 
| 36 | 
            +
                        <scope>compile</scope>
         | 
| 37 | 
            +
                    </dependency>
         | 
| 38 | 
            +
                </dependencies>
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                <profiles>
         | 
| 41 | 
            +
                    <profile>
         | 
| 42 | 
            +
                        <id>binary-packaging</id>
         | 
| 43 | 
            +
                        <build>
         | 
| 44 | 
            +
                            <plugins>
         | 
| 45 | 
            +
                                <plugin>
         | 
| 46 | 
            +
                                    <artifactId>maven-dependency-plugin</artifactId>
         | 
| 47 | 
            +
                                    <executions>
         | 
| 48 | 
            +
                                        <execution>
         | 
| 49 | 
            +
                                            <phase>package</phase>
         | 
| 50 | 
            +
                                            <goals>
         | 
| 51 | 
            +
                                                <goal>copy-dependencies</goal>
         | 
| 52 | 
            +
                                            </goals>
         | 
| 53 | 
            +
                                            <configuration>
         | 
| 54 | 
            +
                                                <outputDirectory>${project.build.directory}</outputDirectory>
         | 
| 55 | 
            +
                                                <!-- compile scope gives runtime and compile dependencies (skips test deps) -->
         | 
| 56 | 
            +
                                                <includeScope>runtime</includeScope>
         | 
| 57 | 
            +
                                            </configuration>
         | 
| 58 | 
            +
                                        </execution>
         | 
| 59 | 
            +
                                    </executions>
         | 
| 60 | 
            +
                                </plugin>
         | 
| 61 | 
            +
                            </plugins>
         | 
| 62 | 
            +
                        </build>
         | 
| 63 | 
            +
                    </profile>
         | 
| 64 | 
            +
                </profiles>
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                <repositories>
         | 
| 67 | 
            +
                    <repository>
         | 
| 68 | 
            +
                        <id>my-repo1</id>
         | 
| 69 | 
            +
                        <name>my custom repo</name>
         | 
| 70 | 
            +
                        <url>https://repository.mulesoft.org/nexus/content/repositories/public/</url>
         | 
| 71 | 
            +
                    </repository>
         | 
| 72 | 
            +
                </repositories>
         | 
| 73 | 
            +
            </project>
         |