File: exit_code_propagation.go

package info (click to toggle)
podman 5.7.0%2Bds2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 23,824 kB
  • sloc: sh: 4,700; python: 2,798; perl: 1,885; ansic: 1,484; makefile: 977; ruby: 42; csh: 8
file content (54 lines) | stat: -rw-r--r-- 1,542 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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"
	}
}