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.
... | ... |
@@ -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()] |