63 lines
1.0 KiB
Go
63 lines
1.0 KiB
Go
package dto
|
|
|
|
import "net"
|
|
|
|
type EventType uint8
|
|
|
|
const (
|
|
EventStart EventType = iota
|
|
EventStop
|
|
EventShutdown
|
|
EventError
|
|
EventUnknown
|
|
)
|
|
|
|
var eventTypeNames = map[EventType]string{
|
|
EventStart: "start",
|
|
EventStop: "stop",
|
|
EventShutdown: "shutdown",
|
|
EventError: "error",
|
|
EventUnknown: "unknown",
|
|
}
|
|
|
|
func (e EventType) String() string {
|
|
name, ok := eventTypeNames[e]
|
|
if ok {
|
|
return name
|
|
}
|
|
return eventTypeNames[EventUnknown]
|
|
}
|
|
|
|
func TypeFromAction(action string) EventType {
|
|
switch action {
|
|
case "start":
|
|
return EventStart
|
|
case "stop", "die":
|
|
return EventStop
|
|
default:
|
|
return EventUnknown
|
|
}
|
|
}
|
|
|
|
type Event struct {
|
|
Type EventType
|
|
Container Container
|
|
}
|
|
|
|
type EventStatus struct {
|
|
Type EventType
|
|
ID string
|
|
Error string
|
|
Domain string
|
|
}
|
|
|
|
type Container struct {
|
|
ID string `json:"id"`
|
|
Names []string `json:"names"`
|
|
IP net.IP `json:"ip"`
|
|
Port uint16 `json:"port"`
|
|
Server string `json:"-"`
|
|
RemoteHost string `json:"remote_host"`
|
|
Domain string `json:"domain"`
|
|
}
|