Skip to content

Commit 951f73c

Browse files
committed
Add nil check for env var values
1 parent 5e9a400 commit 951f73c

File tree

2 files changed

+50
-1
lines changed

2 files changed

+50
-1
lines changed

ecs-cli/modules/cli/compose/project/project_parseV3.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,11 @@ func convertToContainerConfig(serviceConfig types.ServiceConfig, serviceVols *ad
133133
for k, v := range serviceConfig.Environment {
134134
env := ecs.KeyValuePair{}
135135
env.SetName(k)
136-
env.SetValue(*v)
136+
if v != nil {
137+
env.SetValue(*v)
138+
} else {
139+
env.SetValue("")
140+
}
137141
envVars = append(envVars, &env)
138142
}
139143
c.Environment = envVars

ecs-cli/modules/cli/compose/project/project_parseV3_test.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,51 @@ services:
631631
assert.ElementsMatch(t, expectedEnv, web.Environment, "Expected Environment to match")
632632
}
633633

634+
func TestParseV3_WithKeyOnlyEnvVars(t *testing.T) {
635+
// Setup expected environment
636+
expectedEnv := []*ecs.KeyValuePair{
637+
{
638+
Name: aws.String("MY_CUSTOM_VAR"),
639+
Value: aws.String(""),
640+
},
641+
{
642+
Name: aws.String("SOME_KEY"),
643+
Value: aws.String(""),
644+
},
645+
}
646+
647+
composeFileString := `version: '3'
648+
services:
649+
web:
650+
image: httpd
651+
environment:
652+
- MY_CUSTOM_VAR
653+
- SOME_KEY`
654+
655+
tmpfile, err := ioutil.TempFile("", "test")
656+
assert.NoError(t, err, "Unexpected error in creating test file")
657+
658+
defer os.Remove(tmpfile.Name())
659+
660+
_, err = tmpfile.Write([]byte(composeFileString))
661+
assert.NoError(t, err, "Unexpected error in writing to test file")
662+
663+
err = tmpfile.Close()
664+
assert.NoError(t, err, "Unexpected error closing file")
665+
666+
// Set up project
667+
project := setupTestProject(t)
668+
project.ecsContext.ComposeFiles = append(project.ecsContext.ComposeFiles, tmpfile.Name())
669+
670+
actualConfigs, err := project.parseV3()
671+
assert.NoError(t, err, "Unexpected error parsing file")
672+
673+
//Verify
674+
web, err := getContainerConfigByName("web", actualConfigs)
675+
assert.NoError(t, err, "Unexpected error retrieving container config")
676+
assert.ElementsMatch(t, expectedEnv, web.Environment, "Expected Environment to match")
677+
}
678+
634679
func TestParseV3HealthCheckDisabled(t *testing.T) {
635680
// set up expected ContainerConfig values
636681
wordpressCon := adapter.ContainerConfig{}

0 commit comments

Comments
 (0)