lib/awstool/instance.rb in awstool-0.0.2 vs lib/awstool/instance.rb in awstool-0.1.0

- old
+ new

@@ -1,39 +1,47 @@ require 'erb' +require 'fog' class Awstool::Instance def initialize(options) @options = options @compute = Fog::Compute.new( - :provider => 'AWS', - :region => @options['region'], - :aws_access_key_id => @options['access_key_id'], - :aws_secret_access_key => @options['access_key'], + provider: 'AWS', + region: @options['region'], + aws_access_key_id: @options['access_key_id'], + aws_secret_access_key: @options['access_key'], ) end def launch @instance = @compute.servers.create( image_id: @options['image-id'], flavor_id: @options['instance-type'], security_group_ids: @options['security-group-ids'], - subnet_id: @options['subnet-id'], + subnet_id: @options['subnet-ids'][@options['subnet-id-index']], key_name: @options['key-name'], tags: @options['tags'], user_data: ERB.new(File.read(@options['userdata'])).result ) @instance.wait_for { ready? } pp @instance.reload end def set_dns dns = Fog::DNS.new( - :provider => 'AWS', - :aws_access_key_id => @options['access_key_id'], - :aws_secret_access_key => @options['access_key'], + provider: 'AWS', + aws_access_key_id: @options['access_key_id'], + aws_secret_access_key: @options['access_key'], ) zone = dns.zones.get(@options['dns-zone-id']) + + if @options['purge_dns'] + record = zone.records.find { |r| r.name == "#{@options['hostname']}." } + if record + record.destroy + end + end @record = zone.records.create( value: @instance.private_ip_address, name: @options['hostname'], type: 'A'