Skip to content

Commit 8779eb5

Browse files
Merge pull request #217 from mgugino-upstream-stage/no-version-progress-sync
MAO: Stop setting statusProgressing=true when resyincing same version
2 parents 6bc7f57 + eaf86da commit 8779eb5

35 files changed

+6120
-7
lines changed

Gopkg.lock

Lines changed: 23 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/operator/status.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,20 @@ func (optr *Operator) statusProgressing() error {
3838
glog.Errorf("error getting current versions: %v", err)
3939
return err
4040
}
41-
41+
var isProgressing osconfigv1.ConditionStatus
4242
var message string
4343
if !reflect.DeepEqual(desiredVersions, currentVersions) {
4444
message = fmt.Sprintf("Progressing towards %s", optr.printOperandVersions())
45+
isProgressing = osconfigv1.ConditionTrue
4546
} else {
4647
message = fmt.Sprintf("Running resync for %s", optr.printOperandVersions())
48+
isProgressing = osconfigv1.ConditionFalse
4749
}
4850

4951
conds := []osconfigv1.ClusterOperatorStatusCondition{
5052
{
5153
Type: osconfigv1.OperatorProgressing,
52-
Status: osconfigv1.ConditionTrue,
54+
Status: isProgressing,
5355
Reason: string(ReasonSyncing),
5456
Message: message,
5557
},

pkg/operator/status_test.go

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package operator
22

33
import (
4-
"testing"
5-
64
osconfigv1 "github.com/openshift/api/config/v1"
5+
fakeconfigclientset "github.com/openshift/client-go/config/clientset/versioned/fake"
6+
"github.com/stretchr/testify/assert"
7+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
8+
"testing"
79
)
810

911
func TestPrintOperandVersions(t *testing.T) {
@@ -25,3 +27,55 @@ func TestPrintOperandVersions(t *testing.T) {
2527
t.Errorf("Expected: %s, got: %s", expectedOutput, got)
2628
}
2729
}
30+
31+
func TestOperatorStatusProgressing(t *testing.T) {
32+
type tCase struct {
33+
oV []osconfigv1.OperandVersion
34+
expected osconfigv1.ConditionStatus
35+
}
36+
tCases := []tCase{
37+
{
38+
oV: []osconfigv1.OperandVersion{
39+
{
40+
Name: "operator",
41+
Version: "1.0",
42+
},
43+
},
44+
expected: osconfigv1.ConditionFalse,
45+
},
46+
{
47+
oV: []osconfigv1.OperandVersion{
48+
{
49+
Name: "operator",
50+
Version: "2.0",
51+
},
52+
},
53+
expected: osconfigv1.ConditionTrue,
54+
},
55+
}
56+
57+
optr := Operator{
58+
operandVersions: []osconfigv1.OperandVersion{
59+
{
60+
Name: "operator",
61+
Version: "1.0",
62+
},
63+
},
64+
}
65+
for i, tc := range tCases {
66+
co := &osconfigv1.ClusterOperator{ObjectMeta: metav1.ObjectMeta{Name: clusterOperatorName}}
67+
co.Status.Versions = tc.oV
68+
69+
optr.osClient = fakeconfigclientset.NewSimpleClientset(co)
70+
optr.statusProgressing()
71+
o, _ := optr.osClient.ConfigV1().ClusterOperators().Get(clusterOperatorName, metav1.GetOptions{})
72+
var condition osconfigv1.ClusterOperatorStatusCondition
73+
for _, coCondition := range o.Status.Conditions {
74+
if coCondition.Type == osconfigv1.OperatorProgressing {
75+
condition = coCondition
76+
break
77+
}
78+
}
79+
assert.Equal(t, tc.expected, condition.Status, "test-case %v expected condition %v to be %v, but got %v", i, condition.Type, tc.expected, condition.Status)
80+
}
81+
}

vendor/github.com/openshift/client-go/config/clientset/versioned/fake/clientset_generated.go

Lines changed: 66 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/openshift/client-go/config/clientset/versioned/fake/doc.go

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/openshift/client-go/config/clientset/versioned/fake/register.go

Lines changed: 40 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/openshift/client-go/config/clientset/versioned/typed/config/v1/fake/doc.go

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)