@@ -16,6 +16,7 @@ import (
1616const (
1717 BuildRunningReason = "BuildRunning"
1818 ResolverNotReadyReason = "ResolverNotReady"
19+ UnknownStateReason = "UnknownState"
1920 BuildFailedReason = "BuildFailed"
2021 UpToDateReason = "UpToDate"
2122)
@@ -76,53 +77,36 @@ func (c *Reconciler) reconcileBuild(ctx context.Context, image *buildapi.Image,
7677}
7778
7879func noScheduledBuild (buildNeeded corev1.ConditionStatus , builder buildapi.BuilderResource , build * buildapi.Build , sourceResolver * buildapi.SourceResolver ) corev1alpha1.Conditions {
79- if ! builder .Ready () {
80- return corev1alpha1.Conditions {
81- {
82- Type : corev1alpha1 .ConditionReady ,
83- Status : corev1 .ConditionFalse ,
84- Reason : buildapi .BuilderNotReady ,
85- Message : builderError (builder ),
86- LastTransitionTime : corev1alpha1.VolatileTime {Inner : metav1 .Now ()},
87- },
88- builderCondition (builder ),
89- }
90- }
91- if buildNeeded == corev1 .ConditionUnknown {
92- message := "Build status unknown"
93- if ! sourceResolver .Ready () {
94- message = fmt .Sprintf ("SourceResolver %s is not ready" , sourceResolver .GetName ())
95- }
96- return corev1alpha1.Conditions {
97- {
98- Type : corev1alpha1 .ConditionReady ,
99- Status : corev1 .ConditionUnknown ,
100- Reason : ResolverNotReadyReason ,
101- Message : message ,
102- LastTransitionTime : corev1alpha1.VolatileTime {Inner : metav1 .Now ()},
103- },
104- builderCondition (builder ),
105- }
80+ ready := corev1alpha1.Condition {
81+ Type : corev1alpha1 .ConditionReady ,
82+ Status : corev1 .ConditionUnknown ,
83+ LastTransitionTime : corev1alpha1.VolatileTime {Inner : metav1 .Now ()},
10684 }
10785
108- buildReason := UpToDateReason
109- buildMessage := "Last build succeeded"
110-
111- if ! build .Status .GetCondition (corev1alpha1 .ConditionSucceeded ).IsTrue () {
112- buildReason = BuildFailedReason
113- buildMessage = "Last build did not succeed"
86+ switch {
87+ case ! builder .Ready ():
88+ ready .Status = corev1 .ConditionFalse
89+ ready .Reason = buildapi .BuilderNotReady
90+ ready .Message = builderError (builder )
91+ case buildNeeded == corev1 .ConditionUnknown && ! sourceResolver .Ready ():
92+ ready .Status = corev1 .ConditionUnknown
93+ ready .Reason = ResolverNotReadyReason
94+ ready .Message = fmt .Sprintf ("SourceResolver %s is not ready" , sourceResolver .GetName ())
95+ case buildNeeded == corev1 .ConditionUnknown && sourceResolver .Ready ():
96+ ready .Status = corev1 .ConditionUnknown
97+ ready .Reason = UnknownStateReason
98+ ready .Message = "Build status unknown"
99+ case build .Status .GetCondition (corev1alpha1 .ConditionSucceeded ).IsTrue ():
100+ ready .Status = corev1 .ConditionTrue
101+ ready .Reason = UpToDateReason
102+ ready .Message = defaultMessageIfNil (build .Status .GetCondition (corev1alpha1 .ConditionSucceeded ), "Last build succeeded" )
103+ default :
104+ ready .Status = unknownStatusIfNil (build .Status .GetCondition (corev1alpha1 .ConditionSucceeded ))
105+ ready .Reason = BuildFailedReason
106+ ready .Message = fmt .Sprintf ("Build %s failed: %s" , build .Name , defaultMessageIfNil (build .Status .GetCondition (corev1alpha1 .ConditionSucceeded ), "unknown error" ))
114107 }
115108
116- return corev1alpha1.Conditions {
117- {
118- Type : corev1alpha1 .ConditionReady ,
119- Status : unknownStatusIfNil (build .Status .GetCondition (corev1alpha1 .ConditionSucceeded )),
120- Reason : buildReason ,
121- Message : defaultMessageIfNil (build .Status .GetCondition (corev1alpha1 .ConditionSucceeded ), buildMessage ),
122- LastTransitionTime : corev1alpha1.VolatileTime {Inner : metav1 .Now ()},
123- },
124- builderCondition (builder ),
125- }
109+ return corev1alpha1.Conditions {ready , builderCondition (builder )}
126110
127111}
128112
0 commit comments