Skip to content

Commit

Permalink
Accomodate ACS model change
Browse files Browse the repository at this point in the history
  • Loading branch information
ubhattacharjya committed Feb 25, 2019
1 parent 6ef7266 commit 01b0505
Show file tree
Hide file tree
Showing 9 changed files with 35 additions and 82 deletions.
29 changes: 3 additions & 26 deletions agent/acs/model/api/api-2.json
Original file line number Diff line number Diff line change
Expand Up @@ -455,18 +455,6 @@
"type":"list",
"member":{"shape":"PortMapping"}
},
"ProxyConfiguration":{
"type":"structure",
"members":{
"type":{"shape":"ProxyConfigurationType"},
"containerName":{"shape":"String"},
"properties":{"shape":"StringMap"}
}
},
"ProxyConfigurationType":{
"type":"string",
"enum":["APPMESH"]
},
"RegistryAuthenticationData":{
"type":"structure",
"members":{
Expand Down Expand Up @@ -497,8 +485,7 @@
"containerPath":{"shape":"String"},
"type":{"shape":"SecretType"},
"region":{"shape":"String"},
"provider":{"shape":"SecretProvider"},
"target":{"shape":"SecretTarget"}
"provider":{"shape":"SecretProvider"}
}
},
"SecretList":{
Expand All @@ -512,19 +499,10 @@
"asm"
]
},
"SecretTarget":{
"type":"string",
"enum":[
"CONTAINER",
"LOG_DRIVER"
]
},
"SecretType":{
"type":"string",
"enum":[
"ENVIRONMENT_VARIABLE",
"MOUNT_POINT",
"BOOTSTRAP"
"ENVIRONMENT_VARIABLE"
]
},
"SensitiveString":{
Expand Down Expand Up @@ -575,8 +553,7 @@
"memory":{"shape":"Integer"},
"associations":{"shape":"Associations"},
"pidMode":{"shape":"String"},
"ipcMode":{"shape":"String"},
"proxyConfiguration":{"shape":"ProxyConfiguration"}
"ipcMode":{"shape":"String"}
}
},
"TaskList":{
Expand Down
24 changes: 0 additions & 24 deletions agent/acs/model/ecsacs/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -909,26 +909,6 @@ func (s PortMapping) GoString() string {
return s.String()
}

type ProxyConfiguration struct {
_ struct{} `type:"structure"`

ContainerName *string `locationName:"containerName" type:"string"`

Properties map[string]*string `locationName:"properties" type:"map"`

Type *string `locationName:"type" type:"string" enum:"ProxyConfigurationType"`
}

// String returns the string representation
func (s ProxyConfiguration) String() string {
return awsutil.Prettify(s)
}

// GoString returns the string representation
func (s ProxyConfiguration) GoString() string {
return s.String()
}

type RefreshTaskIAMRoleCredentialsInput struct {
_ struct{} `type:"structure"`

Expand Down Expand Up @@ -1002,8 +982,6 @@ type Secret struct {

Region *string `locationName:"region" type:"string"`

Target *string `locationName:"target" type:"string" enum:"SecretTarget"`

Type *string `locationName:"type" type:"string" enum:"SecretType"`

ValueFrom *string `locationName:"valueFrom" type:"string"`
Expand Down Expand Up @@ -1126,8 +1104,6 @@ type Task struct {

PidMode *string `locationName:"pidMode" type:"string"`

ProxyConfiguration *ProxyConfiguration `locationName:"proxyConfiguration" type:"structure"`

RoleCredentials *IAMRoleCredentials `locationName:"roleCredentials" type:"structure"`

TaskDefinitionAccountId *string `locationName:"taskDefinitionAccountId" type:"string"`
Expand Down
4 changes: 2 additions & 2 deletions agent/api/task/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -1272,7 +1272,7 @@ func (task *Task) initializeContainerOrderingForVolumes() error {
if _, ok := task.ContainerByName(volume.SourceContainer); !ok {
return fmt.Errorf("could not find container with name %s", volume.SourceContainer)
}
dependOn := apicontainer.DependsOn{Container: volume.SourceContainer, Condition: ContainerOrderingCreateCondition}
dependOn := apicontainer.DependsOn{ContainerName: volume.SourceContainer, Condition: ContainerOrderingCreateCondition}
container.DependsOn = append(container.DependsOn, dependOn)
}
}
Expand All @@ -1292,7 +1292,7 @@ func (task *Task) initializeContainerOrderingForLinks() error {
if _, ok := task.ContainerByName(linkName); !ok {
return fmt.Errorf("could not find container with name %s", linkName)
}
dependOn := apicontainer.DependsOn{Container: linkName, Condition: ContainerOrderingStartCondition}
dependOn := apicontainer.DependsOn{ContainerName: linkName, Condition: ContainerOrderingStartCondition}
container.DependsOn = append(container.DependsOn, dependOn)
}
}
Expand Down
8 changes: 4 additions & 4 deletions agent/api/task/task_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2886,17 +2886,17 @@ func TestInitializeContainerOrderingWithLinksAndVolumesFrom(t *testing.T) {
assert.NoError(t, err)

containerResultWithVolume := task.Containers[0]
assert.Equal(t, "myName1", containerResultWithVolume.DependsOn[0].Container)
assert.Equal(t, "myName1", containerResultWithVolume.DependsOn[0].ContainerName)
assert.Equal(t, ContainerOrderingCreateCondition, containerResultWithVolume.DependsOn[0].Condition)

containerResultWithLink := task.Containers[1]
assert.Equal(t, "myName", containerResultWithLink.DependsOn[0].Container)
assert.Equal(t, "myName", containerResultWithLink.DependsOn[0].ContainerName)
assert.Equal(t, ContainerOrderingStartCondition, containerResultWithLink.DependsOn[0].Condition)

containerResultWithBothVolumeAndLink := task.Containers[2]
assert.Equal(t, "myName", containerResultWithBothVolumeAndLink.DependsOn[0].Container)
assert.Equal(t, "myName", containerResultWithBothVolumeAndLink.DependsOn[0].ContainerName)
assert.Equal(t, ContainerOrderingCreateCondition, containerResultWithBothVolumeAndLink.DependsOn[0].Condition)
assert.Equal(t, "myName1", containerResultWithBothVolumeAndLink.DependsOn[1].Container)
assert.Equal(t, "myName1", containerResultWithBothVolumeAndLink.DependsOn[1].ContainerName)
assert.Equal(t, ContainerOrderingStartCondition, containerResultWithBothVolumeAndLink.DependsOn[1].Condition)

containerResultWithNoVolumeOrLink := task.Containers[3]
Expand Down
4 changes: 2 additions & 2 deletions agent/engine/dependencygraph/graph.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ func verifyContainerOrderingStatusResolvable(target *apicontainer.Container, exi
}

for _, dependency := range target.DependsOn {
dependencyContainer, ok := existingContainers[dependency.Container]
dependencyContainer, ok := existingContainers[dependency.ContainerName]
if !ok {
return nil, fmt.Errorf("dependency graph: container ordering dependency [%v] for target [%v] does not exist.", dependencyContainer, target)
}
Expand Down Expand Up @@ -423,7 +423,7 @@ func verifyShutdownOrder(target *apicontainer.Container, existingContainers map[
for _, dependency := range existingContainer.DependsOn {
// If another container declares a dependency on our target, we will want to verify that the container is
// stopped.
if dependency.Container == target.Name {
if dependency.ContainerName == target.Name {
if !existingContainer.KnownTerminal() {
missingShutdownDependencies = append(missingShutdownDependencies, existingContainer.Name)
}
Expand Down
32 changes: 16 additions & 16 deletions agent/engine/dependencygraph/graph_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,11 @@ func TestValidDependencies(t *testing.T) {
assert.True(t, resolveable, "One container should resolve trivially")

// Webserver stack
php := steadyStateContainer("php", []apicontainer.DependsOn{{Container: "db", Condition: startCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
db := steadyStateContainer("db", []apicontainer.DependsOn{{Container: "dbdatavolume", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
php := steadyStateContainer("php", []apicontainer.DependsOn{{ContainerName: "db", Condition: startCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
db := steadyStateContainer("db", []apicontainer.DependsOn{{ContainerName: "dbdatavolume", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
dbdata := createdContainer("dbdatavolume", []apicontainer.DependsOn{}, apicontainerstatus.ContainerRunning)
webserver := steadyStateContainer("webserver", []apicontainer.DependsOn{{Container: "php", Condition: startCondition}, {Container: "htmldata", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
htmldata := steadyStateContainer("htmldata", []apicontainer.DependsOn{{Container: "sharedcssfiles", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
webserver := steadyStateContainer("webserver", []apicontainer.DependsOn{{ContainerName: "php", Condition: startCondition}, {ContainerName: "htmldata", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
htmldata := steadyStateContainer("htmldata", []apicontainer.DependsOn{{ContainerName: "sharedcssfiles", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
sharedcssfiles := createdContainer("sharedcssfiles", []apicontainer.DependsOn{}, apicontainerstatus.ContainerRunning)

task = &apitask.Task{
Expand All @@ -94,8 +94,8 @@ func TestValidDependenciesWithCycles(t *testing.T) {
// Unresolveable: cycle
task := &apitask.Task{
Containers: []*apicontainer.Container{
steadyStateContainer("a", []apicontainer.DependsOn{{Container: "b", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning),
steadyStateContainer("b", []apicontainer.DependsOn{{Container: "a", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning),
steadyStateContainer("a", []apicontainer.DependsOn{{ContainerName: "b", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning),
steadyStateContainer("b", []apicontainer.DependsOn{{ContainerName: "a", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning),
},
}
resolveable := ValidDependencies(task)
Expand All @@ -106,7 +106,7 @@ func TestValidDependenciesWithUnresolvedReference(t *testing.T) {
// Unresolveable, reference doesn't exist
task := &apitask.Task{
Containers: []*apicontainer.Container{
steadyStateContainer("php", []apicontainer.DependsOn{{Container: "db", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning),
steadyStateContainer("php", []apicontainer.DependsOn{{ContainerName: "db", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning),
},
}
resolveable := ValidDependencies(task)
Expand All @@ -126,11 +126,11 @@ func TestDependenciesAreResolvedWhenSteadyStateIsRunning(t *testing.T) {
assert.NoError(t, err, "One container should resolve trivially")

// Webserver stack
php := steadyStateContainer("php", []apicontainer.DependsOn{{Container: "db", Condition: startCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
db := steadyStateContainer("db", []apicontainer.DependsOn{{Container: "dbdatavolume", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
php := steadyStateContainer("php", []apicontainer.DependsOn{{ContainerName: "db", Condition: startCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
db := steadyStateContainer("db", []apicontainer.DependsOn{{ContainerName: "dbdatavolume", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
dbdata := createdContainer("dbdatavolume", []apicontainer.DependsOn{}, apicontainerstatus.ContainerRunning)
webserver := steadyStateContainer("webserver", []apicontainer.DependsOn{{Container: "php", Condition: startCondition}, {Container: "htmldata", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
htmldata := steadyStateContainer("htmldata", []apicontainer.DependsOn{{Container: "sharedcssfiles", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
webserver := steadyStateContainer("webserver", []apicontainer.DependsOn{{ContainerName: "php", Condition: startCondition}, {ContainerName: "htmldata", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
htmldata := steadyStateContainer("htmldata", []apicontainer.DependsOn{{ContainerName: "sharedcssfiles", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
sharedcssfiles := createdContainer("sharedcssfiles", []apicontainer.DependsOn{}, apicontainerstatus.ContainerRunning)

task = &apitask.Task{
Expand Down Expand Up @@ -194,11 +194,11 @@ func TestRunDependencies(t *testing.T) {

func TestRunDependenciesWhenSteadyStateIsResourcesProvisionedForOneContainer(t *testing.T) {
// Webserver stack
php := steadyStateContainer("php", []apicontainer.DependsOn{{Container: "db", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
db := steadyStateContainer("db", []apicontainer.DependsOn{{Container: "dbdatavolume", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
php := steadyStateContainer("php", []apicontainer.DependsOn{{ContainerName: "db", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
db := steadyStateContainer("db", []apicontainer.DependsOn{{ContainerName: "dbdatavolume", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
dbdata := createdContainer("dbdatavolume", []apicontainer.DependsOn{}, apicontainerstatus.ContainerRunning)
webserver := steadyStateContainer("webserver", []apicontainer.DependsOn{{Container: "php", Condition: createCondition}, {Container: "htmldata", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
htmldata := steadyStateContainer("htmldata", []apicontainer.DependsOn{{Container: "sharedcssfiles", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
webserver := steadyStateContainer("webserver", []apicontainer.DependsOn{{ContainerName: "php", Condition: createCondition}, {ContainerName: "htmldata", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
htmldata := steadyStateContainer("htmldata", []apicontainer.DependsOn{{ContainerName: "sharedcssfiles", Condition: createCondition}}, apicontainerstatus.ContainerRunning, apicontainerstatus.ContainerRunning)
sharedcssfiles := createdContainer("sharedcssfiles", []apicontainer.DependsOn{}, apicontainerstatus.ContainerRunning)
// The Pause container, being added to the webserver stack
pause := steadyStateContainer("pause", []apicontainer.DependsOn{}, apicontainerstatus.ContainerResourcesProvisioned, apicontainerstatus.ContainerResourcesProvisioned)
Expand Down Expand Up @@ -888,7 +888,7 @@ func assertContainerOrderingHealthyConditionResolved(f func(target *apicontainer
func dependsOn(vals ...string) []apicontainer.DependsOn {
d := make([]apicontainer.DependsOn, len(vals))
for i, val := range vals {
d[i] = apicontainer.DependsOn{Container: val}
d[i] = apicontainer.DependsOn{ContainerName: val}
}
return d
}
Expand Down
12 changes: 6 additions & 6 deletions agent/engine/ordering_integ_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func TestDependencyHealthCheck(t *testing.T) {
parent.Command = []string{"exit 1"}
parent.DependsOn = []apicontainer.DependsOn{
{
Container: "dependency",
ContainerName: "dependency",
Condition: "HEALTHY",
},
}
Expand Down Expand Up @@ -96,7 +96,7 @@ func TestDependencyComplete(t *testing.T) {
parent.Command = []string{"sleep 5 && exit 0"}
parent.DependsOn = []apicontainer.DependsOn{
{
Container: "dependency",
ContainerName: "dependency",
Condition: "COMPLETE",
},
}
Expand Down Expand Up @@ -149,7 +149,7 @@ func TestDependencySuccess(t *testing.T) {
parent.Command = []string{"exit 0"}
parent.DependsOn = []apicontainer.DependsOn{
{
Container: "dependency",
ContainerName: "dependency",
Condition: "SUCCESS",
},
}
Expand Down Expand Up @@ -202,7 +202,7 @@ func TestDependencySuccessErrored(t *testing.T) {
parent.Command = []string{"exit 0"}
parent.DependsOn = []apicontainer.DependsOn{
{
Container: "dependency",
ContainerName: "dependency",
Condition: "SUCCESS",
},
}
Expand Down Expand Up @@ -249,7 +249,7 @@ func TestDependencySuccessTimeout(t *testing.T) {
parent.Command = []string{"exit 0"}
parent.DependsOn = []apicontainer.DependsOn{
{
Container: "dependency",
ContainerName: "dependency",
Condition: "SUCCESS",
},
}
Expand Down Expand Up @@ -299,7 +299,7 @@ func TestDependencyHealthyTimeout(t *testing.T) {
parent.Command = []string{"exit 0"}
parent.DependsOn = []apicontainer.DependsOn{
{
Container: "dependency",
ContainerName: "dependency",
Condition: "HEALTHY",
},
}
Expand Down
2 changes: 1 addition & 1 deletion agent/statemanager/state_manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ func TestLoadsDataForContainerOrdering(t *testing.T) {
assert.Equal(t, 2, len(task.Containers))

dependsOn := task.Containers[1].DependsOn
assert.Equal(t, "container_1", dependsOn[0].Container)
assert.Equal(t, "container_1", dependsOn[0].ContainerName)
assert.Equal(t, "START", dependsOn[0].Condition)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
"Name": "container_2",
"DependsOn": [
{
"Container":"container_1",
"ContainerName":"container_1",
"Condition":"START"
}
],
Expand Down

0 comments on commit 01b0505

Please sign in to comment.