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,76 +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/actions/ensure_technical_users_project'
|
|
8
|
-
require 'gooddata/lcm/lcm2'
|
|
9
|
-
|
|
10
|
-
shared_examples 'a technical users project action' do
|
|
11
|
-
it 'adds technical user to the project' do
|
|
12
|
-
expect(project).to receive(:create_users).with([{ login: 'foo@bar.com', role: 'admin' }])
|
|
13
|
-
result = subject.class.call(params)
|
|
14
|
-
expected = [{ project: 'foo project',
|
|
15
|
-
pid: 'abcdefg',
|
|
16
|
-
login: 'foo@bar.com',
|
|
17
|
-
role: 'admin',
|
|
18
|
-
result: 'successful',
|
|
19
|
-
message: 'yahoo!',
|
|
20
|
-
url: '/gdc/account/foo' }]
|
|
21
|
-
expect(result).to eq(expected)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
describe GoodData::LCM2::EnsureTechnicalUsersProject do
|
|
26
|
-
let(:gdc_gd_client) { double(:gdc_gd_client) }
|
|
27
|
-
let(:project) { double(:project) }
|
|
28
|
-
let(:domain) { double(:domain) }
|
|
29
|
-
before do
|
|
30
|
-
allow(project).to receive(:title) { 'foo project' }
|
|
31
|
-
allow(project).to receive(:pid) { 'abcdefg' }
|
|
32
|
-
allow(project).to receive(:create_users) { [{ type: 'successful', message: 'yahoo!', user: '/gdc/account/foo' }] }
|
|
33
|
-
allow(gdc_gd_client).to receive(:projects) { project }
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
context 'when user wants to assign an existing project to new client' do
|
|
37
|
-
let(:params) do
|
|
38
|
-
params = {
|
|
39
|
-
gdc_gd_client: gdc_gd_client,
|
|
40
|
-
technical_users: ['foo@bar.com'],
|
|
41
|
-
synchronize: [],
|
|
42
|
-
domain: domain,
|
|
43
|
-
clients: [{ project: 'abcdefg' }]
|
|
44
|
-
}
|
|
45
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
it_behaves_like 'a technical users project action'
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
context 'when deprecated param technical_user specified' do
|
|
52
|
-
let(:params) do
|
|
53
|
-
params = {
|
|
54
|
-
gdc_gd_client: gdc_gd_client,
|
|
55
|
-
technical_user: ['foo@bar.com'],
|
|
56
|
-
domain: domain,
|
|
57
|
-
synchronize: [{ to: [{ pid: 'qux' }] }]
|
|
58
|
-
}
|
|
59
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
60
|
-
end
|
|
61
|
-
it_behaves_like 'a technical users project action'
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
context 'when param technical_users specified' do
|
|
65
|
-
let(:params) do
|
|
66
|
-
params = {
|
|
67
|
-
gdc_gd_client: gdc_gd_client,
|
|
68
|
-
domain: domain,
|
|
69
|
-
technical_users: ['foo@bar.com'],
|
|
70
|
-
synchronize: [{ to: [{ pid: 'qux' }] }]
|
|
71
|
-
}
|
|
72
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
73
|
-
end
|
|
74
|
-
it_behaves_like 'a technical users project action'
|
|
75
|
-
end
|
|
76
|
-
end
|
|
@@ -1,94 +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/execute_schedules'
|
|
9
|
-
|
|
10
|
-
describe GoodData::LCM2::ExecuteSchedules do
|
|
11
|
-
let(:client) { double(:client) }
|
|
12
|
-
let(:logger) { double(:logger) }
|
|
13
|
-
let(:project) { double(:project) }
|
|
14
|
-
let(:schedule) { double(:schedule) }
|
|
15
|
-
|
|
16
|
-
before do
|
|
17
|
-
allow(logger).to receive(:info)
|
|
18
|
-
allow(logger).to receive(:warn)
|
|
19
|
-
allow(client).to receive(:projects).and_return([project])
|
|
20
|
-
allow(schedule).to receive(:params).and_return('MODE' => 'foo')
|
|
21
|
-
allow(schedule).to receive(:project).and_return(project)
|
|
22
|
-
allow(schedule).to receive(:obj_id).and_return('id')
|
|
23
|
-
allow(project).to receive(:schedules).and_return([schedule])
|
|
24
|
-
allow(project).to receive(:pid)
|
|
25
|
-
allow(project).to receive(:title)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
context 'In simplest case' do
|
|
29
|
-
let(:params) do
|
|
30
|
-
params = {
|
|
31
|
-
GDC_GD_CLIENT: client,
|
|
32
|
-
list_of_modes: 'foo|bar',
|
|
33
|
-
work_done_identificator: 'IGNORE',
|
|
34
|
-
gdc_logger: logger
|
|
35
|
-
}
|
|
36
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
it 'execute schedules' do
|
|
40
|
-
expect(schedule).to receive(:execute)
|
|
41
|
-
subject.class.call(params)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
context 'when SEGMENT_LIST is specified' do
|
|
46
|
-
let(:params) do
|
|
47
|
-
params = {
|
|
48
|
-
GDC_GD_CLIENT: client,
|
|
49
|
-
list_of_modes: 'foo|bar',
|
|
50
|
-
work_done_identificator: 'IGNORE',
|
|
51
|
-
gdc_logger: logger,
|
|
52
|
-
segment_list: 'A|B'
|
|
53
|
-
}
|
|
54
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
it 'throw error if DOMAIN is not filled' do
|
|
58
|
-
expect do
|
|
59
|
-
subject.class.call(params)
|
|
60
|
-
end.to raise_error(/In case that you are using SEGMENT_LIST parameter, you need to fill out DOMAIN parameter/)
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
context 'when SEGMENT_LIST and DOMAIN are specified' do
|
|
65
|
-
let(:params) do
|
|
66
|
-
params = {
|
|
67
|
-
GDC_GD_CLIENT: client,
|
|
68
|
-
list_of_modes: 'foo|bar',
|
|
69
|
-
work_done_identificator: 'IGNORE',
|
|
70
|
-
gdc_logger: logger,
|
|
71
|
-
segment_list: 'A',
|
|
72
|
-
domain: 'domain'
|
|
73
|
-
}
|
|
74
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
let(:domain) { double(:domain) }
|
|
78
|
-
let(:segment) { double(:segment) }
|
|
79
|
-
let(:segment_client) { double(:segment_client) }
|
|
80
|
-
|
|
81
|
-
before do
|
|
82
|
-
allow(client).to receive(:domain).and_return(domain)
|
|
83
|
-
allow(domain).to receive(:segments).and_return(segment)
|
|
84
|
-
allow(segment).to receive(:clients).and_return([segment_client])
|
|
85
|
-
allow(project).to receive(:obj_id).and_return('id')
|
|
86
|
-
allow(segment_client).to receive(:project).and_return(project)
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
it 'should work' do
|
|
90
|
-
expect(schedule).to receive(:execute)
|
|
91
|
-
subject.class.call(params)
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|
|
@@ -1,46 +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/actions/provision_clients'
|
|
8
|
-
require 'gooddata/lcm/actions/purge_clients'
|
|
9
|
-
require 'gooddata/lcm/lcm2'
|
|
10
|
-
|
|
11
|
-
describe GoodData::LCM2::ProvisionClients do
|
|
12
|
-
let(:gdc_gd_client) { double('gdc_gd_client') }
|
|
13
|
-
let(:domain) { double('domain') }
|
|
14
|
-
let(:logger) { double('logger') }
|
|
15
|
-
let(:segment) { double('segment') }
|
|
16
|
-
let(:data_product) { double('data_product') }
|
|
17
|
-
|
|
18
|
-
before do
|
|
19
|
-
allow(gdc_gd_client).to receive(:domain).and_return(domain)
|
|
20
|
-
allow(logger).to receive(:debug)
|
|
21
|
-
allow(logger).to receive(:error).and_return({})
|
|
22
|
-
allow(segment).to receive(:segment_id).and_return({})
|
|
23
|
-
allow(segment).to receive(:provision_client_projects).and_raise('limit reached')
|
|
24
|
-
allow(domain).to receive(:segments) { segment }
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
context 'when provisioning get errors' do
|
|
28
|
-
let(:params) do
|
|
29
|
-
params = {
|
|
30
|
-
gdc_gd_client: gdc_gd_client,
|
|
31
|
-
gdc_logger: logger,
|
|
32
|
-
segments: [
|
|
33
|
-
segment
|
|
34
|
-
],
|
|
35
|
-
domain: domain,
|
|
36
|
-
data_product: data_product
|
|
37
|
-
}
|
|
38
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
it 'clean all zombie clients' do
|
|
42
|
-
expect(GoodData::LCM2::PurgeClients).to receive(:call).and_return(results: [], params: { client_projects: [] })
|
|
43
|
-
expect { subject.class.call(params) }.to raise_error('limit reached')
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
@@ -1,47 +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/purge_clients'
|
|
9
|
-
|
|
10
|
-
describe GoodData::LCM2::PurgeClients do
|
|
11
|
-
let(:client1) { double('client1') }
|
|
12
|
-
let(:client2) { double('client2') }
|
|
13
|
-
let(:project) { double('project') }
|
|
14
|
-
|
|
15
|
-
context "some clients which don't have project or project is deleted are existing in segment" do
|
|
16
|
-
let(:params) do
|
|
17
|
-
params = {
|
|
18
|
-
client_projects: {
|
|
19
|
-
'client_id' => {
|
|
20
|
-
segment_client: client1,
|
|
21
|
-
project: project
|
|
22
|
-
},
|
|
23
|
-
'delete' => {
|
|
24
|
-
segment_client: client2
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
before do
|
|
32
|
-
allow(client1).to receive(:project) { project }
|
|
33
|
-
allow(client1).to receive(:client_id) { 'client_id' }
|
|
34
|
-
allow(client2).to receive(:client_id) { 'delete' }
|
|
35
|
-
allow(client1).to receive(:delete)
|
|
36
|
-
allow(client2).to receive(:delete)
|
|
37
|
-
allow(project).to receive(:pid) { '123456789' }
|
|
38
|
-
allow(project).to receive(:deleted?) { false }
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
it 'purge them' do
|
|
42
|
-
expect(client2).to receive(:delete)
|
|
43
|
-
result = subject.class.call(params)[:results]
|
|
44
|
-
expect(result).to eq [{ client_id: 'client_id', project: '123456789', status: 'ok - not purged' }, { client_id: 'delete', project: nil, status: 'purged' }]
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
@@ -1,54 +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_etls_in_segment'
|
|
9
|
-
|
|
10
|
-
describe GoodData::LCM2::RenameExistingClientProjects do
|
|
11
|
-
let(:gdc_gd_client) { double('gdc_gd_client') }
|
|
12
|
-
let(:domain) { double('domain') }
|
|
13
|
-
let(:client) { double('client') }
|
|
14
|
-
let(:project) { double('project') }
|
|
15
|
-
|
|
16
|
-
context 'client project is existing in input source' do
|
|
17
|
-
let(:params) do
|
|
18
|
-
params = {
|
|
19
|
-
gdc_gd_client: gdc_gd_client,
|
|
20
|
-
organization: domain,
|
|
21
|
-
clients: [
|
|
22
|
-
{
|
|
23
|
-
id: 'Id',
|
|
24
|
-
settings: [
|
|
25
|
-
{
|
|
26
|
-
name: 'lcm.title',
|
|
27
|
-
value: 'renamed project'
|
|
28
|
-
}
|
|
29
|
-
]
|
|
30
|
-
}
|
|
31
|
-
],
|
|
32
|
-
client_projects: {
|
|
33
|
-
'Id' => { segment_client: client, project: project }
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
before do
|
|
40
|
-
allow(gdc_gd_client).to receive(:domain) { domain }
|
|
41
|
-
allow(client).to receive(:project) { project }
|
|
42
|
-
allow(project).to receive(:pid) { '123456789' }
|
|
43
|
-
allow(project).to receive(:title) { "old project" }
|
|
44
|
-
allow(project).to receive(:title=)
|
|
45
|
-
allow(project).to receive(:save)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
it 'rename client project title' do
|
|
49
|
-
expect(project).to receive(:title=).with('renamed project')
|
|
50
|
-
result = subject.class.call(params)
|
|
51
|
-
expect(result).to eq [{ id: 'Id', pid: '123456789', old_title: 'old project', new_title: 'renamed project' }]
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
@@ -1,46 +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/actions/segments_filter'
|
|
8
|
-
require 'gooddata/lcm/lcm2'
|
|
9
|
-
|
|
10
|
-
describe GoodData::LCM2::SegmentsFilter do
|
|
11
|
-
context 'when segments contains duplicate segment ids' do
|
|
12
|
-
let(:params) do
|
|
13
|
-
params = {
|
|
14
|
-
segments: [
|
|
15
|
-
{ segment_id: 'segment_foo' },
|
|
16
|
-
{ segment_id: 'Segment_foo' }
|
|
17
|
-
]
|
|
18
|
-
}
|
|
19
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
it 'raise error' do
|
|
23
|
-
expect { subject.class.call(params) }.to raise_error(/segment_foo/, /Segment_foo/)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
context 'when passed segments' do
|
|
28
|
-
let(:params) do
|
|
29
|
-
params = {
|
|
30
|
-
segments: [
|
|
31
|
-
{ segment_id: 'correct-segment' },
|
|
32
|
-
{ segment_id: 'wrong-segment' }
|
|
33
|
-
],
|
|
34
|
-
segments_filter: [
|
|
35
|
-
'correct-segment'
|
|
36
|
-
]
|
|
37
|
-
}
|
|
38
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
it 'filters the segments according to segments_filter' do
|
|
42
|
-
results = subject.class.call(params)
|
|
43
|
-
expect(results[:results].first.segment_id).to eq 'correct-segment'
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
shared_examples 'a user action reading client_id' do
|
|
2
|
-
before do
|
|
3
|
-
allow(File).to receive(:open).and_return("client_id\n#{client_id}")
|
|
4
|
-
end
|
|
5
|
-
|
|
6
|
-
it 'uses client_id column' do
|
|
7
|
-
expect(domain).to receive(:clients).with(client_id, nil)
|
|
8
|
-
subject.class.call(params)
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
shared_examples 'a user action filtering segments' do
|
|
13
|
-
let(:organization_not_in_segment) { double('organization') }
|
|
14
|
-
let(:project_not_in_segment) { double('project') }
|
|
15
|
-
|
|
16
|
-
before do
|
|
17
|
-
allow(organization_not_in_segment).to receive(:segment_uri).and_return('another-segment-uri')
|
|
18
|
-
allow(organization_not_in_segment).to receive(:project).and_return(project_not_in_segment)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
it 'does operation on project only from clients in segments in segments filter' do
|
|
22
|
-
expect(project).to receive(message_for_project)
|
|
23
|
-
expect(project_not_in_segment).not_to receive(message_for_project)
|
|
24
|
-
subject.class.call(params)
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
shared_examples 'when using unsuported sync_mode' do
|
|
29
|
-
before do
|
|
30
|
-
allow(project).to receive(:metadata).and_return(
|
|
31
|
-
'GOODOT_CUSTOM_PROJECT_ID' => 'project-123'
|
|
32
|
-
)
|
|
33
|
-
allow(project).to receive(:uri).and_return('project-uri')
|
|
34
|
-
allow(data_source).to receive(:realize).and_return('filepath')
|
|
35
|
-
allow(File).to receive(:open).and_return("client_id\n123456789")
|
|
36
|
-
allow(project).to receive(:add_data_permissions)
|
|
37
|
-
allow(domain).to receive(:clients).and_return([])
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it 'fails' do
|
|
41
|
-
expect { subject.class.call(params) }.to raise_error(/sync_mode/)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
@@ -1,58 +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
|
-
shared_examples 'a computed attributes synchronizer' do
|
|
8
|
-
it 'it synchronizes computed attributes' do
|
|
9
|
-
expect(project).to receive(:execute_maql).with('expected_maql')
|
|
10
|
-
result = subject.class.call(converted_params)
|
|
11
|
-
expect(result).not_to be_empty
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
describe GoodData::LCM2::SynchronizeComputedAttributes do
|
|
16
|
-
let(:gdc_gd_client) { double(GoodData::Rest::Client) }
|
|
17
|
-
let(:logger) { double(Logger) }
|
|
18
|
-
let(:project) { double(GoodData::Project) }
|
|
19
|
-
let(:synchronize) do
|
|
20
|
-
[{ from: 'foo', to: [{ ca_scripts: { 'maqlDdlChunks' => ['expected_maql'] } }] }]
|
|
21
|
-
end
|
|
22
|
-
let(:basic_params) do
|
|
23
|
-
{
|
|
24
|
-
gdc_gd_client: gdc_gd_client,
|
|
25
|
-
development_client: gdc_gd_client,
|
|
26
|
-
synchronize: synchronize,
|
|
27
|
-
gdc_logger: logger
|
|
28
|
-
}
|
|
29
|
-
end
|
|
30
|
-
let(:converted_params) do
|
|
31
|
-
GoodData::LCM2.convert_to_smart_hash(params)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
before do
|
|
35
|
-
allow(gdc_gd_client).to receive(:projects).and_return(project)
|
|
36
|
-
allow(project).to receive(:title)
|
|
37
|
-
allow(project).to receive(:pid)
|
|
38
|
-
allow(logger).to receive(:info)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
context 'when include_computed_attributes is not specified' do
|
|
42
|
-
let(:params) { basic_params }
|
|
43
|
-
it_behaves_like 'a computed attributes synchronizer'
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
context 'when include_computed_attributes is true' do
|
|
47
|
-
let(:params) { basic_params.merge(include_computed_attributes: 'true') }
|
|
48
|
-
it_behaves_like 'a computed attributes synchronizer'
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
context 'when include_computed_attributes is false' do
|
|
52
|
-
let(:params) { basic_params.merge(include_computed_attributes: 'false') }
|
|
53
|
-
it 'it does not synchronize computed attributes' do
|
|
54
|
-
result = subject.class.call(converted_params)
|
|
55
|
-
expect(result).to be_empty
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|