pulumi/pkg/engine/events.go

96 lines
1.8 KiB
Go
Raw Normal View History

// Copyright 2017, Pulumi Corporation. All rights reserved.
package engine
import (
"fmt"
"github.com/pulumi/pulumi/pkg/diag"
)
// Event represents an event generated by the engine during an operation. The underlying
// type for the `Payload` field will differ depending on the value of the `Type` field
type Event struct {
Type EventType
Payload interface{}
}
// EventType is the kind of event being emitted.
type EventType string
const (
2017-10-23 00:52:00 +02:00
CancelEvent EventType = "cancel"
StdoutColorEvent EventType = "stdoutcolor"
2017-10-23 00:52:00 +02:00
DiagEvent EventType = "diag"
)
2017-10-23 00:52:00 +02:00
func cancelEvent() Event {
return Event{Type: CancelEvent}
}
// DiagEventPayload is the payload for an event with type `diag`
type DiagEventPayload struct {
Severity diag.Severity
UseColor bool
Message string
}
func stdOutEventWithColor(s fmt.Stringer) Event {
return Event{Type: StdoutColorEvent, Payload: s.String()}
}
func diagDebugEvent(useColor bool, msg string) Event {
return Event{
Type: DiagEvent,
Payload: DiagEventPayload{
Severity: diag.Debug,
UseColor: useColor,
Message: msg,
},
}
}
func diagInfoEvent(useColor bool, msg string) Event {
return Event{
Type: DiagEvent,
Payload: DiagEventPayload{
Severity: diag.Info,
UseColor: useColor,
Message: msg,
},
}
}
func diagInfoerrEvent(useColor bool, msg string) Event {
return Event{
Type: DiagEvent,
Payload: DiagEventPayload{
Severity: diag.Infoerr,
UseColor: useColor,
Message: msg,
},
}
}
func diagErrorEvent(useColor bool, msg string) Event {
return Event{
Type: DiagEvent,
Payload: DiagEventPayload{
Severity: diag.Error,
UseColor: useColor,
Message: msg,
},
}
}
func diagWarningEvent(useColor bool, msg string) Event {
return Event{
Type: DiagEvent,
Payload: DiagEventPayload{
Severity: diag.Warning,
UseColor: useColor,
Message: msg,
},
}
}