Ejemplo n.º 1
0
Archivo: cfr.go Proyecto: 2722/lantern
func ListDistributions(cfr *cloudfront.CloudFront) ([]*Distribution, error) {
	req := cloudfront.ListDistributionsRequest{}
	req.MaxItems = aws.String(strconv.Itoa(listBatchSize))
	ret := make([]*Distribution, 0, listBatchSize)
	for {
		resp, err := cfr.ListDistributions(&req)
		if err != nil {
			return nil, err
		}
		nitems := *resp.DistributionList.Quantity
		for i := 0; i < nitems; i++ {
			cfrDist := resp.DistributionList.Items[i]
			dist := Distribution{
				Status:         *cfrDist.Status,
				Domain:         *cfrDist.DomainName,
				InstanceId:     *cfrDist.DefaultCacheBehavior.TargetOriginID,
				Comment:        *cfrDist.Comment,
				Enabled:        *cfrDist.Enabled,
				distributionId: cfrDist.ID,
			}
			ret = append(ret, &dist)
		}
		if resp.DistributionList.NextMarker == nil {
			break
		}
		req.Marker = resp.DistributionList.NextMarker
	}
	return ret, nil
}