Class: Specinfra::Ec2Metadata

Inherits:
Object
  • Object
show all
Defined in:
lib/specinfra/ec2_metadata.rb

Instance Method Summary collapse

Constructor Details

#initialize(host_inventory) ⇒ Ec2Metadata

Returns a new instance of Ec2Metadata.



4
5
6
7
8
9
10
11
# File 'lib/specinfra/ec2_metadata.rb', line 4

def initialize(host_inventory)
  @host_inventory = host_inventory

  @base_uri = 'http://169.254.169.254/latest/meta-data/'
  @token_uri = 'http://169.254.169.254/latest/api/token'
  @token = ''
  @metadata = {}
end

Instance Method Details

#[](key) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/specinfra/ec2_metadata.rb', line 19

def [](key)
  if key.is_a?(Symbol)
    key = key.to_s
  end
  if @metadata[key].nil?
    begin
      require "specinfra/ec2_metadata/#{key}"
      inventory_class = Specinfra::Ec2Metadata.const_get(key.to_s.to_camel_case)
      @metadata[key] = inventory_class.new(@host_inventory).get
    rescue LoadError
      @metadata[key] = nil
    end
  end

  @metadata[key]
end

#eachObject



40
41
42
43
44
# File 'lib/specinfra/ec2_metadata.rb', line 40

def each
  keys.each do |k|
    yield k, @metadata[k]
  end
end

#each_keyObject



46
47
48
49
50
# File 'lib/specinfra/ec2_metadata.rb', line 46

def each_key
  keys.each do |k|
    yield k
  end
end

#each_valueObject



52
53
54
55
56
# File 'lib/specinfra/ec2_metadata.rb', line 52

def each_value
  keys.each do |k|
    yield @metadata[k]
  end
end

#empty?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/specinfra/ec2_metadata.rb', line 36

def empty?
  @metadata.empty?
end

#getObject



13
14
15
16
17
# File 'lib/specinfra/ec2_metadata.rb', line 13

def get
  @token = get_token
  @metadata = 
  self
end

#inspectObject



62
63
64
# File 'lib/specinfra/ec2_metadata.rb', line 62

def inspect
  @metadata
end

#keysObject



58
59
60
# File 'lib/specinfra/ec2_metadata.rb', line 58

def keys
  @metadata.keys
end