Skip to content

Commit 8fe440e

Browse files
Merge pull request #496 from fmount/mirror_conditions
Mirror ReadyCondition with the actual current condition
2 parents bd1b51e + 6e9b0d9 commit 8fe440e

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

controllers/glance_controller.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,12 @@ func (r *GlanceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (res
138138
// Always patch the instance status when exiting this function so we can
139139
// persist any changes.
140140
defer func() {
141-
// Always mirror the condition status (useful in case of failures)
142-
instance.Status.Conditions.Set(
143-
instance.Status.Conditions.Mirror(condition.ReadyCondition))
144141
condition.RestoreLastTransitionTimes(
145142
&instance.Status.Conditions, savedConditions)
143+
if instance.Status.Conditions.IsUnknown(condition.ReadyCondition) {
144+
instance.Status.Conditions.Set(
145+
instance.Status.Conditions.Mirror(condition.ReadyCondition))
146+
}
146147
err := helper.PatchInstance(ctx, instance)
147148
if err != nil {
148149
_err = err
@@ -153,8 +154,11 @@ func (r *GlanceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (res
153154
// initialize conditions used later as Status=Unknown, except the ReadyCondition
154155
// that should be False when we start
155156
cl := condition.CreateList(
156-
// Mark ReadyCondition as False from the beginning
157-
condition.FalseCondition(condition.ReadyCondition, condition.InitReason, condition.SeverityInfo, condition.ReadyInitMessage),
157+
// Mark ReadyCondition as Unknown from the beginning, because the
158+
// Reconcile function is in progress. If this condition is not marked
159+
// as True and is still in the "Unknown" state, we `Mirror(` the actual
160+
// failure
161+
condition.UnknownCondition(condition.ReadyCondition, condition.InitReason, condition.ReadyInitMessage),
158162
condition.UnknownCondition(condition.DBReadyCondition, condition.InitReason, condition.DBReadyInitMessage),
159163
condition.UnknownCondition(condition.DBSyncReadyCondition, condition.InitReason, condition.DBSyncReadyInitMessage),
160164
condition.UnknownCondition(condition.MemcachedReadyCondition, condition.InitReason, condition.MemcachedReadyInitMessage),

controllers/glanceapi_controller.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,12 @@ func (r *GlanceAPIReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
135135

136136
// Always patch the instance status when exiting this function so we can persist any changes.
137137
defer func() {
138-
// Always mirror the Condition from the sub level CRs
139-
instance.Status.Conditions.Set(instance.Status.Conditions.Mirror(condition.ReadyCondition))
140-
condition.RestoreLastTransitionTimes(&instance.Status.Conditions, savedConditions)
138+
condition.RestoreLastTransitionTimes(
139+
&instance.Status.Conditions, savedConditions)
140+
if instance.Status.Conditions.IsUnknown(condition.ReadyCondition) {
141+
instance.Status.Conditions.Set(
142+
instance.Status.Conditions.Mirror(condition.ReadyCondition))
143+
}
141144
err := helper.PatchInstance(ctx, instance)
142145
if err != nil {
143146
_err = err
@@ -147,6 +150,11 @@ func (r *GlanceAPIReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
147150

148151
// initialize conditions used later as Status=Unknown
149152
cl := condition.CreateList(
153+
// Mark ReadyCondition as Unknown from the beginning, because the
154+
// Reconcile function is in progress. If this condition is not marked
155+
// as True and is still in the "Unknown" state, we `Mirror(` the actual
156+
// failure
157+
condition.UnknownCondition(condition.ReadyCondition, condition.InitReason, condition.ReadyInitMessage),
150158
condition.UnknownCondition(glancev1.CinderCondition, condition.InitReason, glancev1.CinderInitMessage),
151159
condition.UnknownCondition(condition.ExposeServiceReadyCondition, condition.InitReason, condition.ExposeServiceReadyInitMessage),
152160
condition.UnknownCondition(condition.InputReadyCondition, condition.InitReason, condition.InputReadyInitMessage),

0 commit comments

Comments
 (0)