From 823182cf096de03c5920373883409a0e22c7b5cb Mon Sep 17 00:00:00 2001 From: Matthew R Kasun Date: Wed, 13 Sep 2023 00:40:17 -0400 Subject: [PATCH] add force flag to host/node delete (#2548) * add force flag to host/node delete * review comments --------- Co-authored-by: Abhishek K <32607604+abhishek9686@users.noreply.github.com> --- cli/cmd/host/delete.go | 5 ++++- cli/cmd/node/delete.go | 5 ++++- cli/functions/host.go | 4 ++-- cli/functions/node.go | 4 ++-- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/cli/cmd/host/delete.go b/cli/cmd/host/delete.go index 4da8acb0..b4639de3 100644 --- a/cli/cmd/host/delete.go +++ b/cli/cmd/host/delete.go @@ -5,16 +5,19 @@ import ( "github.com/spf13/cobra" ) +var force bool + var hostDeleteCmd = &cobra.Command{ Use: "delete HostID", Args: cobra.ExactArgs(1), Short: "Delete a host", Long: `Delete a host`, Run: func(cmd *cobra.Command, args []string) { - functions.PrettyPrint(functions.DeleteHost(args[0])) + functions.PrettyPrint(functions.DeleteHost(args[0], force)) }, } func init() { rootCmd.AddCommand(hostDeleteCmd) + hostDeleteCmd.PersistentFlags().BoolVarP(&force, "force", "f", false, "delete even if part of network(s)") } diff --git a/cli/cmd/node/delete.go b/cli/cmd/node/delete.go index 501dd702..4d05a67d 100644 --- a/cli/cmd/node/delete.go +++ b/cli/cmd/node/delete.go @@ -5,16 +5,19 @@ import ( "github.com/spf13/cobra" ) +var force bool + var nodeDeleteCmd = &cobra.Command{ Use: "delete [NETWORK NAME] [NODE ID]", Args: cobra.ExactArgs(2), Short: "Delete a Node", Long: `Delete a Node`, Run: func(cmd *cobra.Command, args []string) { - functions.PrettyPrint(functions.DeleteNode(args[0], args[1])) + functions.PrettyPrint(functions.DeleteNode(args[0], args[1], force)) }, } func init() { rootCmd.AddCommand(nodeDeleteCmd) + nodeDeleteCmd.PersistentFlags().BoolVarP(&force, "force", "f", false, "force delete a node") } diff --git a/cli/functions/host.go b/cli/functions/host.go index bfcf0f03..04346829 100644 --- a/cli/functions/host.go +++ b/cli/functions/host.go @@ -17,8 +17,8 @@ func GetHosts() *[]models.ApiHost { } // DeleteHost - delete a host -func DeleteHost(hostID string) *models.ApiHost { - return request[models.ApiHost](http.MethodDelete, "/api/hosts/"+hostID, nil) +func DeleteHost(hostID string, force bool) *models.ApiHost { + return request[models.ApiHost](http.MethodDelete, fmt.Sprintf("/api/hosts/%s?force=%t", hostID, force), nil) } // UpdateHost - update a host diff --git a/cli/functions/node.go b/cli/functions/node.go index 8c80a9ee..50eed357 100644 --- a/cli/functions/node.go +++ b/cli/functions/node.go @@ -27,8 +27,8 @@ func UpdateNode(networkName, nodeID string, node *models.ApiNode) *models.ApiNod } // DeleteNode - delete a node -func DeleteNode(networkName, nodeID string) *models.SuccessResponse { - return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/nodes/%s/%s", networkName, nodeID), nil) +func DeleteNode(networkName, nodeID string, force bool) *models.SuccessResponse { + return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/nodes/%s/%s?force=%t", networkName, nodeID, force), nil) } // CreateEgress - turn a node into an egress