gooddata 1.1.0-java → 1.2.0-java
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/.document +0 -0
- data/.flayignore +2 -0
- data/.travis.yml +24 -7
- data/.yardopts +0 -0
- data/CHANGELOG.md +144 -0
- data/CLI.md +0 -0
- data/Dockerfile.jruby +7 -2
- data/Dockerfile.ruby +1 -1
- data/Gemfile +0 -0
- data/Guardfile +0 -0
- data/Rakefile +23 -9
- data/TODO.md +0 -0
- data/bin/gitflow-init.sh +8 -0
- data/ci.rake +3 -3
- data/data/2008.crt +39 -0
- data/data/new_ca.cer +22 -0
- data/dependency_decisions.yml +0 -0
- data/docker-compose.lcm.yml +31 -0
- data/docker-compose.yml +4 -2
- data/gooddata.gemspec +3 -3
- data/lcm.rake +288 -0
- data/lib/gooddata.rb +1 -0
- data/lib/gooddata/bricks/base_downloader.rb +1 -1
- data/lib/gooddata/bricks/brick.rb +0 -1
- data/lib/gooddata/bricks/middleware/aws_middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/logger_middleware.rb +1 -1
- data/lib/gooddata/bricks/pipeline.rb +67 -0
- data/lib/gooddata/bricks/provisioning_brick.rb +18 -0
- data/lib/gooddata/bricks/release_brick.rb +18 -0
- data/lib/gooddata/bricks/rollout_brick.rb +14 -0
- data/lib/gooddata/bricks/user_filters_brick.rb +13 -0
- data/lib/gooddata/bricks/users_brick.rb +13 -0
- data/lib/gooddata/core/logging.rb +1 -1
- data/lib/gooddata/exceptions/maql_execution.rb +1 -1
- data/lib/gooddata/extensions/string.rb +0 -0
- data/lib/gooddata/lcm/actions/associate_clients.rb +34 -8
- data/lib/gooddata/lcm/actions/collect_data_product.rb +8 -1
- data/lib/gooddata/lcm/actions/collect_segment_clients.rb +13 -23
- data/lib/gooddata/lcm/actions/collect_segments.rb +10 -0
- data/lib/gooddata/lcm/actions/synchronize_clients.rb +3 -1
- data/lib/gooddata/lcm/actions/synchronize_ldm.rb +61 -34
- data/lib/gooddata/lcm/actions/synchronize_user_filters.rb +6 -4
- data/lib/gooddata/lcm/actions/update_release_table.rb +4 -12
- data/lib/gooddata/lcm/dsl/params_dsl.rb +0 -4
- data/lib/gooddata/lcm/dsl/type_dsl.rb +0 -4
- data/lib/gooddata/lcm/helpers/check_helper.rb +1 -1
- data/lib/gooddata/lcm/lcm2.rb +0 -2
- data/lib/gooddata/lcm/types/special/enum.rb +6 -0
- data/lib/gooddata/lcm/types/special/enum/synchronize_ldm.rb +20 -0
- data/lib/gooddata/lcm/types/special/types.rb +1 -1
- data/lib/gooddata/mixins/is_folder.rb +0 -0
- data/lib/gooddata/mixins/to_json.rb +0 -0
- data/lib/gooddata/mixins/uri_getter.rb +0 -0
- data/lib/gooddata/models/project_creator.rb +38 -30
- data/lib/gooddata/models/user_filters/user_filter_builder.rb +1 -0
- data/lib/gooddata/rest/README.md +0 -0
- data/lib/gooddata/version.rb +1 -1
- data/lib/templates/bricks/brick.rb.erb +0 -0
- data/lib/templates/bricks/main.rb.erb +0 -0
- data/lib/templates/project/Goodfile.erb +0 -0
- data/lib/templates/project/data/commits.csv +0 -0
- data/lib/templates/project/data/devs.csv +0 -0
- data/lib/templates/project/data/repos.csv +0 -0
- data/lib/templates/project/model/model.rb.erb +0 -0
- metadata +23 -452
- data/lib/gooddata/lcm/actions/ensure_data_product.rb +0 -63
- data/spec/.rubocop.yml +0 -16
- data/spec/bricks/bricks_spec.rb +0 -110
- data/spec/bricks/default-config.json +0 -8
- data/spec/data/.gooddata +0 -4
- data/spec/data/blueprints/additional_dataset_module.json +0 -32
- data/spec/data/blueprints/attribute_sort_order_blueprint.json +0 -72
- data/spec/data/blueprints/big_blueprint_not_pruned.json +0 -2079
- data/spec/data/blueprints/invalid_blueprint.json +0 -103
- data/spec/data/blueprints/m_n_model.json +0 -104
- data/spec/data/blueprints/model_module.json +0 -25
- data/spec/data/blueprints/test_blueprint.json +0 -39
- data/spec/data/blueprints/test_project_model_spec.json +0 -106
- data/spec/data/cc/data/source/commits.csv +0 -4
- data/spec/data/cc/data/source/devs.csv +0 -4
- data/spec/data/cc/data/source/repos.csv +0 -3
- data/spec/data/cc/devel.prm +0 -0
- data/spec/data/cc/graph/graph.grf +0 -11
- data/spec/data/cc/workspace.prm +0 -19
- data/spec/data/column_based_permissions.csv +0 -7
- data/spec/data/column_based_permissions2.csv +0 -6
- data/spec/data/dynamic_schedule_params_table.csv +0 -7
- data/spec/data/gd_gse_data_blueprint.json +0 -1371
- data/spec/data/gd_gse_data_manifest.json +0 -1424
- data/spec/data/gd_gse_data_model.json +0 -1772
- data/spec/data/gooddata_version_process/gooddata_version.rb +0 -9
- data/spec/data/gooddata_version_process/gooddata_version.zip +0 -0
- data/spec/data/hello_world_process/hello_world.rb +0 -9
- data/spec/data/hello_world_process/hello_world.zip +0 -0
- data/spec/data/integration_model.json +0 -252
- data/spec/data/integration_policies.csv +0 -9134
- data/spec/data/line_based_permissions.csv +0 -3
- data/spec/data/manifests/test_blueprint.json +0 -32
- data/spec/data/manifests/test_project.json +0 -107
- data/spec/data/reports/left_attr_report.json +0 -108
- data/spec/data/reports/metric_only_one_line.json +0 -83
- data/spec/data/reports/report_1.json +0 -197
- data/spec/data/reports/top_attr_report.json +0 -108
- data/spec/data/ruby_params_process/ruby_params.rb +0 -9
- data/spec/data/ruby_process/deep_files/deep_stuff.txt +0 -1
- data/spec/data/ruby_process/process.rb +0 -8
- data/spec/data/ruby_process/stuff.txt +0 -1
- data/spec/data/superfluous_titles_view.json +0 -81
- data/spec/data/test-ci-data.csv +0 -2
- data/spec/data/user_filters.csv +0 -2
- data/spec/data/users.csv +0 -12
- data/spec/data/wire_models/attribute_sort_by_model.json +0 -73
- data/spec/data/wire_models/model_view.json +0 -1775
- data/spec/data/wire_models/nu_model.json +0 -3046
- data/spec/data/wire_models/test_blueprint.json +0 -66
- data/spec/data/wire_test_project.json +0 -150
- data/spec/data/workspace_table.csv +0 -3
- data/spec/environment/default.rb +0 -43
- data/spec/environment/development.rb +0 -32
- data/spec/environment/environment.rb +0 -38
- data/spec/environment/production.rb +0 -27
- data/spec/environment/staging.rb +0 -32
- data/spec/environment/testing.rb +0 -32
- data/spec/helpers/appstore_project_helper.rb +0 -221
- data/spec/helpers/blueprint_helper.rb +0 -27
- data/spec/helpers/cli_helper.rb +0 -38
- data/spec/helpers/connection_helper.rb +0 -43
- data/spec/helpers/constants.rb +0 -32
- data/spec/helpers/crypto_helper.rb +0 -19
- data/spec/helpers/csv_helper.rb +0 -20
- data/spec/helpers/process_helper.rb +0 -35
- data/spec/helpers/project_helper.rb +0 -74
- data/spec/helpers/schedule_helper.rb +0 -33
- data/spec/helpers/spec_helper.rb +0 -17
- data/spec/integration/ads_output_stage_spec.rb +0 -45
- data/spec/integration/blueprint_updates_spec.rb +0 -107
- data/spec/integration/blueprint_with_ca_spec.rb +0 -56
- data/spec/integration/blueprint_with_grain_spec.rb +0 -74
- data/spec/integration/channel_configuration_spec.rb +0 -67
- data/spec/integration/clients_spec.rb +0 -164
- data/spec/integration/command_datawarehouse_spec.rb +0 -45
- data/spec/integration/command_projects_spec.rb +0 -32
- data/spec/integration/commands/command_projects_spec.rb +0 -22
- data/spec/integration/connection_spec.rb +0 -37
- data/spec/integration/core/connection_spec.rb +0 -56
- data/spec/integration/core/logging_spec.rb +0 -132
- data/spec/integration/core/project_spec.rb +0 -54
- data/spec/integration/create_from_template_spec.rb +0 -29
- data/spec/integration/create_project_spec.rb +0 -27
- data/spec/integration/date_dim_switch_spec.rb +0 -154
- data/spec/integration/deprecated_load_spec.rb +0 -60
- data/spec/integration/full_process_schedule_spec.rb +0 -367
- data/spec/integration/full_project_spec.rb +0 -592
- data/spec/integration/helpers_spec.rb +0 -16
- data/spec/integration/lcm_spec.rb +0 -54
- data/spec/integration/mandatory_user_filter_spec.rb +0 -53
- data/spec/integration/mixins/id_to_uri_spec.rb +0 -56
- data/spec/integration/models/data_product_spec.rb +0 -71
- data/spec/integration/models/domain_spec.rb +0 -162
- data/spec/integration/models/invitation_spec.rb +0 -17
- data/spec/integration/models/label_spec.rb +0 -49
- data/spec/integration/models/membership_spec.rb +0 -127
- data/spec/integration/models/metadata/report_spec.rb +0 -54
- data/spec/integration/models/metric_spec.rb +0 -24
- data/spec/integration/models/params_spec.rb +0 -118
- data/spec/integration/models/process_spec.rb +0 -35
- data/spec/integration/models/profile_spec.rb +0 -210
- data/spec/integration/models/project_role_spec.rb +0 -94
- data/spec/integration/models/project_spec.rb +0 -225
- data/spec/integration/models/schedule_spec.rb +0 -477
- data/spec/integration/models/unit_project_spec.rb +0 -130
- data/spec/integration/over_to_user_filters_spec.rb +0 -98
- data/spec/integration/partial_md_export_import_spec.rb +0 -41
- data/spec/integration/project_spec.rb +0 -381
- data/spec/integration/rest_spec.rb +0 -214
- data/spec/integration/schedule_spec.rb +0 -611
- data/spec/integration/segments_spec.rb +0 -100
- data/spec/integration/subscription_spec.rb +0 -88
- data/spec/integration/urn_date_dim_spec.rb +0 -53
- data/spec/integration/user_filters_spec.rb +0 -310
- data/spec/integration/user_group_spec.rb +0 -147
- data/spec/integration/variables_spec.rb +0 -189
- data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/can_assign_a_custom_logger.yml +0 -2287
- data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/client_logs_when_given_custom_message.yml +0 -2287
- data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/has_the_request_id_logged_when_I_passed_it.yml +0 -2287
- data/spec/integration/vcr_cassettes/GoodData_-_logging/_logging_off/Disables_logging.yml +0 -2287
- data/spec/integration/vcr_cassettes/GoodData_-_logging/_logging_on/Enables_logging.yml +0 -2287
- data/spec/integration/vcr_cassettes/GoodData_-_project/_project/Returns_project_assigned.yml +0 -354
- data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_nil.yml +0 -299
- data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_directly.yml +0 -354
- data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_using_project_ID.yml +0 -354
- data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_using_project_URL.yml +0 -354
- data/spec/integration/vcr_cassettes/GoodData_-_project/_with_project/Uses_project_specified.yml +0 -354
- data/spec/integration/vcr_cassettes/GoodData_Metric/all.yml +0 -2065
- data/spec/integration/vcr_cassettes/GoodData_Metric/should_be_able_to_update_folders.yml +0 -119
- data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/all.yml +0 -9812
- data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_get_json_containing_correct_id.yml +0 -174
- data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_return_nil_for_unknown_id.yml +0 -58
- data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_throw_BadRequest_for_-1.yml +0 -63
- data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_connect/Connects_using_username_and_password.yml +0 -299
- data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_disconnect/Connects_using_username_and_password.yml +0 -299
- data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_generate_request_id/Generates_a_non-empty_string.yml +0 -2287
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_/Should_list_user_groups_as_Array.yml +0 -56
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_add_members/Should_add_member.yml +0 -315
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_members/Should_return_members_as_array.yml +0 -54
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_remove_members/Should_remove_existing_members.yml +0 -258
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_save/updates_existing_group.yml +0 -159
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_set_members/Should_set_new_members.yml +0 -158
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/all.yml +0 -809
- data/spec/logging_in_logging_out_spec.rb +0 -91
- data/spec/spec_helper.rb +0 -110
- data/spec/unit/actions/associate_clients_spec.rb +0 -48
- data/spec/unit/actions/collect_client_projects_spec.rb +0 -47
- data/spec/unit/actions/collect_clients_spec.rb +0 -65
- data/spec/unit/actions/collect_data_product_spec.rb +0 -58
- data/spec/unit/actions/collect_dynamic_schedule_params_spec.rb +0 -56
- data/spec/unit/actions/collect_meta_spec.rb +0 -88
- data/spec/unit/actions/collect_segment_clients_spec.rb +0 -82
- data/spec/unit/actions/collect_tagged_objects_spec.rb +0 -126
- data/spec/unit/actions/collect_users_brick_users_spec.rb +0 -36
- data/spec/unit/actions/create_segment_masters_spec.rb +0 -65
- data/spec/unit/actions/ensure_data_product_spec.rb +0 -39
- data/spec/unit/actions/ensure_technical_users_domain_spec.rb +0 -53
- data/spec/unit/actions/ensure_technical_users_project_spec.rb +0 -76
- data/spec/unit/actions/execute_schedules_spec.rb +0 -94
- data/spec/unit/actions/provision_clients_spec.rb +0 -46
- data/spec/unit/actions/purge_clients_spec.rb +0 -47
- data/spec/unit/actions/rename_existing_client_projects_spec.rb +0 -54
- data/spec/unit/actions/segments_filter_spec.rb +0 -46
- data/spec/unit/actions/shared_examples_for_user_actions.rb +0 -43
- data/spec/unit/actions/synchronize_cas_spec.rb +0 -58
- data/spec/unit/actions/synchronize_clients_spec.rb +0 -71
- data/spec/unit/actions/synchronize_etls_in_segment_spec.rb +0 -206
- data/spec/unit/actions/synchronize_ldm_spec.rb +0 -70
- data/spec/unit/actions/synchronize_user_filters_spec.rb +0 -208
- data/spec/unit/actions/synchronize_user_groups_spec.rb +0 -49
- data/spec/unit/actions/synchronize_users_spec.rb +0 -180
- data/spec/unit/bricks/bricks_spec.rb +0 -34
- data/spec/unit/bricks/middleware/aws_middelware_spec.rb +0 -98
- data/spec/unit/bricks/middleware/bench_middleware_spec.rb +0 -15
- data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +0 -15
- data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +0 -15
- data/spec/unit/bricks/middleware/logger_middleware_spec.rb +0 -30
- data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +0 -15
- data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +0 -15
- data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +0 -15
- data/spec/unit/cli/cli_spec.rb +0 -17
- data/spec/unit/cli/commands/cmd_auth_spec.rb +0 -17
- data/spec/unit/core/nil_logger_spec.rb +0 -13
- data/spec/unit/extensions/hash_spec.rb +0 -22
- data/spec/unit/godzilla/goodzilla_spec.rb +0 -74
- data/spec/unit/helpers/check_helper_production_spec.rb +0 -34
- data/spec/unit/helpers/check_helper_spec.rb +0 -134
- data/spec/unit/helpers/csv_helper_spec.rb +0 -22
- data/spec/unit/helpers/data_helper_spec.rb +0 -67
- data/spec/unit/helpers/global_helpers_spec.rb +0 -264
- data/spec/unit/helpers_spec.rb +0 -254
- data/spec/unit/lcm/lcm2_spec.rb +0 -100
- data/spec/unit/lcm/user_bricks_helper_spec.rb +0 -58
- data/spec/unit/models/blueprint/attribute_sort_by_spec.rb +0 -20
- data/spec/unit/models/blueprint/attributes_spec.rb +0 -28
- data/spec/unit/models/blueprint/dataset_spec.rb +0 -120
- data/spec/unit/models/blueprint/label_blueprint_field_spec.rb +0 -43
- data/spec/unit/models/blueprint/project_blueprint_spec.rb +0 -642
- data/spec/unit/models/blueprint/reference_spec.rb +0 -28
- data/spec/unit/models/blueprint/schema_builder_spec.rb +0 -36
- data/spec/unit/models/blueprint/to_wire_spec.rb +0 -196
- data/spec/unit/models/dataset_blueprint.rb +0 -14
- data/spec/unit/models/execution_spec.rb +0 -109
- data/spec/unit/models/from_wire_spec.rb +0 -321
- data/spec/unit/models/metadata_spec.rb +0 -140
- data/spec/unit/models/metric_spec.rb +0 -129
- data/spec/unit/models/model_spec.rb +0 -87
- data/spec/unit/models/project_creator_spec.rb +0 -90
- data/spec/unit/models/project_spec.rb +0 -94
- data/spec/unit/models/report_result_data_spec.rb +0 -194
- data/spec/unit/models/to_manifest_spec.rb +0 -165
- data/spec/unit/models/user_filters/user_filter_builder_spec.rb +0 -149
- data/spec/unit/models/user_filters_spec.rb +0 -95
- data/spec/unit/models/variable_spec.rb +0 -280
- data/spec/unit/rest/phmap_spec.rb +0 -117
- data/spec/unit/rest/polling_spec.rb +0 -101
- data/spec/unit/rest/resource_spec.rb +0 -10
- data/spec/vcr_configurer.rb +0 -63
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
#
|
|
3
|
-
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
|
-
# This source code is licensed under the BSD-style license found in the
|
|
5
|
-
# LICENSE file in the root directory of this source tree.
|
|
6
|
-
|
|
7
|
-
require 'gooddata/lcm/lcm2'
|
|
8
|
-
require 'gooddata/lcm/actions/synchronize_user_groups'
|
|
9
|
-
|
|
10
|
-
describe GoodData::LCM2::SynchronizeUserGroups do
|
|
11
|
-
let(:gdc_gd_client) { double(:gdc_gd_client) }
|
|
12
|
-
let(:development_client) { double(:development_client) }
|
|
13
|
-
let(:logger) { double(:logger) }
|
|
14
|
-
|
|
15
|
-
let(:from_project) { double(:from_project) }
|
|
16
|
-
let(:to_project) { double(:to_project) }
|
|
17
|
-
|
|
18
|
-
let(:params) do
|
|
19
|
-
params = {
|
|
20
|
-
gdc_gd_client: gdc_gd_client,
|
|
21
|
-
development_client: development_client,
|
|
22
|
-
synchronize: [{
|
|
23
|
-
segment_id: 'some_segment_ids',
|
|
24
|
-
from: 'from_project_id',
|
|
25
|
-
to: [{ pid: 'to_project_id' }]
|
|
26
|
-
}],
|
|
27
|
-
gdc_logger: logger
|
|
28
|
-
}
|
|
29
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
before do
|
|
33
|
-
allow(logger).to receive(:info)
|
|
34
|
-
|
|
35
|
-
allow(development_client).to receive(:projects) { from_project }
|
|
36
|
-
allow(from_project).to receive(:title)
|
|
37
|
-
allow(from_project).to receive(:pid)
|
|
38
|
-
|
|
39
|
-
allow(gdc_gd_client).to receive(:projects) { to_project }
|
|
40
|
-
allow(to_project).to receive(:title)
|
|
41
|
-
allow(to_project).to receive(:pid)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
it 'should transfer user groups' do
|
|
45
|
-
result = [{ from: 'from_project_id', to: 'to_project_id', user_group: 'user_group_name', status: 'created' }]
|
|
46
|
-
expect(GoodData::Project).to receive(:transfer_user_groups).with(from_project, to_project).and_return(result)
|
|
47
|
-
subject.class.call(params)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
require 'active_support/core_ext/hash'
|
|
2
|
-
require 'gooddata/lcm/lcm2'
|
|
3
|
-
require_relative 'shared_examples_for_user_actions'
|
|
4
|
-
|
|
5
|
-
shared_examples_for 'a user synchronizer' do
|
|
6
|
-
it 'does not fail and logs a warning' do
|
|
7
|
-
expect(logger).to receive(:warn).with(/not match any client ids/)
|
|
8
|
-
expect { subject.class.call(params) }.to_not raise_error
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
describe GoodData::LCM2::SynchronizeUsers do
|
|
13
|
-
let(:client) { double('client') }
|
|
14
|
-
let(:user) { double('user') }
|
|
15
|
-
let(:data_source) { double('user') }
|
|
16
|
-
let(:domain) { double('domain') }
|
|
17
|
-
let(:project) { double('project') }
|
|
18
|
-
let(:organization) { double('organization') }
|
|
19
|
-
let(:logger) { double('logger') }
|
|
20
|
-
let(:project_uri) { '/gdc/projects/123abc' }
|
|
21
|
-
|
|
22
|
-
before do
|
|
23
|
-
allow(client).to receive(:projects).and_return(project)
|
|
24
|
-
allow(client).to receive(:user).and_return(user)
|
|
25
|
-
allow(client).to receive(:domain).and_return(domain)
|
|
26
|
-
allow(organization).to receive(:project_uri).and_return(project_uri)
|
|
27
|
-
allow(project).to receive(:import_users).and_return([{}])
|
|
28
|
-
allow(project).to receive(:metadata).and_return({})
|
|
29
|
-
allow(project).to receive(:uri).and_return(project_uri)
|
|
30
|
-
allow(project).to receive(:pid).and_return('123456789')
|
|
31
|
-
allow(data_source).to receive(:realize)
|
|
32
|
-
allow(user).to receive(:login).and_return('my_login')
|
|
33
|
-
allow(GoodData::Helpers::DataSource).to receive(:new)
|
|
34
|
-
.and_return(data_source)
|
|
35
|
-
allow(logger).to receive(:debug)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
context 'when multiple_projects_column not specified' do
|
|
39
|
-
context 'when mode is sync_one_project_based_on_custom_id' do
|
|
40
|
-
let(:client_id) { '123456789' }
|
|
41
|
-
|
|
42
|
-
before do
|
|
43
|
-
allow(domain).to receive(:clients).and_return([organization])
|
|
44
|
-
allow(organization).to receive(:id).and_return(client_id)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
let(:params) do
|
|
48
|
-
params = {
|
|
49
|
-
sync_mode: 'sync_one_project_based_on_custom_id',
|
|
50
|
-
GDC_GD_CLIENT: client,
|
|
51
|
-
input_source: 'foo',
|
|
52
|
-
domain: 'bar',
|
|
53
|
-
gdc_logger: logger,
|
|
54
|
-
}
|
|
55
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
context 'when the input set is empty' do
|
|
59
|
-
before do
|
|
60
|
-
allow(File).to receive(:open).and_return("")
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
it_behaves_like 'a user synchronizer'
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
context 'when the input set does not contain data for the current project' do
|
|
67
|
-
before do
|
|
68
|
-
allow(File).to receive(:open).and_return("client_id\ndifferent_from_123")
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
it_behaves_like 'a user synchronizer'
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
context 'when mode requires client_id' do
|
|
76
|
-
let(:params) do
|
|
77
|
-
params = {
|
|
78
|
-
sync_mode: 'sync_one_project_based_on_pid',
|
|
79
|
-
GDC_GD_CLIENT: client,
|
|
80
|
-
input_source: 'foo',
|
|
81
|
-
domain: 'bar',
|
|
82
|
-
gdc_logger: logger
|
|
83
|
-
}
|
|
84
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
before do
|
|
88
|
-
allow(File).to receive(:open).and_return("project_id\n123456789")
|
|
89
|
-
allow(domain).to receive(:clients).and_return(organization)
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
it 'uses project_id column' do
|
|
93
|
-
expect(project).to receive(:import_users) do |filtered_users|
|
|
94
|
-
filtered_users.each do |u|
|
|
95
|
-
expect(u[:pid]).to eq '123456789'
|
|
96
|
-
end
|
|
97
|
-
[]
|
|
98
|
-
end
|
|
99
|
-
subject.class.call(params)
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
context 'when using mode sync_domain_client_workspaces' do
|
|
104
|
-
let(:segment) { double('segment') }
|
|
105
|
-
let(:segment_uri) { 'segment_uri' }
|
|
106
|
-
let(:params) do
|
|
107
|
-
params = {
|
|
108
|
-
GDC_GD_CLIENT: client,
|
|
109
|
-
input_source: 'foo',
|
|
110
|
-
domain: 'bar',
|
|
111
|
-
gdc_logger: logger,
|
|
112
|
-
sync_mode: 'sync_domain_client_workspaces',
|
|
113
|
-
segments: [segment]
|
|
114
|
-
}
|
|
115
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
before do
|
|
119
|
-
allow(File).to receive(:open).and_return("client_id\n123456789")
|
|
120
|
-
allow(domain).to receive(:clients).with(:all, nil).and_return([organization, organization_not_in_segment])
|
|
121
|
-
allow(domain).to receive(:clients).with('123456789', nil).and_return(organization)
|
|
122
|
-
allow(segment).to receive(:uri).and_return(segment_uri)
|
|
123
|
-
allow(organization).to receive(:segment_uri).and_return(segment_uri)
|
|
124
|
-
allow(organization).to receive(:project).and_return(project)
|
|
125
|
-
allow(organization).to receive(:client_id).and_return('123456789')
|
|
126
|
-
allow(project).to receive(:deleted?).and_return(false)
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
it_behaves_like 'a user action filtering segments' do
|
|
130
|
-
let(:message_for_project) { :import_users }
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
context 'when using mistyped mode' do
|
|
134
|
-
let(:params) do
|
|
135
|
-
params = {
|
|
136
|
-
GDC_GD_CLIENT: client,
|
|
137
|
-
input_source: 'foo',
|
|
138
|
-
domain: 'bar',
|
|
139
|
-
gdc_logger: logger,
|
|
140
|
-
sync_mode: 'unsuported_sync_mode'
|
|
141
|
-
}
|
|
142
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
before do
|
|
146
|
-
allow(domain).to receive(:clients).and_return(organization)
|
|
147
|
-
end
|
|
148
|
-
it_should_behave_like 'when using unsuported sync_mode'
|
|
149
|
-
end
|
|
150
|
-
context 'when using no mode' do
|
|
151
|
-
let(:params) do
|
|
152
|
-
params = {
|
|
153
|
-
GDC_GD_CLIENT: client,
|
|
154
|
-
input_source: 'foo',
|
|
155
|
-
domain: 'bar',
|
|
156
|
-
gdc_logger: logger
|
|
157
|
-
}
|
|
158
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
159
|
-
end
|
|
160
|
-
|
|
161
|
-
before do
|
|
162
|
-
allow(domain).to receive(:clients).and_return(organization)
|
|
163
|
-
end
|
|
164
|
-
before do
|
|
165
|
-
allow(data_source).to receive(:realize).and_return('filepath')
|
|
166
|
-
allow(File).to receive(:open).and_return("client_id\n123456789")
|
|
167
|
-
allow(project).to receive(:metadata).and_return(
|
|
168
|
-
'GOODOT_CUSTOM_PROJECT_ID' => 'project-123'
|
|
169
|
-
)
|
|
170
|
-
allow(project).to receive(:uri).and_return('project-uri')
|
|
171
|
-
allow(project).to receive(:add_data_permissions)
|
|
172
|
-
allow(domain).to receive(:clients).and_return([])
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
it 'fails' do
|
|
176
|
-
expect { subject.class.call(params) }.to raise_error(/sync_mode/)
|
|
177
|
-
end
|
|
178
|
-
end
|
|
179
|
-
end
|
|
180
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
#
|
|
3
|
-
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
|
-
# This source code is licensed under the BSD-style license found in the
|
|
5
|
-
# LICENSE file in the root directory of this source tree.
|
|
6
|
-
|
|
7
|
-
require 'gooddata/bricks/bricks'
|
|
8
|
-
|
|
9
|
-
describe GoodData::Bricks::Brick do
|
|
10
|
-
it "Has GoodData::Bricks::Brick class" do
|
|
11
|
-
GoodData::Bricks::Brick.should_not be(nil)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
describe '#version' do
|
|
15
|
-
it 'Throws NotImplemented on base class' do
|
|
16
|
-
brick = GoodData::Bricks::Brick.new
|
|
17
|
-
expect do
|
|
18
|
-
brick.version
|
|
19
|
-
end.to raise_error(NotImplementedError)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
it "should be possible to execute custom brick" do
|
|
24
|
-
class CustomBrick < GoodData::Bricks::Brick
|
|
25
|
-
def call(_params)
|
|
26
|
-
puts 'hello'
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
p = GoodData::Bricks::Pipeline.prepare([CustomBrick])
|
|
31
|
-
|
|
32
|
-
p.call({})
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
#
|
|
3
|
-
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
|
-
# This source code is licensed under the BSD-style license found in the
|
|
5
|
-
# LICENSE file in the root directory of this source tree.
|
|
6
|
-
|
|
7
|
-
require 'gooddata/bricks/brick'
|
|
8
|
-
require 'gooddata/bricks/bricks'
|
|
9
|
-
require 'gooddata/bricks/middleware/aws_middleware'
|
|
10
|
-
|
|
11
|
-
describe GoodData::Bricks::AWSMiddleware do
|
|
12
|
-
subject { GoodData::Bricks::AWSMiddleware.new(app: proc {}) }
|
|
13
|
-
|
|
14
|
-
it 'should do nothing if the key "aws_client" is not there at all' do
|
|
15
|
-
middleware = GoodData::Bricks::AWSMiddleware.new(app: ->(_params) { 'Doing nothing' })
|
|
16
|
-
middleware.call({})
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
it 'should fail gracefully if value aws_client param not present even though the key is' do
|
|
20
|
-
middleware = GoodData::Bricks::AWSMiddleware.new(app: -> { 'Doing nothing' })
|
|
21
|
-
expect do
|
|
22
|
-
middleware.call('aws_client' => nil)
|
|
23
|
-
end.to raise_exception 'Unable to connect to AWS. Parameter "aws_client" seems to be empty'
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
it 'should fail gracefully if value secret_access_key is missing' do
|
|
27
|
-
middleware = GoodData::Bricks::AWSMiddleware.new(app: -> { 'Doing nothing' })
|
|
28
|
-
expect do
|
|
29
|
-
middleware.call('aws_client' => { 'access_key_id' => 'something' })
|
|
30
|
-
end.to raise_exception 'Unable to connect to AWS. Parameter "secret_access_key" is missing'
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it 'should fail gracefully if value access_key_id is missing' do
|
|
34
|
-
middleware = GoodData::Bricks::AWSMiddleware.new(app: -> { 'Doing nothing' })
|
|
35
|
-
expect do
|
|
36
|
-
middleware.call('aws_client' => { 'secret_access_key' => 'something' })
|
|
37
|
-
end.to raise_exception 'Unable to connect to AWS. Parameter "access_key_id" is missing'
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it "should preapre aws middleware for aws_client param" do
|
|
41
|
-
middleware = GoodData::Bricks::AWSMiddleware.new(app: lambda do |params|
|
|
42
|
-
expect(params['aws_client']['s3_client']).to be_kind_of(Aws::S3::Resource)
|
|
43
|
-
end)
|
|
44
|
-
middleware.call('aws_client' => { 'secret_access_key' => 'something', 'access_key_id' => 'something' })
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
context 'when use_ssl parameter specified' do
|
|
48
|
-
let(:params) do
|
|
49
|
-
{
|
|
50
|
-
'aws_client' => {
|
|
51
|
-
'access_key_id' => 'foo',
|
|
52
|
-
'secret_access_key' => 'bar',
|
|
53
|
-
'region' => 'baz',
|
|
54
|
-
'use_ssl' => 'false'
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
it 'raises an error' do
|
|
60
|
-
expect { subject.call(params) }.to raise_error(/use_ssl has been deprecated/)
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
context 'when a superfluous parameter is specified' do
|
|
65
|
-
let(:params) do
|
|
66
|
-
{
|
|
67
|
-
'aws_client' => {
|
|
68
|
-
'access_key_id' => 'foo',
|
|
69
|
-
'secret_access_key' => 'bar',
|
|
70
|
-
'region' => 'baz',
|
|
71
|
-
'qux' => 'quux'
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
it 'raises an error' do
|
|
77
|
-
expect { subject.call(params) }.to raise_error(ArgumentError, /qux/)
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
context 'when region not specified' do
|
|
82
|
-
let(:params) do
|
|
83
|
-
{
|
|
84
|
-
'aws_client' => {
|
|
85
|
-
'access_key_id' => 'foo',
|
|
86
|
-
'secret_access_key' => 'bar'
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
it 'it defaults to us-west-2' do
|
|
92
|
-
expect(Aws::S3::Resource).to receive(:new) do |params|
|
|
93
|
-
expect(params[:region]).to eq 'us-west-2'
|
|
94
|
-
end
|
|
95
|
-
subject.call(params)
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
#
|
|
3
|
-
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
|
-
# This source code is licensed under the BSD-style license found in the
|
|
5
|
-
# LICENSE file in the root directory of this source tree.
|
|
6
|
-
|
|
7
|
-
require 'gooddata/bricks/brick'
|
|
8
|
-
require 'gooddata/bricks/bricks'
|
|
9
|
-
require 'gooddata/bricks/middleware/bench_middleware'
|
|
10
|
-
|
|
11
|
-
describe GoodData::Bricks::BenchMiddleware do
|
|
12
|
-
it "Has GoodData::Bricks::BenchMiddleware class" do
|
|
13
|
-
GoodData::Bricks::BenchMiddleware.should_not be(nil)
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
#
|
|
3
|
-
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
|
-
# This source code is licensed under the BSD-style license found in the
|
|
5
|
-
# LICENSE file in the root directory of this source tree.
|
|
6
|
-
|
|
7
|
-
require 'gooddata/bricks/brick'
|
|
8
|
-
require 'gooddata/bricks/bricks'
|
|
9
|
-
require 'gooddata/bricks/middleware/bulk_salesforce_middleware'
|
|
10
|
-
|
|
11
|
-
describe GoodData::Bricks::BulkSalesforceMiddleware do
|
|
12
|
-
it "Has GoodData::Bricks::BulkSalesforceMiddleware class" do
|
|
13
|
-
GoodData::Bricks::BulkSalesforceMiddleware.should_not be(nil)
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
#
|
|
3
|
-
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
|
-
# This source code is licensed under the BSD-style license found in the
|
|
5
|
-
# LICENSE file in the root directory of this source tree.
|
|
6
|
-
|
|
7
|
-
require 'gooddata/bricks/brick'
|
|
8
|
-
require 'gooddata/bricks/bricks'
|
|
9
|
-
require 'gooddata/bricks/middleware/gooddata_middleware'
|
|
10
|
-
|
|
11
|
-
describe GoodData::Bricks::GoodDataMiddleware do
|
|
12
|
-
it "Has GoodData::Bricks::GoodDataMiddleware class" do
|
|
13
|
-
GoodData::Bricks::GoodDataMiddleware.should_not be(nil)
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
#
|
|
3
|
-
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
|
-
# This source code is licensed under the BSD-style license found in the
|
|
5
|
-
# LICENSE file in the root directory of this source tree.
|
|
6
|
-
|
|
7
|
-
require 'gooddata/bricks/brick'
|
|
8
|
-
require 'gooddata/bricks/bricks'
|
|
9
|
-
require 'gooddata/bricks/middleware/logger_middleware'
|
|
10
|
-
|
|
11
|
-
describe GoodData::Bricks::LoggerMiddleware do
|
|
12
|
-
it "Has GoodData::Bricks::LoggerMiddleware class" do
|
|
13
|
-
GoodData::Bricks::LoggerMiddleware.should_not be(nil)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
context 'when HTTP_LOGGING parameter set to true' do
|
|
17
|
-
let(:params) { { 'HTTP_LOGGING' => 'true' } }
|
|
18
|
-
let(:app) { double(:app) }
|
|
19
|
-
|
|
20
|
-
before do
|
|
21
|
-
subject.app = app
|
|
22
|
-
allow(app).to receive(:call)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
it 'turns http logging on' do
|
|
26
|
-
expect(GoodData).to receive(:logging_http_on)
|
|
27
|
-
subject.call(params)
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|