Documentation
¶
Index ¶
- Constants
- 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) ExecuteSync(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 ¶
const (
WatchInterval = time.Second
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ExecuteOptions ¶
type ExecuteOptions struct {
ID string
TestName string
Namespace string
TestSpec testsv2.TestSpec
ExecutorName string
ExecutorSpec executorv1.ExecutorSpec
Request testkube.ExecutionRequest
Sync bool
HasSecrets bool
Labels map[string]string
}
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 test 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)
// Execute starts new external test execution, reads data and returns ID
// execution is started synchronously client is blocked
ExecuteSync(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
Log *zap.SugaredLogger
}
JobExecutor is container for managing job executor dependencies
func NewJobExecutor ¶ added in v0.6.4
func NewJobExecutor(repo result.Repository, namespace, initImage, jobTemplate string) (client JobExecutor, err error)
NewJobExecutor creates new job executor
func (JobExecutor) Abort ¶ added in v0.6.4
func (c JobExecutor) Abort(id string) error
Abort aborts job by execution ID
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 test execution, reads data and returns ID Execution is started asynchronously client can check later for results
func (JobExecutor) ExecuteSync ¶ added in v0.7.6
func (c JobExecutor) ExecuteSync(execution testkube.Execution, options ExecuteOptions) (result testkube.ExecutionResult, err error)
Execute starts new external test execution, reads data and returns ID Execution is started synchronously client will be blocked
func (JobExecutor) Get ¶ added in v0.6.4
func (c JobExecutor) Get(id string) (execution testkube.ExecutionResult, err error)
Get returns execution result by execution id
func (JobExecutor) Logs ¶ added in v0.6.4
func (c JobExecutor) Logs(id string) (out chan output.Output, err error)
Logs returns job logs stream channel using kubernetes api
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 test completion TODO add timeout
type ResultEvent ¶
type ResultEvent struct {
Result testkube.ExecutionResult
Error error
}
ResultEvent event passed when watching execution changes