Features whose name contains "-condition-" encode feature conditions;
for example, kar-condition-shell is the shell condition on the kar
feature. These features should never be processed by
FeatureConfigPusher.
Change-Id: Ic2ce2312fb347792d269d43d7bcb5f115905380f
Signed-off-by: Stephen Kitt <skitt@redhat.com>
private Set<FeatureConfigSnapshotHolder> pushConfig(final Feature feature) throws Exception {
Set<FeatureConfigSnapshotHolder> configs = new LinkedHashSet<>();
private Set<FeatureConfigSnapshotHolder> pushConfig(final Feature feature) throws Exception {
Set<FeatureConfigSnapshotHolder> configs = new LinkedHashSet<>();
- if(isInstalled(feature)) {
+ // Ignore feature conditions — these encode conditions on other features and shouldn't be processed here
+ if (feature.getName().contains("-condition-")) {
+ LOG.debug("Ignoring conditional feature {}", feature);
+ } else if (isInstalled(feature)) {
// FIXME Workaround for BUG-2836, features service returns null for feature: standard-condition-webconsole_0_0_0, 3.0.1
// FIXME Workaround for BUG-2836, features service returns null for feature: standard-condition-webconsole_0_0_0, 3.0.1
- if(featuresService.getFeature(feature.getName(), feature.getVersion()) == null) {
+ if (featuresService.getFeature(feature.getName(), feature.getVersion()) == null) {
LOG.debug("Feature: {}, {} is missing from features service. Skipping", feature.getName(), feature.getVersion());
} else {
ChildAwareFeatureWrapper wrappedFeature = new ChildAwareFeatureWrapper(feature, featuresService);
LOG.debug("Feature: {}, {} is missing from features service. Skipping", feature.getName(), feature.getVersion());
} else {
ChildAwareFeatureWrapper wrappedFeature = new ChildAwareFeatureWrapper(feature, featuresService);