class GoodData::LCM2::SetMasterProject

Constants

DESCRIPTION
PARAMS

Public Class Methods

call(params) click to toggle source
# File lib/gooddata/lcm/actions/set_master_project.rb, line 39
def call(params)
  results = []
  domain_name = params.organization || params.domain
  data_product = params.data_product
  params.segments.each do |segment_in|
    version = get_latest_version(params, domain_name, data_product.data_product_id, segment_in.segment_id) + 1
    segment_in[:data_product_id] = data_product.data_product_id
    segment_in[:master_pid] = params.set_master_project
    segment_in[:version] = version
    segment_in[:timestamp] = Time.now.utc.iso8601

    results << {
      data_product_id: data_product.data_product_id,
      segment_id: segment_in.segment_id,
      version: version
    }
  end
  results
end
get_latest_version(params, domain_name, data_product_id, segment_id) click to toggle source
# File lib/gooddata/lcm/actions/set_master_project.rb, line 59
def get_latest_version(params, domain_name, data_product_id, segment_id)
  if params.ads_client
    current_master = GoodData::LCM2::Helpers.latest_master_project_from_ads(
      params.release_table_name,
      params.ads_client,
      segment_id
    )
  else
    current_master = GoodData::LCM2::Helpers.latest_master_project_from_nfs(domain_name, data_product_id, segment_id)
  end
  return 0 unless current_master

  current_master[:version].to_i
end