Ejemplo n.º 1
0
Archivo: cfr.go Proyecto: 2722/lantern
func DisableDistribution(cfr *cloudfront.CloudFront, dist *Distribution) error {
	// See:
	// http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/DeleteDistribution.html
	getreq := &cloudfront.GetDistributionConfigRequest{ID: dist.distributionId}
	getresp, err := cfr.GetDistributionConfig(getreq)
	if err != nil {
		return err
	}
	getresp.DistributionConfig.Enabled = aws.False()
	setreq := &cloudfront.UpdateDistributionRequest{
		ID:                 dist.distributionId,
		IfMatch:            getresp.ETag,
		DistributionConfig: getresp.DistributionConfig,
	}
	setresp, err := cfr.UpdateDistribution(setreq)
	if err != nil {
		return err
	}
	if *setresp.Distribution.DistributionConfig.Enabled != false {
		return fmt.Errorf("Attempt to disable distribution had no effect")
	}
	dist.Enabled = false
	dist.Status = "InProgress"
	return nil
}