From c5466cb0a645b3016e3b4ec48b86df16dc7c59f3 Mon Sep 17 00:00:00 2001 From: Michael Mittelstadt Date: Wed, 5 Feb 2014 11:56:43 -0500 Subject: [PATCH] Handle pagination when there are over 100 IAM Certificates --- .../provider/ec2/iam_server_certificate.rb | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/ironfan/provider/ec2/iam_server_certificate.rb b/lib/ironfan/provider/ec2/iam_server_certificate.rb index f7683498..0bb0946c 100644 --- a/lib/ironfan/provider/ec2/iam_server_certificate.rb +++ b/lib/ironfan/provider/ec2/iam_server_certificate.rb @@ -27,10 +27,19 @@ def name() # Discovery # def self.load!(cluster=nil) - Ec2.iam.list_server_certificates.body['Certificates'].each do |cert| - iss = new(:adaptee => cert) - remember(iss, { :id => cert['ServerCertificateName'] }) - remember(iss, { :id => "#{ARN_PREFIX}:#{cert['Arn']}" }) + opts = {} + while true do + res = Ec2.iam.list_server_certificates(opts) + res.body['Certificates'].each do |cert| + iss = new(:adaptee => cert) + remember(iss, { :id => cert['ServerCertificateName'] }) + remember(iss, { :id => "#{ARN_PREFIX}:#{cert['Arn']}" }) + end + if res.body['Marker'] + opts['Marker'] = res.body['Marker'] + else + break + end end end