You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.8 KiB
Go
83 lines
1.8 KiB
Go
3 years ago
|
package session
|
||
|
|
||
|
import wt "github.com/containrrr/watchtower/pkg/types"
|
||
|
|
||
|
// State indicates what the current state is of the container
|
||
|
type State int
|
||
|
|
||
|
// State enum values
|
||
|
const (
|
||
|
// UnknownState is only used to represent an uninitialized State value
|
||
|
UnknownState State = iota
|
||
|
SkippedState
|
||
|
ScannedState
|
||
|
UpdatedState
|
||
|
FailedState
|
||
|
FreshState
|
||
|
StaleState
|
||
|
)
|
||
|
|
||
|
// ContainerStatus contains the container state during a session
|
||
|
type ContainerStatus struct {
|
||
|
containerID wt.ContainerID
|
||
|
oldImage wt.ImageID
|
||
|
newImage wt.ImageID
|
||
|
containerName string
|
||
|
imageName string
|
||
|
error
|
||
|
state State
|
||
|
}
|
||
|
|
||
|
// ID returns the container ID
|
||
|
func (u *ContainerStatus) ID() wt.ContainerID {
|
||
|
return u.containerID
|
||
|
}
|
||
|
|
||
|
// Name returns the container name
|
||
|
func (u *ContainerStatus) Name() string {
|
||
|
return u.containerName
|
||
|
}
|
||
|
|
||
|
// CurrentImageID returns the image ID that the container used when the session started
|
||
|
func (u *ContainerStatus) CurrentImageID() wt.ImageID {
|
||
|
return u.oldImage
|
||
|
}
|
||
|
|
||
|
// LatestImageID returns the newest image ID found during the session
|
||
|
func (u *ContainerStatus) LatestImageID() wt.ImageID {
|
||
|
return u.newImage
|
||
|
}
|
||
|
|
||
|
// ImageName returns the name:tag that the container uses
|
||
|
func (u *ContainerStatus) ImageName() string {
|
||
|
return u.imageName
|
||
|
}
|
||
|
|
||
|
// Error returns the error (if any) that was encountered for the container during a session
|
||
|
func (u *ContainerStatus) Error() string {
|
||
|
if u.error == nil {
|
||
|
return ""
|
||
|
}
|
||
|
return u.error.Error()
|
||
|
}
|
||
|
|
||
|
// State returns the current State that the container is in
|
||
|
func (u *ContainerStatus) State() string {
|
||
|
switch u.state {
|
||
|
case SkippedState:
|
||
|
return "Skipped"
|
||
|
case ScannedState:
|
||
|
return "Scanned"
|
||
|
case UpdatedState:
|
||
|
return "Updated"
|
||
|
case FailedState:
|
||
|
return "Failed"
|
||
|
case FreshState:
|
||
|
return "Fresh"
|
||
|
case StaleState:
|
||
|
return "Stale"
|
||
|
default:
|
||
|
return "Unknown"
|
||
|
}
|
||
|
}
|