This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit f797de8de8ad5fb6adddeef3a6feee3172761bca
Author: Antonin Stefanutti <anto...@stefanutti.fr>
AuthorDate: Tue Nov 26 11:27:42 2019 +0100

    feat: Patch generation labels of integration resources used by GC trait
---
 pkg/trait/gc.go      | 36 ++++++++++++++++++------------------
 pkg/trait/gc_test.go |  2 +-
 2 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/pkg/trait/gc.go b/pkg/trait/gc.go
index 11b8ccb..b35a4a8 100644
--- a/pkg/trait/gc.go
+++ b/pkg/trait/gc.go
@@ -90,35 +90,35 @@ func (t *garbageCollectorTrait) Configure(e *Environment) 
(bool, error) {
 }
 
 func (t *garbageCollectorTrait) Apply(e *Environment) error {
-       if e.IntegrationInPhase(v1alpha1.IntegrationPhaseInitialization, 
v1alpha1.IntegrationPhaseDeploying) {
+       switch e.Integration.Status.Phase {
+
+       case v1alpha1.IntegrationPhaseRunning:
+               // Register a post action that deletes the existing resources 
that are labelled
+               // with the previous integration generations.
+               // TODO: this should be refined so that it's run when all the 
replicas for the newer generation
+               // are ready. This is to be added when the integration scale 
status is refined with ready replicas
+               e.PostActions = append(e.PostActions, func(env *Environment) 
error {
+                       // The collection and deletion are performed 
asynchronously to avoid blocking
+                       // the reconcile loop.
+                       go t.garbageCollectResources(env)
+                       return nil
+               })
+               fallthrough
+
+       default:
                // Register a post processor that adds the required labels to 
the new resources
                e.PostProcessors = append(e.PostProcessors, func(env 
*Environment) error {
+                       generation := 
strconv.FormatInt(env.Integration.GetGeneration(), 10)
                        env.Resources.VisitMetaObject(func(resource 
metav1.Object) {
                                labels := resource.GetLabels()
-                               if labels == nil {
-                                       labels = map[string]string{}
-                               }
                                // Label the resource with the current 
integration generation
-                               labels["camel.apache.org/generation"] = 
strconv.FormatInt(env.Integration.GetGeneration(), 10)
+                               labels["camel.apache.org/generation"] = 
generation
                                // Make sure the integration label is set
                                labels["camel.apache.org/integration"] = 
env.Integration.Name
                                resource.SetLabels(labels)
                        })
                        return nil
                })
-       } else if e.IntegrationInPhase(v1alpha1.IntegrationPhaseRunning) {
-               // Let's run garbage collection during the integration running 
phase
-               // TODO: this should be refined so that it's run when all the 
replicas for the newer generation
-               // are ready. This is to be added when the integration scale 
status is refined with ready replicas
-
-               // Register a post action that deletes the existing resources 
that are labelled
-               // with the previous integration generations.
-               e.PostActions = append(e.PostActions, func(environment 
*Environment) error {
-                       // The collection and deletion are performed 
asynchronously to avoid blocking
-                       // the reconcile loop.
-                       go t.garbageCollectResources(e)
-                       return nil
-               })
        }
 
        return nil
diff --git a/pkg/trait/gc_test.go b/pkg/trait/gc_test.go
index 7766638..5a49058 100644
--- a/pkg/trait/gc_test.go
+++ b/pkg/trait/gc_test.go
@@ -51,7 +51,7 @@ func TestApplyGarbageCollectorTraitDoesSucceed(t *testing.T) {
        err := gcTrait.Apply(environment)
 
        assert.Nil(t, err)
-       assert.Len(t, environment.PostProcessors, 0)
+       assert.Len(t, environment.PostProcessors, 1)
        assert.Len(t, environment.PostActions, 1)
 }
 

Reply via email to