13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/kuber_kit/service_deployer/service_list_resolver.rb', line 13
def resolve(services: [], tags: [], enabled_services: [], disabled_services: [], default_services: [])
all_definitions = service_store.all_definitions.values
included_services, excluded_services = split_by_inclusion(services)
included_tags, excluded_tags = split_by_inclusion(tags)
included_definitions = all_definitions.select do |definition|
service_name = definition.service_name.to_s
service_tags = definition.to_service_attrs.tags.map(&:to_s)
matches_any?([service_name], included_services) ||
matches_any?(service_tags, included_tags)
end
included_definitions = included_definitions.reject do |definition|
service_name = definition.service_name.to_s
service_tags = definition.to_service_attrs.tags.map(&:to_s)
matches_any?([service_name], excluded_services) ||
matches_any?(service_tags, excluded_tags)
end
included_services = included_definitions.map(&:service_name).map(&:to_s)
if enabled_services.any?
included_services = included_services.select{ |s| enabled_services.include?(s) }
end
if disabled_services.any?
included_services = included_services.select{ |s| !disabled_services.include?(s) }
end
if included_services.any?
included_services = default_services + included_services
end
included_services
end
|