35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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
|
# File 'lib/gooddata/lcm/actions/collect_segments.rb', line 35
def call(params)
data_product = params.data_product
data_product_segments = data_product.segments
segment_names = data_product_segments.map(&:segment_id)
params.gdc_logger.debug("Domain segments: #{segment_names}")
if params.segments_filter
params.gdc_logger.info("Segments filter: #{params.segments_filter}")
data_product_segments.select! do |segment|
params.segments_filter.include?(segment.segment_id)
end
end
segments = data_product_segments.pmap do |segment|
project = nil
begin
project = segment.master_project
rescue RestClient::BadRequest => e
raise "Failed to retrieve master project for segment #{segment.id}. Error: #{e}"
end
raise "Master project for segment #{segment.id} doesn't exist." unless project
{
segment_id: segment.segment_id,
segment: segment,
development_pid: project.pid,
driver: project.driver.downcase,
master_name: project.title,
segment_master: project,
uri: segment.uri
}
end
segments.compact!
{
results: segments,
params: {
segments: segments
}
}
end
|