31
32
33
34
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/initialize_continue_on_error_option.rb', line 31
def call(params)
project_mappings = ThreadSafe::Hash.new
client_mappings = ThreadSafe::Hash.new
continue_on_error = continue_on_error(params)
if continue_on_error
client = params.gdc_gd_client
domain_name = params.organization || params.domain
domain = client.domain(domain_name)
data_product = params.data_product
data_product_segments = domain.segments(:all, data_product)
if params.segments_filter
data_product_segments.select! do |segment|
params.segments_filter.include?(segment.segment_id)
end
end
data_product_segments.pmap do |segment|
segment.clients.map do |segment_client|
project = segment_client.project
next unless project
project_mappings[project.pid.to_sym] = {
client_id: segment_client.client_id,
segment_id: segment.segment_id
}
client_mappings[segment_client.client_id.to_sym] = {
project_id: project.pid,
segment_id: segment.segment_id
}
end
end
end
{
params: {
collect_synced_status: continue_on_error,
sync_failed_list: {
project_client_mappings: project_mappings,
client_project_mappings: client_mappings,
failed_detailed_projects: [],
failed_projects: [],
failed_clients: [],
failed_segments: []
}
}
}
end
|