Class: Specinfra::Ec2Metadata

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

Instance Method Summary collapse

Constructor Details

#initializeEc2Metadata

Returns a new instance of Ec2Metadata.



4
5
6
7
# File 'lib/specinfra/ec2_metadata.rb', line 4

def initialize
  @base_uri = 'http://169.254.169.254/latest/meta-data/'
  @metadata = {}
end

Instance Method Details

#[](key) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/specinfra/ec2_metadata.rb', line 14

def [](key)
  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.get
    rescue LoadError
      @metadata[key] = nil
    end
  end

  @metadata[key]
end

#eachObject



32
33
34
35
36
# File 'lib/specinfra/ec2_metadata.rb', line 32

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

#each_keyObject



38
39
40
41
42
# File 'lib/specinfra/ec2_metadata.rb', line 38

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

#each_valueObject



44
45
46
47
48
# File 'lib/specinfra/ec2_metadata.rb', line 44

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

#empty?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/specinfra/ec2_metadata.rb', line 28

def empty?
  @metadata.empty?
end

#getObject



9
10
11
12
# File 'lib/specinfra/ec2_metadata.rb', line 9

def get
  @metadata = 
  self
end

#inspectObject



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

def inspect
  @metadata
end

#keysObject



50
51
52
# File 'lib/specinfra/ec2_metadata.rb', line 50

def keys
  @metadata.keys
end