aws_metadata 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3b0460eb560e5d3f2550b6b9974d743e273450d5
4
- data.tar.gz: 6c4f85ce0e75b54a47e4fa06221910910a080cbd
3
+ metadata.gz: 0f47a7ac354bc5131d0a0541230d849359b4be02
4
+ data.tar.gz: 77b8a99b8ab04b3b6cba8de44ad416f5f9c74ec7
5
5
  SHA512:
6
- metadata.gz: d2475064140697e30b234182779b6944240fc7cd865f5d9cad27a9d25284672f338170a265a59f970297acc6d9aaa7323d4fa1356a19575353050c63c416716f
7
- data.tar.gz: d60031ec53de55a4ac4edddaabef1e0f963bad642790219403755533c726f77da869a4155a6acf533ec10873a630bb3a2eac2a6ef675b294aae6870ef4fc17c1
6
+ metadata.gz: f326ea632fbac729bfbf1dac578524da9595bb2672f0e83e7b78536ed5b1137ef6afa33e6c4804ed30f2b4d6ca2b165ccb34baa28943749853c4238618b5ee62
7
+ data.tar.gz: 9c7685e8d65f6ddf500814623bb56ed441113d943731c52efd4ee8a1e1cc54b95c0b8794e9df317154e1aaf8cc84dd16485e31f72b739eb53ecb2553aae3a915
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- aws_metadata (0.1.4)
4
+ aws_metadata (0.1.5)
5
5
  aws-sdk
6
6
 
7
7
  GEM
@@ -61,11 +61,55 @@ module AWS
61
61
  load_stubs
62
62
  return
63
63
  end
64
- http = Net::HTTP.new host, port
64
+ http = Net::HTTP.new host, port
65
+ load_metadata(http, version)
66
+ load_user_data(http, version)
67
+ load_dynamic(http, version)
68
+ end
69
+
70
+ # @private
71
+ def self.query http, path
72
+ rep = http.request Net::HTTP::Get.new path
73
+ unless Net::HTTPOK === rep
74
+ return nil
75
+ end
76
+ rep.body
77
+ end
78
+
79
+ # All the metadata from 169.254.169.254
80
+ #
81
+ # The hashes are Hashish objects that allows regular method like calls where all method names are the keys underscored.
82
+ def to_hash
83
+ { :metadata => @metadata, :user_data => @user_data, :dynamic => @dynamic }
84
+ end
85
+
86
+ private
87
+
88
+ # Load data from the meta-data URL
89
+ # @private
90
+ def load_metadata(http, version)
91
+ tries ||= 1
65
92
  @metadata = Treeish.new http, "/#{version}/meta-data/"
93
+ raise 'no metadata' if @metadata.nil?
94
+ rescue
95
+ raise if tries >= 10
96
+ sleep 1
97
+ tries += 1
98
+ retry
99
+ end
100
+
101
+ # Load data from the user-data URL
102
+ # @private
103
+ def load_user_data(http, version)
66
104
  @user_data = Instance.query http, "/#{version}/user-data"
67
- @dynamic = Hashish.new
105
+ rescue
106
+ @user_data = nil
107
+ end
68
108
 
109
+ # Load data from the dynamic URL
110
+ # @private
111
+ def load_dynamic(http, version)
112
+ @dynamic = Hashish.new
69
113
  begin
70
114
  dynamic_stuff = Instance.query(http, "/#{version}/dynamic/").lines
71
115
  rescue
@@ -77,31 +121,15 @@ module AWS
77
121
  end
78
122
  end
79
123
 
80
- # @private
81
- def self.query http, path
82
- rep = http.request Net::HTTP::Get.new path
83
- unless Net::HTTPOK === rep
84
- return nil
85
- end
86
- rep.body
87
- end
88
-
89
124
  # Helper method to provide "stubs" for non aws deployments
90
125
  # @private
91
126
  def load_stubs
92
- yaml = Pathname.new(File.join(AWS::Metadata.aws_identity_stubs_path, 'aws_identity_stubs.yml'))
93
- responses = YAML.load(ERB.new(yaml.read).result)
94
- @metadata = Hashish.new responses[:metadata]
95
- @user_data = responses[:user_data]
96
- @dynamic = Hashish.new responses[:dynamic]
127
+ yaml = Pathname.new(File.join(AWS::Metadata.aws_identity_stubs_path, 'aws_identity_stubs.yml'))
128
+ responses = YAML.load(ERB.new(yaml.read).result)
129
+ @metadata = Hashish.new responses[:metadata]
130
+ @user_data = responses[:user_data]
131
+ @dynamic = Hashish.new responses[:dynamic]
97
132
  @dynamic['instance-identity']['document'] = @dynamic['instance-identity']['document'].to_json
98
133
  end
99
-
100
- # All the metadata from 169.254.169.254
101
- #
102
- # The hashes are Hashish objects that allows regular method like calls where all method names are the keys underscored.
103
- def to_hash
104
- { :metadata => @metadata, :user_data => @user_data, :dynamic => @dynamic }
105
- end
106
134
  end
107
135
  end
@@ -1,5 +1,5 @@
1
1
  module AWS
2
2
  module Metadata
3
- VERSION = "0.1.4"
3
+ VERSION = "0.1.5"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_metadata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evident.io
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-12 00:00:00.000000000 Z
11
+ date: 2016-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler