Skip to content

Commit 763e5ab

Browse files
committed
rearrange some code
1 parent 90fbc0b commit 763e5ab

File tree

4 files changed

+26
-43
lines changed

4 files changed

+26
-43
lines changed

agent/app/agent.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1101,7 +1101,7 @@ func (agent *ecsAgent) startACSSession(
11011101
// Minimum docker version supported is 1.9.0, maps to api version 1.21
11021102
// see https://docs.docker.com/develop/sdk/#api-version-matrix
11031103
func (agent *ecsAgent) verifyRequiredDockerVersion() (int, bool) {
1104-
supportedVersions := dockerapi.SupportedVersionsExtended(agent.dockerClient)
1104+
supportedVersions := dockerclient.SupportedVersionsExtended(agent.dockerClient.SupportedVersions)
11051105
if len(supportedVersions) == 0 {
11061106
seelog.Critical("Could not get supported docker versions.")
11071107
return exitcodes.ExitError, false

agent/app/agent_capability.go

+2-8
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222

2323
"github.com/aws/amazon-ecs-agent/agent/config"
2424
"github.com/aws/amazon-ecs-agent/agent/dockerclient"
25-
"github.com/aws/amazon-ecs-agent/agent/dockerclient/dockerapi"
2625
dm "github.com/aws/amazon-ecs-agent/agent/engine/daemonmanager"
2726
"github.com/aws/amazon-ecs-agent/ecs-agent/api/ecs/model/ecs"
2827
"github.com/aws/amazon-ecs-agent/ecs-agent/logger"
@@ -208,13 +207,8 @@ func (agent *ecsAgent) capabilities() ([]*ecs.Attribute, error) {
208207

209208
supportedVersions := make(map[dockerclient.DockerVersion]bool)
210209
// Determine API versions to report as supported via com.amazonaws.ecs.capability.docker-remote-api.X.XX capabilities
211-
// We advertise all known versions here rather than "supported" versions. The reason for this is that ECS backend
212-
// adds required capabilities to some features at the minimum supported version. If this is less than our Minimum
213-
// supported version (currently 1.24), then the capability will not match.
214-
// In other words, here we advertise supporting docker api versions that this agent may not actually support, for the
215-
// sake of task definition required attributes.
216-
// TODO edit this comment ^
217-
for _, version := range dockerapi.SupportedVersionsExtended(agent.dockerClient) {
210+
// and for determining which features we support that depend on specific docker API versions
211+
for _, version := range dockerclient.SupportedVersionsExtended(agent.dockerClient.SupportedVersions) {
218212
capabilities = appendNameOnlyAttribute(capabilities, capabilityPrefix+"docker-remote-api."+string(version))
219213
supportedVersions[version] = true
220214
}

agent/dockerclient/dockerapi/docker_versions.go

-34
This file was deleted.

agent/dockerclient/versions.go

+23
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,29 @@ func (d DockerVersion) Compare(rhs DockerVersion) int {
8181
return 1
8282
}
8383

84+
// SupportedVersionsExtended
85+
func SupportedVersionsExtended(supportedVersionsFn func() []DockerVersion) []DockerVersion {
86+
supportedAPIVersions := supportedVersionsFn()
87+
cmp := MinDockerAPIVersion.Compare(Version_1_24)
88+
89+
if cmp == 1 || cmp == 0 {
90+
extendedAPIVersions := []DockerVersion{}
91+
knownAPIVersions := GetKnownAPIVersions()
92+
for _, knownAPIVersion := range knownAPIVersions {
93+
if knownAPIVersion.Compare(MinDockerAPIVersion) < 0 {
94+
extendedAPIVersions = append(extendedAPIVersions, knownAPIVersion)
95+
}
96+
}
97+
supportedAPIVersions = append(extendedAPIVersions, supportedAPIVersions...)
98+
}
99+
100+
logger.Debug("Extended supported versions", logger.Fields{
101+
"supportedVersions": supportedAPIVersions,
102+
})
103+
return supportedAPIVersions
104+
}
105+
106+
// SetMinDockerAPIVersion
84107
func SetMinDockerAPIVersion(v DockerVersion) {
85108
MinDockerAPIVersionMu.Lock()
86109
defer MinDockerAPIVersionMu.Unlock()

0 commit comments

Comments
 (0)