Sha256: a7d7f3d766cf98b3459d555ed4491fc6f92d8c9d7e869d359719e30b94f0c046

Contents?: true

Size: 951 Bytes

Versions: 39

Compression:

Stored size: 951 Bytes

Contents

require 'facter/util/ec2'
require 'open-uri'

def metadata(id = "")
  open("http://169.254.169.254/2008-02-01/meta-data/#{id||=''}").read.
    split("\n").each do |o|
    key = "#{id}#{o.gsub(/\=.*$/, '/')}"
    if key[-1..-1] != '/'
      value = open("http://169.254.169.254/2008-02-01/meta-data/#{key}").read.
        split("\n")
      symbol = "ec2_#{key.gsub(/\-|\//, '_')}".to_sym
      Facter.add(symbol) { setcode { value.join(',') } }
    else
      metadata(key)
    end
  end
rescue => details
  Facter.warn "Could not retrieve ec2 metadata: #{details.message}"
end

def userdata()
  Facter.add(:ec2_userdata) do
    setcode do
      if userdata = Facter::Util::EC2.userdata
        userdata.split
      end
    end
  end
end

if (Facter::Util::EC2.has_euca_mac? || Facter::Util::EC2.has_openstack_mac? ||
    Facter::Util::EC2.has_ec2_arp?) && Facter::Util::EC2.can_connect?
  metadata
  userdata
else
  Facter.debug "Not an EC2 host"
end

Version data entries

39 entries across 39 versions & 2 rubygems

Version Path
facter-1.7.6 lib/facter/ec2.rb
facter-2.0.2 lib/facter/ec2.rb
facter-2.0.2-x86-mingw32 lib/facter/ec2.rb
facter-2.0.2-universal-darwin lib/facter/ec2.rb
facter-2.0.1 lib/facter/ec2.rb
facter-2.0.1-x86-mingw32 lib/facter/ec2.rb
facter-2.0.1-universal-darwin lib/facter/ec2.rb
facter-2.0.1.rc4 lib/facter/ec2.rb
facter-2.0.1.rc4-x86-mingw32 lib/facter/ec2.rb
facter-2.0.1.rc4-universal-darwin lib/facter/ec2.rb
facter-2.0.1.rc3 lib/facter/ec2.rb
facter-2.0.1.rc3-x86-mingw32 lib/facter/ec2.rb
facter-2.0.1.rc3-universal-darwin lib/facter/ec2.rb
facter-2.0.1.rc2 lib/facter/ec2.rb
facter-2.0.1.rc2-x86-mingw32 lib/facter/ec2.rb
facter-2.0.1.rc2-universal-darwin lib/facter/ec2.rb
facter-2.0.1.rc1 lib/facter/ec2.rb
facter-2.0.1.rc1-x86-mingw32 lib/facter/ec2.rb
facter-2.0.1.rc1-universal-darwin lib/facter/ec2.rb
facter-1.7.5 lib/facter/ec2.rb