stemcell 0.5.0 → 0.6.0

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.
Files changed (39) hide show
  1. checksums.yaml +15 -0
  2. data/Gemfile +6 -0
  3. data/Gemfile.lock +18 -0
  4. data/lib/stemcell/command_line.rb +2 -2
  5. data/lib/stemcell/errors.rb +3 -2
  6. data/lib/stemcell/metadata_source/chef_repository.rb +55 -0
  7. data/lib/stemcell/metadata_source/configuration.rb +77 -0
  8. data/lib/stemcell/metadata_source.rb +51 -98
  9. data/lib/stemcell/version.rb +1 -1
  10. data/lib/stemcell.rb +0 -2
  11. data/spec/fixtures/chef_repo/roles/unit-inherit-base.rb +20 -0
  12. data/spec/fixtures/chef_repo/roles/unit-inherit-both.rb +36 -0
  13. data/spec/fixtures/chef_repo/roles/unit-inherit-default.rb +21 -0
  14. data/spec/fixtures/chef_repo/roles/unit-inherit-none.rb +6 -0
  15. data/spec/fixtures/chef_repo/roles/unit-inherit-override.rb +21 -0
  16. data/spec/fixtures/chef_repo/roles/unit-simple-both.rb +29 -0
  17. data/spec/fixtures/chef_repo/roles/unit-simple-default.rb +16 -0
  18. data/spec/fixtures/chef_repo/roles/unit-simple-none.rb +2 -0
  19. data/spec/fixtures/chef_repo/roles/unit-simple-override.rb +16 -0
  20. data/spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-both.json +16 -0
  21. data/spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-default.json +14 -0
  22. data/spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-none.json +11 -0
  23. data/spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-override.json +14 -0
  24. data/spec/fixtures/chef_repo/roles-expected-metadata/unit-simple-both.json +13 -0
  25. data/spec/fixtures/chef_repo/roles-expected-metadata/unit-simple-default.json +11 -0
  26. data/spec/fixtures/chef_repo/roles-expected-metadata/unit-simple-override.json +11 -0
  27. data/spec/fixtures/chef_repo/stemcell-azs-missing.json +10 -0
  28. data/spec/fixtures/chef_repo/stemcell-backing-store-empty.json +9 -0
  29. data/spec/fixtures/chef_repo/stemcell-backing-store-missing.json +8 -0
  30. data/spec/fixtures/chef_repo/stemcell-defaults-missing.json +10 -0
  31. data/spec/fixtures/chef_repo/stemcell.json +13 -0
  32. data/spec/lib/stemcell/metadata_source/chef_repository_spec.rb +107 -0
  33. data/spec/lib/stemcell/metadata_source/configuration_spec.rb +117 -0
  34. data/spec/lib/stemcell/metadata_source_spec.rb +250 -0
  35. data/spec/spec_helper.rb +13 -0
  36. data/spec/support/fixture_helper.rb +14 -0
  37. metadata +60 -24
  38. data/lib/stemcell/utility/deep_merge.rb +0 -13
  39. data/lib/stemcell/utility.rb +0 -1
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stemcell
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
5
- prerelease:
4
+ version: 0.6.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Martin Rhoads
@@ -12,12 +11,11 @@ authors:
12
11
  autorequire:
13
12
  bindir: bin
14
13
  cert_chain: []
15
- date: 2013-11-07 00:00:00.000000000 Z
14
+ date: 2013-11-12 00:00:00.000000000 Z
16
15
  dependencies:
17
16
  - !ruby/object:Gem::Dependency
18
17
  name: aws-sdk
19
18
  requirement: !ruby/object:Gem::Requirement
20
- none: false
21
19
  requirements:
22
20
  - - ~>
23
21
  - !ruby/object:Gem::Version
@@ -25,7 +23,6 @@ dependencies:
25
23
  type: :runtime
26
24
  prerelease: false
27
25
  version_requirements: !ruby/object:Gem::Requirement
28
- none: false
29
26
  requirements:
30
27
  - - ~>
31
28
  - !ruby/object:Gem::Version
@@ -33,7 +30,6 @@ dependencies:
33
30
  - !ruby/object:Gem::Dependency
34
31
  name: net-ssh
35
32
  requirement: !ruby/object:Gem::Requirement
36
- none: false
37
33
  requirements:
38
34
  - - ~>
39
35
  - !ruby/object:Gem::Version
@@ -41,7 +37,6 @@ dependencies:
41
37
  type: :runtime
42
38
  prerelease: false
