25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'app/models/concerns/foreman_puppet/extensions/provisioning_template.rb', line 25
def templates_by_template_combinations(templates, hosts_or_conditions)
if hosts_or_conditions.is_a?(Hash)
conditions = hosts_or_conditions
conditions[:hostgroup_id] = Array.wrap(conditions[:hostgroup_id]) | [nil]
conditions[:environment_id] = Array.wrap(conditions[:environment_id]) | [nil]
else
conditions = {}
conditions[:hostgroup_id] = hosts_or_conditions.pluck(:hostgroup_id) | [nil]
conditions[:environment_id] = hosts_or_conditions.pluck(:environment_id) | [nil]
end
at = TemplateCombination.arel_table
arel = at[:hostgroup_id].in(conditions[:hostgroup_id])
arel = arel.and(at[:environment_id].in(conditions[:environment_id]))
templates.joins(:template_combinations).where(arel).distinct
end
|