Skip to content

Commit 0cab1aa

Browse files
authored
fix aws-replicator compatibility with localstack >=3.4 (#63)
1 parent 79bf5f3 commit 0cab1aa

File tree

4 files changed

+21
-8
lines changed

4 files changed

+21
-8
lines changed

.github/workflows/aws-replicator.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
5858
find /home/runner/.cache/localstack/volume/lib/extensions/python_venv/lib/python3.11/site-packages/aws*
5959
ls -la /home/runner/.cache/localstack/volume/lib/extensions/python_venv/lib/python3.11/site-packages/aws*
60-
DEBUG=1 localstack start -d
60+
DEBUG=1 GATEWAY_SERVER=hypercorn localstack start -d
6161
localstack wait
6262
6363
- name: Run linter

aws-replicator/aws_replicator/server/aws_request_forwarder.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,7 @@
66
import requests
77
from localstack.aws.api import RequestContext
88
from localstack.aws.chain import Handler, HandlerChain
9-
from localstack.constants import (
10-
APPLICATION_JSON,
11-
LOCALHOST,
12-
LOCALHOST_HOSTNAME,
13-
TEST_AWS_ACCESS_KEY_ID,
14-
)
9+
from localstack.constants import APPLICATION_JSON, LOCALHOST, LOCALHOST_HOSTNAME
1510
from localstack.http import Response
1611
from localstack.utils.aws import arns
1712
from localstack.utils.aws.arns import sqs_queue_arn
@@ -22,6 +17,11 @@
2217
from localstack.utils.strings import to_str, truncate
2318
from requests.structures import CaseInsensitiveDict
2419

20+
try:
21+
from localstack.testing.config import TEST_AWS_ACCESS_KEY_ID
22+
except ImportError:
23+
from localstack.constants import TEST_AWS_ACCESS_KEY_ID
24+
2525
from aws_replicator.shared.models import ProxyInstance, ProxyServiceConfig
2626

2727
LOG = logging.getLogger(__name__)

aws-replicator/aws_replicator/server/extension.py

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22

3+
from localstack import config
34
from localstack.aws.chain import CompositeHandler
45
from localstack.extensions.api import Extension, http
56
from localstack.services.internal import get_internal_apis
@@ -10,6 +11,13 @@
1011
class AwsReplicatorExtension(Extension):
1112
name = "aws-replicator"
1213

14+
def on_extension_load(self):
15+
if config.GATEWAY_SERVER == "twisted":
16+
LOG.warning(
17+
"AWS resource replicator: The aws-replicator extension currently requires hypercorn as "
18+
"gateway server. Please start localstack with GATEWAY_SERVER=hypercorn"
19+
)
20+
1321
def update_gateway_routes(self, router: http.Router[http.RouteHandler]):
1422
from aws_replicator.server.request_handler import RequestHandler
1523

aws-replicator/tests/test_proxy_requests.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,19 @@
66
import pytest
77
from botocore.exceptions import ClientError
88
from localstack.aws.connect import connect_to
9-
from localstack.constants import TEST_AWS_ACCOUNT_ID
109
from localstack.utils.aws.arns import sqs_queue_arn, sqs_queue_url_for_arn
1110
from localstack.utils.net import wait_for_port_open
1211
from localstack.utils.sync import retry
1312

1413
from aws_replicator.client.auth_proxy import start_aws_auth_proxy
1514
from aws_replicator.shared.models import ProxyConfig
1615

16+
try:
17+
from localstack.testing.config import TEST_AWS_ACCOUNT_ID
18+
except ImportError:
19+
# backwards compatibility
20+
from localstack.constants import TEST_AWS_ACCOUNT_ID
21+
1722
# binding proxy to 0.0.0.0 to enable testing in CI
1823
PROXY_BIND_HOST = "0.0.0.0"
1924

0 commit comments

Comments
 (0)