cucumber-chef 2.1.0.rc.15 → 3.0.0.rc.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.
- data/bin/cc-knife +1 -9
- data/bin/cucumber-chef +27 -15
- data/chef_repo/cookbooks/cucumber-chef/recipes/test_lab.rb +7 -7
- data/cucumber-chef.gemspec +1 -4
- data/lib/cucumber-chef/rake/task.rb +55 -36
- data/lib/cucumber/chef.rb +3 -3
- data/lib/cucumber/chef/container.rb +44 -0
- data/lib/cucumber/chef/containers.rb +108 -181
- data/lib/cucumber/chef/ecosystem.rb +37 -0
- data/lib/cucumber/chef/labfile.rb +34 -0
- data/lib/cucumber/chef/provisioner.rb +5 -42
- data/lib/cucumber/chef/steps.rb +0 -1
- data/lib/cucumber/chef/steps/ssh_steps.rb +2 -2
- data/lib/cucumber/chef/templates/bootstrap/ubuntu-precise-test-lab.erb +4 -1
- data/lib/cucumber/chef/templates/cucumber-chef/cucumber-yml.erb +1 -1
- data/lib/cucumber/chef/templates/cucumber/cc-hooks.rb +34 -33
- data/lib/cucumber/chef/test_lab.rb +4 -1
- data/lib/cucumber/chef/utility.rb +22 -32
- data/lib/cucumber/chef/version.rb +1 -1
- metadata +7 -22
- data/lib/cucumber/chef/steps/provision_steps.rb +0 -64
- data/lib/cucumber/chef/templates/cucumber-chef/knife-rb.erb +0 -18
@@ -0,0 +1,37 @@
|
|
1
|
+
################################################################################
|
2
|
+
#
|
3
|
+
# Author: Stephen Nelson-Smith <stephen@atalanta-systems.com>
|
4
|
+
# Author: Zachary Patten <zachary@jovelabs.com>
|
5
|
+
# Copyright: Copyright (c) 2011-2013 Atalanta Systems Ltd
|
6
|
+
# License: Apache License, Version 2.0
|
7
|
+
#
|
8
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
9
|
+
# you may not use this file except in compliance with the License.
|
10
|
+
# You may obtain a copy of the License at
|
11
|
+
#
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
13
|
+
#
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
17
|
+
# See the License for the specific language governing permissions and
|
18
|
+
# limitations under the License.
|
19
|
+
#
|
20
|
+
################################################################################
|
21
|
+
|
22
|
+
module Cucumber
|
23
|
+
module Chef
|
24
|
+
|
25
|
+
class EcosystemError < Error; end
|
26
|
+
|
27
|
+
class Ecosystem < ZTK::DSL::Base
|
28
|
+
belongs_to :labfile, :class_name => "Cucumber::Chef:Labfile"
|
29
|
+
has_many :containers, :class_name => "Cucumber::Chef::Container"
|
30
|
+
|
31
|
+
attribute :name
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
################################################################################
|
@@ -0,0 +1,34 @@
|
|
1
|
+
################################################################################
|
2
|
+
#
|
3
|
+
# Author: Stephen Nelson-Smith <stephen@atalanta-systems.com>
|
4
|
+
# Author: Zachary Patten <zachary@jovelabs.com>
|
5
|
+
# Copyright: Copyright (c) 2011-2013 Atalanta Systems Ltd
|
6
|
+
# License: Apache License, Version 2.0
|
7
|
+
#
|
8
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
9
|
+
# you may not use this file except in compliance with the License.
|
10
|
+
# You may obtain a copy of the License at
|
11
|
+
#
|
12
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
13
|
+
#
|
14
|
+
# Unless required by applicable law or agreed to in writing, software
|
15
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
16
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
17
|
+
# See the License for the specific language governing permissions and
|
18
|
+
# limitations under the License.
|
19
|
+
#
|
20
|
+
################################################################################
|
21
|
+
|
22
|
+
module Cucumber
|
23
|
+
module Chef
|
24
|
+
|
25
|
+
class LabfileError < Error; end
|
26
|
+
|
27
|
+
class Labfile < ZTK::DSL::Base
|
28
|
+
has_many :ecosystems, :class_name => "Cucumber::Chef::Ecosystem"
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
################################################################################
|
@@ -47,12 +47,9 @@ module Cucumber
|
|
47
47
|
wait_for_chef_server
|
48
48
|
|
49
49
|
download_chef_credentials
|
50
|
-
render_knife_rb
|
51
50
|
|
52
51
|
upload_cookbook
|
53
52
|
upload_role
|
54
|
-
tag_node
|
55
|
-
add_node_role
|
56
53
|
|
57
54
|
chef_first_run
|
58
55
|
|
@@ -110,10 +107,10 @@ module Cucumber
|
|
110
107
|
|
111
108
|
def download_chef_credentials
|
112
109
|
ZTK::Benchmark.bench(:message => "Downloading chef-server credentials", :mark => "completed in %0.4f seconds.", :ui => @ui) do
|
113
|
-
local_path = File.
|
110
|
+
local_path = File.dirname(Cucumber::Chef.chef_identity)
|
114
111
|
remote_path = File.join(Cucumber::Chef.lab_user_home_dir, ".chef")
|
115
112
|
|
116
|
-
files = [
|
113
|
+
files = [ File.basename(Cucumber::Chef.chef_identity), "validation.pem" ]
|
117
114
|
files.each do |file|
|
118
115
|
@test_lab.bootstrap_ssh.download(File.join(remote_path, file), File.join(local_path, file))
|
119
116
|
end
|
@@ -137,24 +134,6 @@ module Cucumber
|
|
137
134
|
end
|
138
135
|
end
|
139
136
|
|
140
|
-
################################################################################
|
141
|
-
|
142
|
-
def render_knife_rb
|
143
|
-
ZTK::Benchmark.bench(:message => "Building 'cc-knife' configuration", :mark => "completed in %0.4f seconds.", :ui => @ui) do
|
144
|
-
template_file = File.join(Cucumber::Chef.root_dir, "lib", "cucumber", "chef", "templates", "cucumber-chef", "knife-rb.erb")
|
145
|
-
|
146
|
-
context = {
|
147
|
-
:chef_server => @test_lab.ip,
|
148
|
-
:librarian_chef => Cucumber::Chef::Config.librarian_chef,
|
149
|
-
:user => Cucumber::Chef::Config.user
|
150
|
-
}
|
151
|
-
|
152
|
-
File.open(Cucumber::Chef.knife_rb, 'w') do |f|
|
153
|
-
f.puts(ZTK::Template.render(template_file, context))
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
137
|
################################################################################
|
159
138
|
|
160
139
|
def upload_cookbook
|
@@ -173,29 +152,13 @@ module Cucumber
|
|
173
152
|
end
|
174
153
|
end
|
175
154
|
|
176
|
-
################################################################################
|
177
|
-
|
178
|
-
def tag_node
|
179
|
-
@ui.logger.debug { "Tagging cucumber-chef test lab node..." }
|
180
|
-
ZTK::Benchmark.bench(:message => "Tagging 'cucumber-chef' node", :mark => "completed in %0.4f seconds.", :ui => @ui) do
|
181
|
-
@test_lab.knife_cli(%Q{tag create #{Cucumber::Chef.lab_hostname_full} #{Cucumber::Chef::Config.mode}}, :silence => true)
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
################################################################################
|
186
|
-
|
187
|
-
def add_node_role
|
188
|
-
@ui.logger.debug { "Setting up cucumber-chef test lab run list..." }
|
189
|
-
ZTK::Benchmark.bench(:message => "Setting 'cucumber-chef' run list", :mark => "completed in %0.4f seconds.", :ui => @ui) do
|
190
|
-
@test_lab.knife_cli(%Q{node run_list add #{Cucumber::Chef.lab_hostname_full} "role[test_lab]"}, :silence => true)
|
191
|
-
end
|
192
|
-
end
|
193
|
-
|
194
155
|
################################################################################
|
195
156
|
|
196
157
|
def chef_first_run
|
197
158
|
ZTK::Benchmark.bench(:message => "Performing chef-client run", :mark => "completed in %0.4f seconds.", :ui => @ui) do
|
198
|
-
|
159
|
+
log_level = (ENV['LOG_LEVEL'].downcase rescue (Cucumber::Chef.is_rc? ? "debug" : "info"))
|
160
|
+
|
161
|
+
command = "/usr/bin/chef-client -j /etc/chef/first-boot.json --log_level #{log_level} --once"
|
199
162
|
command = "sudo #{command}"
|
200
163
|
@test_lab.bootstrap_ssh.exec(command, :silence => true)
|
201
164
|
end
|
data/lib/cucumber/chef/steps.rb
CHANGED
@@ -21,7 +21,6 @@
|
|
21
21
|
|
22
22
|
require 'cucumber/chef/steps/chef_steps'
|
23
23
|
require 'cucumber/chef/steps/minitest_steps'
|
24
|
-
require 'cucumber/chef/steps/provision_steps'
|
25
24
|
require 'cucumber/chef/steps/ssh_steps'
|
26
25
|
|
27
26
|
################################################################################
|
@@ -75,9 +75,9 @@ end
|
|
75
75
|
|
76
76
|
Then /^I should( not)? see the "([^\"]*)" of "([^\"]*)" in the output$/ do |boolean, key, name|
|
77
77
|
if (!boolean)
|
78
|
-
@output.should =~ /#{
|
78
|
+
@output.should =~ /#{Cucumber::Chef::Containers.all.select{|c| c.name == name}.first.send(key.downcase.to_sym)}/i
|
79
79
|
else
|
80
|
-
@output.should_not =~ /#{
|
80
|
+
@output.should_not =~ /#{Cucumber::Chef::Containers.all.select{|c| c.name == name}.first.send(key.downcase.to_sym)}/i
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
@@ -31,7 +31,10 @@ chef-solr chef-solr/amqp_password password <%= @amqp_password %>
|
|
31
31
|
chef-server-webui chef-server-webui/admin_password password <%= @admin_password %>
|
32
32
|
EOF
|
33
33
|
|
34
|
-
apt-
|
34
|
+
CHEF_VERSION=`apt-cache showpkg chef | tee | grep -m 1 "<%= @chef_version %>" | cut -c -<%= @chef_version.length + 3 %>`
|
35
|
+
CHEF_SERVER_VERSION=`apt-cache showpkg chef-server | tee | grep -m 1 "<%= @chef_version %>" | cut -c -<%= @chef_version.length + 3 %>`
|
36
|
+
|
37
|
+
apt-get -q -y --force-yes install chef=$CHEF_VERSION chef-server=$CHEF_SERVER_VERSION
|
35
38
|
|
36
39
|
echo -n "Waiting on validation.pem and webui.pem to appear..."
|
37
40
|
until [ -f /etc/chef/validation.pem ] && [ -f /etc/chef/webui.pem ]; do
|
@@ -1,2 +1,2 @@
|
|
1
1
|
---
|
2
|
-
default:
|
2
|
+
default: --color --verbose --backtrace --exclude support/cookbooks --exclude support/data_bags --exclude support/environments --exclude support/keys --exclude support/roles --format pretty
|
@@ -19,7 +19,7 @@
|
|
19
19
|
################################################################################
|
20
20
|
|
21
21
|
tag = Cucumber::Chef.tag("cucumber-chef")
|
22
|
-
puts("
|
22
|
+
puts(">>> #{tag}")
|
23
23
|
Cucumber::Chef.boot(tag)
|
24
24
|
|
25
25
|
$ui = ZTK::UI.new(:logger => Cucumber::Chef.logger)
|
@@ -31,40 +31,53 @@ end
|
|
31
31
|
|
32
32
|
if ENV['PURGE'] == 'YES'
|
33
33
|
$ui.logger.warn { "PURGING CONTAINERS! Container attributes will be reset!" }
|
34
|
-
$test_lab.containers.
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
$test_lab.containers.list.each do |name|
|
35
|
+
ZTK::Benchmark.bench(:message => ">>> Destroying container '#{name}'", :mark => "completed in %0.4f seconds.") do
|
36
|
+
$test_lab.containers.destroy(name)
|
37
|
+
end
|
38
38
|
end
|
39
|
-
|
40
|
-
File.exists?(Cucumber::Chef.containers_bin) && File.delete(Cucumber::Chef.containers_bin)
|
41
|
-
$test_lab.containers.load
|
42
39
|
else
|
43
40
|
$ui.logger.info { "Allowing existing containers to persist." }
|
44
41
|
end
|
45
42
|
|
46
|
-
|
43
|
+
$test_lab.containers.chef_set_client_config(:chef_server_url => "http://192.168.255.254:4000",
|
44
|
+
:validation_client_name => "chef-validator")
|
45
|
+
|
46
|
+
if ENV['SETUP'] == 'YES'
|
47
47
|
# Upload all of the chef-repo environments
|
48
|
-
|
49
|
-
|
48
|
+
ZTK::Benchmark.bench(:message => ">>> Pushing chef-repo environments to the test lab", :mark => "completed in %0.4f seconds.") do
|
49
|
+
$test_lab.knife_cli(%Q{environment from file ./environments/*.rb}, :silence => true)
|
50
|
+
end
|
50
51
|
|
51
52
|
# Upload all of the chef-repo cookbooks
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
53
|
+
ZTK::Benchmark.bench(:message => ">>> Pushing chef-repo cookbooks to the test lab", :mark => "completed in %0.4f seconds.") do
|
54
|
+
cookbook_paths = ["./cookbooks"]
|
55
|
+
cookbook_paths << "./site-cookbooks" if Cucumber::Chef::Config.librarian_chef
|
56
|
+
$test_lab.knife_cli(%Q{cookbook upload --all --cookbook-path #{cookbook_paths.join(':')} --force}, :silence => true)
|
57
|
+
end
|
56
58
|
|
57
59
|
# Upload all of the chef-repo roles
|
58
|
-
|
59
|
-
|
60
|
+
ZTK::Benchmark.bench(:message => ">>> Pushing chef-repo roles to the test lab", :mark => "completed in %0.4f seconds.") do
|
61
|
+
$test_lab.knife_cli(%Q{role from file ./roles/*.rb}, :silence => true)
|
62
|
+
end
|
60
63
|
|
61
64
|
# Upload all of our chef-repo data bags
|
62
65
|
Dir.glob("./data_bags/*").each do |data_bag_path|
|
63
66
|
next if !File.directory?(data_bag_path)
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
67
|
+
ZTK::Benchmark.bench(:message => ">>> Pushing chef-repo data bag '#{File.basename(data_bag_path)}' to the test lab", :mark => "completed in %0.4f seconds.") do
|
68
|
+
data_bag = File.basename(data_bag_path)
|
69
|
+
$test_lab.knife_cli(%Q{data bag create "#{data_bag}"}, :silence => true)
|
70
|
+
$test_lab.knife_cli(%Q{data bag from file "#{data_bag}" "#{data_bag_path}"}, :silence => true)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
Cucumber::Chef::Container.all.each do |container|
|
75
|
+
ZTK::Benchmark.bench(:message => ">>> Creating container '#{container.name}'", :mark => "completed in %0.4f seconds.") do
|
76
|
+
$test_lab.containers.create(container)
|
77
|
+
end
|
78
|
+
ZTK::Benchmark.bench(:message => ">>> Provisioning container '#{container.name}'", :mark => "completed in %0.4f seconds.") do
|
79
|
+
$test_lab.containers.chef_run_client(container)
|
80
|
+
end
|
68
81
|
end
|
69
82
|
end
|
70
83
|
|
@@ -74,21 +87,9 @@ end
|
|
74
87
|
################################################################################
|
75
88
|
|
76
89
|
Before do |scenario|
|
77
|
-
$scenario = scenario
|
78
|
-
|
79
|
-
$test_lab.containers.load
|
80
|
-
|
81
|
-
$test_lab.containers.chef_set_client_config(:chef_server_url => "http://192.168.255.254:4000",
|
82
|
-
:validation_client_name => "chef-validator")
|
83
90
|
end
|
84
91
|
|
85
92
|
After do |scenario|
|
86
|
-
$test_lab.containers.save
|
87
|
-
|
88
|
-
$test_lab.containers.to_a.select{ |name, attributes| !attributes[:persist] }.each do |name, attributes|
|
89
|
-
server_destroy(name)
|
90
|
-
end
|
91
|
-
|
92
93
|
@connection and @connection.ssh.shutdown!
|
93
94
|
end
|
94
95
|
|
@@ -91,8 +91,11 @@ module Cucumber
|
|
91
91
|
|
92
92
|
arguments = Array.new
|
93
93
|
arguments << "--user #{Cucumber::Chef::Config.user}"
|
94
|
+
arguments << "--key #{Cucumber::Chef.chef_identity}"
|
94
95
|
arguments << "--server-url #{self.chef_server_api}"
|
95
|
-
arguments << "--
|
96
|
+
arguments << "--disable-editing"
|
97
|
+
arguments << "--yes"
|
98
|
+
arguments << "-VV" if Cucumber::Chef.is_rc?
|
96
99
|
|
97
100
|
command = Cucumber::Chef.build_command("knife", args, arguments)
|
98
101
|
ZTK::Command.new.exec(command, options)
|
@@ -136,18 +136,30 @@ module Cucumber
|
|
136
136
|
|
137
137
|
################################################################################
|
138
138
|
|
139
|
-
def
|
140
|
-
|
141
|
-
FileUtils.mkdir_p(File.dirname(
|
142
|
-
|
139
|
+
def labfile
|
140
|
+
labfile = File.join(Cucumber::Chef.chef_repo, "Labfile")
|
141
|
+
FileUtils.mkdir_p(File.dirname(labfile))
|
142
|
+
labfile
|
143
143
|
end
|
144
144
|
|
145
145
|
################################################################################
|
146
146
|
|
147
|
-
def
|
148
|
-
|
149
|
-
|
150
|
-
|
147
|
+
# def knife_rb
|
148
|
+
# knife_rb = File.join(Cucumber::Chef.home_dir, Cucumber::Chef::Config.provider.to_s, "knife.rb")
|
149
|
+
# FileUtils.mkdir_p(File.dirname(knife_rb))
|
150
|
+
# knife_rb
|
151
|
+
# end
|
152
|
+
|
153
|
+
################################################################################
|
154
|
+
|
155
|
+
def chef_user
|
156
|
+
Cucumber::Chef::Config.user
|
157
|
+
end
|
158
|
+
|
159
|
+
def chef_identity
|
160
|
+
chef_identity = File.join(Cucumber::Chef.home_dir, Cucumber::Chef::Config.provider.to_s, "#{chef_user}.pem")
|
161
|
+
FileUtils.mkdir_p(File.dirname(chef_identity))
|
162
|
+
chef_identity
|
151
163
|
end
|
152
164
|
|
153
165
|
################################################################################
|
@@ -236,26 +248,7 @@ module Cucumber
|
|
236
248
|
name and logger.info { "loading #{name}" }
|
237
249
|
logger.info { "boot(#{Cucumber::Chef.config_rb})" }
|
238
250
|
Cucumber::Chef::Config.load
|
239
|
-
|
240
|
-
end
|
241
|
-
|
242
|
-
################################################################################
|
243
|
-
# Load Chef::Config
|
244
|
-
################################################################################
|
245
|
-
|
246
|
-
def load_chef_config
|
247
|
-
if File.exists?(Cucumber::Chef.knife_rb)
|
248
|
-
logger.info { "load_chef_config(#{Cucumber::Chef.knife_rb})" }
|
249
|
-
::Chef::Config.from_file(Cucumber::Chef.knife_rb)
|
250
|
-
|
251
|
-
if (test_lab = (Cucumber::Chef::TestLab.new rescue nil)) && test_lab.alive?
|
252
|
-
chef_server_url = "http://#{test_lab.ip}:4000"
|
253
|
-
logger.info { "chef_server_url(#{chef_server_url})" }
|
254
|
-
::Chef::Config[:chef_server_url] = chef_server_url
|
255
|
-
end
|
256
|
-
else
|
257
|
-
logger.warn { "knife config '#{Cucumber::Chef.knife_rb}' was missing!" }
|
258
|
-
end
|
251
|
+
Cucumber::Chef::Labfile.load(Cucumber::Chef.labfile)
|
259
252
|
end
|
260
253
|
|
261
254
|
################################################################################
|
@@ -267,13 +260,11 @@ module Cucumber
|
|
267
260
|
|
268
261
|
dependencies = {
|
269
262
|
"cucumber_chef_version" => Cucumber::Chef::VERSION.inspect,
|
270
|
-
"chef_version" => ::Chef::VERSION.inspect,
|
271
263
|
"fog_version" => ::Fog::VERSION.inspect,
|
272
264
|
"ruby_version" => RUBY_VERSION.inspect,
|
273
265
|
"ruby_patchlevel" => RUBY_PATCHLEVEL.inspect,
|
274
266
|
"ruby_platform" => RUBY_PLATFORM.inspect,
|
275
267
|
"ztk_version" => ::ZTK::VERSION.inspect
|
276
|
-
# "cucumber_version" => ::Cucumber::VERSION.inspect
|
277
268
|
}
|
278
269
|
if RUBY_VERSION >= "1.9"
|
279
270
|
dependencies.merge!("ruby_engine" => RUBY_ENGINE.inspect)
|
@@ -285,8 +276,7 @@ module Cucumber
|
|
285
276
|
"chef_repo" => chef_repo.inspect,
|
286
277
|
"log_file" => log_file.inspect,
|
287
278
|
"config_rb" => config_rb.inspect,
|
288
|
-
"
|
289
|
-
"containers_bin" => containers_bin.inspect
|
279
|
+
"labfile" => labfile.inspect
|
290
280
|
}
|
291
281
|
|
292
282
|
max_key_length = [dependencies.keys.collect{ |key| key.to_s.length }.max, details.keys.collect{ |key| key.to_s.length }.max].max + 2
|
@@ -24,7 +24,7 @@ module Cucumber
|
|
24
24
|
|
25
25
|
################################################################################
|
26
26
|
|
27
|
-
VERSION = "
|
27
|
+
VERSION = "3.0.0.rc.0" unless const_defined?(:VERSION)
|
28
28
|
|
29
29
|
################################################################################
|
30
30
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cucumber-chef
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0.rc.0
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,24 +10,8 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-02-
|
13
|
+
date: 2013-02-13 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: chef
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
|
-
requirements:
|
20
|
-
- - ! '>='
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 0.10.0
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ! '>='
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: 0.10.0
|
31
15
|
- !ruby/object:Gem::Dependency
|
32
16
|
name: fog
|
33
17
|
requirement: !ruby/object:Gem::Requirement
|
@@ -147,7 +131,7 @@ dependencies:
|
|
147
131
|
requirements:
|
148
132
|
- - ! '>='
|
149
133
|
- !ruby/object:Gem::Version
|
150
|
-
version: 1.0.
|
134
|
+
version: 1.0.3
|
151
135
|
type: :runtime
|
152
136
|
prerelease: false
|
153
137
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -155,7 +139,7 @@ dependencies:
|
|
155
139
|
requirements:
|
156
140
|
- - ! '>='
|
157
141
|
- !ruby/object:Gem::Version
|
158
|
-
version: 1.0.
|
142
|
+
version: 1.0.3
|
159
143
|
- !ruby/object:Gem::Dependency
|
160
144
|
name: simplecov
|
161
145
|
requirement: !ruby/object:Gem::Requirement
|
@@ -280,9 +264,12 @@ files:
|
|
280
264
|
- lib/cucumber/chef.rb
|
281
265
|
- lib/cucumber/chef/client.rb
|
282
266
|
- lib/cucumber/chef/config.rb
|
267
|
+
- lib/cucumber/chef/container.rb
|
283
268
|
- lib/cucumber/chef/containers.rb
|
269
|
+
- lib/cucumber/chef/ecosystem.rb
|
284
270
|
- lib/cucumber/chef/helpers.rb
|
285
271
|
- lib/cucumber/chef/helpers/chef.rb
|
272
|
+
- lib/cucumber/chef/labfile.rb
|
286
273
|
- lib/cucumber/chef/provider.rb
|
287
274
|
- lib/cucumber/chef/providers/aws.rb
|
288
275
|
- lib/cucumber/chef/providers/vagrant.rb
|
@@ -290,12 +277,10 @@ files:
|
|
290
277
|
- lib/cucumber/chef/steps.rb
|
291
278
|
- lib/cucumber/chef/steps/chef_steps.rb
|
292
279
|
- lib/cucumber/chef/steps/minitest_steps.rb
|
293
|
-
- lib/cucumber/chef/steps/provision_steps.rb
|
294
280
|
- lib/cucumber/chef/steps/ssh_steps.rb
|
295
281
|
- lib/cucumber/chef/templates/bootstrap/ubuntu-precise-test-lab.erb
|
296
282
|
- lib/cucumber/chef/templates/cucumber-chef/config-rb.erb
|
297
283
|
- lib/cucumber/chef/templates/cucumber-chef/cucumber-yml.erb
|
298
|
-
- lib/cucumber/chef/templates/cucumber-chef/knife-rb.erb
|
299
284
|
- lib/cucumber/chef/templates/cucumber/cc-hooks.rb
|
300
285
|
- lib/cucumber/chef/templates/cucumber/env.rb
|
301
286
|
- lib/cucumber/chef/templates/cucumber/example_feature.erb
|