fix scopelint errors / possible races in hooks (#614)

Ref #612
Fixes #514
This commit is contained in:
KUOKA Yusuke 2019-05-22 18:50:38 +09:00 committed by GitHub
parent 1012256f16
commit 3b3d3092dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 54 additions and 29 deletions

View File

@ -298,7 +298,9 @@ func (st *HelmState) isReleaseInstalled(context helmexec.HelmContext, helm helme
func (st *HelmState) DetectReleasesToBeDeleted(helm helmexec.Interface) ([]*ReleaseSpec, error) {
detected := []*ReleaseSpec{}
for _, release := range st.Releases {
for i := range st.Releases {
release := st.Releases[i]
if !release.Desired() {
installed, err := st.isReleaseInstalled(st.createHelmContext(&release, 0), helm, release)
if err != nil {
@ -511,7 +513,9 @@ func (st *HelmState) TemplateReleases(helm helmexec.Interface, additionalValues
helm.SetExtraArgs(args...)
}
for _, release := range st.Releases {
for i := range st.Releases {
release := st.Releases[i]
if !release.Desired() {
continue
}
@ -571,7 +575,9 @@ func (st *HelmState) LintReleases(helm helmexec.Interface, additionalValues []st
helm.SetExtraArgs(args...)
}
for _, release := range st.Releases {
for i := range st.Releases {
release := st.Releases[i]
if !release.Desired() {
continue
}
@ -910,7 +916,9 @@ func (st *HelmState) FilterReleases() error {
func (st *HelmState) PrepareReleases(helm helmexec.Interface, helmfileCommand string) []error {
errs := []error{}
for _, release := range st.Releases {
for i := range st.Releases {
release := st.Releases[i]
if _, err := st.triggerPrepareEvent(&release, helmfileCommand); err != nil {
errs = append(errs, newReleaseError(&release, err))
continue

View File

@ -36,7 +36,8 @@ func TestHelmState_executeTemplates(t *testing.T) {
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
state := &HelmState{
basePath: ".",

View File

@ -115,7 +115,8 @@ func TestHelmState_applyDefaultsTo(t *testing.T) {
want: specWithNamespaceFromFields,
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
state := &HelmState{
basePath: tt.fields.BaseChartPath,
@ -505,7 +506,8 @@ func TestHelmState_flagsForUpgrade(t *testing.T) {
},
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
state := &HelmState{
basePath: "./",
@ -584,7 +586,8 @@ func Test_isLocalChart(t *testing.T) {
want: true,
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
if got := isLocalChart(tt.args.chart); got != tt.want {
t.Errorf("%s(\"%s\") isLocalChart(): got %v, want %v", tt.name, tt.args.chart, got, tt.want)
@ -636,7 +639,8 @@ func Test_normalizeChart(t *testing.T) {
want: "/app",
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
if got := normalizeChart(tt.args.basePath, tt.args.chart); got != tt.want {
t.Errorf("normalizeChart() = %v, want %v", got, tt.want)
@ -814,7 +818,8 @@ func TestHelmState_SyncRepos(t *testing.T) {
want: []string{"name", "http://example.com/", "", "", "example_user", "example_password"},
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
for k, v := range tt.envs {
err := os.Setenv(k, v)
@ -929,7 +934,8 @@ func TestHelmState_SyncReleases(t *testing.T) {
wantReleases: []mockRelease{{"releaseName", []string{"--set", "foo.bar[0]={A,B}"}}},
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
state := &HelmState{
Releases: tt.releases,
@ -1016,7 +1022,8 @@ func TestHelmState_SyncReleasesAffectedRealeases(t *testing.T) {
wantAffected: mockAffected{[]*mockRelease{{"releaseNameFoo", []string{}}}, []*mockRelease{{"releaseNameBar", []string{}}}, []*mockRelease{{"releaseNameFoo-error", []string{}}}},
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
state := &HelmState{
Releases: tt.releases,
@ -1106,7 +1113,8 @@ func TestGetDeployedVersion(t *testing.T) {
installedVersion: "1.0.0-alpha+001",
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
state := &HelmState{
Releases: []ReleaseSpec{tt.release},
@ -1225,7 +1233,8 @@ func TestHelmState_DiffReleases(t *testing.T) {
wantReleases: []mockRelease{{"releaseName", []string{"--set", "foo.bar[0]={A,B}"}}},
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
state := &HelmState{
Releases: tt.releases,
@ -1294,7 +1303,8 @@ func TestHelmState_SyncReleasesCleanup(t *testing.T) {
expectedNumRemovedFiles: 2,
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
numRemovedFiles := 0
state := &HelmState{
@ -1383,7 +1393,8 @@ func TestHelmState_DiffReleasesCleanup(t *testing.T) {
expectedNumRemovedFiles: 2,
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
numRemovedFiles := 0
state := &HelmState{
@ -1624,8 +1635,9 @@ func TestHelmState_ReleaseStatuses(t *testing.T) {
want: []mockRelease{{"releaseA", []string{"--tiller-namespace", "tillerns"}}},
},
}
for _, tt := range tests {
i := func(t *testing.T) {
for i := range tests {
tt := tests[i]
f := func(t *testing.T) {
state := &HelmState{
Releases: tt.releases,
logger: logger,
@ -1651,7 +1663,7 @@ func TestHelmState_ReleaseStatuses(t *testing.T) {
t.Errorf("HelmState.ReleaseStatuses() for [%s] = %v, want %v", tt.name, tt.helm.releases, tt.want)
}
}
t.Run(tt.name, i)
t.Run(tt.name, f)
}
}
@ -1708,8 +1720,9 @@ func TestHelmState_TestReleasesNoCleanUp(t *testing.T) {
want: []mockRelease{{"releaseA", []string{"--timeout", "1", "--tiller-namespace", "tillerns"}}},
},
}
for _, tt := range tests {
i := func(t *testing.T) {
for i := range tests {
tt := tests[i]
f := func(t *testing.T) {
state := &HelmState{
Releases: tt.releases,
logger: logger,
@ -1723,7 +1736,7 @@ func TestHelmState_TestReleasesNoCleanUp(t *testing.T) {
t.Errorf("HelmState.TestReleases() for [%s] = %v, want %v", tt.name, tt.helm.releases, tt.want)
}
}
t.Run(tt.name, i)
t.Run(tt.name, f)
}
}
@ -1758,8 +1771,9 @@ func TestHelmState_NoReleaseMatched(t *testing.T) {
wantErr: false,
},
}
for _, tt := range tests {
i := func(t *testing.T) {
for i := range tests {
tt := tests[i]
f := func(t *testing.T) {
state := &HelmState{
Releases: releases,
logger: logger,
@ -1771,7 +1785,7 @@ func TestHelmState_NoReleaseMatched(t *testing.T) {
return
}
}
t.Run(tt.name, i)
t.Run(tt.name, f)
}
}
@ -1877,8 +1891,9 @@ func TestHelmState_Delete(t *testing.T) {
deleted: []mockRelease{{"releaseA", []string{"--purge", "--tiller-namespace", "tillerns"}}},
},
}
for _, tt := range tests {
i := func(t *testing.T) {
for i := range tests {
tt := tests[i]
f := func(t *testing.T) {
name := "releaseA"
if tt.wantErr {
name = "releaseA-error"
@ -1913,6 +1928,6 @@ func TestHelmState_Delete(t *testing.T) {
t.Errorf("unexpected deletions happened: expected %v, got %v", &affectedReleases.Deleted, tt.deleted)
}
}
t.Run(tt.name, i)
t.Run(tt.name, f)
}
}

View File

@ -230,7 +230,8 @@ func Test_renderTemplateToString(t *testing.T) {
wantErr: true,
},
}
for _, tt := range tests {
for i := range tests {
tt := tests[i]
t.Run(tt.name, func(t *testing.T) {
for k, v := range tt.args.envs {
err := os.Setenv(k, v)