Add support and unittests for Route53 tags

This commit is contained in:
Alfred Moreno 2016-09-20 17:41:23 -07:00
commit 9a7556b3af
4 changed files with 136 additions and 2 deletions

View file

@ -1,5 +1,7 @@
from __future__ import unicode_literals
from collections import defaultdict
import uuid
from jinja2 import Template
@ -226,6 +228,7 @@ class Route53Backend(BaseBackend):
def __init__(self):
self.zones = {}
self.health_checks = {}
self.resource_tags = defaultdict(dict)
def create_hosted_zone(self, name, private_zone, comment=None):
new_id = get_random_hex()
@ -233,6 +236,25 @@ class Route53Backend(BaseBackend):
self.zones[new_id] = new_zone
return new_zone
def change_tags_for_resource(self, resource_id, tags):
if 'Tag' in tags:
for key, tag in tags.items():
for t in tag:
self.resource_tags[resource_id][t['Key']] = t['Value']
else:
for _, keys in tags.items():
if isinstance(keys, list):
for key in keys:
del(self.resource_tags[resource_id][key])
else:
del(self.resource_tags[resource_id][keys])
def list_tags_for_resource(self, resource_id):
if resource_id in self.resource_tags:
return self.resource_tags[resource_id]
def get_all_hosted_zones(self):
return self.zones.values()