@@ -18,6 +18,7 @@ limitations under the License.
1818
1919import (
2020 "errors"
21+ "fmt"
2122 "os"
2223
2324 "github.com/codefresh-io/venona/venonactl/pkg/store"
@@ -33,6 +34,10 @@ type DeletionError struct {
3334 name string
3435}
3536
37+ var (
38+ revertTo string
39+ )
40+
3641// deleteCmd represents the status command
3742var deleteCmd = & cobra.Command {
3843 Use : "delete [names]" ,
@@ -53,24 +58,14 @@ var deleteCmd = &cobra.Command{
5358 }
5459 for _ , name := range args {
5560 re , err := s .CodefreshAPI .Client .RuntimeEnvironments ().Get (name )
56- if err != nil {
57- errors = append (errors , DeletionError {
58- err : err ,
59- name : name ,
60- operation : "Get Runtime-Environment from Codefresh" ,
61- })
62- continue
63- }
64- deleted , err := s .CodefreshAPI .Client .RuntimeEnvironments ().Delete (name )
61+ errors = collectError (errors , err , name , "Get Runtime-Environment from Codefresh" )
6562
66- if err != nil {
67- errors = append (errors , DeletionError {
68- err : err ,
69- name : name ,
70- operation : "Delete Runtime-Environment from Codefresh" ,
71- })
72- continue
63+ if revertTo != "" {
64+ _ , err := s .CodefreshAPI .Client .RuntimeEnvironments ().Default (revertTo )
65+ errors = collectError (errors , err , name , fmt .Sprintf ("Revert Runtime-Environment to: %s" , revertTo ))
7366 }
67+ deleted , err := s .CodefreshAPI .Client .RuntimeEnvironments ().Delete (name )
68+ errors = collectError (errors , err , name , "Delete Runtime-Environment from Codefresh" )
7469
7570 if deleted {
7671 if contextName == "" {
@@ -118,4 +113,16 @@ var deleteCmd = &cobra.Command{
118113func init () {
119114 rootCmd .AddCommand (deleteCmd )
120115 deleteCmd .Flags ().String ("kube-context-name" , "" , "Set name to overwrite the context name saved in Codefresh" )
116+ deleteCmd .Flags ().StringVar (& revertTo , "revert-to" , "" , "Set to the name of the runtime-environment to set as default" )
117+ }
118+
119+ func collectError (errors []DeletionError , err error , reName string , op string ) []DeletionError {
120+ if err == nil {
121+ return errors
122+ }
123+ return append (errors , DeletionError {
124+ err : err ,
125+ name : reName ,
126+ operation : op ,
127+ })
121128}
0 commit comments