Class: GoodData::LCM2::SynchronizeLdm

Inherits:
BaseAction show all
Defined in:
lib/gooddata/lcm/actions/synchronize_ldm.rb

Constant Summary collapse

DESCRIPTION =
'Synchronize Logical Data Model'
PARAMS =
define_params(self) do
  description 'Client Used for Connecting to GD'
  param :gdc_gd_client, instance_of(Type::GdClientType), required: true

  description 'Client used to connecting to development domain'
  param :development_client, instance_of(Type::GdClientType), required: true

  description 'Synchronization Info'
  param :synchronize, array_of(instance_of(Type::SynchronizationInfoType)), required: true, generated: true

  description 'LDM Update Preference'
  param :update_preference, instance_of(Type::UpdatePreferenceType), required: false

  description 'Specifies whether to transfer computed attributes'
  param :include_computed_attributes, instance_of(Type::BooleanType), required: false, default: true

  description 'Logger'
  param :gdc_logger, instance_of(Type::GdLogger), required: true

  description 'Additional Hidden Parameters'
  param :additional_hidden_params, instance_of(Type::HashType), required: false

  description 'Allows to have facts with higher precision decimals'
  param :exclude_fact_rule, instance_of(Type::BooleanType), required: false, default: false

  description 'Specifies how to synchronize LDM and resolve possible conflicts'
  param :synchronize_ldm, instance_of(Type::SynchronizeLDM), required: false, default: 'diff_against_master_with_fallback'

  description 'Enables handling of deprecated objects in the logical data model.'
  param :include_deprecated, instance_of(Type::BooleanType), required: false, default: false

  description 'Abort on error'
  param :abort_on_error, instance_of(Type::StringType), required: false

  description 'Collect synced status'
  param :collect_synced_status, instance_of(Type::BooleanType), required: false

  description 'Sync failed list'
  param :sync_failed_list, instance_of(Type::HashType), required: false
end
RESULT_HEADER =
i[from to status]

Constants inherited from BaseAction

BaseAction::FAILED_CLIENTS, BaseAction::FAILED_PROJECTS, BaseAction::FAILED_SEGMENTS, BaseAction::SYNC_FAILED_LIST

Constants included from Dsl::Dsl

Dsl::Dsl::DEFAULT_OPTS, Dsl::Dsl::TYPES

Class Method Summary collapse

Methods inherited from BaseAction

add_failed_client, add_failed_project, add_failed_segment, add_new_clients_to_project_client_mapping, check_params, collect_synced_status, continue_on_error, print_result, process_failed_project, process_failed_projects, sync_failed_client, sync_failed_project, sync_failed_segment, without_check

Methods included from Dsl::Dsl

#define_params, #define_type, #process

Class Method Details

.call(params) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/gooddata/lcm/actions/synchronize_ldm.rb', line 65

def call(params)
  results = []
  synchronize = []
  params.synchronize.map do |segment_info|
    next if sync_failed_segment(segment_info[:segment_id], params)

    new_segment_info, segment_results = sync_segment_ldm(params, segment_info)
    results.concat(segment_results)
    synchronize << new_segment_info
  end

  {
    results: results,
    params: {
      synchronize: synchronize
    }
  }
end