dnapi 1.1.88 → 1.1.89
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.
- data/lib/dnapi/component.rb +4 -2
- data/lib/dnapi/component_possessor.rb +4 -1
- data/lib/dnapi/components/ruby.rb +4 -2
- data/lib/dnapi/components/rubygems.rb +13 -0
- data/lib/dnapi/struct.rb +2 -6
- data/lib/dnapi/version.rb +1 -1
- data/spec/component_spec.rb +3 -1
- data/spec/components/ruby_spec.rb +10 -10
- data/spec/components/rubygems_spec.rb +14 -0
- data/spec/environment_spec.rb +36 -0
- data/spec/vhost_spec.rb +16 -0
- metadata +7 -2
data/lib/dnapi/component.rb
CHANGED
@@ -27,11 +27,13 @@ module DNApi
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def self.[](key)
|
30
|
-
components.detect {|c| c.key_id == key }
|
30
|
+
components.detect {|c| c.key_id == key }
|
31
31
|
end
|
32
32
|
|
33
33
|
def self.from(values)
|
34
|
-
self[values.delete('key').to_sym]
|
34
|
+
if klass = self[values.delete('key').to_sym]
|
35
|
+
klass.new(values)
|
36
|
+
end
|
35
37
|
end
|
36
38
|
|
37
39
|
def key
|
@@ -37,7 +37,10 @@ module DNApi
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def add_component(key, component_options={})
|
40
|
-
|
40
|
+
unless klass = Component[key.to_sym]
|
41
|
+
raise Component::NoSuchComponent, "unknown component #{key.inspect}"
|
42
|
+
end
|
43
|
+
c = klass.new(component_options.merge(:parent => self))
|
41
44
|
unless c.can_belong_to?(self)
|
42
45
|
raise ComponentAttachmentError, "Can't attach #{key.inspect} to a #{self.class}"
|
43
46
|
end
|
@@ -18,7 +18,7 @@ module DNApi
|
|
18
18
|
end
|
19
19
|
|
20
20
|
NAME = 'Ruby'.freeze
|
21
|
-
RUBYGEMS_VERSION = '1.
|
21
|
+
RUBYGEMS_VERSION = '1.8.17'.freeze
|
22
22
|
|
23
23
|
def rubygems_version
|
24
24
|
self.class::RUBYGEMS_VERSION
|
@@ -86,6 +86,7 @@ module DNApi
|
|
86
86
|
NAME = 'REE'.freeze
|
87
87
|
VERSION = '1.8.7'.freeze
|
88
88
|
PATCH_LEVEL = '2011.12'.freeze
|
89
|
+
RUBYGEMS_VERSION = '1.5.2'.freeze
|
89
90
|
|
90
91
|
def self.label
|
91
92
|
"#{self::NAME} #{self::PATCH_LEVEL}"
|
@@ -136,7 +137,6 @@ module DNApi
|
|
136
137
|
|
137
138
|
VERSION = '1.9.3'.freeze
|
138
139
|
PATCH_LEVEL = 'p0'.freeze
|
139
|
-
RUBYGEMS_VERSION = '1.8.11'.freeze
|
140
140
|
|
141
141
|
def ruby_version
|
142
142
|
"#{version}_#{patch_level}"
|
@@ -215,6 +215,7 @@ module DNApi
|
|
215
215
|
VERSION = '2.0.0-r3'.freeze
|
216
216
|
VM_VERSION = '1.8'.freeze
|
217
217
|
PATCH_LEVEL = nil
|
218
|
+
RUBYGEMS_VERSION = nil
|
218
219
|
|
219
220
|
def self.label
|
220
221
|
"#{self::NAME} 2.0 (ruby-1.8.7-p352)"
|
@@ -250,6 +251,7 @@ module DNApi
|
|
250
251
|
VERSION = '2.0.0-r3'.freeze
|
251
252
|
VM_VERSION = '1.9'.freeze
|
252
253
|
PATCH_LEVEL = nil
|
254
|
+
RUBYGEMS_VERSION = nil
|
253
255
|
|
254
256
|
def self.label
|
255
257
|
"#{self::NAME} 2.0 (ruby-1.9.2-p136)"
|
data/lib/dnapi/struct.rb
CHANGED
@@ -29,13 +29,11 @@ module DNApi
|
|
29
29
|
|
30
30
|
def self.from(jexp)
|
31
31
|
_many.each do |assoc|
|
32
|
-
jexp[assoc.to_s] = jexp[assoc.to_s].map do |item|
|
32
|
+
jexp[assoc.to_s] = (jexp[assoc.to_s] || []).map do |item|
|
33
33
|
if klass = map[assoc.to_sym]
|
34
34
|
klass.from(item)
|
35
|
-
else
|
36
|
-
raise "No class found for #{assoc.inspect}"
|
37
35
|
end
|
38
|
-
end
|
36
|
+
end.compact
|
39
37
|
end
|
40
38
|
|
41
39
|
_ones.each do |assoc|
|
@@ -44,8 +42,6 @@ module DNApi
|
|
44
42
|
item = jexp[assoc.to_s]
|
45
43
|
if klass = map[assoc.to_sym]
|
46
44
|
klass.from(item)
|
47
|
-
else
|
48
|
-
raise "No class found for #{assoc.inspect}"
|
49
45
|
end
|
50
46
|
end
|
51
47
|
end
|
data/lib/dnapi/version.rb
CHANGED
data/spec/component_spec.rb
CHANGED
@@ -70,8 +70,8 @@ describe DNApi::Components::Ruby187 do
|
|
70
70
|
end
|
71
71
|
|
72
72
|
describe "#rubygems_version" do
|
73
|
-
it 'is 1.
|
74
|
-
@ruby.rubygems_version.should == '1.
|
73
|
+
it 'is 1.8.17' do
|
74
|
+
@ruby.rubygems_version.should == '1.8.17'
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
@@ -146,8 +146,8 @@ describe DNApi::Components::Ruby192 do
|
|
146
146
|
end
|
147
147
|
|
148
148
|
describe "#rubygems_version" do
|
149
|
-
it 'is 1.
|
150
|
-
@ruby.rubygems_version.should == '1.
|
149
|
+
it 'is 1.8.17' do
|
150
|
+
@ruby.rubygems_version.should == '1.8.17'
|
151
151
|
end
|
152
152
|
end
|
153
153
|
end
|
@@ -184,8 +184,8 @@ describe DNApi::Components::Ruby193 do
|
|
184
184
|
end
|
185
185
|
|
186
186
|
describe "#rubygems_version" do
|
187
|
-
it 'is 1.8.
|
188
|
-
@ruby.rubygems_version.should == '1.8.
|
187
|
+
it 'is 1.8.17' do
|
188
|
+
@ruby.rubygems_version.should == '1.8.17'
|
189
189
|
end
|
190
190
|
end
|
191
191
|
|
@@ -228,8 +228,8 @@ describe DNApi::Components::Rubinius do
|
|
228
228
|
end
|
229
229
|
|
230
230
|
describe "#rubygems_version" do
|
231
|
-
it 'is
|
232
|
-
@ruby.rubygems_version.should
|
231
|
+
it 'is nil' do
|
232
|
+
@ruby.rubygems_version.should be_nil
|
233
233
|
end
|
234
234
|
end
|
235
235
|
end
|
@@ -265,8 +265,8 @@ describe DNApi::Components::Rubinius19 do
|
|
265
265
|
end
|
266
266
|
|
267
267
|
describe "#rubygems_version" do
|
268
|
-
it 'is
|
269
|
-
@ruby.rubygems_version.should
|
268
|
+
it 'is nil' do
|
269
|
+
@ruby.rubygems_version.should be_nil
|
270
270
|
end
|
271
271
|
end
|
272
272
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe DNApi::Components::Rubygems do
|
4
|
+
before do
|
5
|
+
@environment = DNApi::Environment.new
|
6
|
+
@environment.add_component :rubygems, :version => DNApi::Components::RubyVersion::RUBYGEMS_VERSION
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'can be added to an environment with its version' do
|
10
|
+
@environment.should have_component(:rubygems)
|
11
|
+
@environment.component(:rubygems).key.should == :rubygems
|
12
|
+
@environment.component(:rubygems).version.should == DNApi::Components::RubyVersion::RUBYGEMS_VERSION
|
13
|
+
end
|
14
|
+
end
|
data/spec/environment_spec.rb
CHANGED
@@ -224,4 +224,40 @@ describe DNApi::Environment do
|
|
224
224
|
end
|
225
225
|
end
|
226
226
|
end
|
227
|
+
|
228
|
+
describe ".from" do
|
229
|
+
it 'creates a new environment with identified components' do
|
230
|
+
attrs = {
|
231
|
+
:instances => [],
|
232
|
+
:apps => [],
|
233
|
+
:crons => [],
|
234
|
+
:components => [ {:key => :ruby_192} ],
|
235
|
+
}
|
236
|
+
env = DNApi::Environment.from(JSON.parse(attrs.to_json))
|
237
|
+
env.components.size.should == 1
|
238
|
+
env.component(:ruby_192).should be_true
|
239
|
+
end
|
240
|
+
|
241
|
+
it 'creates a new environment with unidentified components' do
|
242
|
+
attrs = {
|
243
|
+
:instances => [],
|
244
|
+
:apps => [],
|
245
|
+
:crons => [],
|
246
|
+
:components => [ {:key => :ruby_192}, {:key => :foo} ],
|
247
|
+
}
|
248
|
+
env = DNApi::Environment.from(JSON.parse(attrs.to_json))
|
249
|
+
env.components.size.should == 1
|
250
|
+
env.component(:ruby_192).should be_true
|
251
|
+
env.component(:foo).should be_nil
|
252
|
+
end
|
253
|
+
|
254
|
+
it 'creates a new environment with missing children' do
|
255
|
+
attrs = {
|
256
|
+
:instances => [],
|
257
|
+
:apps => [],
|
258
|
+
}
|
259
|
+
env = DNApi::Environment.from(JSON.parse(attrs.to_json))
|
260
|
+
env.crons.should be_empty
|
261
|
+
end
|
262
|
+
end
|
227
263
|
end
|
data/spec/vhost_spec.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe DNApi::VHost do
|
4
|
+
describe ".from" do
|
5
|
+
it 'creates a new vhost with an ssl cert' do
|
6
|
+
attrs = {
|
7
|
+
:domain_name => "www.example.org",
|
8
|
+
:ssl_cert => {:certificate => "foocert"},
|
9
|
+
}
|
10
|
+
env = DNApi::VHost.from(JSON.parse(attrs.to_json))
|
11
|
+
env.domain_name.should == "www.example.org"
|
12
|
+
env.ssl_cert.certificate.should == "foocert"
|
13
|
+
env.ssl_cert.certificate_chain.should be_nil
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dnapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.89
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -100,6 +100,7 @@ files:
|
|
100
100
|
- lib/dnapi/components/passenger3.rb
|
101
101
|
- lib/dnapi/components/php.rb
|
102
102
|
- lib/dnapi/components/ruby.rb
|
103
|
+
- lib/dnapi/components/rubygems.rb
|
103
104
|
- lib/dnapi/components/ssmtp.rb
|
104
105
|
- lib/dnapi/components/stunneled.rb
|
105
106
|
- lib/dnapi/components/v8.rb
|
@@ -130,6 +131,7 @@ files:
|
|
130
131
|
- spec/components/nodejs_spec.rb
|
131
132
|
- spec/components/passenger3_spec.rb
|
132
133
|
- spec/components/ruby_spec.rb
|
134
|
+
- spec/components/rubygems_spec.rb
|
133
135
|
- spec/components/stunneled.rb
|
134
136
|
- spec/components/volume_spec.rb
|
135
137
|
- spec/db_stack_spec.rb
|
@@ -140,6 +142,7 @@ files:
|
|
140
142
|
- spec/spec_helper.rb
|
141
143
|
- spec/stack_spec.rb
|
142
144
|
- spec/struct_spec.rb
|
145
|
+
- spec/vhost_spec.rb
|
143
146
|
homepage: http://github.com/engineyard/dnapi
|
144
147
|
licenses: []
|
145
148
|
post_install_message:
|
@@ -160,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
163
|
version: 1.3.1
|
161
164
|
requirements: []
|
162
165
|
rubyforge_project:
|
163
|
-
rubygems_version: 1.8.
|
166
|
+
rubygems_version: 1.8.24
|
164
167
|
signing_key:
|
165
168
|
specification_version: 3
|
166
169
|
summary: API for chef DNA.
|
@@ -173,6 +176,7 @@ test_files:
|
|
173
176
|
- spec/components/nodejs_spec.rb
|
174
177
|
- spec/components/passenger3_spec.rb
|
175
178
|
- spec/components/ruby_spec.rb
|
179
|
+
- spec/components/rubygems_spec.rb
|
176
180
|
- spec/components/stunneled.rb
|
177
181
|
- spec/components/volume_spec.rb
|
178
182
|
- spec/db_stack_spec.rb
|
@@ -183,3 +187,4 @@ test_files:
|
|
183
187
|
- spec/spec_helper.rb
|
184
188
|
- spec/stack_spec.rb
|
185
189
|
- spec/struct_spec.rb
|
190
|
+
- spec/vhost_spec.rb
|