Documentation
¶
Index ¶
- type AsyncProjectCommandOutputHandler
- func (p *AsyncProjectCommandOutputHandler) CleanUp(pull string)
- func (p *AsyncProjectCommandOutputHandler) Clear(ctx models.ProjectCommandContext)
- func (p *AsyncProjectCommandOutputHandler) Deregister(pull string, ch chan string)
- func (p *AsyncProjectCommandOutputHandler) GetProjectOutputBuffer(pull string) []string
- func (p *AsyncProjectCommandOutputHandler) GetReceiverBufferForPull(pull string) map[chan string]bool
- func (p *AsyncProjectCommandOutputHandler) Handle()
- func (p *AsyncProjectCommandOutputHandler) Register(projectInfo string, receiver chan string)
- func (p *AsyncProjectCommandOutputHandler) Send(ctx models.ProjectCommandContext, msg string)
- func (p *AsyncProjectCommandOutputHandler) SetJobURLWithStatus(ctx models.ProjectCommandContext, cmdName models.CommandName, ...) error
- type DefaultWebsocketHandler
- func (wh *DefaultWebsocketHandler) SetCloseHandler(w WebsocketConnectionWrapper, receiver chan string)
- func (wh *DefaultWebsocketHandler) SetReadHandler(w WebsocketConnectionWrapper)
- func (wh *DefaultWebsocketHandler) Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (WebsocketConnectionWrapper, error)
- type NoopProjectOutputHandler
- func (p *NoopProjectOutputHandler) CleanUp(pull string)
- func (p *NoopProjectOutputHandler) Clear(ctx models.ProjectCommandContext)
- func (p *NoopProjectOutputHandler) Deregister(projectInfo string, receiver chan string)
- func (p *NoopProjectOutputHandler) Handle()
- func (p *NoopProjectOutputHandler) Register(projectInfo string, receiver chan string)
- func (p *NoopProjectOutputHandler) Send(ctx models.ProjectCommandContext, msg string)
- func (p *NoopProjectOutputHandler) SetJobURLWithStatus(ctx models.ProjectCommandContext, cmdName models.CommandName, ...) error
- type ProjectCommandOutputHandler
- type ProjectJobURLGenerator
- type ProjectStatusUpdater
- type ResourceCleaner
- type WebsocketConnectionWrapper
- type WebsocketHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AsyncProjectCommandOutputHandler ¶
type AsyncProjectCommandOutputHandler struct {
// contains filtered or unexported fields
}
AsyncProjectCommandOutputHandler is a handler to transport terraform client outputs to the front end.
func (*AsyncProjectCommandOutputHandler) CleanUp ¶
func (p *AsyncProjectCommandOutputHandler) CleanUp(pull string)
func (*AsyncProjectCommandOutputHandler) Clear ¶
func (p *AsyncProjectCommandOutputHandler) Clear(ctx models.ProjectCommandContext)
func (*AsyncProjectCommandOutputHandler) Deregister ¶
func (p *AsyncProjectCommandOutputHandler) Deregister(pull string, ch chan string)
Remove channel, so client no longer receives Terraform output
func (*AsyncProjectCommandOutputHandler) GetProjectOutputBuffer ¶
func (p *AsyncProjectCommandOutputHandler) GetProjectOutputBuffer(pull string) []string
func (*AsyncProjectCommandOutputHandler) GetReceiverBufferForPull ¶
func (p *AsyncProjectCommandOutputHandler) GetReceiverBufferForPull(pull string) map[chan string]bool
func (*AsyncProjectCommandOutputHandler) Handle ¶
func (p *AsyncProjectCommandOutputHandler) Handle()
func (*AsyncProjectCommandOutputHandler) Register ¶
func (p *AsyncProjectCommandOutputHandler) Register(projectInfo string, receiver chan string)
func (*AsyncProjectCommandOutputHandler) Send ¶
func (p *AsyncProjectCommandOutputHandler) Send(ctx models.ProjectCommandContext, msg string)
func (*AsyncProjectCommandOutputHandler) SetJobURLWithStatus ¶
func (p *AsyncProjectCommandOutputHandler) SetJobURLWithStatus(ctx models.ProjectCommandContext, cmdName models.CommandName, status models.CommitStatus) error
type DefaultWebsocketHandler ¶
type DefaultWebsocketHandler struct {
Logger logging.SimpleLogging
// contains filtered or unexported fields
}
func (*DefaultWebsocketHandler) SetCloseHandler ¶
func (wh *DefaultWebsocketHandler) SetCloseHandler(w WebsocketConnectionWrapper, receiver chan string)
func (*DefaultWebsocketHandler) SetReadHandler ¶
func (wh *DefaultWebsocketHandler) SetReadHandler(w WebsocketConnectionWrapper)
func (*DefaultWebsocketHandler) Upgrade ¶
func (wh *DefaultWebsocketHandler) Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (WebsocketConnectionWrapper, error)
type NoopProjectOutputHandler ¶
type NoopProjectOutputHandler struct{}
NoopProjectOutputHandler is a mock that doesn't do anything
func (*NoopProjectOutputHandler) CleanUp ¶
func (p *NoopProjectOutputHandler) CleanUp(pull string)
func (*NoopProjectOutputHandler) Clear ¶
func (p *NoopProjectOutputHandler) Clear(ctx models.ProjectCommandContext)
func (*NoopProjectOutputHandler) Deregister ¶
func (p *NoopProjectOutputHandler) Deregister(projectInfo string, receiver chan string)
func (*NoopProjectOutputHandler) Handle ¶
func (p *NoopProjectOutputHandler) Handle()
func (*NoopProjectOutputHandler) Register ¶
func (p *NoopProjectOutputHandler) Register(projectInfo string, receiver chan string)
func (*NoopProjectOutputHandler) Send ¶
func (p *NoopProjectOutputHandler) Send(ctx models.ProjectCommandContext, msg string)
func (*NoopProjectOutputHandler) SetJobURLWithStatus ¶
func (p *NoopProjectOutputHandler) SetJobURLWithStatus(ctx models.ProjectCommandContext, cmdName models.CommandName, status models.CommitStatus) error
type ProjectCommandOutputHandler ¶
type ProjectCommandOutputHandler interface {
// Clear clears the buffer from previous terraform output lines
Clear(ctx models.ProjectCommandContext)
// Send will enqueue the msg and wait for Handle() to receive the message.
Send(ctx models.ProjectCommandContext, msg string)
// Register registers a channel and blocks until it is caught up. Callers should call this asynchronously when attempting
// to read the channel in the same goroutine
Register(projectInfo string, receiver chan string)
// Deregister removes a channel from successive updates and closes it.
Deregister(projectInfo string, receiver chan string)
// Listens for msg from channel
Handle()
// SetJobURLWithStatus sets the commit status for the project represented by
// ctx and updates the status with and url to a job.
SetJobURLWithStatus(ctx models.ProjectCommandContext, cmdName models.CommandName, status models.CommitStatus) error
ResourceCleaner
}
func NewAsyncProjectCommandOutputHandler ¶
func NewAsyncProjectCommandOutputHandler( projectCmdOutput chan *models.ProjectCmdOutputLine, projectStatusUpdater ProjectStatusUpdater, projectJobURLGenerator ProjectJobURLGenerator, logger logging.SimpleLogging, ) ProjectCommandOutputHandler
type ProjectJobURLGenerator ¶
type ProjectJobURLGenerator interface {
GenerateProjectJobURL(p models.ProjectCommandContext) (string, error)
}
ProjectJobURLGenerator generates urls to view project's progress.
type ProjectStatusUpdater ¶
type ProjectStatusUpdater interface {
// UpdateProject sets the commit status for the project represented by
// ctx.
UpdateProject(ctx models.ProjectCommandContext, cmdName models.CommandName, status models.CommitStatus, url string) error
}
type ResourceCleaner ¶
type ResourceCleaner interface {
CleanUp(pull string)
}
type WebsocketHandler ¶
type WebsocketHandler interface {
Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (WebsocketConnectionWrapper, error)
SetReadHandler(w WebsocketConnectionWrapper)
SetCloseHandler(w WebsocketConnectionWrapper, receiver chan string)
}
func NewWebsocketHandler ¶
func NewWebsocketHandler(logger logging.SimpleLogging) WebsocketHandler
Click to show internal directories.
Click to hide internal directories.