[hooks] export the Event and DeletePolicy mappings

Signed-off-by: Mike Lundy <mike@fluffypenguin.org>
pull/5040/head
Mike Lundy 7 years ago
parent af0bb6d26b
commit a840793ecc
No known key found for this signature in database
GPG Key ID: 9CC064ECB96D9325

@ -51,6 +51,30 @@ const (
BeforeHookCreation = "before-hook-creation"
)
// Events represents a mapping between the key in the annotation for hooks and
// the protobuf-defined IDs.
var Events = map[string]release.Hook_Event{
PreInstall: release.Hook_PRE_INSTALL,
PostInstall: release.Hook_POST_INSTALL,
PreDelete: release.Hook_PRE_DELETE,
PostDelete: release.Hook_POST_DELETE,
PreUpgrade: release.Hook_PRE_UPGRADE,
PostUpgrade: release.Hook_POST_UPGRADE,
PreRollback: release.Hook_PRE_ROLLBACK,
PostRollback: release.Hook_POST_ROLLBACK,
ReleaseTestSuccess: release.Hook_RELEASE_TEST_SUCCESS,
ReleaseTestFailure: release.Hook_RELEASE_TEST_FAILURE,
CRDInstall: release.Hook_CRD_INSTALL,
}
// DeletePolices represents a mapping between the key in the annotation for
// label deleting policy and the protobuf-defined IDs
var DeletePolices = map[string]release.Hook_DeletePolicy{
HookSucceeded: release.Hook_SUCCEEDED,
HookFailed: release.Hook_FAILED,
BeforeHookCreation: release.Hook_BEFORE_HOOK_CREATION,
}
// FilterTestHooks filters the list of hooks are returns only testing hooks.
func FilterTestHooks(hooks []*release.Hook) []*release.Hook {
testHooks := []*release.Hook{}

@ -32,27 +32,6 @@ import (
util "k8s.io/helm/pkg/releaseutil"
)
var events = map[string]release.Hook_Event{
hooks.PreInstall: release.Hook_PRE_INSTALL,
hooks.PostInstall: release.Hook_POST_INSTALL,
hooks.PreDelete: release.Hook_PRE_DELETE,
hooks.PostDelete: release.Hook_POST_DELETE,
hooks.PreUpgrade: release.Hook_PRE_UPGRADE,
hooks.PostUpgrade: release.Hook_POST_UPGRADE,
hooks.PreRollback: release.Hook_PRE_ROLLBACK,
hooks.PostRollback: release.Hook_POST_ROLLBACK,
hooks.ReleaseTestSuccess: release.Hook_RELEASE_TEST_SUCCESS,
hooks.ReleaseTestFailure: release.Hook_RELEASE_TEST_FAILURE,
hooks.CRDInstall: release.Hook_CRD_INSTALL,
}
// deletePolices represents a mapping between the key in the annotation for label deleting policy and its real meaning
var deletePolices = map[string]release.Hook_DeletePolicy{
hooks.HookSucceeded: release.Hook_SUCCEEDED,
hooks.HookFailed: release.Hook_FAILED,
hooks.BeforeHookCreation: release.Hook_BEFORE_HOOK_CREATION,
}
// Manifest represents a manifest file, which has a name and some content.
type Manifest = manifest.Manifest
@ -169,7 +148,7 @@ func (file *manifestFile) sort(result *result) error {
isUnknownHook := false
for _, hookType := range strings.Split(hookTypes, ",") {
hookType = strings.ToLower(strings.TrimSpace(hookType))
e, ok := events[hookType]
e, ok := hooks.Events[hookType]
if !ok {
isUnknownHook = true
break
@ -185,7 +164,7 @@ func (file *manifestFile) sort(result *result) error {
result.hooks = append(result.hooks, h)
operateAnnotationValues(entry, hooks.HookDeleteAnno, func(value string) {
policy, exist := deletePolices[value]
policy, exist := hooks.DeletePolices[value]
if exist {
h.DeletePolicies = append(h.DeletePolicies, policy)
} else {

@ -133,7 +133,7 @@ func (s *ReleaseServer) prepareRelease(req *services.InstallReleaseRequest) (*re
func hasCRDHook(hs []*release.Hook) bool {
for _, h := range hs {
for _, e := range h.Events {
if e == events[hooks.CRDInstall] {
if e == hooks.Events[hooks.CRDInstall] {
return true
}
}

@ -371,7 +371,7 @@ func (s *ReleaseServer) recordRelease(r *release.Release, reuse bool) {
func (s *ReleaseServer) execHook(hs []*release.Hook, name, namespace, hook string, timeout int64) error {
kubeCli := s.env.KubeClient
code, ok := events[hook]
code, ok := hooks.Events[hook]
if !ok {
return fmt.Errorf("unknown hook %s", hook)
}
@ -466,7 +466,7 @@ func (s *ReleaseServer) deleteHookByPolicy(h *release.Hook, policy string, name,
// hookHasDeletePolicy determines whether the defined hook deletion policy matches the hook deletion polices
// supported by helm. If so, mark the hook as one should be deleted.
func hookHasDeletePolicy(h *release.Hook, policy string) bool {
if dp, ok := deletePolices[policy]; ok {
if dp, ok := hooks.DeletePolices[policy]; ok {
for _, v := range h.DeletePolicies {
if dp == v {
return true

Loading…
Cancel
Save