From 1f75c2cc4804d5d65473fba39b1ed6525b7fba3b Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Mon, 7 May 2018 11:18:15 -0700 Subject: [PATCH] route53: add backward compat for pre-2.2 IAM perms backward compat for 2.2, where we only required access to "listHostedZones" --- src/dns/route53.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/dns/route53.js b/src/dns/route53.js index fde6f4fbf..7a1cfbdad 100644 --- a/src/dns/route53.js +++ b/src/dns/route53.js @@ -39,7 +39,16 @@ function getZoneByName(dnsConfig, zoneName, callback) { assert.strictEqual(typeof callback, 'function'); var route53 = new AWS.Route53(getDnsCredentials(dnsConfig)); - route53.listHostedZonesByName({ MaxItems: '1', DNSName: zoneName + '.' }, function (error, result) { + + // backward compat for 2.2, where we only required access to "listHostedZones" + let listHostedZones; + if (dnsConfig.listHostedZonesByName) { + listHostedZones = route53.listHostedZonesByName.bind(route53, { MaxItems: '1', DNSName: zoneName + '.' }); + } else { + listHostedZones = route53.listHostedZones.bind(route53, {}); // currently, this route does not support > 100 zones + } + + listHostedZones(function (error, result) { if (error && error.code === 'AccessDenied') return callback(new DomainsError(DomainsError.ACCESS_DENIED, error.message)); if (error && error.code === 'InvalidClientTokenId') return callback(new DomainsError(DomainsError.ACCESS_DENIED, error.message)); if (error) return callback(new DomainsError(DomainsError.EXTERNAL_ERROR, error.message));