You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2018/10/08 14:19:53 UTC
[camel-k] 13/14: Formalize auto-detection
This is an automated email from the ASF dual-hosted git repository.
lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 19f4c403f9156319b05ccc1a83db256bae58bfc0
Author: nferraro <ni...@gmail.com>
AuthorDate: Fri Oct 5 10:45:46 2018 +0200
Formalize auto-detection
---
pkg/trait/catalog.go | 2 +-
pkg/trait/service.go | 6 +++---
pkg/trait/types.go | 14 ++++++++++++--
3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/pkg/trait/catalog.go b/pkg/trait/catalog.go
index df8ad07..abc6415 100644
--- a/pkg/trait/catalog.go
+++ b/pkg/trait/catalog.go
@@ -69,7 +69,7 @@ func (c *chainedCustomizer) id() id {
func (c *chainedCustomizer) customize(environment *environment, resources *kubernetes.Collection) (bool, error) {
atLeastOne := false
for _, custom := range c.customizers {
- if environment.isEnabled(custom.id()) {
+ if environment.isExplicitlyEnabled(custom.id()) || environment.isAutoDetectionMode(custom.id()) {
if done, err := custom.customize(environment, resources); err != nil {
return false, err
} else if done && custom.id() != "" {
diff --git a/pkg/trait/service.go b/pkg/trait/service.go
index f52d08d..9907466 100644
--- a/pkg/trait/service.go
+++ b/pkg/trait/service.go
@@ -45,11 +45,11 @@ func (*serviceTrait) id() id {
return id("service")
}
-func (e *serviceTrait) customize(environment *environment, resources *kubernetes.Collection) (bool, error) {
- if !e.requiresService(environment) {
+func (s *serviceTrait) customize(environment *environment, resources *kubernetes.Collection) (bool, error) {
+ if environment.isAutoDetectionMode(s.id()) && !s.requiresService(environment) {
return false, nil
}
- svc, err := e.getServiceFor(environment)
+ svc, err := s.getServiceFor(environment)
if err != nil {
return false, err
}
diff --git a/pkg/trait/types.go b/pkg/trait/types.go
index ad002e1..306f0b4 100644
--- a/pkg/trait/types.go
+++ b/pkg/trait/types.go
@@ -53,9 +53,19 @@ func (e *environment) getTraitSpec(traitID id) *v1alpha1.IntegrationTraitSpec {
return nil
}
-func (e *environment) isEnabled(traitID id) bool {
+func (e *environment) isExplicitlyEnabled(traitID id) bool {
conf := e.getTraitSpec(traitID)
- return conf == nil || conf.Enabled == nil || *conf.Enabled
+ return conf != nil && conf.Enabled != nil && *conf.Enabled
+}
+
+func (e *environment) isExplicitlyDisabled(traitID id) bool {
+ conf := e.getTraitSpec(traitID)
+ return conf != nil && conf.Enabled != nil && !*conf.Enabled
+}
+
+func (e *environment) isAutoDetectionMode(traitID id) bool {
+ conf := e.getTraitSpec(traitID)
+ return conf == nil || conf.Enabled == nil
}
func (e *environment) getConfig(traitID id, key string) *string {