Skip to content

Commit

Permalink
Bug 2084331: pkg/manifest/manifest.go: Fix checkResourceEnablement
Browse files Browse the repository at this point in the history
  • Loading branch information
jottofar committed May 11, 2022
1 parent f2c20ff commit 73c6930
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 2 deletions.
7 changes: 5 additions & 2 deletions pkg/manifest/manifest.go
Expand Up @@ -171,10 +171,13 @@ func checkResourceEnablement(annotations map[string]string, capabilities *config
unknownCaps := make([]string, 0, numCaps)
disabledCaps := make([]string, 0, numCaps)

var isKnownCap bool = false
var isEnabledCap bool = false
var isKnownCap bool
var isEnabledCap bool

for _, c := range caps {
isKnownCap = false
isEnabledCap = false

for _, knownCapability := range capabilities.KnownCapabilities {
if c == knownCapability {
isKnownCap = true
Expand Down
35 changes: 35 additions & 0 deletions pkg/manifest/manifest_test.go
Expand Up @@ -720,6 +720,41 @@ func Test_include(t *testing.T) {
EnabledCapabilities: []configv1.ClusterVersionCapability{"cap1"},
},
},
{
name: "multiple capabilities, 1 unknown, works",
profile: &defaultClusterProfile,
annotations: map[string]interface{}{
"include.release.openshift.io/self-managed-high-availability": "true",
CapabilityAnnotation: "cap1+cap2"},
caps: &configv1.ClusterVersionCapabilitiesStatus{
KnownCapabilities: []configv1.ClusterVersionCapability{"cap1", "cap3"},
EnabledCapabilities: []configv1.ClusterVersionCapability{"cap1", "cap3"},
},
expected: fmt.Errorf("unrecognized capability names: cap2"),
},
{
name: "multiple capabilities, 1 disabled, works",
profile: &defaultClusterProfile,
annotations: map[string]interface{}{
"include.release.openshift.io/self-managed-high-availability": "true",
CapabilityAnnotation: "cap1+cap2"},
caps: &configv1.ClusterVersionCapabilitiesStatus{
KnownCapabilities: []configv1.ClusterVersionCapability{"cap1", "cap2", "cap3"},
EnabledCapabilities: []configv1.ClusterVersionCapability{"cap1", "cap3"},
},
expected: fmt.Errorf("disabled capabilities: cap2"),
},
{
name: "multiple capabilities, all enabled, works",
profile: &defaultClusterProfile,
annotations: map[string]interface{}{
"include.release.openshift.io/self-managed-high-availability": "true",
CapabilityAnnotation: "cap1+cap2+cap3"},
caps: &configv1.ClusterVersionCapabilitiesStatus{
KnownCapabilities: []configv1.ClusterVersionCapability{"cap1", "cap2", "cap3"},
EnabledCapabilities: []configv1.ClusterVersionCapability{"cap1", "cap2", "cap3"},
},
},
{
name: "all nil",
profile: nil,
Expand Down

0 comments on commit 73c6930

Please sign in to comment.