@@ -18,6 +18,7 @@ limitations under the License.
18
18
19
19
import (
20
20
"errors"
21
+ "fmt"
21
22
"os"
22
23
23
24
"github.com/codefresh-io/venona/venonactl/pkg/store"
@@ -33,6 +34,10 @@ type DeletionError struct {
33
34
name string
34
35
}
35
36
37
+ var (
38
+ revertTo string
39
+ )
40
+
36
41
// deleteCmd represents the status command
37
42
var deleteCmd = & cobra.Command {
38
43
Use : "delete [names]" ,
@@ -53,24 +58,14 @@ var deleteCmd = &cobra.Command{
53
58
}
54
59
for _ , name := range args {
55
60
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" )
65
62
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 ))
73
66
}
67
+ deleted , err := s .CodefreshAPI .Client .RuntimeEnvironments ().Delete (name )
68
+ errors = collectError (errors , err , name , "Delete Runtime-Environment from Codefresh" )
74
69
75
70
if deleted {
76
71
if contextName == "" {
@@ -118,4 +113,16 @@ var deleteCmd = &cobra.Command{
118
113
func init () {
119
114
rootCmd .AddCommand (deleteCmd )
120
115
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
+ })
121
128
}
0 commit comments