Skip to content

Commit ecbc28d

Browse files
authored
Merge pull request #323 from ndeloof/merge_aliasses
closes docker/compose#9981
2 parents 5f02fe7 + 615df13 commit ecbc28d

File tree

2 files changed

+6
-26
lines changed

2 files changed

+6
-26
lines changed

loader/merge.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ var serviceSpecials = &specials{
3838
reflect.TypeOf([]types.ServiceSecretConfig{}): mergeSlice(toServiceSecretConfigsMap, toServiceSecretConfigsSlice),
3939
reflect.TypeOf([]types.ServiceConfigObjConfig{}): mergeSlice(toServiceConfigObjConfigsMap, toSServiceConfigObjConfigsSlice),
4040
reflect.TypeOf(&types.UlimitsConfig{}): mergeUlimitsConfig,
41-
reflect.TypeOf(&types.ServiceNetworkConfig{}): mergeServiceNetworkConfig,
4241
},
4342
}
4443

@@ -339,20 +338,6 @@ func mergeUlimitsConfig(dst, src reflect.Value) error {
339338
return nil
340339
}
341340

342-
// nolint: unparam
343-
func mergeServiceNetworkConfig(dst, src reflect.Value) error {
344-
if src.Interface() != reflect.Zero(reflect.TypeOf(src.Interface())).Interface() {
345-
dst.Elem().FieldByName("Aliases").Set(src.Elem().FieldByName("Aliases"))
346-
if ipv4 := src.Elem().FieldByName("Ipv4Address").Interface().(string); ipv4 != "" {
347-
dst.Elem().FieldByName("Ipv4Address").SetString(ipv4)
348-
}
349-
if ipv6 := src.Elem().FieldByName("Ipv6Address").Interface().(string); ipv6 != "" {
350-
dst.Elem().FieldByName("Ipv6Address").SetString(ipv6)
351-
}
352-
}
353-
return nil
354-
}
355-
356341
func getLoggingDriver(v reflect.Value) string {
357342
return v.FieldByName("Driver").String()
358343
}

loader/merge_test.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -816,7 +816,7 @@ func TestLoadMultipleServiceNetworks(t *testing.T) {
816816
},
817817
expected: map[string]*types.ServiceNetworkConfig{
818818
"net1": {
819-
Aliases: []string{"alias2", "alias3"},
819+
Aliases: []string{"alias1", "alias2", "alias3"},
820820
},
821821
"net2": nil,
822822
"net3": {},
@@ -1150,13 +1150,8 @@ func TestInitOverride(t *testing.T) {
11501150
}
11511151

11521152
func TestMergeServiceNetworkConfig(t *testing.T) {
1153-
specials := &specials{
1154-
m: map[reflect.Type]func(dst, src reflect.Value) error{
1155-
reflect.TypeOf(&types.ServiceNetworkConfig{}): mergeServiceNetworkConfig,
1156-
},
1157-
}
11581153
base := map[string]*types.ServiceNetworkConfig{
1159-
"override-aliases": {
1154+
"merge": {
11601155
Aliases: []string{"100", "101"},
11611156
Ipv4Address: "127.0.0.1",
11621157
Ipv6Address: "0:0:0:0:0:0:0:1",
@@ -1168,7 +1163,7 @@ func TestMergeServiceNetworkConfig(t *testing.T) {
11681163
},
11691164
}
11701165
override := map[string]*types.ServiceNetworkConfig{
1171-
"override-aliases": {
1166+
"merge": {
11721167
Aliases: []string{"110", "111"},
11731168
Ipv4Address: "127.0.1.1",
11741169
Ipv6Address: "0:0:0:0:0:0:1:1",
@@ -1179,14 +1174,14 @@ func TestMergeServiceNetworkConfig(t *testing.T) {
11791174
Ipv6Address: "0:0:0:0:0:0:3:1",
11801175
},
11811176
}
1182-
err := mergo.Merge(&base, &override, mergo.WithOverride, mergo.WithTransformers(specials))
1177+
err := mergo.Merge(&base, &override, mergo.WithAppendSlice, mergo.WithOverride)
11831178
assert.NilError(t, err)
11841179
assert.DeepEqual(
11851180
t,
11861181
base,
11871182
map[string]*types.ServiceNetworkConfig{
1188-
"override-aliases": {
1189-
Aliases: []string{"110", "111"},
1183+
"merge": {
1184+
Aliases: []string{"100", "101", "110", "111"},
11901185
Ipv4Address: "127.0.1.1",
11911186
Ipv6Address: "0:0:0:0:0:0:1:1",
11921187
},

0 commit comments

Comments
 (0)