orenoblog

エンジニアになりたいExcel方眼紙erの物語

Route53 HostedZoneをfogのdestroyで消してみる

以前vagrant-cloudstackとvagrant-awsの同居ができず、

fogのバージョン依存エラーで困ったことがあったのですが

改めてfogとはなんだったのだろうと簡単ですが調べてみました。

fogは様々なクラウドサービスのAPI(Provider)を扱うためのRubyライブラリです。終わり。

LANG=jaの私にはこれが精一杯でした。

どのような操作やProviderをサポートしているかはソース眺めてみるとわかる気がしてきます。

AWS, OpenstackやXenserver, vsphereの操作もできそうです。

とても素敵なライブラリです。

試しにRoute53に誤って作成した空のHosted Zoneを削除したいと思います。

fogはRoute53のどのような操作をサポートしているかソースを眺めて確かめます。

#!/usr/bin/env ruby
require 'fog'

dns = Fog::DNS.new(
  :provider => 'AWS',
  :aws_access_key_id =>  '<access_key>',
  :aws_secret_access_key => '<secret_access_key>'
)

hosted_zone = dns.list_hosted_zones

hosted_zone.body["HostedZones"].each do |zonedata|
  puts zonedata["Id"] + "," + zonedata["Name"]
  zone = dns.zones.get(zonedata["Id"])
  begin
    zone.destroy
  rescue
    puts "おっとっと" + zonedata["Name"] + "(" + zonedata["Id"] + ")は消せないぜ"
  end
end

hosted_zone.body["HostedZones"].each do |zone|
  puts zone["Id"] + "," + zone["Name"]
end

Hosted Zone内にレコードが残ってていても問答無用で消したいなって思ったのですが

ソースコードの読解力がなくてもう深夜・・・基礎が足りない。

これがExcel方眼紙erの実力だぜ