11package main
22
33import (
4+ "os"
5+ "time"
6+
47 goarg "github.com/alexflint/go-arg"
58 . "github.com/kubevirt/kubevirt-tekton-tasks/modules/execute-in-vm/pkg/constants"
69 "github.com/kubevirt/kubevirt-tekton-tasks/modules/execute-in-vm/pkg/execute"
710 "github.com/kubevirt/kubevirt-tekton-tasks/modules/execute-in-vm/pkg/utils"
811 log "github.com/kubevirt/kubevirt-tekton-tasks/modules/execute-in-vm/pkg/utils/log"
912 "github.com/kubevirt/kubevirt-tekton-tasks/modules/execute-in-vm/pkg/utils/parse"
10- "github.com/kubevirt/kubevirt-tekton-tasks/modules/shared/pkg/exit"
11- "github.com/kubevirt/kubevirt-tekton-tasks/modules/shared/pkg/zerrors"
1213 "go.uber.org/zap"
13- "k8s.io/apimachinery/pkg/util/wait"
14- "time"
1514)
1615
1716func main () {
18- defer exit .HandleExit ()
19-
2017 cliOptions := & parse.CLIOptions {}
2118 goarg .MustParse (cliOptions )
2219
@@ -25,87 +22,59 @@ func main() {
2522
2623 log .Logger ().Debug ("parsed arguments" , zap .Reflect ("cliOptions" , cliOptions ))
2724 if err := cliOptions .Init (); err != nil {
28- exit .ExitOrDieFromError (InvalidArguments , err )
25+ log .Logger ().Error (err .Error ())
26+ os .Exit (InvalidArguments )
2927 }
3028
3129 executor , executorErr := execute .NewExecutor (cliOptions , ConnectionSecretPath )
3230 if executorErr != nil {
33- exit .ExitOrDieFromError (ExecutorInitialization , executorErr )
34- }
35-
36- multiError := zerrors .NewMultiError ()
37- var exitError * exit.Exit
38-
39- registerError := func (name string , err error ) {
40- if err != nil {
41- if exitErr , ok := err .(exit.Exit ); ok {
42- exitError = & exitErr
43- } else if err == wait .ErrWaitTimeout {
44- exitError = & exit.Exit {
45- Code : CommandTimeout ,
46- Msg : "command timed out" ,
47- Soft : true ,
48- }
49- } else {
50- multiError .Add (name , err )
51- }
52- }
53-
31+ log .Logger ().Error (executorErr .Error ())
32+ os .Exit (ExecutorInitialization )
5433 }
5534
5635 if cliOptions .GetScript () != "" {
5736 runWithTimeout := utils .WithTimeout (cliOptions .GetScriptTimeout ())
5837
5938 runWithTimeout (func (timeout time.Duration , finished bool ) {
60- if multiError .IsEmpty () && ! finished {
61- err := executor .EnsureVMRunning (timeout )
62- registerError ("EnsureVMRunning" , err )
39+ if ! finished {
40+ if err := executor .EnsureVMRunning (timeout ); err != nil {
41+ log .Logger ().Error (err .Error ())
42+ os .Exit (ExecutorActionsFailed )
43+ }
6344 }
6445 })
6546
6647 runWithTimeout (func (timeout time.Duration , finished bool ) {
67- if multiError .IsEmpty () && ! finished {
68- err := executor .SetupConnection (timeout )
69- registerError ("SetupConnection" , err )
48+ if ! finished {
49+ if err := executor .SetupConnection (timeout ); err != nil {
50+ log .Logger ().Error (err .Error ())
51+ os .Exit (ExecutorActionsFailed )
52+ }
7053 }
7154 })
7255
7356 runWithTimeout (func (timeout time.Duration , finished bool ) {
74- if multiError .IsEmpty () {
75- if ! finished {
76- err := executor .RemoteExecute (timeout )
77- registerError ("RemoteExecute" , err )
78- } else {
79- registerError ("RemoteExecute" , wait .ErrWaitTimeout )
57+ if ! finished {
58+ if err := executor .RemoteExecute (timeout ); err != nil {
59+ log .Logger ().Error (err .Error ())
60+ os .Exit (ExecutorActionsFailed )
8061 }
81-
8262 }
8363 })
8464
8565 }
8666
8767 if cliOptions .ShouldStop () {
8868 if err := executor .EnsureVMStopped (); err != nil {
89- multiError .Add ("VM Stop" , err )
69+ log .Logger ().Error (err .Error ())
70+ os .Exit (ExecutorActionsFailed )
9071 }
9172 }
9273
9374 if cliOptions .ShouldDelete () {
9475 if err := executor .EnsureVMDeleted (); err != nil {
95- multiError .Add ("VM Delete" , err )
76+ log .Logger ().Error (err .Error ())
77+ os .Exit (ExecutorActionsFailed )
9678 }
9779 }
98-
99- if ! multiError .IsEmpty () {
100- if exitError != nil {
101- multiError .Add ("command exit" , * exitError )
102- }
103- log .Logger ().Debug ("finished" , zap .String ("errMsg" , multiError .Error ()))
104- exit .ExitOrDieFromError (ExecutorActionsFailed , multiError )
105- }
106-
107- if exitError != nil {
108- log .Logger ().Debug ("finished" , zap .Reflect ("err" , exitError ))
109- exit .ExitOrDieFromError (exitError .Code , exitError )
110- }
11180}
0 commit comments