Skip to content

Commit b20b505

Browse files
committed
Ensure foreman-proxy gets added on feature enable
Signed-off-by: Shubham Ganar <shubhamsg123m@gmail.com>
1 parent da1bfa2 commit b20b505

4 files changed

Lines changed: 17 additions & 9 deletions

File tree

src/filter_plugins/foremanctl.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,17 @@ def get_dependencies(features):
5858
return dependencies
5959

6060

61+
def resolve_enabled_features(features):
62+
"""Resolve all features including implicit service dependencies."""
63+
resolved = set(features)
64+
for feature in list(features):
65+
feature_meta = FEATURE_MAP.get(feature, {})
66+
for base in BASE_FEATURES:
67+
if base.replace('-', '_') in feature_meta and feature != base:
68+
resolved.add(base)
69+
return list(resolved)
70+
71+
6172
def foreman_plugins(value):
6273
dependencies = list(get_dependencies(filter_features(value)))
6374
plugins = [FEATURE_MAP.get(feature, {}).get('foreman', {}).get('plugin_name') for feature in filter_features(value + dependencies)]
@@ -100,8 +111,9 @@ def hammer_plugins(value):
100111

101112

102113
def foreman_proxy_plugins(value):
103-
dependencies = list(get_dependencies(filter_features(value)))
104-
plugins = [FEATURE_MAP.get(feature, {}).get('foreman_proxy', {}).get('plugin_name') for feature in filter_features(value + dependencies)]
114+
proxy_features = [f for f in filter_features(value) if 'foreman_proxy' in FEATURE_MAP.get(f, {})]
115+
dependencies = list(get_dependencies(proxy_features))
116+
plugins = [FEATURE_MAP.get(feature, {}).get('foreman_proxy', {}).get('plugin_name') for feature in filter_features(proxy_features + dependencies)]
105117
return compact_list(plugins)
106118

107119

@@ -140,4 +152,5 @@ def filters(self):
140152
'has_feature': has_feature,
141153
'to_postgresql_databases': to_postgresql_databases,
142154
'to_postgresql_users': to_postgresql_users,
155+
'resolve_enabled_features': resolve_enabled_features,
143156
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
---
22
:enabled: {{ feature_enabled }}
3-
:template_url: {{ foreman_proxy_templates_url | default('http://' + ansible_facts['fqdn'] + ':8000') }}
3+
:template_url: {{ foreman_proxy_templates_url | default('http://' + ansible_facts['fqdn'] + ':8000') }}

src/vars/defaults.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ database_mode: internal
44
tuning: default
55
flavor: katello
66
features: []
7-
enabled_features: "{{ (flavor_features + features) }}"
7+
enabled_features: "{{ (flavor_features + features) | resolve_enabled_features }}"

tests/foreman_proxy_test.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,6 @@ def test_bmc_default_provider(proxy_v2_features):
7575
assert settings.get('bmc_default_provider') == 'ipmitool'
7676

7777

78-
@pytest.mark.feature('templates')
79-
def test_templates_feature_enabled(proxy_v2_features):
80-
assert 'templates' in proxy_v2_features
81-
82-
8378
@pytest.mark.feature('templates')
8479
def test_templates_template_url(proxy_v2_features):
8580
settings = proxy_v2_features['templates'].get('settings', {})

0 commit comments

Comments
 (0)