/
provision_behavior.go
39 lines (32 loc) · 1.35 KB
/
provision_behavior.go
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
package helm
import (
"fmt"
)
type errUnknownProvisionBehavior struct {
behavior string
}
func (e errUnknownProvisionBehavior) Error() string {
return fmt.Sprintf("unknown provision behavior %s", e.behavior)
}
const (
// ProvisionBehaviorNoop indicates that steward should 'helm install' a new instance of the chart on startup, and that provision and deprovisoin should do nothing
ProvisionBehaviorNoop ProvisionBehavior = "noop"
// ProvisionBehaviorActive indicates that steward should 'helm install' a new instance of the chart on every provision operation (and helm uninstall on each deprovision operation)
ProvisionBehaviorActive ProvisionBehavior = "active"
)
// ProvisionBehavior is the indication for what steward should do in helm mode when a provision comes in. It implements fmt.Stringer
type ProvisionBehavior string
// provisionBehaviorFromString returns the ProvisionBehavior that corresponds to s. If s is an invalid provision behavior, returns an empty string and a non-nil error
func provisionBehaviorFromString(s string) (ProvisionBehavior, error) {
switch s {
case ProvisionBehaviorActive.String():
return ProvisionBehaviorActive, nil
case ProvisionBehaviorNoop.String():
return ProvisionBehaviorNoop, nil
default:
return "", errUnknownProvisionBehavior{behavior: s}
}
}
func (p ProvisionBehavior) String() string {
return string(p)
}