Documentation ¶
Index ¶
- Constants
- func MapExecutionOptionsToStartRequest(options ExecuteOptions) testkube.ExecutorStartRequest
- type ExecuteOptions
- type Executor
- type HTTPClient
- type JobExecutor
- func (c JobExecutor) Abort(id string) error
- func (c JobExecutor) Execute(execution testkube.Execution, options ExecuteOptions) (result testkube.ExecutionResult, err error)
- func (c JobExecutor) Get(id string) (execution testkube.ExecutionResult, err error)
- func (c JobExecutor) Logs(id string) (out chan output.Output, err error)
- func (c JobExecutor) Watch(id string) (events chan ResultEvent)
- type ResultEvent
Constants ¶
View Source
const (
WatchInterval = time.Second
)
Variables ¶
This section is empty.
Functions ¶
func MapExecutionOptionsToStartRequest ¶
func MapExecutionOptionsToStartRequest(options ExecuteOptions) testkube.ExecutorStartRequest
Types ¶
type ExecuteOptions ¶
type ExecuteOptions struct { ID string ScriptName string ScriptSpec scriptv1.ScriptSpec ExecutorName string ExecutorSpec executorv1.ExecutorSpec Request testkube.ExecutionRequest }
func NewExecuteOptions ¶
func NewExecuteOptions() ExecuteOptions
type Executor ¶ added in v0.6.4
type Executor interface { // Watch returns ExecuteEvents stream Watch(id string) (events chan ResultEvent) // Get synnchronous request to executor to get testkubeExecution Get(id string) (execution testkube.ExecutionResult, err error) // Execute starts new external script execution, reads data and returns ID // execution is started asynchronously client can check later for results Execute(execution testkube.Execution, options ExecuteOptions) (result testkube.ExecutionResult, err error) // Abort aborts pending execution, do nothing when there is no pending execution Abort(id string) (err error) Logs(id string) (logs chan output.Output, err error) }
Executor abstraction to implement new executors
type HTTPClient ¶
type HTTPClient interface { Post(url, contentType string, body io.Reader) (resp *http.Response, err error) Get(url string) (resp *http.Response, err error) }
HTTPClient interface for getting REST based requests
type JobExecutor ¶ added in v0.6.4
type JobExecutor struct { Client *jobs.JobClient Repository result.Repository }
func NewJobExecutor ¶ added in v0.6.4
func NewJobExecutor(repo result.Repository) (client JobExecutor, err error)
func (JobExecutor) Abort ¶ added in v0.6.4
func (c JobExecutor) Abort(id string) error
func (JobExecutor) Execute ¶ added in v0.6.4
func (c JobExecutor) Execute(execution testkube.Execution, options ExecuteOptions) (result testkube.ExecutionResult, err error)
Execute starts new external script execution, reads data and returns ID Execution is started asynchronously client can check later for results
func (JobExecutor) Get ¶ added in v0.6.4
func (c JobExecutor) Get(id string) (execution testkube.ExecutionResult, err error)
func (JobExecutor) Logs ¶ added in v0.6.4
func (c JobExecutor) Logs(id string) (out chan output.Output, err error)
Logs returns job logs TODO too many goroutines - need to be simplified
func (JobExecutor) Watch ¶ added in v0.6.4
func (c JobExecutor) Watch(id string) (events chan ResultEvent)
Watch will get valid execution after async Execute, execution will be returned when success or error occurs Worker should set valid state for success or error after script completion TODO add timeout TODO rethink how to get real time logs
type ResultEvent ¶
type ResultEvent struct { Result testkube.ExecutionResult Error error }
ResultEvent event passed when watching execution changes
Click to show internal directories.
Click to hide internal directories.