Skip to content

Commit 6510727

Browse files
committed
pkg/compose: defaultNetworkSettings: slight refactor
- use an intermediate serviceNetworks slice so that we don't have to call service.NetworksByPriority multiple times. - shift the primary network from the slice (if any), so that we can drop some checks for "additional networks" - group code related to setting up the primary network as first step, then append remaining networks. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
1 parent 961972d commit 6510727

File tree

1 file changed

+21
-22
lines changed

1 file changed

+21
-22
lines changed

pkg/compose/create.go

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ func defaultNetworkSettings(project *types.Project,
525525
}
526526

527527
if len(project.Networks) == 0 {
528-
return "none", nil, nil
528+
return network.NetworkNone, nil, nil
529529
}
530530

531531
if versions.LessThan(version, APIVersion149) {
@@ -536,43 +536,42 @@ func defaultNetworkSettings(project *types.Project,
536536
}
537537
}
538538

539-
var primaryNetworkKey string
540-
if len(service.Networks) > 0 {
541-
primaryNetworkKey = service.NetworksByPriority()[0]
542-
} else {
543-
primaryNetworkKey = "default"
539+
serviceNetworks := service.NetworksByPriority()
540+
primaryNetworkKey := "default"
541+
if len(serviceNetworks) > 0 {
542+
primaryNetworkKey = serviceNetworks[0]
543+
serviceNetworks = serviceNetworks[1:]
544544
}
545-
primaryNetworkMobyNetworkName := project.Networks[primaryNetworkKey].Name
545+
546546
primaryNetworkEndpoint, err := createEndpointSettings(project, service, serviceIndex, primaryNetworkKey, links, useNetworkAliases)
547547
if err != nil {
548548
return "", nil, err
549549
}
550+
if primaryNetworkEndpoint.MacAddress.String() == "" {
551+
primaryNetworkEndpoint.MacAddress, err = parseMACAddr(service.MacAddress)
552+
if err != nil {
553+
return "", nil, err
554+
}
555+
}
550556

551-
endpointsConfig := map[string]*network.EndpointSettings{}
557+
primaryNetworkMobyNetworkName := project.Networks[primaryNetworkKey].Name
558+
endpointsConfig := map[string]*network.EndpointSettings{
559+
primaryNetworkMobyNetworkName: primaryNetworkEndpoint,
560+
}
552561

553562
// Starting from API version 1.44, the Engine will take several EndpointsConfigs
554563
// so we can pass all the extra networks we want the container to be connected to
555564
// in the network configuration instead of connecting the container to each extra
556565
// network individually after creation.
557-
if len(service.Networks) > 1 {
558-
serviceNetworks := service.NetworksByPriority()
559-
for _, networkKey := range serviceNetworks[1:] {
560-
mobyNetworkName := project.Networks[networkKey].Name
561-
epSettings, err := createEndpointSettings(project, service, serviceIndex, networkKey, links, useNetworkAliases)
562-
if err != nil {
563-
return "", nil, err
564-
}
565-
endpointsConfig[mobyNetworkName] = epSettings
566-
}
567-
}
568-
if primaryNetworkEndpoint.MacAddress.String() == "" {
569-
primaryNetworkEndpoint.MacAddress, err = parseMACAddr(service.MacAddress)
566+
for _, networkKey := range serviceNetworks {
567+
epSettings, err := createEndpointSettings(project, service, serviceIndex, networkKey, links, useNetworkAliases)
570568
if err != nil {
571569
return "", nil, err
572570
}
571+
mobyNetworkName := project.Networks[networkKey].Name
572+
endpointsConfig[mobyNetworkName] = epSettings
573573
}
574574

575-
endpointsConfig[primaryNetworkMobyNetworkName] = primaryNetworkEndpoint
576575
networkConfig := &network.NetworkingConfig{
577576
EndpointsConfig: endpointsConfig,
578577
}

0 commit comments

Comments
 (0)