This is an automated email from the ASF dual-hosted git repository. tsato pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit c0ac5a167be70ad6c670302fb292c3328930677c Author: Tadayoshi Sato <sato.tadayo...@gmail.com> AuthorDate: Tue Sep 13 14:42:27 2022 +0900 chore(controller): small refactoring of integration controller --- pkg/controller/integration/integration_controller.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/pkg/controller/integration/integration_controller.go b/pkg/controller/integration/integration_controller.go index d898ff3ea..bc63ef92c 100644 --- a/pkg/controller/integration/integration_controller.go +++ b/pkg/controller/integration/integration_controller.go @@ -80,9 +80,8 @@ func newReconciler(mgr manager.Manager, c client.Client) reconcile.Reconciler { func integrationUpdateFunc(old *v1.Integration, it *v1.Integration) bool { // Observe the time to first readiness metric previous := old.Status.GetCondition(v1.IntegrationConditionReady) - if next := it.Status.GetCondition(v1.IntegrationConditionReady); (previous == nil || previous.Status != corev1.ConditionTrue && (previous.FirstTruthyTime == nil || previous.FirstTruthyTime.IsZero())) && - next != nil && next.Status == corev1.ConditionTrue && next.FirstTruthyTime != nil && !next.FirstTruthyTime.IsZero() && - it.Status.InitializationTimestamp != nil { + next := it.Status.GetCondition(v1.IntegrationConditionReady) + if isIntegrationUpdated(it, previous, next) { duration := next.FirstTruthyTime.Time.Sub(it.Status.InitializationTimestamp.Time) Log.WithValues("request-namespace", it.Namespace, "request-name", it.Name, "ready-after", duration.Seconds()). ForIntegration(it).Infof("First readiness after %s", duration) @@ -108,6 +107,16 @@ func integrationUpdateFunc(old *v1.Integration, it *v1.Integration) bool { old.Status.Phase != it.Status.Phase } +func isIntegrationUpdated(it *v1.Integration, previous, next *v1.IntegrationCondition) bool { + if previous == nil || previous.Status != corev1.ConditionTrue && (previous.FirstTruthyTime == nil || previous.FirstTruthyTime.IsZero()) { + if next != nil && next.Status == corev1.ConditionTrue && next.FirstTruthyTime != nil && !next.FirstTruthyTime.IsZero() { + return it.Status.InitializationTimestamp != nil + } + } + + return false +} + func integrationKitEnqueueRequestsFromMapFunc(c client.Client, kit *v1.IntegrationKit) []reconcile.Request { var requests []reconcile.Request if kit.Status.Phase != v1.IntegrationKitPhaseReady && kit.Status.Phase != v1.IntegrationKitPhaseError {