diff --git a/pkg/addon/utils.go b/pkg/addon/utils.go index 2851688bc..2f15b108f 100644 --- a/pkg/addon/utils.go +++ b/pkg/addon/utils.go @@ -504,7 +504,9 @@ func checkBondComponentExist(u unstructured.Unstructured, app v1beta1.Applicatio } // FilterDependencyRegistries will return all registries besides the target registry itself -func FilterDependencyRegistries(i int, registries []Registry) []Registry { +func FilterDependencyRegistries(i int, rs []Registry) []Registry { + registries := make([]Registry, len(rs)) + copy(registries, rs) if i < len(registries) { return append(registries[:i], registries[i+1:]...) } diff --git a/pkg/addon/utils_test.go b/pkg/addon/utils_test.go index fa156e5d9..ec81b5786 100644 --- a/pkg/addon/utils_test.go +++ b/pkg/addon/utils_test.go @@ -334,36 +334,43 @@ func TestFilterDependencyRegistries(t *testing.T) { registries []Registry index int res []Registry + origin []Registry }{ { registries: []Registry{{Name: "r1"}, {Name: "r2"}, {Name: "r3"}}, index: 0, res: []Registry{{Name: "r2"}, {Name: "r3"}}, + origin: []Registry{{Name: "r1"}, {Name: "r2"}, {Name: "r3"}}, }, { registries: []Registry{{Name: "r1"}, {Name: "r2"}, {Name: "r3"}}, index: 1, res: []Registry{{Name: "r1"}, {Name: "r3"}}, + origin: []Registry{{Name: "r1"}, {Name: "r2"}, {Name: "r3"}}, }, { registries: []Registry{{Name: "r1"}, {Name: "r2"}, {Name: "r3"}}, index: 2, res: []Registry{{Name: "r1"}, {Name: "r2"}}, + origin: []Registry{{Name: "r1"}, {Name: "r2"}, {Name: "r3"}}, }, { registries: []Registry{{Name: "r1"}, {Name: "r2"}, {Name: "r3"}}, index: 3, res: []Registry{{Name: "r1"}, {Name: "r2"}, {Name: "r3"}}, + origin: []Registry{{Name: "r1"}, {Name: "r2"}, {Name: "r3"}}, }, { registries: []Registry{}, index: 0, res: []Registry{}, + origin: []Registry{}, }, } for _, testCase := range testCases { res := FilterDependencyRegistries(testCase.index, testCase.registries) assert.Equal(t, res, testCase.res) + assert.Equal(t, testCase.registries, testCase.origin) } }