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 2025/11/05 14:49:49 UTC
(camel-k) 01/03: cli(reset): add force flag, namespace confirmation prompt, update e2e tests
This is an automated email from the ASF dual-hosted git repository.
pcongiusti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 177b1c1edaca74f3152027c8137a9898a7ee9f10
Author: pkalsi97 <pr...@gmail.com>
AuthorDate: Tue Nov 4 14:56:53 2025 +0530
cli(reset): add force flag, namespace confirmation prompt, update e2e tests
---
e2e/advanced/reset_test.go | 6 +++---
pkg/cmd/reset.go | 18 ++++++++++++++++++
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/e2e/advanced/reset_test.go b/e2e/advanced/reset_test.go
index c2976c570..bc6564760 100644
--- a/e2e/advanced/reset_test.go
+++ b/e2e/advanced/reset_test.go
@@ -46,7 +46,7 @@ func TestKamelReset(t *testing.T) {
g.Eventually(Kit(t, ctx, ns, IntegrationKit(t, ctx, ns, name)())).Should(Not(BeNil()))
g.Eventually(Integration(t, ctx, ns, name)).Should(Not(BeNil()))
- g.Expect(Kamel(t, ctx, "reset", "-n", ns).Execute()).To(Succeed())
+ g.Expect(Kamel(t, ctx, "reset", "-n", ns, "-f").Execute()).To(Succeed())
g.Expect(Integration(t, ctx, ns, name)()).To(BeNil())
g.Expect(Kits(t, ctx, ns)()).To(HaveLen(0))
})
@@ -59,7 +59,7 @@ func TestKamelReset(t *testing.T) {
g.Eventually(Kit(t, ctx, ns, IntegrationKit(t, ctx, ns, name)())).Should(Not(BeNil()))
g.Eventually(Integration(t, ctx, ns, name)).Should(Not(BeNil()))
- g.Expect(Kamel(t, ctx, "reset", "-n", ns, "--skip-integrations").Execute()).To(Succeed())
+ g.Expect(Kamel(t, ctx, "reset", "-n", ns, "--skip-integrations", "-f").Execute()).To(Succeed())
g.Expect(Integration(t, ctx, ns, name)()).To(Not(BeNil()))
g.Expect(Kits(t, ctx, ns)()).To(HaveLen(0))
})
@@ -73,7 +73,7 @@ func TestKamelReset(t *testing.T) {
g.Eventually(Kit(t, ctx, ns, kitName)).Should(Not(BeNil()))
g.Eventually(Integration(t, ctx, ns, name)).Should(Not(BeNil()))
- g.Expect(Kamel(t, ctx, "reset", "-n", ns, "--skip-kits").Execute()).To(Succeed())
+ g.Expect(Kamel(t, ctx, "reset", "-n", ns, "--skip-kits", "-f").Execute()).To(Succeed())
g.Expect(Integration(t, ctx, ns, name)()).To(BeNil())
g.Expect(Kit(t, ctx, ns, kitName)()).To(Not(BeNil()))
})
diff --git a/pkg/cmd/reset.go b/pkg/cmd/reset.go
index 251e711eb..a1cdb9aac 100644
--- a/pkg/cmd/reset.go
+++ b/pkg/cmd/reset.go
@@ -19,6 +19,7 @@ package cmd
import (
"fmt"
+ "os"
v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
"github.com/apache/camel-k/v2/pkg/client"
@@ -43,6 +44,7 @@ func newCmdReset(rootCmdOptions *RootCmdOptions) (*cobra.Command, *resetCmdOptio
cmd.Flags().Bool("skip-kits", false, "Do not delete the integration kits")
cmd.Flags().Bool("skip-integrations", false, "Do not delete the integrations")
cmd.Flags().Bool("skip-bindings", false, "Do not delete the bindings/pipes")
+ cmd.Flags().BoolVarP(&options.Force, "force", "f", false, "Force reset without confirmation")
return &cmd, &options
}
@@ -53,9 +55,25 @@ type resetCmdOptions struct {
SkipKits bool `mapstructure:"skip-kits"`
SkipIntegrations bool `mapstructure:"skip-integrations"`
SkipBindings bool `mapstructure:"skip-bindings"`
+ Force bool `mapstructure:"force"`
}
func (o *resetCmdOptions) reset(cmd *cobra.Command, _ []string) {
+ if !o.Force {
+ fmt.Printf("Reset will delete Camel K resources in namespace '%s'.\n", o.Namespace)
+ fmt.Fprint(cmd.OutOrStdout(), "Type the namespace to confirm: ")
+
+ var input string
+ if _, err := fmt.Fscan(os.Stdin, &input); err != nil {
+ fmt.Fprint(cmd.ErrOrStderr(), err)
+ return
+ }
+ if input != o.Namespace {
+ fmt.Fprintln(cmd.OutOrStdout(), "confirmation failed. aborting.")
+ return
+ }
+ }
+
c, err := o.GetCmdClient()
if err != nil {
fmt.Fprint(cmd.ErrOrStderr(), err)