You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2023/03/31 09:52:07 UTC
[camel-k] branch release-1.12.x updated (a5c9cabd2 -> 03e9e3516)
This is an automated email from the ASF dual-hosted git repository.
pcongiusti pushed a change to branch release-1.12.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git
from a5c9cabd2 chore: changelog automatic update
new cb35e5fc0 fix(cmd): run does not expand camel properties
new 03e9e3516 fix: lint correction
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
pkg/cmd/run.go | 38 ++++++++++++-------------------
pkg/cmd/run_test.go | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 78 insertions(+), 24 deletions(-)
[camel-k] 01/02: fix(cmd): run does not expand camel properties
Posted by pc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
pcongiusti pushed a commit to branch release-1.12.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit cb35e5fc04323f963b867a7e3a9fd4f6563c3e85
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Thu Mar 30 12:45:04 2023 +0200
fix(cmd): run does not expand camel properties
Closes #4163
---
pkg/cmd/run.go | 38 ++++++++++++-------------------
pkg/cmd/run_test.go | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 78 insertions(+), 24 deletions(-)
diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go
index 2199275a0..674e5bc77 100644
--- a/pkg/cmd/run.go
+++ b/pkg/cmd/run.go
@@ -700,11 +700,11 @@ func (o *runCmdOptions) convertOptionsToTraits(cmd *cobra.Command, c client.Clie
return err
}
- if err := o.applyProperties(c); err != nil {
+ if err := o.applyProperties(c, o.Properties, "camel.properties"); err != nil {
return err
}
- if err := o.applyBuildProperties(c); err != nil {
+ if err := o.applyProperties(c, o.BuildProperties, "builder.properties"); err != nil {
return err
}
@@ -744,14 +744,18 @@ func convertToTrait(value, traitParameter string) string {
return fmt.Sprintf("%s=%s", traitParameter, value)
}
-func (o *runCmdOptions) applyProperties(c client.Client) error {
- props, err := o.mergePropertiesWithPrecedence(c, o.Properties)
+func (o *runCmdOptions) applyProperties(c client.Client, items []string, traitName string) error {
+ if items == nil || len(items) == 0 {
+ return nil
+ }
+ props, err := o.mergePropertiesWithPrecedence(c, items)
if err != nil {
return err
}
for _, key := range props.Keys() {
- kv := fmt.Sprintf("%s=%s", key, props.GetString(key, ""))
- propsTraits, err := o.convertToTraitParameter(c, kv, "camel.properties")
+ val, _ := props.Get(key)
+ kv := fmt.Sprintf("%s=%s", key, val)
+ propsTraits, err := o.convertToTraitParameter(c, kv, traitName)
if err != nil {
return err
}
@@ -761,30 +765,13 @@ func (o *runCmdOptions) applyProperties(c client.Client) error {
return nil
}
-func (o *runCmdOptions) applyBuildProperties(c client.Client) error {
- // convert each build configuration to a builder trait property
- buildProps, err := o.mergePropertiesWithPrecedence(c, o.BuildProperties)
- if err != nil {
- return err
- }
- for _, key := range buildProps.Keys() {
- kv := fmt.Sprintf("%s=%s", key, buildProps.GetString(key, ""))
- buildPropsTraits, err := o.convertToTraitParameter(c, kv, "builder.properties")
- if err != nil {
- return err
- }
- o.Traits = append(o.Traits, buildPropsTraits...)
- }
-
- return nil
-}
-
func (o *runCmdOptions) convertToTraitParameter(c client.Client, value, traitParameter string) ([]string, error) {
traits := make([]string, 0)
props, err := o.extractProperties(c, value)
if err != nil {
return nil, err
}
+ props.DisableExpansion = true
for _, k := range props.Keys() {
v, ok := props.Get(k)
if ok {
@@ -872,12 +859,15 @@ func (o *runCmdOptions) GetIntegrationName(sources []string) string {
func (o *runCmdOptions) mergePropertiesWithPrecedence(c client.Client, items []string) (*properties.Properties, error) {
loPrecedenceProps := properties.NewProperties()
+ loPrecedenceProps.DisableExpansion = true
hiPrecedenceProps := properties.NewProperties()
+ hiPrecedenceProps.DisableExpansion = true
for _, item := range items {
prop, err := o.extractProperties(c, item)
if err != nil {
return nil, err
}
+ prop.DisableExpansion = true
// We consider file, secret and config map props to have a lower priority versus single properties
if strings.HasPrefix(item, "file:") || strings.HasPrefix(item, "secret:") || strings.HasPrefix(item, "configmap:") {
loPrecedenceProps.Merge(prop)
diff --git a/pkg/cmd/run_test.go b/pkg/cmd/run_test.go
index 80598d77b..789b039c3 100644
--- a/pkg/cmd/run_test.go
+++ b/pkg/cmd/run_test.go
@@ -710,3 +710,67 @@ func TestIntegrationServiceAccountName(t *testing.T) {
assert.Nil(t, err)
assert.Contains(t, output, "serviceAccountName: my-service-account")
}
+
+func TestFileProperties(t *testing.T) {
+ var tmpFile1 *os.File
+ var err error
+ if tmpFile1, err = os.CreateTemp("", "camel-k-*.properties"); err != nil {
+ t.Error(err)
+ }
+
+ assert.Nil(t, tmpFile1.Close())
+ assert.Nil(t, os.WriteFile(tmpFile1.Name(), []byte(`
+ key=${value}
+ #key2=value2
+ my.key=value
+ `), 0o400))
+
+ var tmpFile *os.File
+ if tmpFile, err = os.CreateTemp("", "camel-k-"); err != nil {
+ t.Error(err)
+ }
+
+ assert.Nil(t, tmpFile.Close())
+ assert.Nil(t, os.WriteFile(tmpFile.Name(), []byte(TestSrcContent), 0o400))
+ _, runCmd, _ := initializeRunCmdOptionsWithOutput(t)
+ output, err := test.ExecuteCommand(runCmd, cmdRun, tmpFile.Name(),
+ "-p", "file:"+tmpFile1.Name(),
+ "-o", "yaml",
+ )
+ assert.Nil(t, err)
+ assert.NotContains(t, output, "#key2")
+ assert.Contains(t, output, "my.key = value")
+ assert.Contains(t, output, "key = ${value}")
+}
+
+func TestPropertyShouldNotExpand(t *testing.T) {
+ var tmpFile1 *os.File
+ var err error
+ if tmpFile1, err = os.CreateTemp("", "camel-k-*.properties"); err != nil {
+ t.Error(err)
+ }
+
+ assert.Nil(t, tmpFile1.Close())
+ assert.Nil(t, os.WriteFile(tmpFile1.Name(), []byte(`
+ key=${value}
+ `), 0o400))
+
+ var tmpFile *os.File
+ if tmpFile, err = os.CreateTemp("", "camel-k-"); err != nil {
+ t.Error(err)
+ }
+
+ assert.Nil(t, tmpFile.Close())
+ assert.Nil(t, os.WriteFile(tmpFile.Name(), []byte(TestSrcContent), 0o400))
+ _, runCmd, _ := initializeRunCmdOptionsWithOutput(t)
+ output, err := test.ExecuteCommand(runCmd, cmdRun, tmpFile.Name(),
+ "-o", "yaml",
+ "-p", "runtimeProp=${value}",
+ "--build-property", "buildProp=${value}",
+ "-p", "file:"+tmpFile1.Name(),
+ )
+ assert.Nil(t, err)
+ assert.Contains(t, output, "runtimeProp = ${value}")
+ assert.Contains(t, output, "buildProp = ${value}")
+ assert.Contains(t, output, "key = ${value}")
+}
[camel-k] 02/02: fix: lint correction
Posted by pc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
pcongiusti pushed a commit to branch release-1.12.x
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 03e9e35163a839e017aa03e434b5a7254c08f98a
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Thu Mar 30 12:48:52 2023 +0200
fix: lint correction
---
pkg/cmd/run.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go
index 674e5bc77..0d0dbd2c0 100644
--- a/pkg/cmd/run.go
+++ b/pkg/cmd/run.go
@@ -745,7 +745,7 @@ func convertToTrait(value, traitParameter string) string {
}
func (o *runCmdOptions) applyProperties(c client.Client, items []string, traitName string) error {
- if items == nil || len(items) == 0 {
+ if len(items) == 0 {
return nil
}
props, err := o.mergePropertiesWithPrecedence(c, items)