52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/gooddata/lcm/actions/update_metric_formats.rb', line 52
def load_metric_data(params)
collect_synced_status = collect_synced_status(params)
if params&.dig(:input_source, :metric_format) && params[:input_source][:metric_format].present?
metric_input_source = validate_input_source(params[:input_source], collect_synced_status)
return nil unless metric_input_source
else
return nil
end
metric_data_source = GoodData::Helpers::DataSource.new(metric_input_source)
begin
temp_csv = without_check(PARAMS, params) do
File.open(metric_data_source.realize(params), 'r:UTF-8')
end
rescue StandardError => e
GoodData.logger.warn("Unable to get metric input source, skip updating metric formats. Error: #{e.message} - #{e}")
return nil
end
metrics_hash = GoodData::Helpers::Csv.read_as_hash temp_csv
return nil if metrics_hash.empty?
expected_keys = %w[tag client_id format]
unless expected_keys.map(&:to_sym).all? { |s| metrics_hash.first.key? s }
GoodData.logger.warn("The input metric data is incorrect, expecting the following fields: #{expected_keys}")
return nil
end
metrics_hash
end
|