Skip to content

Commit f2863d2

Browse files
authored
Merge pull request localstack#391 from localstack/fix/default-region
Set default region in aws_stack.py
2 parents 420efe9 + 2edcc6b commit f2863d2

File tree

3 files changed

+16
-22
lines changed

3 files changed

+16
-22
lines changed

.travis.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@ addons:
2929
env:
3030
global:
3131
- JAVA_HOME=/usr/lib/jvm/java-8-oracle
32-
- AWS_ACCESS_KEY_ID=foobar
33-
- AWS_SECRET_ACCESS_KEY=foobar
34-
- AWS_DEFAULT_REGION=us-east-1
3532

3633
install:
3734
- make reinstall-p3

Dockerfile

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,6 @@ RUN mkdir -p /.npm && \
4949
ENV MAVEN_CONFIG=/opt/code/localstack \
5050
USER=localstack
5151

52-
# set test AWS credentials and default region in config file
53-
RUN mkdir -p /root/.aws && \
54-
echo '[default]' > /root/.aws/config && \
55-
echo 'region = us-east-1' >> /root/.aws/config && \
56-
echo '[default]' > /root/.aws/credentials && \
57-
echo 'aws_access_key_id = foobar' >> /root/.aws/credentials && \
58-
echo 'aws_secret_access_key = foobar' >> /root/.aws/credentials
59-
6052
# expose service & web dashboard ports
6153
EXPOSE 4567-4583 8080
6254

localstack/utils/aws/aws_stack.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class Environment(object):
3737
def __init__(self, region=None, prefix=None):
3838
# target is the runtime environment to use, e.g.,
3939
# 'local' for local mode
40-
self.region = region or DEFAULT_REGION
40+
self.region = region or get_local_region()
4141
# prefix can be 'prod', 'stg', 'uat-1', etc.
4242
self.prefix = prefix
4343

@@ -52,7 +52,7 @@ def from_string(s):
5252
if len(parts) == 1:
5353
if s in PREDEFINED_ENVIRONMENTS:
5454
return PREDEFINED_ENVIRONMENTS[s]
55-
parts = [DEFAULT_REGION, s]
55+
parts = [get_local_region(), s]
5656
if len(parts) > 2:
5757
raise Exception('Invalid environment string "%s"' % s)
5858
region = parts[0]
@@ -128,6 +128,11 @@ def get_boto3_session():
128128
return boto3
129129

130130

131+
def get_local_region():
132+
session = boto3.session.Session()
133+
return session.region_name or DEFAULT_REGION
134+
135+
131136
def get_local_service_url(service_name):
132137
if service_name == 's3api':
133138
service_name = 's3'
@@ -146,7 +151,7 @@ def connect_to_service(service_name, client=True, env=None, region_name=None, en
146151
if env.region == REGION_LOCAL:
147152
endpoint_url = get_local_service_url(service_name)
148153
verify = False
149-
region = env.region if env.region != REGION_LOCAL else None
154+
region = env.region if env.region != REGION_LOCAL else get_local_region()
150155
return method(service_name, region_name=region, endpoint_url=endpoint_url, verify=verify)
151156

152157

@@ -234,13 +239,13 @@ def get_iam_role(resource, env=None):
234239

235240
def dynamodb_table_arn(table_name, account_id=None):
236241
account_id = get_account_id(account_id)
237-
return 'arn:aws:dynamodb:%s:%s:table/%s' % (DEFAULT_REGION, account_id, table_name)
242+
return 'arn:aws:dynamodb:%s:%s:table/%s' % (get_local_region(), account_id, table_name)
238243

239244

240245
def dynamodb_stream_arn(table_name, account_id=None):
241246
account_id = get_account_id(account_id)
242247
return ('arn:aws:dynamodb:%s:%s:table/%s/stream/%s' %
243-
(DEFAULT_REGION, account_id, table_name, timestamp()))
248+
(get_local_region(), account_id, table_name, timestamp()))
244249

245250

246251
def lambda_function_arn(function_name, account_id=None):
@@ -250,22 +255,22 @@ def lambda_function_arn(function_name, account_id=None):
250255
if ':' in function_name:
251256
raise Exception('Lambda function name should not contain a colon ":"')
252257
account_id = get_account_id(account_id)
253-
return pattern.replace('.*', '%s') % (DEFAULT_REGION, account_id, function_name)
258+
return pattern.replace('.*', '%s') % (get_local_region(), account_id, function_name)
254259

255260

256261
def cognito_user_pool_arn(user_pool_id, account_id=None):
257262
account_id = get_account_id(account_id)
258-
return 'arn:aws:cognito-idp:%s:%s:userpool/%s' % (DEFAULT_REGION, account_id, user_pool_id)
263+
return 'arn:aws:cognito-idp:%s:%s:userpool/%s' % (get_local_region(), account_id, user_pool_id)
259264

260265

261266
def kinesis_stream_arn(stream_name, account_id=None):
262267
account_id = get_account_id(account_id)
263-
return 'arn:aws:kinesis:%s:%s:stream/%s' % (DEFAULT_REGION, account_id, stream_name)
268+
return 'arn:aws:kinesis:%s:%s:stream/%s' % (get_local_region(), account_id, stream_name)
264269

265270

266271
def firehose_stream_arn(stream_name, account_id=None):
267272
account_id = get_account_id(account_id)
268-
return ('arn:aws:firehose:%s:%s:deliverystream/%s' % (DEFAULT_REGION, account_id, stream_name))
273+
return ('arn:aws:firehose:%s:%s:deliverystream/%s' % (get_local_region(), account_id, stream_name))
269274

270275

271276
def s3_bucket_arn(bucket_name, account_id=None):
@@ -274,12 +279,12 @@ def s3_bucket_arn(bucket_name, account_id=None):
274279

275280
def sqs_queue_arn(queue_name, account_id=None):
276281
account_id = get_account_id(account_id)
277-
return ('arn:aws:sqs:%s:%s:%s' % (DEFAULT_REGION, account_id, queue_name))
282+
return ('arn:aws:sqs:%s:%s:%s' % (get_local_region(), account_id, queue_name))
278283

279284

280285
def sns_topic_arn(topic_name, account_id=None):
281286
account_id = get_account_id(account_id)
282-
return ('arn:aws:sns:%s:%s:%s' % (DEFAULT_REGION, account_id, topic_name))
287+
return ('arn:aws:sns:%s:%s:%s' % (get_local_region(), account_id, topic_name))
283288

284289

285290
def get_sqs_queue_url(queue_name):

0 commit comments

Comments
 (0)