Browse code

Ignore CF distros with CustomOrigin in [sync --cf-inval]

Bug reported by Nicholas Cynober where his s3cmd sync --cf-inval
kept crashing on parsing a CloudFront distribution list with both
S3Origin and CustomOrigin distributions.

Let's skip over non-S3Origin distros when translating S3Uri to CFUri.

Michal Ludvig authored on 2011/10/18 18:06:57
Showing 1 changed files
... ...
@@ -553,7 +553,11 @@ class CloudFront(object):
553 553
             response = self.GetList()
554 554
             CloudFront.dist_list = {}
555 555
             for d in response['dist_list'].dist_summs:
556
-                CloudFront.dist_list[getBucketFromHostname(d.info['S3Origin']['DNSName'])[0]] = d.uri()
556
+                if d.info.has_key("S3Origin"):
557
+                    CloudFront.dist_list[getBucketFromHostname(d.info['S3Origin']['DNSName'])[0]] = d.uri()
558
+                else:
559
+                    # Skip over distributions with CustomOrigin
560
+                    continue
557 561
             debug("dist_list: %s" % CloudFront.dist_list)
558 562
         try:
559 563
             return CloudFront.dist_list[uri.bucket()]