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