class EC2::InstanceData

Constants

META_DATA_URL

Attributes

instance_data_accessible[R]

Public Class Methods

new(meta_data_url = META_DATA_URL) click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 20
def initialize(meta_data_url = META_DATA_URL)
  @meta_data_url = meta_data_url
  # see if we can access the meta data. Be unforgiving - if anything goes wrong
  # just mark instance data as unaccessible.
  begin
    open(@meta_data_url)
    @instance_data_accessible = true
  rescue StandardError => e
    @instance_data_accessible = false
  end
end

Public Instance Methods

ami_id() click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 40
def ami_id
  read_meta_data('ami-id')
end
ancestor_ami_ids() click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 44
def ancestor_ami_ids
  read_meta_data_list('ancestor-ami-ids')
end
availability_zone() click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 56
def availability_zone
  read_meta_data('placement/availability-zone')
end
block_device_mapping() click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 52
def block_device_mapping
  read_meta_data_hash('block-device-mapping')
end
kernel_id() click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 32
def kernel_id
  read_meta_data('kernel-id')
end
product_codes() click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 48
def product_codes
  read_meta_data_list('product-codes')
end
ramdisk_id() click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 36
def ramdisk_id
  read_meta_data('ramdisk-id')
end

Private Instance Methods

list_meta_data_index(path) click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 78
def list_meta_data_index(path)
  read_meta_data_list(File.join(path, ''))
end
read_meta_data(path) click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 83
def read_meta_data(path)
  nil if !@instance_data_accessible
  begin
    open(File.join(@meta_data_url, path)) do |cio|
      return cio.read.to_s.strip
    end
  rescue
    return nil
  end
end
read_meta_data_hash(path) click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 60
def read_meta_data_hash(path)
  keys = list_meta_data_index(path)
  return nil if keys.nil?
  hash = {}
  keys.each do |key|
    value = read_meta_data(File.join(path, key))
    hash[key] = value if value
  end
  hash
end
read_meta_data_list(path) click to toggle source
# File lib/ec2/amitools/instance-data.rb, line 72
def read_meta_data_list(path)
  list = read_meta_data(path)
  list.nil? ? nil : list.split("\n")
end