class Cumulus::CloudFront::OriginDiff

Public: Represents a single difference between local configuration and AWS configuration of zones.

Attributes

changed_headers[RW]
custom_changes[RW]

Public Class Methods

custom(changes, aws, local) click to toggle source

Public: Static method that produces a diff representing changes in custom origin

changed_origins - the CustomOriginDiffs local - the local configuration for the zone

Returns the diff

# File lib/cloudfront/models/OriginDiff.rb, line 32
def self.custom(changes, aws, local)
  diff = OriginDiff.new(CUSTOM, aws, local)
  diff.custom_changes = changes
  diff
end
headers(changes, local) click to toggle source
# File lib/cloudfront/models/OriginDiff.rb, line 38
def self.headers(changes, local)
  diff = OriginDiff.new(HEADERS, nil, local)
  diff.changed_headers = changes
  diff
end

Public Instance Methods

asset_type() click to toggle source
# File lib/cloudfront/models/OriginDiff.rb, line 89
def asset_type
  if (!@local.nil? and @local.s3_access_origin_identity.nil?) or (!@aws.nil? and @aws.s3_origin_config.nil?)
    "Custom Origin"
  else
    "S3 Origin"
  end
end
aws_name() click to toggle source
# File lib/cloudfront/models/OriginDiff.rb, line 101
def aws_name
  @aws.id
end
diff_string() click to toggle source
# File lib/cloudfront/models/OriginDiff.rb, line 44
def diff_string
  case @type
  when DOMAIN
    [
      "domain:",
      Colors.aws_changes("\tAWS - #{@aws.domain_name}"),
      Colors.local_changes("\tLocal - #{@local.domain_name}"),
    ].join("\n")
  when PATH
    [
      "path:",
      Colors.aws_changes("\tAWS - #{@aws.origin_path}"),
      Colors.local_changes("\tLocal - #{@local.origin_path}"),
    ].join("\n")
  when S3
    aws_value = (@aws.s3_origin_config.origin_access_identity rescue nil)
    [
      "s3 origin access identity:",
      Colors.aws_changes("\tAWS - #{aws_value}"),
      Colors.local_changes("\tLocal - #{@local.s3_access_origin_identity}"),
    ].join("\n")
  when CUSTOM
    [
      "custom origin config:",
      (@custom_changes.flat_map do |c|
        c.to_s.lines.map { |l| "\t#{l.chomp}"}
      end).join("\n"),
    ].join("\n")
  when HEADERS
    [
      "custom headers:",
      @changed_headers.map do |h|
        if h.type == ADD or h.type == UNMANAGED
          h.to_s.lines.map{ |l| "\t#{l}".chomp("\n") }
        else
          [
            "\t#{h.local_name}",
            h.to_s.lines.map { |l| "\t\t#{l}".chomp("\n")}
          ]
        end
      end
    ].flatten.join("\n")
  end
end
local_name() click to toggle source
# File lib/cloudfront/models/OriginDiff.rb, line 97
def local_name
  @local.id
end