Skip to content

Commit 47b4516

Browse files
committed
Expose all Progressing messages
1 parent 1009d0f commit 47b4516

File tree

5 files changed

+57
-8
lines changed

5 files changed

+57
-8
lines changed

pkg/monitor/monitorapi/types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,7 @@ const (
376376
SourcePathologicalEventMarker IntervalSource = "PathologicalEventMarker" // not sure if this is really helpful since the events all have a different origin
377377
SourceClusterOperatorMonitor IntervalSource = "ClusterOperatorMonitor"
378378
SourceOperatorState IntervalSource = "OperatorState"
379+
SourceVersionState IntervalSource = "VersionState"
379380
SourceNodeState = "NodeState"
380381
SourcePodState = "PodState"
381382
SourceCloudMetrics = "CloudMetrics"

pkg/monitortests/clusterversionoperator/legacycvomonitortests/monitortest.go

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@ package legacycvomonitortests
22

33
import (
44
"context"
5+
"strings"
56
"time"
67

78
"github.com/openshift/origin/pkg/monitortestframework"
89

910
"github.com/openshift/origin/pkg/monitor/monitorapi"
1011
"github.com/openshift/origin/pkg/monitortestlibrary/platformidentification"
1112
"github.com/openshift/origin/pkg/test/ginkgo/junitapi"
13+
14+
configv1 "github.com/openshift/api/config/v1"
1215
"k8s.io/client-go/rest"
1316
)
1417

@@ -34,7 +37,50 @@ func (w *legacyMonitorTests) CollectData(ctx context.Context, storageDir string,
3437
}
3538

3639
func (*legacyMonitorTests) ConstructComputedIntervals(ctx context.Context, startingIntervals monitorapi.Intervals, recordedResources monitorapi.ResourcesMap, beginning, end time.Time) (monitorapi.Intervals, error) {
37-
return nil, nil
40+
ret := monitorapi.Intervals{}
41+
ret = append(ret, intervalsFromEventsClusterVersionProgressing(startingIntervals)...)
42+
return ret, nil
43+
}
44+
45+
var lastClusterVersionProgressingInterval *monitorapi.Interval
46+
47+
func intervalsFromEventsClusterVersionProgressing(intervals monitorapi.Intervals) monitorapi.Intervals {
48+
var ret monitorapi.Intervals
49+
50+
for _, event := range intervals {
51+
if event.Source != monitorapi.SourceClusterOperatorMonitor {
52+
continue
53+
}
54+
if cvName := event.Locator.Keys[monitorapi.LocatorClusterVersionKey]; cvName != "version" {
55+
continue
56+
}
57+
currentCondition := monitorapi.GetOperatorConditionStatus(event)
58+
if currentCondition == nil {
59+
continue
60+
}
61+
62+
if currentCondition.Type != configv1.OperatorProgressing {
63+
continue
64+
}
65+
66+
if lastClusterVersionProgressingInterval != nil {
67+
ret = append(ret, monitorapi.NewInterval(monitorapi.SourceVersionState, monitorapi.Warning).
68+
Locator(event.Locator).
69+
Message(monitorapi.NewMessage().Reason(lastClusterVersionProgressingInterval.Message.Reason).
70+
HumanMessage(strings.Replace(lastClusterVersionProgressingInterval.Message.HumanMessage, "changed to ", "stayed in ", 1)).
71+
WithAnnotation(monitorapi.AnnotationCondition, string(configv1.OperatorProgressing)).
72+
WithAnnotation(monitorapi.AnnotationStatus, string(configv1.ConditionTrue))).
73+
Build(lastClusterVersionProgressingInterval.From, event.From),
74+
)
75+
lastClusterVersionProgressingInterval = nil
76+
}
77+
78+
if currentCondition.Status == configv1.ConditionTrue &&
79+
strings.Contains(event.Message.HumanMessage, ProgressingWaitingCOsKey) {
80+
lastClusterVersionProgressingInterval = event.DeepCopy()
81+
}
82+
}
83+
return ret
3884
}
3985

4086
func (w *legacyMonitorTests) EvaluateTestsFromConstructedIntervals(ctx context.Context, finalIntervals monitorapi.Intervals) ([]*junitapi.JUnitTestCase, error) {

pkg/monitortests/clusterversionoperator/legacycvomonitortests/operators.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,7 @@ func updateCOWaiting(interval monitorapi.Interval, waiting map[string]monitorapi
867867
if waiting == nil {
868868
return
869869
}
870-
if interval.Source != monitorapi.SourceOperatorState ||
870+
if interval.Source != monitorapi.SourceVersionState ||
871871
interval.Locator.Type != monitorapi.LocatorTypeClusterVersion ||
872872
interval.Locator.Keys[monitorapi.LocatorClusterVersionKey] != "version" {
873873
return

pkg/monitortests/clusterversionoperator/legacycvomonitortests/operators_test.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -230,14 +230,13 @@ func Test_updateCOWaiting(t *testing.T) {
230230
now := time.Now()
231231
next := 3 * time.Hour
232232
interval := func(m string, start time.Time, d time.Duration) monitorapi.Interval {
233-
return monitorapi.NewInterval(monitorapi.SourceOperatorState, monitorapi.Warning).
233+
return monitorapi.NewInterval("foo", monitorapi.Warning).
234234
Locator(monitorapi.NewLocator().ClusterVersion(&configv1.ClusterVersion{
235-
ObjectMeta: metav1.ObjectMeta{Name: "version"}})).
235+
ObjectMeta: metav1.ObjectMeta{Name: "bar"}})).
236236
Message(monitorapi.NewMessage().Reason("reason").
237237
HumanMessage(m).
238238
WithAnnotation(monitorapi.AnnotationCondition, string(configv1.OperatorProgressing)).
239239
WithAnnotation(monitorapi.AnnotationStatus, string(configv1.ConditionTrue))).
240-
Display().
241240
Build(start, start.Add(d))
242241
}
243242

@@ -277,14 +276,13 @@ func Test_updateCOWaiting(t *testing.T) {
277276
},
278277
}
279278
for _, tt := range tests {
280-
i := monitorapi.NewInterval(monitorapi.SourceOperatorState, monitorapi.Warning).
279+
i := monitorapi.NewInterval(monitorapi.SourceVersionState, monitorapi.Warning).
281280
Locator(monitorapi.NewLocator().ClusterVersion(&configv1.ClusterVersion{
282281
ObjectMeta: metav1.ObjectMeta{Name: "version"}})).
283282
Message(monitorapi.NewMessage().Reason("reason").
284283
HumanMessage(tt.message).
285284
WithAnnotation(monitorapi.AnnotationCondition, string(configv1.OperatorProgressing)).
286285
WithAnnotation(monitorapi.AnnotationStatus, string(configv1.ConditionTrue))).
287-
Display().
288286
Build(now.Add(next), now.Add(next+tt.d))
289287
t.Run(tt.name, func(t *testing.T) {
290288
updateCOWaiting(i, tt.waiting)

pkg/monitortests/testframework/watchclusteroperators/operator.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,11 @@ func startClusterOperatorMonitoring(ctx context.Context, m monitorapi.RecorderWr
176176
for i := range cv.Status.Conditions {
177177
s := &cv.Status.Conditions[i]
178178
previous := findOperatorStatusCondition(oldCV.Status.Conditions, s.Type)
179-
if previous == nil || s.Status != previous.Status {
179+
if previous == nil || s.Status != previous.Status ||
180+
// Expose all messages for Progressing=True and Failing=Unknown
181+
// There are tests replying on them
182+
(s.Type == configv1.OperatorProgressing && s.Status == configv1.ConditionTrue && s.Message != previous.Message) ||
183+
(s.Type == "Failing" && s.Status == configv1.ConditionUnknown && s.Message != previous.Message) {
180184
level := monitorapi.Warning
181185
if s.Type == configv1.OperatorDegraded && s.Status == configv1.ConditionTrue {
182186
level = monitorapi.Error

0 commit comments

Comments
 (0)