Keep current region when creating SNS ARN topic

This commit is contained in:
Ilya Sukhanov 2015-07-31 16:01:07 -04:00
commit e08796bcf4
4 changed files with 33 additions and 17 deletions

View file

@ -27,7 +27,7 @@ class Topic(object):
self.policy = DEFAULT_TOPIC_POLICY
self.delivery_policy = ""
self.effective_delivery_policy = DEFAULT_EFFECTIVE_DELIVERY_POLICY
self.arn = make_arn_for_topic(self.account_id, name)
self.arn = make_arn_for_topic(self.account_id, name, sns_backend.region_name)
self.subscriptions_pending = 0
self.subscriptions_confimed = 0
@ -135,11 +135,18 @@ class PlatformEndpoint(object):
class SNSBackend(BaseBackend):
def __init__(self):
def __init__(self, region_name):
super(SNSBackend, self).__init__()
self.topics = OrderedDict()
self.subscriptions = OrderedDict()
self.applications = {}
self.platform_endpoints = {}
self.region_name = region_name
def reset(self):
region_name = self.region_name
self.__dict__ = {}
self.__init__(region_name)
def create_topic(self, name):
topic = Topic(name, self)
@ -247,7 +254,7 @@ class SNSBackend(BaseBackend):
sns_backends = {}
for region in boto.sns.regions():
sns_backends[region.name] = SNSBackend()
sns_backends[region.name] = SNSBackend(region.name)
DEFAULT_TOPIC_POLICY = {

View file

@ -2,8 +2,8 @@ from __future__ import unicode_literals
import uuid
def make_arn_for_topic(account_id, name):
return "arn:aws:sns:us-east-1:{0}:{1}".format(account_id, name)
def make_arn_for_topic(account_id, name, region_name):
return "arn:aws:sns:{0}:{1}:{2}".format(region_name, account_id, name)
def make_arn_for_subscription(topic_arn):