You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ts...@apache.org on 2022/08/30 07:46:06 UTC

[camel-k] branch main updated (8ca80009a -> eff8256cf)

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

tsato pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git


    from 8ca80009a Updated CHANGELOG.md
     new 1100a8e72 feat(cli): Force arguments for the rebuild command
     new eff8256cf fix: Align the code of commands with --all flag

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/delete.go                           | 10 +++-----
 pkg/cmd/kamelet_delete.go                   | 15 ++++--------
 pkg/cmd/kit_delete.go                       | 15 ++++--------
 pkg/cmd/rebuild.go                          | 29 ++++++++++++++++++----
 pkg/cmd/{delete_test.go => rebuild_test.go} | 38 ++++++++++++++---------------
 pkg/cmd/trait_help.go                       |  4 +--
 6 files changed, 58 insertions(+), 53 deletions(-)
 copy pkg/cmd/{delete_test.go => rebuild_test.go} (51%)


[camel-k] 01/02: feat(cli): Force arguments for the rebuild command

Posted by ts...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1100a8e72e05e2f4069763e99cf15b3e7f950d40
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Fri Aug 19 11:43:03 2022 +0200

    feat(cli): Force arguments for the rebuild command
---
 pkg/cmd/rebuild.go      | 31 ++++++++++++++++++++---
 pkg/cmd/rebuild_test.go | 66 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 93 insertions(+), 4 deletions(-)

diff --git a/pkg/cmd/rebuild.go b/pkg/cmd/rebuild.go
index 7ea427923..bcdd3c96e 100644
--- a/pkg/cmd/rebuild.go
+++ b/pkg/cmd/rebuild.go
@@ -34,18 +34,41 @@ func newCmdRebuild(rootCmdOptions *RootCmdOptions) (*cobra.Command, *rebuildCmdO
 		RootCmdOptions: rootCmdOptions,
 	}
 	cmd := cobra.Command{
-		Use:     "rebuild [integration]",
+		Use:     "rebuild [integration1] [integration2] ...",
 		Short:   "Clear the state of integrations to rebuild them",
 		Long:    `Clear the state of one or more integrations causing a rebuild.`,
 		PreRunE: decode(&options),
-		RunE:    options.rebuild,
+		RunE: func(cmd *cobra.Command, args []string) error {
+			if err := options.validate(args); err != nil {
+				return err
+			}
+			if err := options.rebuild(cmd, args); err != nil {
+				fmt.Fprintln(cmd.ErrOrStderr(), err.Error())
+			}
+
+			return nil
+		},
 	}
 
