mirror of https://github.com/containers/podman.git
55 lines
1.5 KiB
Go
55 lines
1.5 KiB
Go
package define
|
|
|
|
import "fmt"
|
|
|
|
// KubeExitCodePropagation defines an exit policy of kube workloads.
|
|
type KubeExitCodePropagation int
|
|
|
|
const (
|
|
// Invalid exit policy for a proper type system.
|
|
KubeExitCodePropagationInvalid KubeExitCodePropagation = iota
|
|
// Exit 0 regardless of any failed containers.
|
|
KubeExitCodePropagationNone
|
|
// Exit non-zero if all containers failed.
|
|
KubeExitCodePropagationAll
|
|
// Exit non-zero if any container failed.
|
|
KubeExitCodePropagationAny
|
|
|
|
// String representations.
|
|
strKubeECPInvalid = "invalid"
|
|
strKubeECPNone = "none"
|
|
strKubeECPAll = "all"
|
|
strKubeECPAny = "any"
|
|
)
|
|
|
|
// Parse the specified kube exit-code propagation. Return an error if an
|
|
// unsupported value is specified.
|
|
func ParseKubeExitCodePropagation(value string) (KubeExitCodePropagation, error) {
|
|
switch value {
|
|
case strKubeECPNone, "":
|
|
return KubeExitCodePropagationNone, nil
|
|
case strKubeECPAll:
|
|
return KubeExitCodePropagationAll, nil
|
|
case strKubeECPAny:
|
|
return KubeExitCodePropagationAny, nil
|
|
default:
|
|
return KubeExitCodePropagationInvalid, fmt.Errorf("unsupported exit-code propagation %q", value)
|
|
}
|
|
}
|
|
|
|
// Return the string representation of the KubeExitCodePropagation.
|
|
func (k KubeExitCodePropagation) String() string {
|
|
switch k {
|
|
case KubeExitCodePropagationNone:
|
|
return strKubeECPNone
|
|
case KubeExitCodePropagationAll:
|
|
return strKubeECPAll
|
|
case KubeExitCodePropagationAny:
|
|
return strKubeECPAny
|
|
case KubeExitCodePropagationInvalid:
|
|
return strKubeECPInvalid
|
|
default:
|
|
return "unknown value"
|
|
}
|
|
}
|