refactored cli/compose and cli/command/trust to use sort.Slice and removed custom types used for sorting

Signed-off-by: Arash Deshmeh <adeshmeh@ca.ibm.com>
This commit is contained in:
Arash Deshmeh
2018-07-08 15:08:17 -04:00
parent 2b221d8f1c
commit 71d650ee17
8 changed files with 33 additions and 93 deletions

View File

@ -202,12 +202,6 @@ func sortStrings(strs []string) []string {
return strs
}
type byNetworkTarget []swarm.NetworkAttachmentConfig
func (a byNetworkTarget) Len() int { return len(a) }
func (a byNetworkTarget) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a byNetworkTarget) Less(i, j int) bool { return a[i].Target < a[j].Target }
func convertServiceNetworks(
networks map[string]*composetypes.ServiceNetworkConfig,
networkConfigs networkMap,
@ -246,7 +240,9 @@ func convertServiceNetworks(
nets = append(nets, netAttachConfig)
}
sort.Sort(byNetworkTarget(nets))
sort.Slice(nets, func(i, j int) bool {
return nets[i].Target < nets[j].Target
})
return nets, nil
}
@ -536,12 +532,6 @@ func convertResources(source composetypes.Resources) (*swarm.ResourceRequirement
return resources, nil
}
type byPublishedPort []swarm.PortConfig
func (a byPublishedPort) Len() int { return len(a) }
func (a byPublishedPort) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a byPublishedPort) Less(i, j int) bool { return a[i].PublishedPort < a[j].PublishedPort }
func convertEndpointSpec(endpointMode string, source []composetypes.ServicePortConfig) (*swarm.EndpointSpec, error) {
portConfigs := []swarm.PortConfig{}
for _, port := range source {
@ -554,7 +544,10 @@ func convertEndpointSpec(endpointMode string, source []composetypes.ServicePortC
portConfigs = append(portConfigs, portConfig)
}
sort.Sort(byPublishedPort(portConfigs))
sort.Slice(portConfigs, func(i, j int) bool {
return portConfigs[i].PublishedPort < portConfigs[j].PublishedPort
})
return &swarm.EndpointSpec{
Mode: swarm.ResolutionMode(strings.ToLower(endpointMode)),
Ports: portConfigs,

View File

@ -247,11 +247,8 @@ func TestConvertServiceNetworks(t *testing.T) {
},
}
sortedConfigs := byTargetSort(configs)
sort.Sort(&sortedConfigs)
assert.NilError(t, err)
assert.Check(t, is.DeepEqual(expected, []swarm.NetworkAttachmentConfig(sortedConfigs)))
assert.Check(t, is.DeepEqual(expected, configs))
}
func TestConvertServiceNetworksCustomDefault(t *testing.T) {
@ -277,20 +274,6 @@ func TestConvertServiceNetworksCustomDefault(t *testing.T) {
assert.Check(t, is.DeepEqual(expected, []swarm.NetworkAttachmentConfig(configs)))
}
type byTargetSort []swarm.NetworkAttachmentConfig
func (s byTargetSort) Len() int {
return len(s)
}
func (s byTargetSort) Less(i, j int) bool {
return strings.Compare(s[i].Target, s[j].Target) < 0
}
func (s byTargetSort) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}
func TestConvertDNSConfigEmpty(t *testing.T) {
dnsConfig, err := convertDNSConfig(nil, nil)

View File

@ -985,16 +985,12 @@ services:
}
func serviceSort(services []types.ServiceConfig) []types.ServiceConfig {
sort.Sort(servicesByName(services))
sort.Slice(services, func(i, j int) bool {
return services[i].Name < services[j].Name
})
return services
}
type servicesByName []types.ServiceConfig
func (sbn servicesByName) Len() int { return len(sbn) }
func (sbn servicesByName) Swap(i, j int) { sbn[i], sbn[j] = sbn[j], sbn[i] }
func (sbn servicesByName) Less(i, j int) bool { return sbn[i].Name < sbn[j].Name }
func TestLoadAttachableNetwork(t *testing.T) {
config, err := loadYAML(`
version: "3.2"