+	cmd.Flags().Bool("all", false, "Rebuild all integrations")
+
 	return &cmd, &options
 }
 
 type rebuildCmdOptions struct {
 	*RootCmdOptions
+	RebuildAll bool `mapstructure:"all"`
+}
+
+func (o *rebuildCmdOptions) validate(args []string) error {
+	if o.RebuildAll && len(args) > 0 {
+		return errors.New("invalid combination: both all flag and named integrations are set")
+	}
+	if !o.RebuildAll && len(args) == 0 {
+		return errors.New("invalid combination: neither all flag nor named integrations are set")
+	}
+
+	return nil
 }
 
 func (o *rebuildCmdOptions) rebuild(cmd *cobra.Command, args []string) error {
@@ -55,11 +78,11 @@ func (o *rebuildCmdOptions) rebuild(cmd *cobra.Command, args []string) error {
 	}
 
 	var integrations []v1.Integration
-	if len(args) == 0 {
+	if o.RebuildAll {
 		if integrations, err = o.listAllIntegrations(c); err != nil {
 			return err
 		}
-	} else {
+	} else if len(args) > 0 {
 		if integrations, err = o.getIntegrations(c, args); err != nil {
 			return err
 		}
diff --git a/pkg/cmd/rebuild_test.go b/pkg/cmd/rebuild_test.go
new file mode 100644
index 000000000..e6e0c95a4
--- /dev/null
+++ b/pkg/cmd/rebuild_test.go
@@ -0,0 +1,66 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package cmd
+
+import (
+	"testing"
+
+	"github.com/apache/camel-k/pkg/util/test"
+	"github.com/spf13/cobra"
+	"github.com/stretchr/testify/assert"
+)
+
+const cmdRebuild = "rebuild"
+
+// nolint: unparam
+func initializeRebuildCmdOptions(t *testing.T) (*rebuildCmdOptions, *cobra.Command, RootCmdOptions) {
+	t.Helper()
+
+	options, rootCmd := kamelTestPreAddCommandInit()
+	rebuildCmdOptions := addTestRebuildCmd(*options, rootCmd)
+	kamelTestPostAddCommandInit(t, rootCmd)
+
+	return rebuildCmdOptions, rootCmd, *options
+}
+
+func addTestRebuildCmd(options RootCmdOptions, rootCmd *cobra.Command) *rebuildCmdOptions {
+	// add a testing version of rebuild Command
+	rebuildCmd, rebuildOptions := newCmdRebuild(&options)
+	rebuildCmd.RunE = func(c *cobra.Command, args []string) error {
+		return nil
+	}
+	rebuildCmd.PostRunE = func(c *cobra.Command, args []string) error {
+		return nil
+	}
+	rebuildCmd.Args = test.ArbitraryArgs
+	rootCmd.AddCommand(rebuildCmd)
+	return rebuildOptions
+}
+
+func TestRebuildNonExistingFlag(t *testing.T) {
+	_, rootCmd, _ := initializeRebuildCmdOptions(t)
+	_, err := test.ExecuteCommand(rootCmd, cmdRebuild, "--nonExistingFlag")
+	assert.NotNil(t, err)
+}
+
+func TestRebuildAllFlag(t *testing.T) {
+	rebuildCmdOptions, rootCmd, _ := initializeRebuildCmdOptions(t)
+	_, err := test.ExecuteCommand(rootCmd, cmdRebuild, "--all")
+	assert.Nil(t, err)
+	assert.Equal(t, true, rebuildCmdOptions.RebuildAll)
+}


[camel-k] 02/02: fix: Align the code of commands with --all flag

Posted by ts...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit eff8256cf50a1d3a1e18cd7908fd750ea5694825
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Mon Aug 29 18:16:08 2022 +0200

    fix: Align the code of commands with --all flag
---
 pkg/cmd/delete.go         | 10 +++-------
 pkg/cmd/kamelet_delete.go | 15 +++++----------
 pkg/cmd/kit_delete.go     | 15 +++++----------
 pkg/cmd/rebuild.go        | 12 ++++--------
 pkg/cmd/trait_help.go     |  4 ++--
 5 files changed, 19 insertions(+), 37 deletions(-)

diff --git a/pkg/cmd/delete.go b/pkg/cmd/delete.go
index 2fd5aa347..ff12d31b8 100644
--- a/pkg/cmd/delete.go
+++ b/pkg/cmd/delete.go
@@ -46,11 +46,7 @@ func newCmdDelete(rootCmdOptions *RootCmdOptions) (*cobra.Command, *deleteCmdOpt
 			if err := options.validate(args); err != nil {
 				return err
 			}
-			if err := options.run(cmd, args); err != nil {
-				fmt.Fprintln(cmd.ErrOrStderr(), err.Error())
-			}
-
-			return nil
+			return options.run(cmd, args)
 		},
 	}
 
@@ -66,10 +62,10 @@ type deleteCmdOptions struct {
 
 func (command *deleteCmdOptions) validate(args []string) error {
 	if command.DeleteAll && len(args) > 0 {
-		return errors.New("invalid combination: both all flag and named integrations are set")
+		return errors.New("invalid combination: --all flag is set and at least one integration name is provided")
 	}
 	if !command.DeleteAll && len(args) == 0 {
-		return errors.New("invalid combination: neither all flag nor named integrations are set")
+		return errors.New("invalid combination: provide one or several integration names or set --all flag for all integrations")
 	}
 
 	return nil
diff --git a/pkg/cmd/kamelet_delete.go b/pkg/cmd/kamelet_delete.go
index 36fcc049c..4d50a859f 100644
--- a/pkg/cmd/kamelet_delete.go
+++ b/pkg/cmd/kamelet_delete.go
@@ -35,19 +35,14 @@ func newKameletDeleteCmd(rootCmdOptions *RootCmdOptions) (*cobra.Command, *kamel
 	}
 
 	cmd := cobra.Command{
-		Use:     "delete <name>",
-		Short:   "Delete a Kamelet",
-		Long:    `Delete a Kamelet.`,
+		Use:     "delete [Kamelet1] [Kamelet2] ...",
+		Short:   "Delete Kamelets deployed on Kubernetes",
 		PreRunE: decode(&options),
 		RunE: func(cmd *cobra.Command, args []string) error {
 			if err := options.validate(args); err != nil {
 				return err
 			}
-			if err := options.run(cmd, args); err != nil {
-				fmt.Fprintln(cmd.ErrOrStderr(), err.Error())
-			}
-
-			return nil
+			return options.run(cmd, args)
 		},
 	}
 
@@ -63,10 +58,10 @@ type kameletDeleteCommandOptions struct {
 
 func (command *kameletDeleteCommandOptions) validate(args []string) error {
 	if command.All && len(args) > 0 {
-		return errors.New("invalid combination: both all flag and named kamelets are set")
+		return errors.New("invalid combination: --all flag is set and at least one kamelet name is provided")
 	}
 	if !command.All && len(args) == 0 {
-		return errors.New("invalid combination: neither all flag nor named kamelets are set")
+		return errors.New("invalid combination: provide one or several kamelet names or set --all flag for all kamelets")
 	}
 
 	return nil
diff --git a/pkg/cmd/kit_delete.go b/pkg/cmd/kit_delete.go
index ec1c5ebd1..33515ee06 100644
--- a/pkg/cmd/kit_delete.go
+++ b/pkg/cmd/kit_delete.go
@@ -36,19 +36,14 @@ func newKitDeleteCmd(rootCmdOptions *RootCmdOptions) (*cobra.Command, *kitDelete
 	}
 
 	cmd := cobra.Command{
-		Use:     "delete <name>",
-		Short:   "Delete an Integration Kit",
-		Long:    `Delete an Integration Kit.`,
+		Use:     "delete [integration kit1] [integration kit2] ...",
+		Short:   "Delete integration kits deployed on Kubernetes",
 		PreRunE: decode(&options),
 		RunE: func(cmd *cobra.Command, args []string) error {
 			if err := options.validate(args); err != nil {
 				return err
 			}
-			if err := options.run(cmd, args); err != nil {
-				fmt.Fprintln(cmd.ErrOrStderr(), err.Error())
-			}
-
-			return nil
+			return options.run(cmd, args)
 		},
 	}
 
@@ -64,10 +59,10 @@ type kitDeleteCommandOptions struct {
 
 func (command *kitDeleteCommandOptions) validate(args []string) error {
 	if command.All && len(args) > 0 {
-		return errors.New("invalid combination: both all flag and named Kits are set")
+		return errors.New("invalid combination: --all flag is set and at least one integration kit name is provided")
 	}
 	if !command.All && len(args) == 0 {
-		return errors.New("invalid combination: neither all flag nor named Kits are set")
+		return errors.New("invalid combination: provide one or several integration kit names or set --all flag for all integration kits")
 	}
 
 	return nil
diff --git a/pkg/cmd/rebuild.go b/pkg/cmd/rebuild.go
index bcdd3c96e..9c402c23a 100644
--- a/pkg/cmd/rebuild.go
+++ b/pkg/cmd/rebuild.go
@@ -42,11 +42,7 @@ func newCmdRebuild(rootCmdOptions *RootCmdOptions) (*cobra.Command, *rebuildCmdO
 			if err := options.validate(args); err != nil {
 				return err
 			}
-			if err := options.rebuild(cmd, args); err != nil {
-				fmt.Fprintln(cmd.ErrOrStderr(), err.Error())
-			}
-
-			return nil
+			return options.run(cmd, args)
 		},
 	}
 
@@ -62,16 +58,16 @@ type rebuildCmdOptions struct {
 
 func (o *rebuildCmdOptions) validate(args []string) error {
 	if o.RebuildAll && len(args) > 0 {
-		return errors.New("invalid combination: both all flag and named integrations are set")
+		return errors.New("invalid combination: --all flag is set and at least one integration name is provided")
 	}
 	if !o.RebuildAll && len(args) == 0 {
-		return errors.New("invalid combination: neither all flag nor named integrations are set")
+		return errors.New("invalid combination: provide one or several integration names or set --all flag for all integrations")
 	}
 
 	return nil
 }
 
-func (o *rebuildCmdOptions) rebuild(cmd *cobra.Command, args []string) error {
+func (o *rebuildCmdOptions) run(cmd *cobra.Command, args []string) error {
 	c, err := o.GetCmdClient()
 	if err != nil {
 		return err
diff --git a/pkg/cmd/trait_help.go b/pkg/cmd/trait_help.go
index 0ef7bc9af..163e1cd9a 100644
--- a/pkg/cmd/trait_help.go
+++ b/pkg/cmd/trait_help.go
@@ -89,10 +89,10 @@ type traitMetaData struct {
 
 func (command *traitHelpCommandOptions) validate(args []string) error {
 	if command.IncludeAll && len(args) > 0 {
-		return errors.New("invalid combination: both all flag and a named trait is set")
+		return errors.New("invalid combination: --all flag is set and a trait name is provided")
 	}
 	if !command.IncludeAll && len(args) == 0 {
-		return errors.New("invalid combination: neither all flag nor a named trait is set")
+		return errors.New("invalid combination: provide a trait name or set --all flag for all traits")
 	}
 	return nil
 }