stemcell 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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'