class GoodData::LCM2::UpdateReleaseTable
Constants
- DEFAULT_TABLE_NAME
- DESCRIPTION
- PARAMS
Public Class Methods
call(params)
click to toggle source
# File lib/gooddata/lcm/actions/update_release_table.rb, line 40 def call(params) client = params.gdc_gd_client GoodData.gd_logger.info("Update release table: use_nfs=#{params.ads_client.nil?}") domain_name = params.organization || params.domain fail "Either organisation or domain has to be specified in params" unless domain_name client.domain(domain_name) || fail("Invalid domain name specified - #{domain_name}") params.segments.map do |segment_in| segment_id = segment_in.segment_id placeholders = { data_product_id: segment_in[:data_product_id], segment_id: segment_in[:segment_id], master_project_id: segment_in[:master_pid], version: segment_in[:version], timestamp: segment_in[:timestamp], table_name: params.release_table_name || DEFAULT_TABLE_NAME } update_release_table(params, placeholders, domain_name) { segment: segment_id, master_pid: segment_in[:master_pid], version: segment_in[:version], timestamp: segment_in[:timestamp] } end end
replace_placeholders(text, placeholders)
click to toggle source
# File lib/gooddata/lcm/actions/update_release_table.rb, line 71 def replace_placeholders(text, placeholders) result = text.dup placeholders.each do |k, v| result.gsub!("\#{#{k}}", v.to_s) end result end
update_release_table(params, placeholders, domain_id)
click to toggle source
# File lib/gooddata/lcm/actions/update_release_table.rb, line 79 def update_release_table(params, placeholders, domain_id) if params.ads_client path = File.expand_path('../data/insert_into_lcm_release.sql.erb', __dir__) default_query = GoodData::Helpers::ErbHelper.template_file(path, placeholders) temp_query = (params.query && params.query.insert) || default_query query = replace_placeholders(temp_query, placeholders) params.ads_client.execute(query) else data_product_id = placeholders[:data_product_id] segment_id = placeholders[:segment_id] master_pid = placeholders[:master_project_id] version = placeholders[:version] GoodData::LCM2::Helpers.update_latest_master_to_nfs(domain_id, data_product_id, segment_id, master_pid, version) end end