gooddata 1.0.2-java → 1.1.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 +5 -5
- data/.gitignore +1 -0
- data/CONTRIBUTING.md +12 -0
- data/README.md +5 -2
- data/Rakefile +0 -1
- data/dev-gooddata-sso.pub.encrypted +40 -0
- data/gooddata.gemspec +3 -3
- data/lib/gooddata/connection.rb +23 -13
- data/lib/gooddata/helpers/data_helper.rb +0 -1
- data/lib/gooddata/lcm/actions/apply_custom_maql.rb +8 -1
- data/lib/gooddata/lcm/actions/associate_clients.rb +8 -1
- data/lib/gooddata/lcm/actions/base_action.rb +10 -0
- data/lib/gooddata/lcm/actions/collect_ca_metrics.rb +7 -1
- data/lib/gooddata/lcm/actions/collect_client_projects.rb +3 -0
- data/lib/gooddata/lcm/actions/collect_clients.rb +3 -1
- data/lib/gooddata/lcm/actions/collect_data_product.rb +10 -2
- data/lib/gooddata/lcm/actions/collect_dynamic_schedule_params.rb +12 -1
- data/lib/gooddata/lcm/actions/collect_ldm_objects.rb +6 -2
- data/lib/gooddata/lcm/actions/collect_meta.rb +1 -1
- data/lib/gooddata/lcm/actions/collect_segment_clients.rb +8 -1
- data/lib/gooddata/lcm/actions/collect_segments.rb +6 -5
- data/lib/gooddata/lcm/actions/collect_tagged_objects.rb +1 -1
- data/lib/gooddata/lcm/actions/collect_users_brick_users.rb +10 -4
- data/lib/gooddata/lcm/actions/create_segment_masters.rb +12 -2
- data/lib/gooddata/lcm/actions/ensure_data_product.rb +10 -0
- data/lib/gooddata/lcm/actions/ensure_technical_users_domain.rb +5 -1
- data/lib/gooddata/lcm/actions/ensure_technical_users_project.rb +3 -0
- data/lib/gooddata/lcm/actions/execute_schedules.rb +10 -0
- data/lib/gooddata/lcm/actions/import_object_collections.rb +1 -1
- data/lib/gooddata/lcm/actions/provision_clients.rb +12 -2
- data/lib/gooddata/lcm/actions/purge_clients.rb +2 -0
- data/lib/gooddata/lcm/actions/rename_existing_client_projects.rb +3 -0
- data/lib/gooddata/lcm/actions/synchronize_attribute_drillpaths.rb +4 -1
- data/lib/gooddata/lcm/actions/synchronize_cas.rb +7 -1
- data/lib/gooddata/lcm/actions/synchronize_clients.rb +11 -1
- data/lib/gooddata/lcm/actions/synchronize_color_palette.rb +7 -1
- data/lib/gooddata/lcm/actions/synchronize_etls_in_segment.rb +12 -7
- data/lib/gooddata/lcm/actions/synchronize_label_types.rb +4 -1
- data/lib/gooddata/lcm/actions/synchronize_ldm.rb +18 -7
- data/lib/gooddata/lcm/actions/synchronize_meta.rb +9 -0
- data/lib/gooddata/lcm/actions/synchronize_new_segments.rb +11 -1
- data/lib/gooddata/lcm/actions/synchronize_processes.rb +7 -1
- data/lib/gooddata/lcm/actions/synchronize_schedules.rb +4 -1
- data/lib/gooddata/lcm/actions/synchronize_tag_objects.rb +6 -0
- data/lib/gooddata/lcm/actions/synchronize_user_filters.rb +60 -15
- data/lib/gooddata/lcm/actions/synchronize_user_groups.rb +7 -1
- data/lib/gooddata/lcm/actions/synchronize_users.rb +106 -3
- data/lib/gooddata/lcm/actions/update_release_table.rb +19 -0
- data/lib/gooddata/lcm/helpers/check_helper.rb +21 -6
- data/lib/gooddata/lcm/lcm2.rb +35 -22
- data/lib/gooddata/lcm/types/class/gd_logger.rb +23 -0
- data/lib/gooddata/lcm/types/class/gd_product.rb +23 -0
- data/lib/gooddata/lcm/types/class/gd_project.rb +23 -0
- data/lib/gooddata/lcm/types/class/smart_hash.rb +23 -0
- data/lib/gooddata/lcm/types/complex/segment.rb +1 -1
- data/lib/gooddata/lcm/types/scalar/integer.rb +2 -2
- data/lib/gooddata/lcm/types/special/any.rb +18 -0
- data/lib/gooddata/models/blueprint/dataset_blueprint.rb +1 -1
- data/lib/gooddata/models/blueprint/to_manifest.rb +1 -3
- data/lib/gooddata/models/blueprint/to_wire.rb +2 -1
- data/lib/gooddata/models/from_wire.rb +13 -1
- data/lib/gooddata/models/metadata/folder.rb +22 -0
- data/lib/gooddata/models/metadata/metric.rb +5 -8
- data/lib/gooddata/models/model.rb +1 -1
- data/lib/gooddata/models/process.rb +42 -32
- data/lib/gooddata/models/project.rb +19 -36
- data/lib/gooddata/models/project_creator.rb +3 -1
- data/lib/gooddata/models/project_role.rb +3 -4
- data/lib/gooddata/models/schedule.rb +0 -2
- data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +9 -1
- data/lib/gooddata/models/user_filters/user_filter.rb +1 -2
- data/lib/gooddata/models/user_filters/user_filter_builder.rb +18 -6
- data/lib/gooddata/rest/client.rb +1 -2
- data/lib/gooddata/rest/connection.rb +12 -46
- data/lib/gooddata/rest/phmap.rb +101 -56
- data/lib/gooddata/version.rb +1 -1
- data/rubydev_public.gpg.encrypted +51 -0
- data/rubydev_secret_keys.gpg.encrypted +109 -0
- data/spec/data/user_filters.csv +2 -0
- data/spec/environment/default.rb +2 -2
- data/spec/environment/development.rb +1 -1
- data/spec/environment/staging.rb +2 -3
- data/spec/environment/testing.rb +4 -4
- data/spec/integration/connection_spec.rb +37 -0
- data/spec/integration/core/connection_spec.rb +1 -1
- data/spec/integration/core/logging_spec.rb +8 -6
- data/spec/integration/core/project_spec.rb +1 -1
- data/spec/integration/mandatory_user_filter_spec.rb +53 -0
- data/spec/integration/mixins/id_to_uri_spec.rb +17 -5
- data/spec/integration/models/label_spec.rb +9 -0
- data/spec/integration/models/metric_spec.rb +24 -0
- data/spec/integration/models/process_spec.rb +35 -0
- data/spec/integration/models/project_role_spec.rb +1 -1
- data/spec/integration/models/schedule_spec.rb +0 -8
- data/spec/integration/schedule_spec.rb +4 -6
- data/spec/integration/user_filters_spec.rb +20 -16
- data/spec/integration/user_group_spec.rb +1 -1
- data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/can_assign_a_custom_logger.yml +2287 -0
- data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/client_logs_when_given_custom_message.yml +2287 -0
- data/spec/integration/vcr_cassettes/GoodData_-_logging/_logger/has_the_request_id_logged_when_I_passed_it.yml +2287 -0
- data/spec/integration/vcr_cassettes/GoodData_-_logging/_logging_off/Disables_logging.yml +2287 -0
- data/spec/integration/vcr_cassettes/GoodData_-_logging/_logging_on/Enables_logging.yml +2287 -0
- data/spec/integration/vcr_cassettes/GoodData_-_project/_project/Returns_project_assigned.yml +354 -0
- data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_nil.yml +299 -0
- data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_directly.yml +354 -0
- data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_using_project_ID.yml +354 -0
- data/spec/integration/vcr_cassettes/GoodData_-_project/_project_/Assigns_project_using_project_URL.yml +354 -0
- data/spec/integration/vcr_cassettes/GoodData_-_project/_with_project/Uses_project_specified.yml +354 -0
- data/spec/integration/vcr_cassettes/GoodData_Metric/all.yml +2065 -0
- data/spec/integration/vcr_cassettes/GoodData_Metric/should_be_able_to_update_folders.yml +119 -0
- data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/all.yml +9812 -0
- data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_get_json_containing_correct_id.yml +174 -0
- data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_return_nil_for_unknown_id.yml +58 -0
- data/spec/integration/vcr_cassettes/GoodData_Mixin_MdIdToUri/should_throw_BadRequest_for_-1.yml +63 -0
- data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_connect/Connects_using_username_and_password.yml +299 -0
- data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_disconnect/Connects_using_username_and_password.yml +299 -0
- data/spec/integration/vcr_cassettes/GoodData_Rest_Connection/_generate_request_id/Generates_a_non-empty_string.yml +2287 -0
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_/Should_list_user_groups_as_Array.yml +56 -0
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_add_members/Should_add_member.yml +315 -0
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_members/Should_return_members_as_array.yml +54 -0
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_remove_members/Should_remove_existing_members.yml +258 -0
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_save/updates_existing_group.yml +159 -0
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/_set_members/Should_set_new_members.yml +158 -0
- data/spec/integration/vcr_cassettes/GoodData_UserGroup/all.yml +809 -0
- data/spec/spec_helper.rb +46 -2
- data/spec/unit/actions/associate_clients_spec.rb +2 -1
- data/spec/unit/actions/collect_data_product_spec.rb +3 -1
- data/spec/unit/actions/collect_segment_clients_spec.rb +1 -0
- data/spec/unit/actions/create_segment_masters_spec.rb +1 -0
- data/spec/unit/actions/ensure_data_product_spec.rb +1 -0
- data/spec/unit/actions/ensure_technical_users_domain_spec.rb +2 -0
- data/spec/unit/actions/ensure_technical_users_project_spec.rb +4 -0
- data/spec/unit/actions/provision_clients_spec.rb +2 -1
- data/spec/unit/actions/synchronize_etls_in_segment_spec.rb +0 -6
- data/spec/unit/actions/synchronize_ldm_spec.rb +20 -7
- data/spec/unit/actions/synchronize_user_filters_spec.rb +21 -0
- data/spec/unit/helpers/check_helper_production_spec.rb +34 -0
- data/spec/unit/helpers/check_helper_spec.rb +97 -9
- data/spec/unit/lcm/lcm2_spec.rb +67 -3
- data/spec/unit/models/blueprint/to_wire_spec.rb +1 -0
- data/spec/unit/models/dataset_blueprint.rb +14 -0
- data/spec/unit/models/from_wire_spec.rb +20 -0
- data/spec/unit/models/model_spec.rb +10 -0
- data/spec/unit/models/to_manifest_spec.rb +29 -0
- data/spec/unit/models/user_filters/user_filter_builder_spec.rb +44 -6
- data/spec/unit/rest/phmap_spec.rb +117 -0
- data/spec/vcr_configurer.rb +63 -0
- metadata +283 -24
- data/lib/gooddata/lcm/actions/ensure_segments.rb +0 -32
|
@@ -12,14 +12,15 @@ module GoodData
|
|
|
12
12
|
DESCRIPTION = 'Collect Segments from API'
|
|
13
13
|
|
|
14
14
|
PARAMS = define_params(self) do
|
|
15
|
-
description 'Client Used for Connecting to GD'
|
|
16
|
-
param :gdc_gd_client, instance_of(Type::GdClientType), required: true
|
|
17
|
-
|
|
18
|
-
description 'Organization Name'
|
|
19
|
-
param :organization, instance_of(Type::StringType), required: true
|
|
20
15
|
|
|
21
16
|
description 'Segments to provision'
|
|
22
17
|
param :segments_filter, array_of(instance_of(Type::StringType)), required: false
|
|
18
|
+
|
|
19
|
+
description 'DataProduct'
|
|
20
|
+
param :data_product, instance_of(Type::GDDataProductType), required: false
|
|
21
|
+
|
|
22
|
+
description 'Logger'
|
|
23
|
+
param :gdc_logger, instance_of(Type::GdLogger), required: true
|
|
23
24
|
end
|
|
24
25
|
|
|
25
26
|
class << self
|
|
@@ -13,7 +13,7 @@ module GoodData
|
|
|
13
13
|
DESCRIPTION = 'Collect all objects tagged with the +$PRODUCTION_TAG+ from development projects'
|
|
14
14
|
|
|
15
15
|
PARAMS = define_params(self) do
|
|
16
|
-
description '
|
|
16
|
+
description 'Client used to connecting to development domain'
|
|
17
17
|
param :development_client, instance_of(Type::GdClientType), required: true
|
|
18
18
|
|
|
19
19
|
description 'Synchronization Info'
|
|
@@ -15,6 +15,9 @@ module GoodData
|
|
|
15
15
|
description 'Input source of the Users Brick. Needed to prevent ' \
|
|
16
16
|
'deletion of filters for a user that is to be removed.'
|
|
17
17
|
param :users_brick_config, instance_of(Type::UsersBrickConfig), required: true
|
|
18
|
+
|
|
19
|
+
description 'Input Source'
|
|
20
|
+
param :input_source, instance_of(Type::HashType), required: false
|
|
18
21
|
end
|
|
19
22
|
|
|
20
23
|
class << self
|
|
@@ -22,10 +25,13 @@ module GoodData
|
|
|
22
25
|
users_brick_users = []
|
|
23
26
|
login_column = params.users_brick_config.login_column || 'login'
|
|
24
27
|
users_brick_data_source = GoodData::Helpers::DataSource.new(params.users_brick_config.input_source)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
|
|
29
|
+
users_brick_data_source_file = without_check(PARAMS, params) do
|
|
30
|
+
File.open(
|
|
31
|
+
users_brick_data_source.realize(params),
|
|
32
|
+
'r:UTF-8'
|
|
33
|
+
)
|
|
34
|
+
end
|
|
29
35
|
CSV.foreach(users_brick_data_source_file,
|
|
30
36
|
headers: true,
|
|
31
37
|
return_headers: false,
|
|
@@ -15,11 +15,14 @@ module GoodData
|
|
|
15
15
|
description 'Client Used for Connecting to GD'
|
|
16
16
|
param :gdc_gd_client, instance_of(Type::GdClientType), required: true
|
|
17
17
|
|
|
18
|
-
description '
|
|
18
|
+
description 'Client used to connecting to development domain'
|
|
19
19
|
param :development_client, instance_of(Type::GdClientType), required: true
|
|
20
20
|
|
|
21
21
|
description 'Organization Name'
|
|
22
|
-
param :organization, instance_of(Type::StringType), required:
|
|
22
|
+
param :organization, instance_of(Type::StringType), required: false
|
|
23
|
+
|
|
24
|
+
description 'Domain'
|
|
25
|
+
param :domain, instance_of(Type::StringType), required: false
|
|
23
26
|
|
|
24
27
|
description 'ADS Client'
|
|
25
28
|
param :ads_client, instance_of(Type::AdsClientType), required: true
|
|
@@ -35,6 +38,12 @@ module GoodData
|
|
|
35
38
|
|
|
36
39
|
description 'Project Environment'
|
|
37
40
|
param :project_environment, instance_of(Type::StringType), required: false
|
|
41
|
+
|
|
42
|
+
description 'DataProduct to manage'
|
|
43
|
+
param :data_product, instance_of(Type::GDDataProductType), required: false
|
|
44
|
+
|
|
45
|
+
description 'Logger'
|
|
46
|
+
param :gdc_logger, instance_of(Type::GdLogger), required: true
|
|
38
47
|
end
|
|
39
48
|
|
|
40
49
|
DEFAULT_TABLE_NAME = 'LCM_RELEASE'
|
|
@@ -47,6 +56,7 @@ module GoodData
|
|
|
47
56
|
development_client = params.development_client
|
|
48
57
|
|
|
49
58
|
domain_name = params.organization || params.domain
|
|
59
|
+
fail "Either organisation or domain has to be specified in params" unless domain_name
|
|
50
60
|
domain = client.domain(domain_name) || fail("Invalid domain name specified - #{domain_name}")
|
|
51
61
|
data_product = params.data_product
|
|
52
62
|
domain_segments = domain.segments(:all, data_product)
|
|
@@ -17,6 +17,15 @@ module GoodData
|
|
|
17
17
|
|
|
18
18
|
description 'DataProduct to ensure'
|
|
19
19
|
param :data_product, instance_of(Type::StringType), required: false
|
|
20
|
+
|
|
21
|
+
description 'Organization Name'
|
|
22
|
+
param :organization, instance_of(Type::StringType), required: false
|
|
23
|
+
|
|
24
|
+
description 'Domain'
|
|
25
|
+
param :domain, instance_of(Type::StringType), required: false
|
|
26
|
+
|
|
27
|
+
description 'Logger'
|
|
28
|
+
param :gdc_logger, instance_of(Type::GdLogger), required: true
|
|
20
29
|
end
|
|
21
30
|
|
|
22
31
|
RESULT_HEADER = [
|
|
@@ -28,6 +37,7 @@ module GoodData
|
|
|
28
37
|
params = params.to_hash
|
|
29
38
|
client = params.gdc_gd_client
|
|
30
39
|
domain_name = params.organization || params.domain
|
|
40
|
+
fail "Either organisation or domain has to be specified in params" unless domain_name
|
|
31
41
|
domain = client.domain(domain_name) || fail("Invalid domain name specified - #{domain_name}")
|
|
32
42
|
|
|
33
43
|
if params.key?(:data_product)
|
|
@@ -16,7 +16,10 @@ module GoodData
|
|
|
16
16
|
param :gdc_gd_client, instance_of(Type::GdClientType), required: true
|
|
17
17
|
|
|
18
18
|
description 'Organization Name'
|
|
19
|
-
param :organization, instance_of(Type::StringType), required:
|
|
19
|
+
param :organization, instance_of(Type::StringType), required: false
|
|
20
|
+
|
|
21
|
+
description 'Domain'
|
|
22
|
+
param :domain, instance_of(Type::StringType), required: false
|
|
20
23
|
|
|
21
24
|
description 'Technical users'
|
|
22
25
|
param :technical_user, array_of(instance_of(Type::StringType)),
|
|
@@ -38,6 +41,7 @@ module GoodData
|
|
|
38
41
|
client = params.gdc_gd_client
|
|
39
42
|
|
|
40
43
|
domain_name = params.organization || params.domain
|
|
44
|
+
fail "Either organisation or domain has to be specified in params" unless domain_name
|
|
41
45
|
domain = client.domain(domain_name) || fail("Invalid domain name specified - #{domain_name}")
|
|
42
46
|
|
|
43
47
|
technical_users = (params.technical_users || params.technical_user || []).uniq
|
|
@@ -24,6 +24,9 @@ module GoodData
|
|
|
24
24
|
|
|
25
25
|
description 'Synchronization Info'
|
|
26
26
|
param :synchronize, array_of(instance_of(Type::SynchronizationInfoType)), required: true, generated: true
|
|
27
|
+
|
|
28
|
+
description 'Clients'
|
|
29
|
+
param :clients, array_of(instance_of(Type::HashType)), required: false
|
|
27
30
|
end
|
|
28
31
|
|
|
29
32
|
RESULT_HEADER = [
|
|
@@ -41,6 +41,15 @@ module GoodData
|
|
|
41
41
|
|
|
42
42
|
description 'Number Of Threads'
|
|
43
43
|
param :number_of_threads, instance_of(Type::StringType), required: false, default: '5'
|
|
44
|
+
|
|
45
|
+
description 'Logger'
|
|
46
|
+
param :gdc_logger, instance_of(Type::GdLogger), required: true
|
|
47
|
+
|
|
48
|
+
description 'GDC Project'
|
|
49
|
+
param :gdc_project, instance_of(Type::GdProjectType), required: false
|
|
50
|
+
|
|
51
|
+
description 'GDC Project Id'
|
|
52
|
+
param :gdc_project_id, instance_of(Type::StringType), required: false
|
|
44
53
|
end
|
|
45
54
|
|
|
46
55
|
class << self
|
|
@@ -49,6 +58,7 @@ module GoodData
|
|
|
49
58
|
|
|
50
59
|
client = params.gdc_gd_client
|
|
51
60
|
project = client.projects(params.gdc_project) || client.projects(params.gdc_project_id)
|
|
61
|
+
fail "Either project or project_id has to be specified in params" unless project
|
|
52
62
|
|
|
53
63
|
list_of_modes = params.list_of_modes.split('|').map(&:strip)
|
|
54
64
|
work_done_identificator = params.work_done_identificator
|
|
@@ -15,7 +15,7 @@ module GoodData
|
|
|
15
15
|
description 'Client Used for Connecting to GD'
|
|
16
16
|
param :gdc_gd_client, instance_of(Type::GdClientType), required: true
|
|
17
17
|
|
|
18
|
-
description '
|
|
18
|
+
description 'Client used to connecting to development domain'
|
|
19
19
|
param :development_client, instance_of(Type::GdClientType), required: true
|
|
20
20
|
|
|
21
21
|
description 'Synchronization Info'
|
|
@@ -17,10 +17,19 @@ module GoodData
|
|
|
17
17
|
param :gdc_gd_client, instance_of(Type::GdClientType), required: true
|
|
18
18
|
|
|
19
19
|
description 'Organization Name'
|
|
20
|
-
param :organization, instance_of(Type::StringType), required:
|
|
20
|
+
param :organization, instance_of(Type::StringType), required: false
|
|
21
|
+
|
|
22
|
+
description 'Domain'
|
|
23
|
+
param :domain, instance_of(Type::StringType), required: false
|
|
21
24
|
|
|
22
25
|
description 'Segments to manage'
|
|
23
26
|
param :segments, array_of(instance_of(Type::SegmentType)), required: true
|
|
27
|
+
|
|
28
|
+
description 'DataProduct to manage'
|
|
29
|
+
param :data_product, instance_of(Type::GDDataProductType), required: false
|
|
30
|
+
|
|
31
|
+
description 'Logger'
|
|
32
|
+
param :gdc_logger, instance_of(Type::GdLogger), required: true
|
|
24
33
|
end
|
|
25
34
|
|
|
26
35
|
RESULT_HEADER = [
|
|
@@ -37,6 +46,7 @@ module GoodData
|
|
|
37
46
|
data_product = params.data_product
|
|
38
47
|
client = params.gdc_gd_client
|
|
39
48
|
domain_name = params.organization || params.domain
|
|
49
|
+
fail "Either organisation or domain has to be specified in params" unless domain_name
|
|
40
50
|
domain = client.domain(domain_name) || fail("Invalid domain name specified - #{domain_name}")
|
|
41
51
|
|
|
42
52
|
begin
|
|
@@ -66,7 +76,7 @@ module GoodData
|
|
|
66
76
|
end
|
|
67
77
|
rescue => e
|
|
68
78
|
params.gdc_logger.error "Problem occurs when provisioning clients. Purge all invalid clients now ..."
|
|
69
|
-
res = PurgeClients
|
|
79
|
+
res = LCM2.run_action PurgeClients, params
|
|
70
80
|
params.gdc_logger.debug "Purge clients result: #{res}"
|
|
71
81
|
deleted_client_ids = res[:results].select { |r| r[:status] == 'purged' }.map { |r| r[:client_id] }
|
|
72
82
|
params.gdc_logger.error "Deleted clients: #{deleted_client_ids.join(', ')}"
|
|
@@ -14,6 +14,9 @@ module GoodData
|
|
|
14
14
|
PARAMS = define_params(self) do
|
|
15
15
|
description 'Clients'
|
|
16
16
|
param :clients, array_of(instance_of(Type::HashType)), required: true, generated: true
|
|
17
|
+
|
|
18
|
+
description 'Client projects'
|
|
19
|
+
param :client_projects, instance_of(Type::GdSmartHashType), required: false
|
|
17
20
|
end
|
|
18
21
|
|
|
19
22
|
RESULT_HEADER = [
|
|
@@ -15,11 +15,14 @@ module GoodData
|
|
|
15
15
|
description 'Client Used for Connecting to GD'
|
|
16
16
|
param :gdc_gd_client, instance_of(Type::GdClientType), required: true
|
|
17
17
|
|
|
18
|
-
description '
|
|
18
|
+
description 'Client used to connecting to development domain'
|
|
19
19
|
param :development_client, instance_of(Type::GdClientType), required: true
|
|
20
20
|
|
|
21
21
|
description 'Synchronization Info'
|
|
22
22
|
param :synchronize, array_of(instance_of(Type::SynchronizationInfoType)), required: true, generated: true
|
|
23
|
+
|
|
24
|
+
description 'Additional Hidden Parameters'
|
|
25
|
+
param :additional_hidden_params, instance_of(Type::HashType), required: false
|
|
23
26
|
end
|
|
24
27
|
|
|
25
28
|
RESULT_HEADER = [
|
|
@@ -20,6 +20,12 @@ module GoodData
|
|
|
20
20
|
|
|
21
21
|
description 'Specifies whether to transfer computed attributes'
|
|
22
22
|
param :include_computed_attributes, instance_of(Type::BooleanType), required: false, default: true
|
|
23
|
+
|
|
24
|
+
description 'Logger'
|
|
25
|
+
param :gdc_logger, instance_of(Type::GdLogger), required: true
|
|
26
|
+
|
|
27
|
+
description 'Additional Hidden Parameters'
|
|
28
|
+
param :additional_hidden_params, instance_of(Type::HashType), required: false
|
|
23
29
|
end
|
|
24
30
|
|
|
25
31
|
class << self
|
|
@@ -46,7 +52,7 @@ module GoodData
|
|
|
46
52
|
next unless ca_scripts
|
|
47
53
|
|
|
48
54
|
pid = entry[:pid]
|
|
49
|
-
ca_chunks = ca_scripts[
|
|
55
|
+
ca_chunks = ca_scripts[:maqlDdlChunks]
|
|
50
56
|
to_project = client.projects(pid) || fail("Invalid 'to' project specified - '#{pid}'")
|
|
51
57
|
params.gdc_logger.info "Synchronizing Computed Attributes to project: '#{to_project.title}', PID: #{pid}"
|
|
52
58
|
|
|
@@ -15,8 +15,14 @@ module GoodData
|
|
|
15
15
|
description 'Client Used for Connecting to GD'
|
|
16
16
|
param :gdc_gd_client, instance_of(Type::GdClientType), required: true
|
|
17
17
|
|
|
18
|
+
description 'DataProduct to manage'
|
|
19
|
+
param :data_product, instance_of(Type::GDDataProductType), required: false
|
|
20
|
+
|
|
18
21
|
description 'Organization Name'
|
|
19
|
-
param :organization, instance_of(Type::StringType), required:
|
|
22
|
+
param :organization, instance_of(Type::StringType), required: false
|
|
23
|
+
|
|
24
|
+
description 'Domain'
|
|
25
|
+
param :domain, instance_of(Type::StringType), required: false
|
|
20
26
|
|
|
21
27
|
description 'Segments to manage'
|
|
22
28
|
param :segments, array_of(instance_of(Type::SegmentType)), required: true
|
|
@@ -26,6 +32,9 @@ module GoodData
|
|
|
26
32
|
|
|
27
33
|
description 'ADS Client'
|
|
28
34
|
param :ads_client, instance_of(Type::AdsClientType), required: true
|
|
35
|
+
|
|
36
|
+
description 'Additional Hidden Parameters'
|
|
37
|
+
param :additional_hidden_params, instance_of(Type::HashType), required: false
|
|
29
38
|
end
|
|
30
39
|
|
|
31
40
|
RESULT_HEADER = [
|
|
@@ -42,6 +51,7 @@ module GoodData
|
|
|
42
51
|
client = params.gdc_gd_client
|
|
43
52
|
|
|
44
53
|
domain_name = params.organization || params.domain
|
|
54
|
+
fail "Either organisation or domain has to be specified in params" unless domain_name
|
|
45
55
|
domain = client.domain(domain_name) || fail("Invalid domain name specified - #{domain_name}")
|
|
46
56
|
data_product = params.data_product
|
|
47
57
|
domain_segments = domain.segments(:all, data_product)
|
|
@@ -15,11 +15,17 @@ module GoodData
|
|
|
15
15
|
description 'Client Used for Connecting to GD'
|
|
16
16
|
param :gdc_gd_client, instance_of(Type::GdClientType), required: true
|
|
17
17
|
|
|
18
|
-
description '
|
|
18
|
+
description 'Client used to connecting to development domain'
|
|
19
19
|
param :development_client, instance_of(Type::GdClientType), required: true
|
|
20
20
|
|
|
21
21
|
description 'Synchronization Info'
|
|
22
22
|
param :synchronize, array_of(instance_of(Type::SynchronizationInfoType)), required: true, generated: true
|
|
23
|
+
|
|
24
|
+
description 'Logger'
|
|
25
|
+
param :gdc_logger, instance_of(Type::GdLogger), required: true
|
|
26
|
+
|
|
27
|
+
description 'Additional Hidden Parameters'
|
|
28
|
+
param :additional_hidden_params, instance_of(Type::HashType), required: false
|
|
23
29
|
end
|
|
24
30
|
|
|
25
31
|
RESULT_HEADER = [
|
|
@@ -15,9 +15,6 @@ module GoodData
|
|
|
15
15
|
description 'Client Used for Connecting to GD'
|
|
16
16
|
param :gdc_gd_client, instance_of(Type::GdClientType), required: true
|
|
17
17
|
|
|
18
|
-
description 'Organization Name'
|
|
19
|
-
param :organization, instance_of(Type::StringType), required: true
|
|
20
|
-
|
|
21
18
|
description 'Synchronization Info'
|
|
22
19
|
param :synchronize, array_of(instance_of(Type::SynchronizationInfoType)), required: true, generated: true
|
|
23
20
|
|
|
@@ -26,6 +23,18 @@ module GoodData
|
|
|
26
23
|
|
|
27
24
|
description 'Schedule Additional Secure Parameters'
|
|
28
25
|
param :additional_hidden_params, instance_of(Type::HashType), required: false
|
|
26
|
+
|
|
27
|
+
description 'Schedule Parameters'
|
|
28
|
+
param :schedule_params, instance_of(Type::HashType), required: false, default: {}
|
|
29
|
+
|
|
30
|
+
description 'DataProduct to manage'
|
|
31
|
+
param :data_product, instance_of(Type::GDDataProductType), required: false
|
|
32
|
+
|
|
33
|
+
description 'Logger'
|
|
34
|
+
param :gdc_logger, instance_of(Type::GdLogger), required: true
|
|
35
|
+
|
|
36
|
+
description 'Delete extra process schedule flag'
|
|
37
|
+
param :delete_extra_process_schedule, instance_of(Type::BooleanType), required: false, default: true
|
|
29
38
|
end
|
|
30
39
|
|
|
31
40
|
# will be updated later based on the way etl synchronization
|
|
@@ -117,10 +126,6 @@ module GoodData
|
|
|
117
126
|
end
|
|
118
127
|
|
|
119
128
|
schedule.update_params(params.additional_params) if params.additional_params
|
|
120
|
-
schedule.update_params(
|
|
121
|
-
CLIENT_ID: client_id, # needed for ADD and CloudConnect ETL
|
|
122
|
-
GOODOT_CUSTOM_PROJECT_ID: client_id # TMA-210
|
|
123
|
-
)
|
|
124
129
|
|
|
125
130
|
schedule.update_params(params_for_all_schedules_in_all_projects) if params_for_all_schedules_in_all_projects
|
|
126
131
|
schedule.update_params(params_for_all_projects[schedule.name]) if params_for_all_projects[schedule.name]
|
|
@@ -15,11 +15,14 @@ module GoodData
|
|
|
15
15
|
description 'Client Used for Connecting to GD'
|
|
16
16
|
param :gdc_gd_client, instance_of(Type::GdClientType), required: true
|
|
17
17
|
|
|
18
|
-
description '
|
|
18
|
+
description 'Client used to connecting to development domain'
|
|
19
19
|
param :development_client, instance_of(Type::GdClientType), required: true
|
|
20
20
|
|
|
21
21
|
description 'Synchronization Info'
|
|
22
22
|
param :synchronize, array_of(instance_of(Type::SynchronizationInfoType)), required: true, generated: true
|
|
23
|
+
|
|
24
|
+
description 'Additional Hidden Parameters'
|
|
25
|
+
param :additional_hidden_params, instance_of(Type::HashType), required: false
|
|
23
26
|
end
|
|
24
27
|
|
|
25
28
|
RESULT_HEADER = [
|
|
@@ -15,7 +15,7 @@ module GoodData
|
|
|
15
15
|
description 'Client Used for Connecting to GD'
|
|
16
16
|
param :gdc_gd_client, instance_of(Type::GdClientType), required: true
|
|
17
17
|
|
|
18
|
-
description '
|
|
18
|
+
description 'Client used to connecting to development domain'
|
|
19
19
|
param :development_client, instance_of(Type::GdClientType), required: true
|
|
20
20
|
|
|
21
21
|
description 'Synchronization Info'
|
|
@@ -26,15 +26,21 @@ module GoodData
|
|
|
26
26
|
|
|
27
27
|
description 'Specifies whether to transfer computed attributes'
|
|
28
28
|
param :include_computed_attributes, instance_of(Type::BooleanType), required: false, default: true
|
|
29
|
+
|
|
30
|
+
description 'Logger'
|
|
31
|
+
param :gdc_logger, instance_of(Type::GdLogger), required: true
|
|
32
|
+
|
|
33
|
+
description 'Additional Hidden Parameters'
|
|
34
|
+
param :additional_hidden_params, instance_of(Type::HashType), required: false
|
|
35
|
+
|
|
36
|
+
description 'Allows to have facts with higher precision decimals'
|
|
37
|
+
param :exclude_fact_rule, instance_of(Type::BooleanType), required: false, default: false
|
|
29
38
|
end
|
|
30
39
|
|
|
31
40
|
class << self
|
|
32
41
|
def call(params)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
include_ca = params.include_computed_attributes
|
|
36
|
-
include_ca = true if include_ca.nil?
|
|
37
|
-
include_ca = include_ca.to_b
|
|
42
|
+
include_ca = params.include_computed_attributes.to_b
|
|
43
|
+
exclude_fact_rule = params.exclude_fact_rule.to_b
|
|
38
44
|
|
|
39
45
|
results = []
|
|
40
46
|
|
|
@@ -54,7 +60,12 @@ module GoodData
|
|
|
54
60
|
to_project = client.projects(pid) || fail("Invalid 'to' project specified - '#{pid}'")
|
|
55
61
|
|
|
56
62
|
params.gdc_logger.info "Updating from Blueprint, project: '#{to_project.title}', PID: #{pid}"
|
|
57
|
-
ca_scripts = to_project.update_from_blueprint(
|
|
63
|
+
ca_scripts = to_project.update_from_blueprint(
|
|
64
|
+
blueprint,
|
|
65
|
+
update_preference: params.update_preference,
|
|
66
|
+
execute_ca_scripts: false,
|
|
67
|
+
exclude_fact_rule: exclude_fact_rule
|
|
68
|
+
)
|
|
58
69
|
|
|
59
70
|
entry[:ca_scripts] = ca_scripts
|
|
60
71
|
|