Module: AWS::Instance
- Defined in:
- lib/aws_metadata/instance_metadata.rb
Class Method Summary collapse
- .dynamic(path: nil, version: 'latest', host: '169.254.169.254', port: '80') ⇒ Object
- .metadata(path: nil, version: 'latest', host: '169.254.169.254', port: '80') ⇒ Object
-
.to_hash ⇒ Object
All the metadata from 169.254.169.254.
- .user_data(version: 'latest', host: '169.254.169.254', port: '80') ⇒ Object
- .value_by_path(path, obj) ⇒ Object
Class Method Details
.dynamic(path: nil, version: 'latest', host: '169.254.169.254', port: '80') ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/aws_metadata/instance_metadata.rb', line 28 def self.dynamic(path: nil, version: 'latest', host: '169.254.169.254', port: '80') load_stubs url_prefix = "/#{version}/dynamic/" if path.nil? @dynamic ||= Treeish.new http(host, port), url_prefix else @dynamic_path ||= Hashish.new @dynamic_path[path] ||= value_by_path(path, @dynamic) do query(http(host, port), "#{url_prefix}#{path}") end end end |
.metadata(path: nil, version: 'latest', host: '169.254.169.254', port: '80') ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/aws_metadata/instance_metadata.rb', line 8 def self.(path: nil, version: 'latest', host: '169.254.169.254', port: '80') load_stubs url_prefix = "/#{version}/meta-data/" if path.nil? ||= Treeish.new http(host, port), url_prefix raise 'no metadata' if .blank? # There should always be metadata else ||= Hashish.new [path] ||= value_by_path(path, ) do query(http(host, port), "#{url_prefix}#{path}") end end end |
.to_hash ⇒ Object
All the metadata from 169.254.169.254
The hashes are Hashish objects that allows regular method like calls where all method names are the keys underscored.
44 45 46 |
# File 'lib/aws_metadata/instance_metadata.rb', line 44 def self.to_hash { :metadata => .merge(Hash()), :user_data => user_data, :dynamic => dynamic.merge(Hash(@dynamic_path)) } end |
.user_data(version: 'latest', host: '169.254.169.254', port: '80') ⇒ Object
23 24 25 26 |
# File 'lib/aws_metadata/instance_metadata.rb', line 23 def self.user_data(version: 'latest', host: '169.254.169.254', port: '80') load_stubs @user_data ||= query(http(host, port), "/#{version}/user-data") end |
.value_by_path(path, obj) ⇒ Object
119 120 121 122 123 124 125 126 127 |
# File 'lib/aws_metadata/instance_metadata.rb', line 119 def self.value_by_path(path, obj) if AWS::Metadata.stub_responses path.split('/').inject(obj) do |o, method| o.send method.to_s.underscore end else yield end end |