Add missing regions to all services
This commit is contained in:
parent
b8a1f85285
commit
d7ba355a65
@ -847,3 +847,11 @@ class APIGatewayBackend(BaseBackend):
|
||||
apigateway_backends = {}
|
||||
for region_name in Session().get_available_regions("apigateway"):
|
||||
apigateway_backends[region_name] = APIGatewayBackend(region_name)
|
||||
for region_name in Session().get_available_regions(
|
||||
"apigateway", partition_name="aws-us-gov"
|
||||
):
|
||||
apigateway_backends[region_name] = APIGatewayBackend(region_name)
|
||||
for region_name in Session().get_available_regions(
|
||||
"apigateway", partition_name="aws-cn"
|
||||
):
|
||||
apigateway_backends[region_name] = APIGatewayBackend(region_name)
|
||||
|
@ -1,7 +1,8 @@
|
||||
from __future__ import unicode_literals
|
||||
import time
|
||||
|
||||
import boto3
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
|
||||
from moto.core import ACCOUNT_ID
|
||||
@ -77,5 +78,9 @@ class AthenaBackend(BaseBackend):
|
||||
|
||||
|
||||
athena_backends = {}
|
||||
for region in boto3.Session().get_available_regions("athena"):
|
||||
for region in Session().get_available_regions("athena"):
|
||||
athena_backends[region] = AthenaBackend(region)
|
||||
for region in Session().get_available_regions("athena", partition_name="aws-us-gov"):
|
||||
athena_backends[region] = AthenaBackend(region)
|
||||
for region in Session().get_available_regions("athena", partition_name="aws-cn"):
|
||||
athena_backends[region] = AthenaBackend(region)
|
||||
|
@ -24,6 +24,8 @@ import weakref
|
||||
import requests.adapters
|
||||
|
||||
import boto.awslambda
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.core.exceptions import RESTError
|
||||
from moto.iam.models import iam_backend
|
||||
@ -1043,10 +1045,10 @@ def do_validate_s3():
|
||||
return os.environ.get("VALIDATE_LAMBDA_S3", "") in ["", "1", "true"]
|
||||
|
||||
|
||||
# Handle us forgotten regions, unless Lambda truly only runs out of US and
|
||||
lambda_backends = {
|
||||
_region.name: LambdaBackend(_region.name) for _region in boto.awslambda.regions()
|
||||
}
|
||||
|
||||
lambda_backends["ap-southeast-2"] = LambdaBackend("ap-southeast-2")
|
||||
lambda_backends["us-gov-west-1"] = LambdaBackend("us-gov-west-1")
|
||||
lambda_backends = {}
|
||||
for region in Session().get_available_regions("lambda"):
|
||||
lambda_backends[region] = LambdaBackend(region)
|
||||
for region in Session().get_available_regions("lambda", partition_name="aws-us-gov"):
|
||||
lambda_backends[region] = LambdaBackend(region)
|
||||
for region in Session().get_available_regions("lambda", partition_name="aws-cn"):
|
||||
lambda_backends[region] = LambdaBackend(region)
|
||||
|
@ -1,5 +1,4 @@
|
||||
from __future__ import unicode_literals
|
||||
import boto3
|
||||
import re
|
||||
import requests.adapters
|
||||
from itertools import cycle
|
||||
@ -12,6 +11,8 @@ import docker
|
||||
import functools
|
||||
import threading
|
||||
import dateutil.parser
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.iam import iam_backends
|
||||
from moto.ec2 import ec2_backends
|
||||
@ -1317,7 +1318,10 @@ class BatchBackend(BaseBackend):
|
||||
job.terminate(reason)
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("batch")
|
||||
batch_backends = {
|
||||
region: BatchBackend(region_name=region) for region in available_regions
|
||||
}
|
||||
batch_backends = {}
|
||||
for region in Session().get_available_regions("batch"):
|
||||
batch_backends[region] = BatchBackend(region)
|
||||
for region in Session().get_available_regions("batch", partition_name="aws-us-gov"):
|
||||
batch_backends[region] = BatchBackend(region)
|
||||
for region in Session().get_available_regions("batch", partition_name="aws-cn"):
|
||||
batch_backends[region] = BatchBackend(region)
|
||||
|
@ -5,6 +5,8 @@ import yaml
|
||||
import uuid
|
||||
|
||||
import boto.cloudformation
|
||||
from boto3 import Session
|
||||
|
||||
from moto.compat import OrderedDict
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
|
||||
@ -717,5 +719,13 @@ class CloudFormationBackend(BaseBackend):
|
||||
|
||||
|
||||
cloudformation_backends = {}
|
||||
for region in boto.cloudformation.regions():
|
||||
cloudformation_backends[region.name] = CloudFormationBackend()
|
||||
for region in Session().get_available_regions("cloudformation"):
|
||||
cloudformation_backends[region] = CloudFormationBackend()
|
||||
for region in Session().get_available_regions(
|
||||
"cloudformation", partition_name="aws-us-gov"
|
||||
):
|
||||
cloudformation_backends[region] = CloudFormationBackend()
|
||||
for region in Session().get_available_regions(
|
||||
"cloudformation", partition_name="aws-cn"
|
||||
):
|
||||
cloudformation_backends[region] = CloudFormationBackend()
|
||||
|
@ -1,4 +1,7 @@
|
||||
import json
|
||||
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core.utils import iso_8601_datetime_with_milliseconds
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.core.exceptions import RESTError
|
||||
@ -431,5 +434,11 @@ class LogGroup(BaseModel):
|
||||
|
||||
|
||||
cloudwatch_backends = {}
|
||||
for region in boto.ec2.cloudwatch.regions():
|
||||
cloudwatch_backends[region.name] = CloudWatchBackend()
|
||||
for region in Session().get_available_regions("cloudwatch"):
|
||||
cloudwatch_backends[region] = CloudWatchBackend()
|
||||
for region in Session().get_available_regions(
|
||||
"cloudwatch", partition_name="aws-us-gov"
|
||||
):
|
||||
cloudwatch_backends[region] = CloudWatchBackend()
|
||||
for region in Session().get_available_regions("cloudwatch", partition_name="aws-cn"):
|
||||
cloudwatch_backends[region] = CloudWatchBackend()
|
||||
|
@ -149,3 +149,9 @@ class CodePipelineBackend(BaseBackend):
|
||||
codepipeline_backends = {}
|
||||
for region in Session().get_available_regions("codepipeline"):
|
||||
codepipeline_backends[region] = CodePipelineBackend()
|
||||
for region in Session().get_available_regions(
|
||||
"codepipeline", partition_name="aws-us-gov"
|
||||
):
|
||||
codepipeline_backends[region] = CodePipelineBackend()
|
||||
for region in Session().get_available_regions("codepipeline", partition_name="aws-cn"):
|
||||
codepipeline_backends[region] = CodePipelineBackend()
|
||||
|
@ -4,6 +4,7 @@ import datetime
|
||||
import json
|
||||
|
||||
import boto.cognito.identity
|
||||
from boto3 import Session
|
||||
|
||||
from moto.compat import OrderedDict
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
@ -136,5 +137,13 @@ class CognitoIdentityBackend(BaseBackend):
|
||||
|
||||
|
||||
cognitoidentity_backends = {}
|
||||
for region in boto.cognito.identity.regions():
|
||||
cognitoidentity_backends[region.name] = CognitoIdentityBackend(region.name)
|
||||
for region in Session().get_available_regions("cognito-identity"):
|
||||
cognitoidentity_backends[region] = CognitoIdentityBackend(region)
|
||||
for region in Session().get_available_regions(
|
||||
"cognito-identity", partition_name="aws-us-gov"
|
||||
):
|
||||
cognitoidentity_backends[region] = CognitoIdentityBackend(region)
|
||||
for region in Session().get_available_regions(
|
||||
"cognito-identity", partition_name="aws-cn"
|
||||
):
|
||||
cognitoidentity_backends[region] = CognitoIdentityBackend(region)
|
||||
|
@ -10,6 +10,7 @@ import time
|
||||
import uuid
|
||||
|
||||
import boto.cognito.identity
|
||||
from boto3 import Session
|
||||
from jose import jws
|
||||
|
||||
from moto.compat import OrderedDict
|
||||
@ -749,8 +750,14 @@ class CognitoIdpBackend(BaseBackend):
|
||||
|
||||
|
||||
cognitoidp_backends = {}
|
||||
for region in boto.cognito.identity.regions():
|
||||
cognitoidp_backends[region.name] = CognitoIdpBackend(region.name)
|
||||
for region in Session().get_available_regions("cognito-idp"):
|
||||
cognitoidp_backends[region] = CognitoIdpBackend(region)
|
||||
for region in Session().get_available_regions(
|
||||
"cognito-idp", partition_name="aws-us-gov"
|
||||
):
|
||||
cognitoidp_backends[region] = CognitoIdpBackend(region)
|
||||
for region in Session().get_available_regions("cognito-idp", partition_name="aws-cn"):
|
||||
cognitoidp_backends[region] = CognitoIdpBackend(region)
|
||||
|
||||
|
||||
# Hack to help moto-server process requests on localhost, where the region isn't
|
||||
|
@ -1084,6 +1084,9 @@ class ConfigBackend(BaseBackend):
|
||||
|
||||
|
||||
config_backends = {}
|
||||
boto3_session = Session()
|
||||
for region in boto3_session.get_available_regions("config"):
|
||||
for region in Session().get_available_regions("config"):
|
||||
config_backends[region] = ConfigBackend()
|
||||
for region in Session().get_available_regions("config", partition_name="aws-us-gov"):
|
||||
config_backends[region] = ConfigBackend()
|
||||
for region in Session().get_available_regions("config", partition_name="aws-cn"):
|
||||
config_backends[region] = ConfigBackend()
|
||||
|
@ -2,6 +2,8 @@ from __future__ import unicode_literals
|
||||
|
||||
import datetime
|
||||
import boto.datapipeline
|
||||
from boto3 import Session
|
||||
|
||||
from moto.compat import OrderedDict
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from .utils import get_random_pipeline_id, remove_capitalization_of_dict_keys
|
||||
@ -142,5 +144,11 @@ class DataPipelineBackend(BaseBackend):
|
||||
|
||||
|
||||
datapipeline_backends = {}
|
||||
for region in boto.datapipeline.regions():
|
||||
datapipeline_backends[region.name] = DataPipelineBackend()
|
||||
for region in Session().get_available_regions("datapipeline"):
|
||||
datapipeline_backends[region] = DataPipelineBackend()
|
||||
for region in Session().get_available_regions(
|
||||
"datapipeline", partition_name="aws-us-gov"
|
||||
):
|
||||
datapipeline_backends[region] = DataPipelineBackend()
|
||||
for region in Session().get_available_regions("datapipeline", partition_name="aws-cn"):
|
||||
datapipeline_backends[region] = DataPipelineBackend(region)
|
||||
|
@ -1,4 +1,5 @@
|
||||
import boto3
|
||||
from boto3 import Session
|
||||
|
||||
from moto.compat import OrderedDict
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
|
||||
@ -226,5 +227,9 @@ class DataSyncBackend(BaseBackend):
|
||||
|
||||
|
||||
datasync_backends = {}
|
||||
for region in boto3.Session().get_available_regions("datasync"):
|
||||
datasync_backends[region] = DataSyncBackend(region_name=region)
|
||||
for region in Session().get_available_regions("datasync"):
|
||||
datasync_backends[region] = DataSyncBackend(region)
|
||||
for region in Session().get_available_regions("datasync", partition_name="aws-us-gov"):
|
||||
datasync_backends[region] = DataSyncBackend(region)
|
||||
for region in Session().get_available_regions("datasync", partition_name="aws-cn"):
|
||||
datasync_backends[region] = DataSyncBackend(region)
|
||||
|
@ -8,7 +8,7 @@ import re
|
||||
import uuid
|
||||
import six
|
||||
|
||||
import boto3
|
||||
from boto3 import Session
|
||||
from botocore.exceptions import ParamValidationError
|
||||
from moto.compat import OrderedDict
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
@ -1484,7 +1484,10 @@ class DynamoDBBackend(BaseBackend):
|
||||
return table.ttl
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("dynamodb")
|
||||
dynamodb_backends = {
|
||||
region: DynamoDBBackend(region_name=region) for region in available_regions
|
||||
}
|
||||
dynamodb_backends = {}
|
||||
for region in Session().get_available_regions("dynamodb"):
|
||||
dynamodb_backends[region] = DynamoDBBackend(region)
|
||||
for region in Session().get_available_regions("dynamodb", partition_name="aws-us-gov"):
|
||||
dynamodb_backends[region] = DynamoDBBackend(region)
|
||||
for region in Session().get_available_regions("dynamodb", partition_name="aws-cn"):
|
||||
dynamodb_backends[region] = DynamoDBBackend(region)
|
||||
|
@ -2,9 +2,10 @@ from __future__ import unicode_literals
|
||||
|
||||
import os
|
||||
import json
|
||||
import boto3
|
||||
import base64
|
||||
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.dynamodb2.models import dynamodb_backends
|
||||
|
||||
@ -139,7 +140,14 @@ class DynamoDBStreamsBackend(BaseBackend):
|
||||
return json.dumps(shard_iterator.get(limit))
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("dynamodbstreams")
|
||||
dynamodbstreams_backends = {
|
||||
region: DynamoDBStreamsBackend(region=region) for region in available_regions
|
||||
}
|
||||
dynamodbstreams_backends = {}
|
||||
for region in Session().get_available_regions("dynamodbstreams"):
|
||||
dynamodbstreams_backends[region] = DynamoDBStreamsBackend(region)
|
||||
for region in Session().get_available_regions(
|
||||
"dynamodbstreams", partition_name="aws-us-gov"
|
||||
):
|
||||
dynamodbstreams_backends[region] = DynamoDBStreamsBackend(region)
|
||||
for region in Session().get_available_regions(
|
||||
"dynamodbstreams", partition_name="aws-cn"
|
||||
):
|
||||
dynamodbstreams_backends[region] = DynamoDBStreamsBackend(region)
|
||||
|
@ -8,6 +8,8 @@ import os
|
||||
import re
|
||||
import six
|
||||
import warnings
|
||||
|
||||
from boto3 import Session
|
||||
from pkg_resources import resource_filename
|
||||
|
||||
import boto.ec2
|
||||
@ -1473,7 +1475,13 @@ class Zone(object):
|
||||
|
||||
|
||||
class RegionsAndZonesBackend(object):
|
||||
regions = [Region(ri.name, ri.endpoint) for ri in boto.ec2.regions()]
|
||||
regions = []
|
||||
for region in Session().get_available_regions("ec2"):
|
||||
regions.append(Region(region, "ec2.{}.amazonaws.com".format(region)))
|
||||
for region in Session().get_available_regions("ec2", partition_name="aws-us-gov"):
|
||||
regions.append(Region(region, "ec2.{}.amazonaws.com".format(region)))
|
||||
for region in Session().get_available_regions("ec2", partition_name="aws-cn"):
|
||||
regions.append(Region(region, "ec2.{}.amazonaws.com.cn".format(region)))
|
||||
|
||||
zones = {
|
||||
"ap-south-1": [
|
||||
@ -1536,6 +1544,11 @@ class RegionsAndZonesBackend(object):
|
||||
zone_id="apne1-az2",
|
||||
),
|
||||
],
|
||||
"ap-east-1": [
|
||||
Zone(region_name="ap-east-1", name="ap-east-1a", zone_id="ape1-az1"),
|
||||
Zone(region_name="ap-east-1", name="ap-east-1b", zone_id="ape1-az2"),
|
||||
Zone(region_name="ap-east-1", name="ap-east-1c", zone_id="ape1-az3"),
|
||||
],
|
||||
"sa-east-1": [
|
||||
Zone(region_name="sa-east-1", name="sa-east-1a", zone_id="sae1-az1"),
|
||||
Zone(region_name="sa-east-1", name="sa-east-1c", zone_id="sae1-az3"),
|
||||
@ -1605,10 +1618,32 @@ class RegionsAndZonesBackend(object):
|
||||
Zone(region_name="us-west-2", name="us-west-2b", zone_id="usw2-az1"),
|
||||
Zone(region_name="us-west-2", name="us-west-2c", zone_id="usw2-az3"),
|
||||
],
|
||||
"me-south-1": [
|
||||
Zone(region_name="me-south-1", name="me-south-1a", zone_id="mes1-az1"),
|
||||
Zone(region_name="me-south-1", name="me-south-1b", zone_id="mes1-az2"),
|
||||
Zone(region_name="me-south-1", name="me-south-1c", zone_id="mes1-az3"),
|
||||
],
|
||||
"cn-north-1": [
|
||||
Zone(region_name="cn-north-1", name="cn-north-1a", zone_id="cnn1-az1"),
|
||||
Zone(region_name="cn-north-1", name="cn-north-1b", zone_id="cnn1-az2"),
|
||||
],
|
||||
"cn-northwest-1": [
|
||||
Zone(
|
||||
region_name="cn-northwest-1",
|
||||
name="cn-northwest-1a",
|
||||
zone_id="cnnw1-az1",
|
||||
),
|
||||
Zone(
|
||||
region_name="cn-northwest-1",
|
||||
name="cn-northwest-1b",
|
||||
zone_id="cnnw1-az2",
|
||||
),
|
||||
Zone(
|
||||
region_name="cn-northwest-1",
|
||||
name="cn-northwest-1c",
|
||||
zone_id="cnnw1-az3",
|
||||
),
|
||||
],
|
||||
"us-gov-west-1": [
|
||||
Zone(
|
||||
region_name="us-gov-west-1", name="us-gov-west-1a", zone_id="usgw1-az1"
|
||||
@ -1620,6 +1655,17 @@ class RegionsAndZonesBackend(object):
|
||||
region_name="us-gov-west-1", name="us-gov-west-1c", zone_id="usgw1-az3"
|
||||
),
|
||||
],
|
||||
"us-gov-east-1": [
|
||||
Zone(
|
||||
region_name="us-gov-east-1", name="us-gov-east-1a", zone_id="usge1-az1"
|
||||
),
|
||||
Zone(
|
||||
region_name="us-gov-east-1", name="us-gov-east-1b", zone_id="usge1-az2"
|
||||
),
|
||||
Zone(
|
||||
region_name="us-gov-east-1", name="us-gov-east-1c", zone_id="usge1-az3"
|
||||
),
|
||||
],
|
||||
}
|
||||
|
||||
def describe_regions(self, region_names=[]):
|
||||
|
@ -3,9 +3,10 @@ import re
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from random import random, randint
|
||||
import boto3
|
||||
|
||||
import pytz
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core.exceptions import JsonRESTError
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.core.utils import unix_time
|
||||
@ -1302,7 +1303,10 @@ class EC2ContainerServiceBackend(BaseBackend):
|
||||
raise NotImplementedError()
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("ecs")
|
||||
ecs_backends = {
|
||||
region: EC2ContainerServiceBackend(region) for region in available_regions
|
||||
}
|
||||
ecs_backends = {}
|
||||
for region in Session().get_available_regions("ecs"):
|
||||
ecs_backends[region] = EC2ContainerServiceBackend(region)
|
||||
for region in Session().get_available_regions("ecs", partition_name="aws-us-gov"):
|
||||
ecs_backends[region] = EC2ContainerServiceBackend(region)
|
||||
for region in Session().get_available_regions("ecs", partition_name="aws-cn"):
|
||||
ecs_backends[region] = EC2ContainerServiceBackend(region)
|
||||
|
@ -4,6 +4,7 @@ from datetime import timedelta
|
||||
|
||||
import boto.emr
|
||||
import pytz
|
||||
from boto3 import Session
|
||||
from dateutil.parser import parse as dtparse
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.emr.exceptions import EmrError
|
||||
@ -460,5 +461,9 @@ class ElasticMapReduceBackend(BaseBackend):
|
||||
|
||||
|
||||
emr_backends = {}
|
||||
for region in boto.emr.regions():
|
||||
emr_backends[region.name] = ElasticMapReduceBackend(region.name)
|
||||
for region in Session().get_available_regions("emr"):
|
||||
emr_backends[region] = ElasticMapReduceBackend(region)
|
||||
for region in Session().get_available_regions("emr", partition_name="aws-us-gov"):
|
||||
emr_backends[region] = ElasticMapReduceBackend(region)
|
||||
for region in Session().get_available_regions("emr", partition_name="aws-cn"):
|
||||
emr_backends[region] = ElasticMapReduceBackend(region)
|
||||
|
@ -1,7 +1,7 @@
|
||||
import os
|
||||
import re
|
||||
import json
|
||||
import boto3
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core.exceptions import JsonRESTError
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
@ -362,5 +362,10 @@ class EventsBackend(BaseBackend):
|
||||
self.event_buses.pop(name, None)
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("events")
|
||||
events_backends = {region: EventsBackend(region) for region in available_regions}
|
||||
events_backends = {}
|
||||
for region in Session().get_available_regions("events"):
|
||||
events_backends[region] = EventsBackend(region)
|
||||
for region in Session().get_available_regions("events", partition_name="aws-us-gov"):
|
||||
events_backends[region] = EventsBackend(region)
|
||||
for region in Session().get_available_regions("events", partition_name="aws-cn"):
|
||||
events_backends[region] = EventsBackend(region)
|
||||
|
@ -6,6 +6,8 @@ import datetime
|
||||
|
||||
|
||||
import boto.glacier
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
|
||||
from .utils import get_job_id
|
||||
@ -221,5 +223,9 @@ class GlacierBackend(BaseBackend):
|
||||
|
||||
|
||||
glacier_backends = {}
|
||||
for region in boto.glacier.regions():
|
||||
glacier_backends[region.name] = GlacierBackend(region)
|
||||
for region in Session().get_available_regions("glacier"):
|
||||
glacier_backends[region] = GlacierBackend(region)
|
||||
for region in Session().get_available_regions("glacier", partition_name="aws-us-gov"):
|
||||
glacier_backends[region] = GlacierBackend(region)
|
||||
for region in Session().get_available_regions("glacier", partition_name="aws-cn"):
|
||||
glacier_backends[region] = GlacierBackend(region)
|
||||
|
@ -9,7 +9,7 @@ import uuid
|
||||
from collections import OrderedDict
|
||||
from datetime import datetime
|
||||
|
||||
import boto3
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from .exceptions import (
|
||||
@ -825,5 +825,10 @@ class IoTBackend(BaseBackend):
|
||||
return self.jobs[job_id]
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("iot")
|
||||
iot_backends = {region: IoTBackend(region) for region in available_regions}
|
||||
iot_backends = {}
|
||||
for region in Session().get_available_regions("iot"):
|
||||
iot_backends[region] = IoTBackend(region)
|
||||
for region in Session().get_available_regions("iot", partition_name="aws-us-gov"):
|
||||
iot_backends[region] = IoTBackend(region)
|
||||
for region in Session().get_available_regions("iot", partition_name="aws-cn"):
|
||||
iot_backends[region] = IoTBackend(region)
|
||||
|
@ -1,8 +1,9 @@
|
||||
from __future__ import unicode_literals
|
||||
import json
|
||||
import time
|
||||
import boto3
|
||||
import jsondiff
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.iot import iot_backends
|
||||
from .exceptions import (
|
||||
@ -205,5 +206,10 @@ class IoTDataPlaneBackend(BaseBackend):
|
||||
return None
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("iot-data")
|
||||
iotdata_backends = {region: IoTDataPlaneBackend(region) for region in available_regions}
|
||||
iotdata_backends = {}
|
||||
for region in Session().get_available_regions("iot-data"):
|
||||
iotdata_backends[region] = IoTDataPlaneBackend(region)
|
||||
for region in Session().get_available_regions("iot-data", partition_name="aws-us-gov"):
|
||||
iotdata_backends[region] = IoTDataPlaneBackend(region)
|
||||
for region in Session().get_available_regions("iot-data", partition_name="aws-cn"):
|
||||
iotdata_backends[region] = IoTDataPlaneBackend(region)
|
||||
|
@ -10,6 +10,8 @@ import itertools
|
||||
from operator import attrgetter
|
||||
from hashlib import md5
|
||||
|
||||
from boto3 import Session
|
||||
|
||||
from moto.compat import OrderedDict
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.core.utils import unix_time
|
||||
@ -530,5 +532,9 @@ class KinesisBackend(BaseBackend):
|
||||
|
||||
|
||||
kinesis_backends = {}
|
||||
for region in boto.kinesis.regions():
|
||||
kinesis_backends[region.name] = KinesisBackend()
|
||||
for region in Session().get_available_regions("kinesis"):
|
||||
kinesis_backends[region] = KinesisBackend()
|
||||
for region in Session().get_available_regions("kinesis", partition_name="aws-us-gov"):
|
||||
kinesis_backends[region] = KinesisBackend()
|
||||
for region in Session().get_available_regions("kinesis", partition_name="aws-cn"):
|
||||
kinesis_backends[region] = KinesisBackend()
|
||||
|
@ -5,6 +5,7 @@ from collections import defaultdict
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
import boto.kms
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.core.utils import iso_8601_datetime_without_milliseconds
|
||||
@ -284,5 +285,9 @@ class KmsBackend(BaseBackend):
|
||||
|
||||
|
||||
kms_backends = {}
|
||||
for region in boto.kms.regions():
|
||||
kms_backends[region.name] = KmsBackend()
|
||||
for region in Session().get_available_regions("kms"):
|
||||
kms_backends[region] = KmsBackend()
|
||||
for region in Session().get_available_regions("kms", partition_name="aws-us-gov"):
|
||||
kms_backends[region] = KmsBackend()
|
||||
for region in Session().get_available_regions("kms", partition_name="aws-cn"):
|
||||
kms_backends[region] = KmsBackend()
|
||||
|
@ -1,3 +1,5 @@
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend
|
||||
import boto.logs
|
||||
from moto.core.utils import unix_time_millis
|
||||
@ -558,6 +560,10 @@ class LogsBackend(BaseBackend):
|
||||
log_group.untag(tags)
|
||||
|
||||
|
||||
logs_backends = {
|
||||
region.name: LogsBackend(region.name) for region in boto.logs.regions()
|
||||
}
|
||||
logs_backends = {}
|
||||
for region in Session().get_available_regions("logs"):
|
||||
logs_backends[region] = LogsBackend(region)
|
||||
for region in Session().get_available_regions("logs", partition_name="aws-us-gov"):
|
||||
logs_backends[region] = LogsBackend(region)
|
||||
for region in Session().get_available_regions("logs", partition_name="aws-cn"):
|
||||
logs_backends[region] = LogsBackend(region)
|
||||
|
@ -3,6 +3,8 @@ from xml.etree import ElementTree as ET
|
||||
import datetime
|
||||
|
||||
import boto3
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
|
||||
from .resources import VOICE_DATA
|
||||
@ -113,7 +115,10 @@ class PollyBackend(BaseBackend):
|
||||
self._lexicons[name] = lexicon
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("polly")
|
||||
polly_backends = {
|
||||
region: PollyBackend(region_name=region) for region in available_regions
|
||||
}
|
||||
polly_backends = {}
|
||||
for region in Session().get_available_regions("polly"):
|
||||
polly_backends[region] = PollyBackend(region)
|
||||
for region in Session().get_available_regions("polly", partition_name="aws-us-gov"):
|
||||
polly_backends[region] = PollyBackend(region)
|
||||
for region in Session().get_available_regions("polly", partition_name="aws-cn"):
|
||||
polly_backends[region] = PollyBackend(region)
|
||||
|
@ -6,6 +6,7 @@ import os
|
||||
|
||||
from collections import defaultdict
|
||||
import boto.rds2
|
||||
from boto3 import Session
|
||||
from jinja2 import Template
|
||||
from re import compile as re_compile
|
||||
from moto.cloudformation.exceptions import UnformattedGetAttTemplateException
|
||||
@ -1501,6 +1502,10 @@ class DBParameterGroup(object):
|
||||
return db_parameter_group
|
||||
|
||||
|
||||
rds2_backends = dict(
|
||||
(region.name, RDS2Backend(region.name)) for region in boto.rds2.regions()
|
||||
)
|
||||
rds2_backends = {}
|
||||
for region in Session().get_available_regions("rds"):
|
||||
rds2_backends[region] = RDS2Backend(region)
|
||||
for region in Session().get_available_regions("rds", partition_name="aws-us-gov"):
|
||||
rds2_backends[region] = RDS2Backend(region)
|
||||
for region in Session().get_available_regions("rds", partition_name="aws-cn"):
|
||||
rds2_backends[region] = RDS2Backend(region)
|
||||
|
@ -4,6 +4,7 @@ import copy
|
||||
import datetime
|
||||
|
||||
import boto.redshift
|
||||
from boto3 import Session
|
||||
from botocore.exceptions import ClientError
|
||||
from moto.compat import OrderedDict
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
@ -897,7 +898,9 @@ class RedshiftBackend(BaseBackend):
|
||||
|
||||
|
||||
redshift_backends = {}
|
||||
for region in boto.redshift.regions():
|
||||
redshift_backends[region.name] = RedshiftBackend(
|
||||
ec2_backends[region.name], region.name
|
||||
)
|
||||
for region in Session().get_available_regions("redshift"):
|
||||
redshift_backends[region] = RedshiftBackend(ec2_backends[region], region)
|
||||
for region in Session().get_available_regions("redshift", partition_name="aws-us-gov"):
|
||||
redshift_backends[region] = RedshiftBackend(ec2_backends[region], region)
|
||||
for region in Session().get_available_regions("redshift", partition_name="aws-cn"):
|
||||
redshift_backends[region] = RedshiftBackend(ec2_backends[region], region)
|
||||
|
@ -1,10 +1,11 @@
|
||||
from __future__ import unicode_literals
|
||||
from builtins import str
|
||||
|
||||
import boto3
|
||||
import json
|
||||
import re
|
||||
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from moto.core import ACCOUNT_ID
|
||||
from .exceptions import BadRequestException
|
||||
@ -350,7 +351,14 @@ class ResourceGroupsBackend(BaseBackend):
|
||||
return self.groups.by_name[group_name]
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("resource-groups")
|
||||
resourcegroups_backends = {
|
||||
region: ResourceGroupsBackend(region_name=region) for region in available_regions
|
||||
}
|
||||
resourcegroups_backends = {}
|
||||
for region in Session().get_available_regions("resource-groups"):
|
||||
resourcegroups_backends[region] = ResourceGroupsBackend(region)
|
||||
for region in Session().get_available_regions(
|
||||
"resource-groups", partition_name="aws-us-gov"
|
||||
):
|
||||
resourcegroups_backends[region] = ResourceGroupsBackend(region)
|
||||
for region in Session().get_available_regions(
|
||||
"resource-groups", partition_name="aws-cn"
|
||||
):
|
||||
resourcegroups_backends[region] = ResourceGroupsBackend(region)
|
||||
|
@ -1,7 +1,8 @@
|
||||
from __future__ import unicode_literals
|
||||
import uuid
|
||||
import boto3
|
||||
import six
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend
|
||||
from moto.core.exceptions import RESTError
|
||||
|
||||
@ -636,9 +637,14 @@ class ResourceGroupsTaggingAPIBackend(BaseBackend):
|
||||
# return failed_resources_map
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions(
|
||||
"resourcegroupstaggingapi"
|
||||
)
|
||||
resourcegroupstaggingapi_backends = {
|
||||
region: ResourceGroupsTaggingAPIBackend(region) for region in available_regions
|
||||
}
|
||||
resourcegroupstaggingapi_backends = {}
|
||||
for region in Session().get_available_regions("resourcegroupstaggingapi"):
|
||||
resourcegroupstaggingapi_backends[region] = ResourceGroupsTaggingAPIBackend(region)
|
||||
for region in Session().get_available_regions(
|
||||
"resourcegroupstaggingapi", partition_name="aws-us-gov"
|
||||
):
|
||||
resourcegroupstaggingapi_backends[region] = ResourceGroupsTaggingAPIBackend(region)
|
||||
for region in Session().get_available_regions(
|
||||
"resourcegroupstaggingapi", partition_name="aws-cn"
|
||||
):
|
||||
resourcegroupstaggingapi_backends[region] = ResourceGroupsTaggingAPIBackend(region)
|
||||
|
@ -7,6 +7,7 @@ import uuid
|
||||
import datetime
|
||||
|
||||
import boto3
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
from .exceptions import (
|
||||
@ -491,7 +492,14 @@ class SecretsManagerBackend(BaseBackend):
|
||||
)
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("secretsmanager")
|
||||
secretsmanager_backends = {
|
||||
region: SecretsManagerBackend(region_name=region) for region in available_regions
|
||||
}
|
||||
secretsmanager_backends = {}
|
||||
for region in Session().get_available_regions("secretsmanager"):
|
||||
secretsmanager_backends[region] = SecretsManagerBackend(region_name=region)
|
||||
for region in Session().get_available_regions(
|
||||
"secretsmanager", partition_name="aws-us-gov"
|
||||
):
|
||||
secretsmanager_backends[region] = SecretsManagerBackend(region_name=region)
|
||||
for region in Session().get_available_regions(
|
||||
"secretsmanager", partition_name="aws-cn"
|
||||
):
|
||||
secretsmanager_backends[region] = SecretsManagerBackend(region_name=region)
|
||||
|
@ -707,6 +707,10 @@ class SNSBackend(BaseBackend):
|
||||
sns_backends = {}
|
||||
for region in Session().get_available_regions("sns"):
|
||||
sns_backends[region] = SNSBackend(region)
|
||||
for region in Session().get_available_regions("sns", partition_name="aws-us-gov"):
|
||||
sns_backends[region] = SNSBackend(region)
|
||||
for region in Session().get_available_regions("sns", partition_name="aws-cn"):
|
||||
sns_backends[region] = SNSBackend(region)
|
||||
|
||||
|
||||
DEFAULT_EFFECTIVE_DELIVERY_POLICY = {
|
||||
|
@ -9,6 +9,7 @@ import struct
|
||||
from xml.sax.saxutils import escape
|
||||
|
||||
import boto.sqs
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core.exceptions import RESTError
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
@ -857,5 +858,9 @@ class SQSBackend(BaseBackend):
|
||||
|
||||
|
||||
sqs_backends = {}
|
||||
for region in boto.sqs.regions():
|
||||
sqs_backends[region.name] = SQSBackend(region.name)
|
||||
for region in Session().get_available_regions("sqs"):
|
||||
sqs_backends[region] = SQSBackend(region)
|
||||
for region in Session().get_available_regions("sqs", partition_name="aws-us-gov"):
|
||||
sqs_backends[region] = SQSBackend(region)
|
||||
for region in Session().get_available_regions("sqs", partition_name="aws-cn"):
|
||||
sqs_backends[region] = SQSBackend(region)
|
||||
|
@ -1,6 +1,9 @@
|
||||
import boto
|
||||
import re
|
||||
from datetime import datetime
|
||||
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend
|
||||
from moto.core.utils import iso_8601_datetime_without_milliseconds
|
||||
from moto.sts.models import ACCOUNT_ID
|
||||
@ -280,7 +283,12 @@ class StepFunctionBackend(BaseBackend):
|
||||
return ACCOUNT_ID
|
||||
|
||||
|
||||
stepfunction_backends = {
|
||||
_region.name: StepFunctionBackend(_region.name)
|
||||
for _region in boto.awslambda.regions()
|
||||
}
|
||||
stepfunction_backends = {}
|
||||
for region in Session().get_available_regions("stepfunctions"):
|
||||
stepfunction_backends[region] = StepFunctionBackend(region)
|
||||
for region in Session().get_available_regions(
|
||||
"stepfunctions", partition_name="aws-us-gov"
|
||||
):
|
||||
stepfunction_backends[region] = StepFunctionBackend(region)
|
||||
for region in Session().get_available_regions("stepfunctions", partition_name="aws-cn"):
|
||||
stepfunction_backends[region] = StepFunctionBackend(region)
|
||||
|
@ -1,6 +1,7 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import boto.swf
|
||||
from boto3 import Session
|
||||
|
||||
from moto.core import BaseBackend
|
||||
|
||||
@ -418,5 +419,9 @@ class SWFBackend(BaseBackend):
|
||||
|
||||
|
||||
swf_backends = {}
|
||||
for region in boto.swf.regions():
|
||||
swf_backends[region.name] = SWFBackend(region.name)
|
||||
for region in Session().get_available_regions("swf"):
|
||||
swf_backends[region] = SWFBackend(region)
|
||||
for region in Session().get_available_regions("swf", partition_name="aws-us-gov"):
|
||||
swf_backends[region] = SWFBackend(region)
|
||||
for region in Session().get_available_regions("swf", partition_name="aws-cn"):
|
||||
swf_backends[region] = SWFBackend(region)
|
||||
|
@ -1,5 +1,5 @@
|
||||
from __future__ import unicode_literals
|
||||
import boto3
|
||||
from boto3 import Session
|
||||
from moto.core import BaseBackend, BaseModel
|
||||
|
||||
|
||||
@ -16,5 +16,10 @@ class {{ service_class }}Backend(BaseBackend):
|
||||
# add methods from here
|
||||
|
||||
|
||||
available_regions = boto3.session.Session().get_available_regions("{{ service }}")
|
||||
{{ escaped_service }}_backends = {region: {{ service_class }}Backend(region) for region in available_regions}
|
||||
{{ escaped_service }}_backends = {}
|
||||
for region in Session().get_available_regions("{{ service }}"):
|
||||
{{ escaped_service }}_backends[region] = {{ service_class }}Backend()
|
||||
for region in Session().get_available_regions("{{ service }}", partition_name="aws-us-gov"):
|
||||
{{ escaped_service }}_backends[region] = {{ service_class }}Backend()
|
||||
for region in Session().get_available_regions("{{ service }}", partition_name="aws-cn"):
|
||||
{{ escaped_service }}_backends[region] = {{ service_class }}Backend()
|
||||
|
@ -11,7 +11,7 @@ from moto import mock_ec2, mock_ec2_deprecated
|
||||
def test_describe_regions():
|
||||
conn = boto.connect_ec2("the_key", "the_secret")
|
||||
regions = conn.get_all_regions()
|
||||
regions.should.have.length_of(16)
|
||||
regions.should.have.length_of(22)
|
||||
for region in regions:
|
||||
region.endpoint.should.contain(region.name)
|
||||
|
||||
@ -32,7 +32,7 @@ def test_availability_zones():
|
||||
def test_boto3_describe_regions():
|
||||
ec2 = boto3.client("ec2", "us-east-1")
|
||||
resp = ec2.describe_regions()
|
||||
resp["Regions"].should.have.length_of(16)
|
||||
resp["Regions"].should.have.length_of(22)
|
||||
for rec in resp["Regions"]:
|
||||
rec["Endpoint"].should.contain(rec["RegionName"])
|
||||
|
||||
|
@ -3,13 +3,21 @@ import boto.ec2
|
||||
import boto.ec2.autoscale
|
||||
import boto.ec2.elb
|
||||
import sure
|
||||
from boto3 import Session
|
||||
|
||||
from moto import mock_ec2_deprecated, mock_autoscaling_deprecated, mock_elb_deprecated
|
||||
|
||||
from moto.ec2 import ec2_backends
|
||||
|
||||
|
||||
def test_use_boto_regions():
|
||||
boto_regions = {r.name for r in boto.ec2.regions()}
|
||||
boto_regions = set()
|
||||
for region in Session().get_available_regions("ec2"):
|
||||
boto_regions.add(region)
|
||||
for region in Session().get_available_regions("ec2", partition_name="aws-us-gov"):
|
||||
boto_regions.add(region)
|
||||
for region in Session().get_available_regions("ec2", partition_name="aws-cn"):
|
||||
boto_regions.add(region)
|
||||
moto_regions = set(ec2_backends)
|
||||
|
||||
moto_regions.should.equal(boto_regions)
|
||||
|
@ -44,7 +44,7 @@ def test_describe_job():
|
||||
joboutput.should.have.key("Tier").which.should.equal("Standard")
|
||||
joboutput.should.have.key("StatusCode").which.should.equal("InProgress")
|
||||
joboutput.should.have.key("VaultARN").which.should.equal(
|
||||
"arn:aws:glacier:RegionInfo:us-west-2:012345678901:vaults/my_vault"
|
||||
"arn:aws:glacier:us-west-2:012345678901:vaults/my_vault"
|
||||
)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user