class CoreOS
Constants
- DEFAULTS
Public Class Methods
channel(channel_name)
click to toggle source
# File lib/coreos_ami.rb, line 16 def self.channel(channel_name) new(channel_name) end
new(channel = :stable)
click to toggle source
# File lib/coreos_ami.rb, line 12 def initialize(channel = :stable) @channel = channel end
Public Instance Methods
ami(opt = {})
click to toggle source
return AMI name as string
# File lib/coreos_ami.rb, line 40 def ami(opt = {}) args = defaults_merge(opt) path = [base_url, args[:release].to_s, "coreos_production_ami_#{args[:virtualization]}_#{args[:region]}.txt"].join('/') get(path) end
amis(opt = {})
click to toggle source
return hash of all AMIs for release version
# File lib/coreos_ami.rb, line 33 def amis(opt = {}) args = defaults_merge(opt) path = [base_url, args[:release].to_s, 'coreos_production_ami_all.json'].join('/') JSON.parse(get(path)) end
base_url()
click to toggle source
# File lib/coreos_ami.rb, line 20 def base_url "http://#{@channel}.release.core-os.net/amd64-usr" end
get(uri)
click to toggle source
# File lib/coreos_ami.rb, line 24 def get(uri) begin Net::HTTP.get_response(URI.parse(uri)).body.chomp rescue => e raise "Error with coreos url: #{uri}: #{e.message}" end end
Private Instance Methods
defaults_merge(opt)
click to toggle source
ignore any nils in passed opts
# File lib/coreos_ami.rb, line 49 def defaults_merge(opt) DEFAULTS.merge(opt) do |_, from_default, from_opt| from_opt || from_default end end