Skip to content

Commit 9550764

Browse files
committed
add default environment variables to container (including LOCALSTACK_API_KEY)
1 parent 7587ad6 commit 9550764

File tree

2 files changed

+30
-9
lines changed

2 files changed

+30
-9
lines changed

Diff for: Makefile

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
ADDITIONAL_MVN_ARGS ?= -DskipTests -q
22
export AWS_DEFAULT_REGION ?= us-east-1
33
export AWS_REGION ?= us-east-1
4+
export AWS_ACCESS_KEY_ID ?= test
5+
export AWS_SECRET_ACCESS_KEY ?= test
46
export SERVICES ?= serverless,kinesis,sns,sqs,iam,cloudwatch,qldb
57

68
usage: ## Show this help
@@ -16,10 +18,10 @@ publish-maven: ## Publish artifacts to Maven Central
1618
ADDITIONAL_MVN_TARGETS=deploy ADDITIONAL_MVN_ARGS="-DskipTests -Pawssdkv1,awssdkv2" make build
1719

1820
test-v1:
19-
USE_SSL=1 mvn $(MVN_TEST_ARGS) -Pawssdkv1 -Dtest="cloud.localstack.awssdkv1.*Test" test
21+
mvn $(MVN_TEST_ARGS) -Pawssdkv1 -Dtest="cloud.localstack.awssdkv1.*Test" test
2022

2123
test-v2:
22-
USE_SSL=1 mvn $(MVN_TEST_ARGS) -Pawssdkv2 -Dtest="cloud.localstack.awssdkv2.*Test" test
24+
mvn $(MVN_TEST_ARGS) -Pawssdkv2 -Dtest="cloud.localstack.awssdkv2.*Test" test
2325

2426
test: ## Run Java/JUnit tests for AWS SDK v1 and v2
2527
make test-v2

Diff for: src/main/java/cloud/localstack/Localstack.java

+26-7
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@ public class Localstack {
6060
CommonUtils.disableSslCertChecking();
6161
}
6262

63-
private Localstack() {
64-
}
63+
private Localstack() {}
6564

6665
public void startup(LocalstackDockerConfiguration dockerConfiguration) {
6766
if (locked) {
@@ -70,12 +69,19 @@ public void startup(LocalstackDockerConfiguration dockerConfiguration) {
7069
locked = true;
7170
this.externalHostName = dockerConfiguration.getExternalHostName();
7271

72+
Map<String, String> environmentVariables = dockerConfiguration.getEnvironmentVariables();
73+
environmentVariables = environmentVariables == null ? Collections.emptyMap() : environmentVariables;
74+
environmentVariables = new HashMap<String, String>(environmentVariables);
75+
// add default environment variables
76+
Map<String, String> defaultEnvVars = getDefaultEnvironmentVariables();
77+
environmentVariables.putAll(defaultEnvVars);
78+
7379
try {
7480
localStackContainer = Container.createLocalstackContainer(dockerConfiguration.getExternalHostName(),
7581
dockerConfiguration.isPullNewImage(), dockerConfiguration.isRandomizePorts(),
7682
dockerConfiguration.getImageName(), dockerConfiguration.getImageTag(),
7783
dockerConfiguration.getPortEdge(), dockerConfiguration.getPortElasticSearch(),
78-
dockerConfiguration.getEnvironmentVariables(), dockerConfiguration.getPortMappings(),
84+
environmentVariables, dockerConfiguration.getPortMappings(),
7985
dockerConfiguration.getBindMounts(), dockerConfiguration.getPlatform());
8086
loadServiceToPortMap();
8187

@@ -118,25 +124,38 @@ private void loadServiceToPortMap() {
118124
}
119125
}
120126

127+
private Map<String, String> getDefaultEnvironmentVariables() {
128+
Map<String, String> result = new HashMap<String, String>();
129+
addEnvVariableIfDefined(Constants.ENV_LOCALSTACK_API_KEY, result);
130+
return result;
131+
}
132+
133+
private void addEnvVariableIfDefined(String envVarName, Map<String, String> envVars) {
134+
String value = System.getenv(envVarName);
135+
if (value != null) {
136+
envVars.put(envVarName, value);
137+
}
138+
}
139+
121140
// TODO: this is now obsolete, as we're using a single edge port - remove!
122141
private void doLoadServiceToPortMap() {
123142
String localStackPortConfig = "";
124143
for (int i = 0; i < PYTHON_VERSIONS_FOLDERS.length; i++) {
125144
String filePath = String.format(PORT_CONFIG_FILENAME, PYTHON_VERSIONS_FOLDERS[i]);
126145

127146
localStackPortConfig = localStackContainer.executeCommand(Arrays.asList("cat", filePath));
128-
if(localStackPortConfig.contains("No such container")){
147+
if (localStackPortConfig.contains("No such container")) {
129148
localStackPortConfig = "";
130149
continue;
131-
}else if(localStackPortConfig.contains("No such file")){
150+
} else if(localStackPortConfig.contains("No such file")) {
132151
localStackPortConfig = "";
133152
continue;
134-
}else{
153+
} else {
135154
break;
136155
}
137156
}
138157

139-
if(localStackPortConfig.isEmpty()){
158+
if (localStackPortConfig.isEmpty()) {
140159
throw new LocalstackDockerException("No config file found",new Exception());
141160
}
142161

0 commit comments

Comments
 (0)