class Roadworker::Route53Wrapper::HostedzoneCollectionWrapper

Public Class Methods

new(hosted_zones_response, options) click to toggle source
# File lib/roadworker/route53-wrapper.rb, line 33
def initialize(hosted_zones_response, options)
  @hosted_zones_response = hosted_zones_response
  @options = options
end

Public Instance Methods

create(name, opts = {}) click to toggle source
# File lib/roadworker/route53-wrapper.rb, line 45
def create(name, opts = {})
  if vpc = opts[:vpc]
    vpcs = [vpc]
  else
    vpcs = []
    opts.delete(:vpc)
  end

  logmsg = 'Create Hostedzone'
  logmsg << " #{vpc.inspect}"
  log(:info, logmsg, :cyan, name)

  if @options.dry_run
    opts.delete(:vpc)
    zone = OpenStruct.new({:name => name, :rrsets => [], :vpcs => vpcs}.merge(opts))
  else
    params = {
      :name => name,
      :caller_reference => "roadworker #{Roadworker::VERSION} #{UUID.new.generate}",
    }
    if vpc
      params[:vpc] = vpc
    end
    zone = @options.route53.create_hosted_zone(params).hosted_zone
    @options.hosted_zone_name = name
    @options.updated = true
  end

  HostedzoneWrapper.new(zone, vpcs, @options)
end
each() { |hostedzone_wrapper| ... } click to toggle source
# File lib/roadworker/route53-wrapper.rb, line 38
def each
  Collection.batch(@hosted_zones_response, :hosted_zones) do |zone|
    resp = @options.route53.get_hosted_zone(id: zone.id)
    yield(HostedzoneWrapper.new(resp.hosted_zone, resp.vp_cs, @options))
  end
end