Repository: libcloud Updated Branches: refs/heads/trunk b439b161c -> 92b8a0700
Add Security Token Service support for Route 53 Closes #980 Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/92b8a070 Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/92b8a070 Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/92b8a070 Branch: refs/heads/trunk Commit: 92b8a07006a05c9b6fb88921c6d105a66d8f349b Parents: b439b16 Author: Vlad Glagolev <[email protected]> Authored: Thu Jan 26 18:02:03 2017 -0500 Committer: Anthony Shaw <[email protected]> Committed: Tue Feb 21 17:31:15 2017 +0100 ---------------------------------------------------------------------- libcloud/dns/drivers/route53.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/92b8a070/libcloud/dns/drivers/route53.py ---------------------------------------------------------------------- diff --git a/libcloud/dns/drivers/route53.py b/libcloud/dns/drivers/route53.py index 040cdbc..0cb8707 100644 --- a/libcloud/dns/drivers/route53.py +++ b/libcloud/dns/drivers/route53.py @@ -38,7 +38,7 @@ from libcloud.dns.types import Provider, RecordType from libcloud.dns.types import ZoneDoesNotExistError, RecordDoesNotExistError from libcloud.dns.base import DNSDriver, Zone, Record from libcloud.common.types import LibcloudError -from libcloud.common.aws import AWSGenericResponse +from libcloud.common.aws import AWSGenericResponse, AWSTokenConnection from libcloud.common.base import ConnectionUserAndKey @@ -67,7 +67,7 @@ class Route53DNSResponse(AWSGenericResponse): } -class Route53Connection(ConnectionUserAndKey): +class BaseRoute53Connection(ConnectionUserAndKey): host = API_HOST responseCls = Route53DNSResponse @@ -96,6 +96,10 @@ class Route53Connection(ConnectionUserAndKey): return b64_hmac.decode('utf-8') +class Route53Connection(AWSTokenConnection, BaseRoute53Connection): + pass + + class Route53DNSDriver(DNSDriver): type = Provider.ROUTE53 name = 'Route53 DNS' @@ -115,6 +119,10 @@ class Route53DNSDriver(DNSDriver): RecordType.TXT: 'TXT', } + def __init__(self, *args, **kwargs): + self.token = kwargs.pop('token', None) + super(Route53DNSDriver, self).__init__(*args, **kwargs) + def iterate_zones(self): return self._get_more('zones') @@ -546,3 +554,8 @@ class Route53DNSDriver(DNSDriver): return items, last_key, exhausted else: return [], None, True + + def _ex_connection_class_kwargs(self): + kwargs = super(Route53DNSDriver, self)._ex_connection_class_kwargs() + kwargs['token'] = self.token + return kwargs
