Skip to content

Commit 49bcc5a

Browse files
committed
MGMT-19471: Moving dependencies from operators to featuresupport [WIP]
1 parent aa5fabb commit 49bcc5a

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

internal/featuresupport/features_olm_operators.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,9 @@ func (feature *MtvFeature) getFeatureActiveLevel(cluster *common.Cluster, _ *mod
360360
return activeLevelNotActive
361361
}
362362
func (feature *MtvFeature) getFeatureDependencies(_ SupportLevelFilters) []models.FeatureSupportLevelID {
363-
return []models.FeatureSupportLevelID{}
363+
return []models.FeatureSupportLevelID{
364+
models.FeatureSupportLevelIDCNV,
365+
}
364366
}
365367

366368
// NodeFeatureDiscoveryFeature describes the support for the node feature discovery operator.

internal/operators/common/common.go

+22
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package common
22

33
import (
4+
"github.com/openshift/assisted-service/internal/operators/api"
45
"github.com/openshift/assisted-service/models"
56
"github.com/openshift/assisted-service/pkg/conversions"
67
)
@@ -41,3 +42,24 @@ func HasOperator(operators []*models.MonitoredOperator, operatorName string) boo
4142
}
4243
return false
4344
}
45+
46+
func GetOperatorByFeature(featureName models.FeatureSupportLevelID) *models.MonitoredOperator {
47+
nameToOperator := make(map[string]api.Operator)
48+
for _, op := range []*models.MonitoredOperator{} {
49+
if featureName == nameToOperator[op.Name].GetFeatureSupportID() {
50+
return op
51+
}
52+
}
53+
return nil
54+
}
55+
56+
func GetListOperatorByFeature(listFeature []models.FeatureSupportLevelID) []string {
57+
var operators []string
58+
for _, feature := range listFeature {
59+
operatorObject := GetOperatorByFeature(feature)
60+
if operatorObject != nil {
61+
operators = append(operators, operatorObject.Name)
62+
}
63+
}
64+
return operators
65+
}

internal/operators/mtv/operator.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"github.com/openshift/assisted-service/internal/common"
1010
"github.com/openshift/assisted-service/internal/featuresupport"
1111
"github.com/openshift/assisted-service/internal/operators/api"
12-
"github.com/openshift/assisted-service/internal/operators/cnv"
1312
operatorscommon "github.com/openshift/assisted-service/internal/operators/common"
1413
"github.com/openshift/assisted-service/models"
1514
"github.com/openshift/assisted-service/pkg/conversions"
@@ -53,7 +52,9 @@ func (o *operator) GetFullName() string {
5352
}
5453

5554
func (o *operator) GetDependencies(cluster *common.Cluster) ([]string, error) {
56-
return []string{cnv.Operator.Name}, nil
55+
featureDependencies := featuresupport.GetFeatureDependencies(o.GetFeatureSupportID(), featuresupport.GetFeatureFilter(
56+
cluster.OpenshiftVersion, &cluster.CPUArchitecture, cluster.Platform.Type, cluster.Platform.External.PlatformName))
57+
return operatorscommon.GetListOperatorByFeature(featureDependencies), nil
5758
}
5859

5960
// GetClusterValidationID returns cluster validation ID for the Operator

0 commit comments

Comments
 (0)