Skip to content

Commit

Permalink
Merge pull request #323 from ndeloof/merge_aliasses
Browse files Browse the repository at this point in the history
  • Loading branch information
ndeloof committed Dec 19, 2022
2 parents 5f02fe7 + 615df13 commit ecbc28d
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 26 deletions.
15 changes: 0 additions & 15 deletions loader/merge.go
Expand Up @@ -38,7 +38,6 @@ var serviceSpecials = &specials{
reflect.TypeOf([]types.ServiceSecretConfig{}): mergeSlice(toServiceSecretConfigsMap, toServiceSecretConfigsSlice),
reflect.TypeOf([]types.ServiceConfigObjConfig{}): mergeSlice(toServiceConfigObjConfigsMap, toSServiceConfigObjConfigsSlice),
reflect.TypeOf(&types.UlimitsConfig{}): mergeUlimitsConfig,
reflect.TypeOf(&types.ServiceNetworkConfig{}): mergeServiceNetworkConfig,
},
}

Expand Down Expand Up @@ -339,20 +338,6 @@ func mergeUlimitsConfig(dst, src reflect.Value) error {
return nil
}

// nolint: unparam
func mergeServiceNetworkConfig(dst, src reflect.Value) error {
if src.Interface() != reflect.Zero(reflect.TypeOf(src.Interface())).Interface() {
dst.Elem().FieldByName("Aliases").Set(src.Elem().FieldByName("Aliases"))
if ipv4 := src.Elem().FieldByName("Ipv4Address").Interface().(string); ipv4 != "" {
dst.Elem().FieldByName("Ipv4Address").SetString(ipv4)
}
if ipv6 := src.Elem().FieldByName("Ipv6Address").Interface().(string); ipv6 != "" {
dst.Elem().FieldByName("Ipv6Address").SetString(ipv6)
}
}
return nil
}

func getLoggingDriver(v reflect.Value) string {
return v.FieldByName("Driver").String()
}
Expand Down
17 changes: 6 additions & 11 deletions loader/merge_test.go
Expand Up @@ -816,7 +816,7 @@ func TestLoadMultipleServiceNetworks(t *testing.T) {
},
expected: map[string]*types.ServiceNetworkConfig{
"net1": {
Aliases: []string{"alias2", "alias3"},
Aliases: []string{"alias1", "alias2", "alias3"},
},
"net2": nil,
"net3": {},
Expand Down Expand Up @@ -1150,13 +1150,8 @@ func TestInitOverride(t *testing.T) {
}

func TestMergeServiceNetworkConfig(t *testing.T) {
specials := &specials{
m: map[reflect.Type]func(dst, src reflect.Value) error{
reflect.TypeOf(&types.ServiceNetworkConfig{}): mergeServiceNetworkConfig,
},
}
base := map[string]*types.ServiceNetworkConfig{
"override-aliases": {
"merge": {
Aliases: []string{"100", "101"},
Ipv4Address: "127.0.0.1",
Ipv6Address: "0:0:0:0:0:0:0:1",
Expand All @@ -1168,7 +1163,7 @@ func TestMergeServiceNetworkConfig(t *testing.T) {
},
}
override := map[string]*types.ServiceNetworkConfig{
"override-aliases": {
"merge": {
Aliases: []string{"110", "111"},
Ipv4Address: "127.0.1.1",
Ipv6Address: "0:0:0:0:0:0:1:1",
Expand All @@ -1179,14 +1174,14 @@ func TestMergeServiceNetworkConfig(t *testing.T) {
Ipv6Address: "0:0:0:0:0:0:3:1",
},
}
err := mergo.Merge(&base, &override, mergo.WithOverride, mergo.WithTransformers(specials))
err := mergo.Merge(&base, &override, mergo.WithAppendSlice, mergo.WithOverride)
assert.NilError(t, err)
assert.DeepEqual(
t,
base,
map[string]*types.ServiceNetworkConfig{
"override-aliases": {
Aliases: []string{"110", "111"},
"merge": {
Aliases: []string{"100", "101", "110", "111"},
Ipv4Address: "127.0.1.1",
Ipv6Address: "0:0:0:0:0:0:1:1",
},
Expand Down

0 comments on commit ecbc28d

Please sign in to comment.