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


The following commit(s) were added to refs/heads/master by this push:
     new 3e2ee12  refactor(trait): replace resources and execute post action as 
part of trait management
3e2ee12 is described below

commit 3e2ee125ca181fe0d574532b425c2a1587217da3
Author: lburgazzoli <lburgazz...@gmail.com>
AuthorDate: Fri Jun 28 17:35:12 2019 +0200

    refactor(trait): replace resources and execute post action as part of trait 
management
---
 pkg/controller/integration/deploy.go     | 15 +--------------
 pkg/controller/integration/initialize.go | 10 +---------
 pkg/trait/trait.go                       | 17 ++++++++++++++++-
 3 files changed, 18 insertions(+), 24 deletions(-)

diff --git a/pkg/controller/integration/deploy.go 
b/pkg/controller/integration/deploy.go
index 1d89ef2..cefdc76 100644
--- a/pkg/controller/integration/deploy.go
+++ b/pkg/controller/integration/deploy.go
@@ -53,23 +53,10 @@ func (action *deployAction) Handle(ctx context.Context, 
integration *v1alpha1.In
                return errors.Wrapf(err, "unable to find integration kit %s, 
%s", integration.Status.Kit, err)
        }
 
-       env, err := trait.Apply(ctx, action.client, integration, kit)
-       if err != nil {
+       if _, err := trait.Apply(ctx, action.client, integration, kit); err != 
nil {
                return err
        }
 
-       err = kubernetes.ReplaceResources(ctx, action.client, 
env.Resources.Items())
-       if err != nil {
-               return err
-       }
-
-       for _, postAction := range env.PostActions {
-               err := postAction(env)
-               if err != nil {
-                       action.L.Errorf(err, "error executing deployment post 
action")
-               }
-       }
-
        target := integration.DeepCopy()
        target.Status.Phase = v1alpha1.IntegrationPhaseRunning
 
diff --git a/pkg/controller/integration/initialize.go 
b/pkg/controller/integration/initialize.go
index b8cbac7..b84aa0f 100644
--- a/pkg/controller/integration/initialize.go
+++ b/pkg/controller/integration/initialize.go
@@ -20,8 +20,6 @@ package integration
 import (
        "context"
 
-       "github.com/apache/camel-k/pkg/util/kubernetes"
-
        "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
        "github.com/apache/camel-k/pkg/platform"
        "github.com/apache/camel-k/pkg/trait"
@@ -93,13 +91,7 @@ func (action *initializeAction) Handle(ctx context.Context, 
integration *v1alpha
        target := integration.DeepCopy()
 
        // execute custom initialization
-       env, err := trait.Apply(ctx, action.client, target, nil)
-       if err != nil {
-               return err
-       }
-
-       err = kubernetes.ReplaceResources(ctx, action.client, 
env.Resources.Items())
-       if err != nil {
+       if _, err := trait.Apply(ctx, action.client, target, nil); err != nil {
                return err
        }
 
diff --git a/pkg/trait/trait.go b/pkg/trait/trait.go
index 2f30c8c..8e50c2c 100644
--- a/pkg/trait/trait.go
+++ b/pkg/trait/trait.go
@@ -44,7 +44,22 @@ func Apply(ctx context.Context, c client.Client, integration 
*v1alpha1.Integrati
 
        // invoke the trait framework to determine the needed resources
        if err := catalog.apply(environment); err != nil {
-               return nil, errors.Wrap(err, "error during trait customization 
before deployment")
+               return nil, errors.Wrap(err, "error during trait customization")
+       }
+
+       // replace resources created by the trait
+       if environment.Resources != nil {
+               if err := kubernetes.ReplaceResources(ctx, c, 
environment.Resources.Items()); err != nil {
+                       return nil, errors.Wrap(err, "error during replace 
resource")
+               }
+       }
+
+       // execute post actions registered by traits
+       for _, postAction := range environment.PostActions {
+               err := postAction(environment)
+               if err != nil {
+                       return nil, errors.Wrap(err, "error executing post 
actions")
+               }
        }
 
        return environment, nil

Reply via email to