43
39
  version_requirements: !ruby/object:Gem::Requirement
44
- none: false
45
40
  requirements:
46
41
  - - ~>
47
42
  - !ruby/object:Gem::Version
@@ -49,7 +44,6 @@ dependencies:
49
44
  - !ruby/object:Gem::Dependency
50
45
  name: chef
51
46
  requirement: !ruby/object:Gem::Requirement
52
- none: false
53
47
  requirements:
54
48
  - - ~>
55
49
  - !ruby/object:Gem::Version
@@ -57,7 +51,6 @@ dependencies:
57
51
  type: :runtime
58
52
  prerelease: false
59
53
  version_requirements: !ruby/object:Gem::Requirement
60
- none: false
61
54
  requirements:
62
55
  - - ~>
63
56
  - !ruby/object:Gem::Version
@@ -65,7 +58,6 @@ dependencies:
65
58
  - !ruby/object:Gem::Dependency
66
59
  name: trollop
67
60
  requirement: !ruby/object:Gem::Requirement
68
- none: false
69
61
  requirements:
70
62
  - - ~>
71
63
  - !ruby/object:Gem::Version
@@ -73,7 +65,6 @@ dependencies:
73
65
  type: :runtime
74
66
  prerelease: false
75
67
  version_requirements: !ruby/object:Gem::Requirement
76
- none: false
77
68
  requirements:
78
69
  - - ~>
79
70
  - !ruby/object:Gem::Version
@@ -81,7 +72,6 @@ dependencies:
81
72
  - !ruby/object:Gem::Dependency
82
73
  name: aws-creds
83
74
  requirement: !ruby/object:Gem::Requirement
84
- none: false
85
75
  requirements:
86
76
  - - ~>
87
77
  - !ruby/object:Gem::Version
@@ -89,7 +79,6 @@ dependencies:
89
79
  type: :runtime
90
80
  prerelease: false
91
81
  version_requirements: !ruby/object:Gem::Requirement
92
- none: false
93
82
  requirements:
94
83
  - - ~>
95
84
  - !ruby/object:Gem::Version
@@ -97,7 +86,6 @@ dependencies:
97
86
  - !ruby/object:Gem::Dependency
98
87
  name: colored
99
88
  requirement: !ruby/object:Gem::Requirement
100
- none: false
101
89
  requirements:
102
90
  - - ~>
103
91
  - !ruby/object:Gem::Version
@@ -105,7 +93,6 @@ dependencies:
105
93
  type: :runtime
106
94
  prerelease: false
107
95
  version_requirements: !ruby/object:Gem::Requirement
108
- none: false
109
96
  requirements:
110
97
  - - ~>
111
98
  - !ruby/object:Gem::Version
@@ -113,7 +100,6 @@ dependencies:
113
100
  - !ruby/object:Gem::Dependency
114
101
  name: json
115
102
  requirement: !ruby/object:Gem::Requirement
116
- none: false
117
103
  requirements:
118
104
  - - ~>
119
105
  - !ruby/object:Gem::Version
@@ -121,7 +107,6 @@ dependencies:
121
107
  type: :runtime
122
108
  prerelease: false
123
109
  version_requirements: !ruby/object:Gem::Requirement
124
- none: false
125
110
  requirements:
126
111
  - - ~>
127
112
  - !ruby/object:Gem::Version
@@ -153,34 +138,85 @@ files:
153
138
  - lib/stemcell/log_tailer.rb
154
139
  - lib/stemcell/metadata_launcher.rb
155
140
  - lib/stemcell/metadata_source.rb
141
+ - lib/stemcell/metadata_source/chef_repository.rb
142
+ - lib/stemcell/metadata_source/configuration.rb
156
143
  - lib/stemcell/option_parser.rb
157
144
  - lib/stemcell/templates/bootstrap.sh.erb
158
- - lib/stemcell/utility.rb
159
- - lib/stemcell/utility/deep_merge.rb
160
145
  - lib/stemcell/version.rb
