Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug 2084331: pkg/manifest/manifest.go: Fix checkResourceEnablement #1368

Merged
merged 1 commit into from May 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 3 additions & 3 deletions pkg/manifest/manifest.go
Expand Up @@ -171,10 +171,10 @@ 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

for _, c := range caps {
var isKnownCap bool
var isEnabledCap bool

for _, knownCapability := range capabilities.KnownCapabilities {
if c == knownCapability {
isKnownCap = true
Expand Down
41 changes: 35 additions & 6 deletions pkg/manifest/manifest_test.go
Expand Up @@ -691,16 +691,14 @@ func Test_include(t *testing.T) {
expected: fmt.Errorf("no annotations"),
},
{
name: "unrecognized capability annotaton",
profile: &defaultClusterProfile,
name: "unrecognized capability annotaton",
annotations: map[string]interface{}{
"include.release.openshift.io/self-managed-high-availability": "true",
CapabilityAnnotation: "cap1"},
expected: nil,
},
{
name: "disabled capability works",
profile: &defaultClusterProfile,
name: "disabled capability",
annotations: map[string]interface{}{
"include.release.openshift.io/self-managed-high-availability": "true",
CapabilityAnnotation: "cap1"},
Expand All @@ -710,8 +708,7 @@ func Test_include(t *testing.T) {
expected: fmt.Errorf("disabled capabilities: cap1"),
},
{
name: "enabled capability works",
profile: &defaultClusterProfile,
name: "enabled capability",
annotations: map[string]interface{}{
"include.release.openshift.io/self-managed-high-availability": "true",
CapabilityAnnotation: "cap1"},
Expand All @@ -720,6 +717,38 @@ func Test_include(t *testing.T) {
EnabledCapabilities: []configv1.ClusterVersionCapability{"cap1"},
},
},
{
name: "multiple capabilities, 1 unknown",
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",
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",
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