diff --git a/Makefile b/Makefile index e8201a0e..e9b6109e 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ VARLIST := OS # Project Information VARLIST += WAREWULF VERSION RELEASE WAREWULF ?= warewulf -VERSION ?= 4.4.0rc2 +VERSION ?= 4.4.0rc3 GIT_TAG := $(shell test -e .git && git log -1 --format="%h") ifdef GIT_TAG diff --git a/internal/app/wwctl/container/delete/main.go b/internal/app/wwctl/container/delete/main.go index 0f9c57af..250b5ac2 100644 --- a/internal/app/wwctl/container/delete/main.go +++ b/internal/app/wwctl/container/delete/main.go @@ -1,15 +1,24 @@ package delete import ( + "fmt" + "github.com/hpcng/warewulf/internal/pkg/api/container" "github.com/hpcng/warewulf/internal/pkg/api/routes/wwapiv1" + "github.com/hpcng/warewulf/internal/pkg/api/util" "github.com/spf13/cobra" ) func CobraRunE(cmd *cobra.Command, args []string) (err error) { - cdp := &wwapiv1.ContainerDeleteParameter{ ContainerNames: args, } + if !SetYes { + yes := util.ConfirmationPrompt(fmt.Sprintf("Are you sure you want to container %s", args)) + if !yes { + return + } + + } return container.ContainerDelete(cdp) } diff --git a/internal/app/wwctl/container/delete/root.go b/internal/app/wwctl/container/delete/root.go index 64e909ba..787353b0 100644 --- a/internal/app/wwctl/container/delete/root.go +++ b/internal/app/wwctl/container/delete/root.go @@ -8,10 +8,10 @@ import ( var ( baseCmd = &cobra.Command{ DisableFlagsInUseLine: true, - Use: "delete [OPTIONS] CONTAINER [...]", - Short: "Delete an imported container", - Long: "This command will delete CONTAINERs that have been imported into Warewulf.", - RunE: CobraRunE, + Use: "delete [OPTIONS] CONTAINER [...]", + Short: "Delete an imported container", + Long: "This command will delete CONTAINERs that have been imported into Warewulf.", + RunE: CobraRunE, ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { if len(args) != 0 { return nil, cobra.ShellCompDirectiveNoFileComp @@ -20,10 +20,11 @@ var ( return list, cobra.ShellCompDirectiveNoFileComp }, } + SetYes bool ) func init() { - + baseCmd.PersistentFlags().BoolVarP(&SetYes, "yes", "y", false, "Set 'yes' to all questions asked") } // GetRootCommand returns the root cobra.Command for the application. diff --git a/internal/app/wwctl/node/delete/main.go b/internal/app/wwctl/node/delete/main.go index b5a58308..0cf23218 100644 --- a/internal/app/wwctl/node/delete/main.go +++ b/internal/app/wwctl/node/delete/main.go @@ -25,6 +25,9 @@ func CobraRunE(cmd *cobra.Command, args []string) (err error) { if err != nil { return } + if len(nodeList) == 0 { + return + } yes := util.ConfirmationPrompt(fmt.Sprintf("Are you sure you want to delete %d nodes(s)", len(nodeList))) if !yes { return diff --git a/internal/app/wwctl/profile/add/root.go b/internal/app/wwctl/profile/add/root.go index 14694477..e3ad6d24 100644 --- a/internal/app/wwctl/profile/add/root.go +++ b/internal/app/wwctl/profile/add/root.go @@ -58,6 +58,7 @@ func GetCommand() *cobra.Command { }); err != nil { log.Println(err) } + baseCmd.PersistentFlags().BoolVarP(&SetYes, "yes", "y", false, "Set 'yes' to all questions asked") return baseCmd }