Skip to content
This repository was archived by the owner on Jan 21, 2020. It is now read-only.

Commit 158549a

Browse files
authored
Group plugin: remove unintended side-effect of pretend commit (#317)
Signed-off-by: Bill Farner <[email protected]>
1 parent 6ff1e3a commit 158549a

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

pkg/plugin/group/group.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,8 @@ func (p *plugin) CommitGroup(config group.Spec, pretend bool) (string, error) {
103103
panic("Invalid empty allocation method")
104104
}
105105

106-
p.groups.put(config.ID, &groupContext{supervisor: supervisor, scaled: scaled, settings: settings})
107-
108106
if !pretend {
107+
p.groups.put(config.ID, &groupContext{supervisor: supervisor, scaled: scaled, settings: settings})
109108
go supervisor.Run()
110109
}
111110

pkg/plugin/group/integration_test.go

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,6 @@ func TestInstanceAndFlavorChange(t *testing.T) {
424424

425425
desc, err := grp.CommitGroup(updated, true)
426426
require.NoError(t, err)
427-
428427
require.Equal(t, "Performing a rolling update on 3 instances", desc)
429428

430429
_, err = grp.CommitGroup(updated, false)
@@ -461,7 +460,6 @@ func TestFlavorChange(t *testing.T) {
461460

462461
desc, err := grp.CommitGroup(updated, true)
463462
require.NoError(t, err)
464-
465463
require.Equal(t, "Performing a rolling update on 3 instances", desc)
466464

467465
require.NoError(t, grp.FreeGroup(id))
@@ -562,3 +560,30 @@ func TestUpdateFailsWhenInstanceIsUnhealthy(t *testing.T) {
562560
require.Equal(t, 1, badUpdateInstanaces)
563561
require.NoError(t, grp.FreeGroup(id))
564562
}
563+
564+
func TestNoSideEffectsFromPretendCommit(t *testing.T) {
565+
// Tests that internal state is not modified by a GroupCommit with Pretend=true.
566+
567+
plugin := newTestInstancePlugin()
568+
grp := NewGroupPlugin(pluginLookup(pluginName, plugin), flavorPluginLookup, 1*time.Millisecond)
569+
570+
desc, err := grp.CommitGroup(minions, true)
571+
require.NoError(t, err)
572+
require.Equal(t, "Managing 3 instances", desc)
573+
574+
desc, err = grp.CommitGroup(minions, true)
575+
require.NoError(t, err)
576+
require.Equal(t, "Managing 3 instances", desc)
577+
578+
err = grp.FreeGroup(id)
579+
require.Error(t, err)
580+
require.Equal(t, "Group 'testGroup' is not being watched", err.Error())
581+
582+
err = grp.DestroyGroup(id)
583+
require.Error(t, err)
584+
require.Equal(t, "Group 'testGroup' is not being watched", err.Error())
585+
586+
desc, err = grp.CommitGroup(minions, true)
587+
require.NoError(t, err)
588+
require.Equal(t, "Managing 3 instances", desc)
589+
}

0 commit comments

Comments
 (0)