github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/testworkflows/watch.go (about) 1 package testworkflows 2 3 import ( 4 "os" 5 6 "github.com/spf13/cobra" 7 8 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common" 9 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common/render" 10 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common/validator" 11 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/testworkflows/renderer" 12 "github.com/kubeshop/testkube/pkg/ui" 13 ) 14 15 func NewWatchTestWorkflowExecutionCmd() *cobra.Command { 16 cmd := &cobra.Command{ 17 Use: "testworkflowexecution <executionName>", 18 Aliases: []string{"testworkflowexecutions", "twe", "tw"}, 19 Args: validator.ExecutionName, 20 Short: "Watch output from test workflow execution", 21 Long: `Gets test workflow execution details, until it's in success/error state, blocks until gets complete state`, 22 23 Run: func(cmd *cobra.Command, args []string) { 24 client, _, err := common.GetClient(cmd) 25 ui.ExitOnError("getting client", err) 26 27 executionID := args[0] 28 execution, err := client.GetTestWorkflowExecution(executionID) 29 ui.ExitOnError("get execution failed", err) 30 err = render.Obj(cmd, execution, os.Stdout, renderer.TestWorkflowExecutionRenderer) 31 ui.ExitOnError("render test workflow execution", err) 32 33 ui.NL() 34 exitCode := uiWatch(execution, client) 35 ui.NL() 36 37 uiShellGetExecution(execution.Id) 38 os.Exit(exitCode) 39 }, 40 } 41 42 return cmd 43 }