146
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-both.json
147
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-default.json
148
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-none.json
149
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-override.json
150
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-simple-both.json
151
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-simple-default.json
152
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-simple-override.json
153
+ - spec/fixtures/chef_repo/roles/unit-inherit-base.rb
154
+ - spec/fixtures/chef_repo/roles/unit-inherit-both.rb
155
+ - spec/fixtures/chef_repo/roles/unit-inherit-default.rb
156
+ - spec/fixtures/chef_repo/roles/unit-inherit-none.rb
157
+ - spec/fixtures/chef_repo/roles/unit-inherit-override.rb
158
+ - spec/fixtures/chef_repo/roles/unit-simple-both.rb
159
+ - spec/fixtures/chef_repo/roles/unit-simple-default.rb
160
+ - spec/fixtures/chef_repo/roles/unit-simple-none.rb
161
+ - spec/fixtures/chef_repo/roles/unit-simple-override.rb
162
+ - spec/fixtures/chef_repo/stemcell-azs-missing.json
163
+ - spec/fixtures/chef_repo/stemcell-backing-store-empty.json
164
+ - spec/fixtures/chef_repo/stemcell-backing-store-missing.json
165
+ - spec/fixtures/chef_repo/stemcell-defaults-missing.json
166
+ - spec/fixtures/chef_repo/stemcell.json
167
+ - spec/lib/stemcell/metadata_source/chef_repository_spec.rb
168
+ - spec/lib/stemcell/metadata_source/configuration_spec.rb
169
+ - spec/lib/stemcell/metadata_source_spec.rb
170
+ - spec/spec_helper.rb
171
+ - spec/support/fixture_helper.rb
161
172
  - stemcell.gemspec
162
173
  homepage: https://github.com/airbnb/stemcell
163
174
  licenses: []
175
+ metadata: {}
164
176
  post_install_message:
165
177
  rdoc_options: []
166
178
  require_paths:
167
179
  - lib
168
180
  required_ruby_version: !ruby/object:Gem::Requirement
169
- none: false
170
181
  requirements:
171
182
  - - ! '>='
172
183
  - !ruby/object:Gem::Version
173
184
  version: '0'
174
185
  required_rubygems_version: !ruby/object:Gem::Requirement
175
- none: false
176
186
  requirements:
177
187
  - - ! '>='
178
188
  - !ruby/object:Gem::Version
179
189
  version: '0'
180
190
  requirements: []
181
191
  rubyforge_project:
182
- rubygems_version: 1.8.23
192
+ rubygems_version: 2.1.9
183
193
  signing_key:
184
- specification_version: 3
194
+ specification_version: 4
185
195
  summary: no summary
186
- test_files: []
196
+ test_files:
197
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-both.json
198
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-default.json
199
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-none.json
200
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-inherit-override.json
201
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-simple-both.json
202
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-simple-default.json
203
+ - spec/fixtures/chef_repo/roles-expected-metadata/unit-simple-override.json
204
+ - spec/fixtures/chef_repo/roles/unit-inherit-base.rb
205
+ - spec/fixtures/chef_repo/roles/unit-inherit-both.rb
206
+ - spec/fixtures/chef_repo/roles/unit-inherit-default.rb
207
+ - spec/fixtures/chef_repo/roles/unit-inherit-none.rb
208
+ - spec/fixtures/chef_repo/roles/unit-inherit-override.rb
209
+ - spec/fixtures/chef_repo/roles/unit-simple-both.rb
210
+ - spec/fixtures/chef_repo/roles/unit-simple-default.rb
211
+ - spec/fixtures/chef_repo/roles/unit-simple-none.rb
212
+ - spec/fixtures/chef_repo/roles/unit-simple-override.rb
213
+ - spec/fixtures/chef_repo/stemcell-azs-missing.json
214
+ - spec/fixtures/chef_repo/stemcell-backing-store-empty.json
215
+ - spec/fixtures/chef_repo/stemcell-backing-store-missing.json
216
+ - spec/fixtures/chef_repo/stemcell-defaults-missing.json
217
+ - spec/fixtures/chef_repo/stemcell.json
218
+ - spec/lib/stemcell/metadata_source/chef_repository_spec.rb
219
+ - spec/lib/stemcell/metadata_source/configuration_spec.rb
220
+ - spec/lib/stemcell/metadata_source_spec.rb
221
+ - spec/spec_helper.rb
222
+ - spec/support/fixture_helper.rb
@@ -1,13 +0,0 @@
1
- class Hash
2
- def deep_merge!(other_hash)
3
- merge!(other_hash) do |key, oldval, newval|
4
- # Coerce Chef-style attribute hashes to generic ones
5
- oldval = oldval.to_hash if oldval.respond_to?(:to_hash)
6
- newval = newval.to_hash if newval.respond_to?(:to_hash)
7
-
8
- oldval.class.to_s == 'Hash' &&
9
- newval.class.to_s == 'Hash' ?
10
- oldval.deep_merge!(newval) : newval
11
- end
12
- end
13
- end
@@ -1 +0,0 @@
1
- require 'stemcell/utility/deep_merge'