Add multi-region support to EC2 Instances
This commit is contained in:
parent
348d1803ed
commit
82eef28937
8 changed files with 92 additions and 24 deletions
|
|
@ -9,8 +9,8 @@ from .utils import convert_regex_to_flask_path
|
|||
class MockAWS(object):
|
||||
nested_count = 0
|
||||
|
||||
def __init__(self, backend):
|
||||
self.backend = backend
|
||||
def __init__(self, backends):
|
||||
self.backends = backends
|
||||
|
||||
if self.__class__.nested_count == 0:
|
||||
HTTPretty.reset()
|
||||
|
|
@ -26,13 +26,15 @@ class MockAWS(object):
|
|||
|
||||
def start(self):
|
||||
self.__class__.nested_count += 1
|
||||
self.backend.reset()
|
||||
for backend in self.backends.values():
|
||||
backend.reset()
|
||||
|
||||
if not HTTPretty.is_enabled():
|
||||
HTTPretty.enable()
|
||||
|
||||
for method in HTTPretty.METHODS:
|
||||
for key, value in self.backend.urls.iteritems():
|
||||
backend = self.backends.values()[0]
|
||||
for key, value in backend.urls.iteritems():
|
||||
HTTPretty.register_uri(
|
||||
method=method,
|
||||
uri=re.compile(key),
|
||||
|
|
@ -151,6 +153,6 @@ class BaseBackend(object):
|
|||
|
||||
def decorator(self, func=None):
|
||||
if func:
|
||||
return MockAWS(self)(func)
|
||||
return MockAWS({'global': self})(func)
|
||||
else:
|
||||
return MockAWS(self)
|
||||
return MockAWS({'global': self})
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import datetime
|
||||
import json
|
||||
import re
|
||||
|
||||
from urlparse import parse_qs, urlparse
|
||||
|
||||
|
|
@ -9,6 +10,8 @@ from moto.core.utils import camelcase_to_underscores, method_names_from_class
|
|||
|
||||
class BaseResponse(object):
|
||||
|
||||
region = 'us-east-1'
|
||||
|
||||
def dispatch(self, request, full_url, headers):
|
||||
querystring = {}
|
||||
|
||||
|
|
@ -38,6 +41,9 @@ class BaseResponse(object):
|
|||
self.path = urlparse(full_url).path
|
||||
self.querystring = querystring
|
||||
self.method = request.method
|
||||
region = re.search(r'\.(.+?)\.amazonaws\.com', full_url)
|
||||
if region:
|
||||
self.region = region.group(1)
|
||||
|
||||
self.headers = dict(request.headers)
|
||||
self.response_headers = headers
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue