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 <[email protected]>
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