hooks: Rename Hooks() output to extensionStageHooks

To more clearly distinguish between the extensionStages input to New()
(a slice of strings) and the map output from Hooks().

Signed-off-by: W. Trevor King <wking@tremily.us>

Closes: #855
Approved by: rhatdan
This commit is contained in:
W. Trevor King 2018-05-30 14:02:20 -07:00 committed by Atomic Bot
parent 7c1434c2f7
commit 4dfe0d60f3
2 changed files with 25 additions and 25 deletions

View File

@ -88,28 +88,28 @@ func (m *Manager) namedHooks() (hooks []*namedHook) {
// Hooks injects OCI runtime hooks for a given container configuration.
//
// If the extensionStages slice was set when initializing the Manager,
// matching hooks requesting those stages will be returned in the
// extensionStages map. This takes precedence over their inclusion in
// If extensionStages was set when initializing the Manager,
// matching hooks requesting those stages will be returned in
// extensionStageHooks. This takes precedence over their inclusion in
// the OCI configuration. For example:
//
// manager, err := New(ctx, []string{DefaultDir}, []string{"poststop"}, lang)
// extensionStages, err := manager.Hooks(config, annotations, hasBindMounts)
// extensionStageHooks, err := manager.Hooks(config, annotations, hasBindMounts)
//
// will have any matching post-stop hooks in extensionStages and will
// not insert them into config.Hooks.Poststop.
func (m *Manager) Hooks(config *rspec.Spec, annotations map[string]string, hasBindMounts bool) (extensionStages map[string][]rspec.Hook, err error) {
// will have any matching post-stop hooks in extensionStageHooks and
// will not insert them into config.Hooks.Poststop.
func (m *Manager) Hooks(config *rspec.Spec, annotations map[string]string, hasBindMounts bool) (extensionStageHooks map[string][]rspec.Hook, err error) {
hooks := m.namedHooks()
collator := collate.New(m.language, collate.IgnoreCase, collate.IgnoreWidth)
collator.Sort(namedHooks(hooks))
localStages := map[string]bool{} // stages destined for extensionStages
localStages := map[string]bool{} // stages destined for extensionStageHooks
for _, stage := range m.extensionStages {
localStages[stage] = true
}
for _, namedHook := range hooks {
match, err := namedHook.hook.When.Match(config, annotations, hasBindMounts)
if err != nil {
return extensionStages, errors.Wrapf(err, "matching hook %q", namedHook.name)
return extensionStageHooks, errors.Wrapf(err, "matching hook %q", namedHook.name)
}
if match {
if config.Hooks == nil {
@ -117,10 +117,10 @@ func (m *Manager) Hooks(config *rspec.Spec, annotations map[string]string, hasBi
}
for _, stage := range namedHook.hook.Stages {
if _, ok := localStages[stage]; ok {
if extensionStages == nil {
extensionStages = map[string][]rspec.Hook{}
if extensionStageHooks == nil {
extensionStageHooks = map[string][]rspec.Hook{}
}
extensionStages[stage] = append(extensionStages[stage], namedHook.hook.Hook)
extensionStageHooks[stage] = append(extensionStageHooks[stage], namedHook.hook.Hook)
} else {
switch stage {
case "prestart":
@ -130,14 +130,14 @@ func (m *Manager) Hooks(config *rspec.Spec, annotations map[string]string, hasBi
case "poststop":
config.Hooks.Poststop = append(config.Hooks.Poststop, namedHook.hook.Hook)
default:
return extensionStages, fmt.Errorf("hook %q: unknown stage %q", namedHook.name, stage)
return extensionStageHooks, fmt.Errorf("hook %q: unknown stage %q", namedHook.name, stage)
}
}
}
}
}
return extensionStages, nil
return extensionStageHooks, nil
}
// remove remove a hook by name.

View File

@ -54,7 +54,7 @@ func TestGoodNew(t *testing.T) {
}
config := &rspec.Spec{}
extensionStages, err := manager.Hooks(config, map[string]string{}, false)
extensionStageHooks, err := manager.Hooks(config, map[string]string{}, false)
if err != nil {
t.Fatal(err)
}
@ -91,8 +91,8 @@ func TestGoodNew(t *testing.T) {
},
}, config.Hooks)
var nilExtensionStages map[string][]rspec.Hook
assert.Equal(t, nilExtensionStages, extensionStages)
var nilExtensionStageHooks map[string][]rspec.Hook
assert.Equal(t, nilExtensionStageHooks, extensionStageHooks)
}
func TestBadNew(t *testing.T) {
@ -142,14 +142,14 @@ func TestBrokenMatch(t *testing.T) {
Args: []string{"/bin/sh"},
},
}
extensionStages, err := manager.Hooks(config, map[string]string{}, false)
extensionStageHooks, err := manager.Hooks(config, map[string]string{}, false)
if err == nil {
t.Fatal("unexpected success")
}
assert.Regexp(t, "^matching hook \"a\\.json\": command: error parsing regexp: .*", err.Error())
var nilExtensionStages map[string][]rspec.Hook
assert.Equal(t, nilExtensionStages, extensionStages)
var nilExtensionStageHooks map[string][]rspec.Hook
assert.Equal(t, nilExtensionStageHooks, extensionStageHooks)
}
func TestInvalidStage(t *testing.T) {
@ -168,14 +168,14 @@ func TestInvalidStage(t *testing.T) {
},
},
}
extensionStages, err := manager.Hooks(&rspec.Spec{}, map[string]string{}, false)
extensionStageHooks, err := manager.Hooks(&rspec.Spec{}, map[string]string{}, false)
if err == nil {
t.Fatal("unexpected success")
}
assert.Regexp(t, "^hook \"a\\.json\": unknown stage \"does-not-exist\"$", err.Error())
var nilExtensionStages map[string][]rspec.Hook
assert.Equal(t, nilExtensionStages, extensionStages)
var nilExtensionStageHooks map[string][]rspec.Hook
assert.Equal(t, nilExtensionStageHooks, extensionStageHooks)
}
func TestExtensionStage(t *testing.T) {
@ -197,7 +197,7 @@ func TestExtensionStage(t *testing.T) {
}
config := &rspec.Spec{}
extensionStages, err := manager.Hooks(config, map[string]string{}, false)
extensionStageHooks, err := manager.Hooks(config, map[string]string{}, false)
if err != nil {
t.Fatal(err)
}
@ -226,7 +226,7 @@ func TestExtensionStage(t *testing.T) {
Path: "/a/b/c",
},
},
}, extensionStages)
}, extensionStageHooks)
}
func init() {