cucumber-chef 2.1.0.rc.11 → 2.1.0.rc.12

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/cucumber-chef CHANGED
@@ -3,6 +3,7 @@
3
3
  require 'thor'
4
4
  require 'cucumber-chef'
5
5
 
6
+
6
7
  # $logger = Cucumber::Chef.logger
7
8
 
8
9
  class CucumberChef < Thor
@@ -55,7 +56,7 @@ class CucumberChef < Thor
55
56
 
56
57
  def boot
57
58
  tag = Cucumber::Chef.tag("cucumber-chef")
58
- puts(set_color(tag, :green, true))
59
+ puts(tag)
59
60
  Cucumber::Chef.boot(tag)
60
61
  $logger = Cucumber::Chef.logger
61
62
 
@@ -204,23 +205,14 @@ class CucumberChef < Thor
204
205
  puts("BOOM!")
205
206
  puts
206
207
 
207
- ZTK::Benchmark.bench(:message => "Start cc-server", :mark => "completed in %0.4f seconds.") do
208
- test_lab.cc_client.up(:silence => true)
209
- end
210
-
211
208
  args.each do |container|
212
209
  ZTK::Benchmark.bench(:message => "Destroy container '#{container}'", :mark => "completed in %0.4f seconds.") do
213
- test_lab.drb.load_containers
214
- test_lab.drb.server_destroy(container)
215
- test_lab.drb.server_delete(container)
216
- test_lab.drb.save_containers
210
+ test_lab.containers.load
211
+ test_lab.containers.destroy(container)
212
+ test_lab.containers.save
217
213
  end
218
214
  end
219
215
 
220
- ZTK::Benchmark.bench(:message => "Stop cc-server", :mark => "completed in %0.4f seconds.") do
221
- test_lab.cc_client.down
222
- end
223
-
224
216
  else
225
217
  puts
226
218
  puts(set_color("Whew! That was close!", :green, true))
@@ -318,19 +310,16 @@ class CucumberChef < Thor
318
310
  if (test_lab = Cucumber::Chef::TestLab.new)
319
311
  if @options.containers?
320
312
  if test_lab.alive?
321
- ZTK::Benchmark.bench(:message => "Start cc-server", :mark => "completed in %0.4f seconds.") do
322
- test_lab.cc_client.up(:silence => true)
323
- end
324
313
 
325
- test_lab.drb.load_containers
314
+ test_lab.containers.load
326
315
 
327
- if test_lab.drb.containers.count > 0
316
+ if test_lab.containers.count > 0
328
317
  headers = [:name, :alive, :arch, :distro, :ip, :mac, :"chef version", :persist]
329
- results = ZTK::Report.new.spreadsheet(test_lab.drb.containers, headers) do |name, detail|
318
+ results = ZTK::Report.new.spreadsheet(test_lab.containers.to_a, headers) do |name, detail|
330
319
  chef_version = "N/A"
331
- alive = (test_lab.drb.command_run_local(%Q{ping -n -c 1 -W 1 #{detail[:ip]}}, :ignore_exit_status => true).exit_code == 0)
320
+ alive = (test_lab.bootstrap_ssh(:ignore_exit_status => true).exec(%Q{ping -n -c 1 -W 1 #{detail[:ip]}}, :silence => true).exit_code == 0)
332
321
  if alive
333
- chef_version = test_lab.drb.command_run_chroot(name, %Q{/usr/bin/env chef-client -v}, :ignore_exit_status => true).output.chomp
322
+ chef_version = test_lab.proxy_ssh(name, :ignore_exit_status => true).exec(%Q{/usr/bin/env chef-client -v}, :silence => true).output.chomp
334
323
  end
335
324
 
336
325
  OpenStruct.new(
@@ -359,9 +348,6 @@ class CucumberChef < Thor
359
348
  raise Cucumber::Chef::Error, "We could not find any containers!"
360
349
  end
361
350
 
362
- ZTK::Benchmark.bench(:message => "Stop cc-server", :mark => "completed in %0.4f seconds.") do
363
- test_lab.cc_client.down
364
- end
365
351
  else
366
352
  raise Cucumber::Chef::Error, "We could not find a running test lab."
367
353
  end
@@ -19,7 +19,7 @@
19
19
  ################################################################################
20
20
 
21
21
 
22
- %w( lxc bridge-utils debootstrap yum isc-dhcp-server bind9 ntpdate ntp ).each do |p|
22
+ %w(lxc bridge-utils debootstrap yum isc-dhcp-server bind9 ntpdate ntp).each do |p|
23
23
  package p
24
24
  end
25
25
 
@@ -220,25 +220,6 @@ end
220
220
  service "lxc-net"
221
221
  service "lxc"
222
222
 
223
- #directory "create cgroup mount point" do
224
- # path "/cgroup"
225
- #
226
- # not_if { File.exists?("/cgroup") && File.directory?("/cgroup") }
227
- #end
228
-
229
- #mount "mount cgroup device" do
230
- # mount_point "/cgroup"
231
- # device "cgroup"
232
- # fstype "cgroup"
233
- # pass 0
234
- # action [:mount, :enable]
235
-
236
- # not_if do
237
- # %x( mount | grep "cgroup" )
238
- # ($? == 0)
239
- # end
240
- #end
241
-
242
223
  execute "set LXC_AUTO to false" do
243
224
  command "sed -i \"s/LXC_AUTO=\\\"true\\\"/LXC_AUTO=\\\"false\\\"/\" /etc/default/lxc"
244
225
 
@@ -266,48 +247,3 @@ directory "create lxc configuration directory" do
266
247
 
267
248
  not_if { File.exists?("/etc/lxc") && File.directory?("/etc/lxc") }
268
249
  end
269
-
270
- # # load the chef client into our distro lxc cache
271
- # install_chef_sh = "/tmp/install-chef.sh"
272
- # distros = { "ubuntu" => [ "lucid", "maverick", "natty", "oneiric", "precise" ] }
273
- # arch = (%x( arch ).include?("i686") ? "i386" : "amd64")
274
-
275
- # template "create lxc initializer container configuration" do
276
- # path "/etc/lxc/initializer"
277
- # source "lxc-initializer-config.erb"
278
-
279
- # not_if { File.exists?("/etc/lxc/initializer") }
280
- # end
281
-
282
- # distros.each do |distro, releases|
283
- # releases.each do |release|
284
- # cache_rootfs = File.join("/", "var", "cache", "lxc", release, "rootfs-#{arch}")
285
- # initializer_rootfs = File.join("/", "var", "lib", "lxc", "initializer", "rootfs")
286
-
287
- # execute "create the lxc initializer container for #{distro}/#{release}" do
288
- # command "lxc-create -n initializer -f /etc/lxc/initializer -t #{distro} -- -r #{release}"
289
-
290
- # not_if { File.exists?(cache_rootfs) && File.directory?(cache_rootfs) }
291
- # end
292
-
293
- # execute "destroy the lxc initializer container for #{distro}/#{release}" do
294
- # command "lxc-destroy -n initializer"
295
-
296
- # only_if { File.exists?(initializer_rootfs) && File.directory?(initializer_rootfs) }
297
- # end
298
-
299
- # template "create opscode omnibus installer in lxc container cache for #{distro}/#{release}" do
300
- # path "#{cache_rootfs}#{install_chef_sh}"
301
- # source "lxc-install-chef.erb"
302
- # mode "0755"
303
-
304
- # not_if { File.exists?(File.join(cache_rootfs, install_chef_sh)) }
305
- # end
306
-
307
- # execute "install chef-client using omnibus in lxc container cache for #{distro}/#{release}" do
308
- # command "chroot #{cache_rootfs} /bin/bash -c '#{install_chef_sh}'"
309
-
310
- # not_if { File.exists?(File.join(cache_rootfs, "opt", "opscode", "bin", "chef-client")) }
311
- # end
312
- # end
313
- # end
@@ -23,7 +23,7 @@
23
23
  # SYSTEM TWEAKS
24
24
  ################################################################################
25
25
 
26
- %w( build-essential wget chkconfig ruby-full ruby-dev libxml2-dev libxslt1-dev ).each do |p|
26
+ %w(build-essential wget chkconfig).each do |p|
27
27
  package p
28
28
  end
29
29
 
@@ -49,16 +49,6 @@ end
49
49
  not_if { File.exists?(File.join(home_dir, ".ssh", "config")) }
50
50
  end
51
51
 
52
- template "create .gemrc for #{user}" do
53
- path "#{home_dir}/.gemrc"
54
- source "gemrc.erb"
55
- owner user
56
- group user
57
- mode "0644"
58
-
59
- not_if { File.exists?(File.join(home_dir, ".gemrc")) }
60
- end
61
-
62
52
  execute "generate ssh keypair for #{user}" do
63
53
  command "ssh-keygen -q -N '' -f #{home_dir}/.ssh/id_rsa"
64
54
 
@@ -106,36 +96,6 @@ template "install cucumber-chef motd" do
106
96
  end
107
97
 
108
98
 
109
- ################################################################################
110
- # RUBY
111
- ################################################################################
112
- bash "install rubygems" do
113
- code <<-EOH
114
- cd /tmp
115
- wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.19.tgz
116
- tar zxf rubygems-1.8.19.tgz
117
- cd rubygems-1.8.19
118
- ruby setup.rb --no-format-executable
119
- EOH
120
- end
121
-
122
- gem_package "cucumber-chef" do
123
- gem_binary("/usr/bin/gem")
124
-
125
- version(node['cucumber_chef']['version'])
126
-
127
- if node['cucumber_chef']['prerelease']
128
- options("--prerelease")
129
- end
130
- end
131
-
132
- %w( rspec ).each do |g|
133
- gem_package g do
134
- gem_binary("/usr/bin/gem")
135
- end
136
- end
137
-
138
-
139
99
  ################################################################################
140
100
  # CHEF-CLIENT
141
101
  ################################################################################
@@ -39,7 +39,6 @@ Gem::Specification.new do |s|
39
39
 
40
40
  # Providers
41
41
  s.add_dependency("fog", ">= 1.3.1")
42
- # s.add_dependency("vagrant", ">= 1.0.5")
43
42
 
44
43
  # TDD
45
44
  s.add_dependency("cucumber", ">= 1.2.0")
@@ -50,7 +49,7 @@ Gem::Specification.new do |s|
50
49
  s.add_dependency("rake", ">= 0.9.2")
51
50
  s.add_dependency("thor", ">= 0.15.2")
52
51
  s.add_dependency("ubuntu_ami", ">= 0.4.0")
53
- s.add_dependency("ztk", ">= 1.0.0")
52
+ s.add_dependency("ztk", ">= 1.0.1")
54
53
 
55
54
  s.add_development_dependency("simplecov", ">= 0.6.4")
56
55
  s.add_development_dependency("pry", ">= 0")
@@ -36,44 +36,44 @@ module Cucumber
36
36
  ################################################################################
37
37
 
38
38
  def up(options={})
39
- user = Cucumber::Chef.lab_user
40
- home_dir = Cucumber::Chef.lab_user_home_dir
41
- provider = Cucumber::Chef::Config.provider.to_s
42
- @test_lab.ssh.exec("sudo mkdir -p #{File.join(home_dir, ".cucumber-chef", provider)}")
43
- @test_lab.ssh.exec("sudo cp -f #{File.join(home_dir, ".chef", "knife.rb")} #{File.join(home_dir, ".cucumber-chef", provider, "knife.rb")}")
44
- @test_lab.ssh.exec("sudo chown -R #{user}:#{user} #{File.join(home_dir, ".cucumber-chef")}")
45
-
46
- local_file = Cucumber::Chef.config_rb
47
- remote_file = File.join(home_dir, ".cucumber-chef", "config.rb")
48
- @test_lab.ssh.upload(local_file, remote_file)
49
-
50
- begin
51
- self.ping
52
- rescue
53
- @background = ZTK::Background.new
54
- @background.process do
55
- self.down
56
-
57
- environment = Array.new
58
- %w(PURGE VERBOSE LOG_LEVEL).each do |env_var|
59
- environment << "#{env_var}=#{ENV[env_var].inspect}" if (!ENV[env_var].nil? && !ENV[env_var].empty?)
60
- end
61
- environment = environment.join(" ")
62
- external_ip = Cucumber::Chef.external_ip
63
-
64
- command = %Q{nohup sudo #{environment} /usr/bin/env cc-server #{external_ip} &}
65
-
66
- @test_lab.ssh.exec(command, options)
67
- end
68
-
69
- Kernel.at_exit do
70
- self.at_exit
71
- end
72
- end
73
-
74
- ZTK::RescueRetry.try(:tries => 30) do
75
- self.drb.ping
76
- end
39
+ # user = Cucumber::Chef.lab_user
40
+ # home_dir = Cucumber::Chef.lab_user_home_dir
41
+ # provider = Cucumber::Chef::Config.provider.to_s
42
+ # @test_lab.ssh.exec("sudo mkdir -p #{File.join(home_dir, ".cucumber-chef", provider)}")
43
+ # @test_lab.ssh.exec("sudo cp -f #{File.join(home_dir, ".chef", "knife.rb")} #{File.join(home_dir, ".cucumber-chef", provider, "knife.rb")}")
44
+ # @test_lab.ssh.exec("sudo chown -R #{user}:#{user} #{File.join(home_dir, ".cucumber-chef")}")
45
+
46
+ # local_file = Cucumber::Chef.config_rb
47
+ # remote_file = File.join(home_dir, ".cucumber-chef", "config.rb")
48
+ # @test_lab.ssh.upload(local_file, remote_file)
49
+
50
+ # begin
51
+ # self.ping
52
+ # rescue
53
+ # @background = ZTK::Background.new
54
+ # @background.process do
55
+ # self.down
56
+
57
+ # environment = Array.new
58
+ # %w(PURGE VERBOSE LOG_LEVEL).each do |env_var|
59
+ # environment << "#{env_var}=#{ENV[env_var].inspect}" if (!ENV[env_var].nil? && !ENV[env_var].empty?)
60
+ # end
61
+ # environment = environment.join(" ")
62
+ # external_ip = Cucumber::Chef.external_ip
63
+
64
+ # command = %Q{nohup sudo #{environment} /usr/bin/env cc-server #{external_ip} &}
65
+
66
+ # @test_lab.ssh.exec(command, options)
67
+ # end
68
+
69
+ # Kernel.at_exit do
70
+ # self.at_exit
71
+ # end
72
+ # end
73
+
74
+ # ZTK::RescueRetry.try(:tries => 30) do
75
+ # self.drb.ping
76
+ # end
77
77
 
78
78
  true
79
79
  end
@@ -81,17 +81,17 @@ module Cucumber
81
81
  ################################################################################
82
82
 
83
83
  def down
84
- (@test_lab.drb.shutdown rescue nil)
84
+ # (@test_lab.drb.shutdown rescue nil)
85
85
  end
86
86
 
87
87
  ################################################################################
88
88
 
89
- def drb
90
- @drb and DRb.stop_service
91
- @drb = DRbObject.new_with_uri("druby://#{@test_lab.ip}:8787")
92
- @drb and DRb.start_service
93
- @drb
94
- end
89
+ # def drb
90
+ # @drb and DRb.stop_service
91
+ # @drb = DRbObject.new_with_uri("druby://#{@test_lab.ip}:8787")
92
+ # @drb and DRb.start_service
93
+ # @drb
94
+ # end
95
95
 
96
96
  ################################################################################
97
97
 
@@ -100,30 +100,20 @@ module Cucumber
100
100
  # we use various aspects of the scenario to name our artifacts
101
101
  $scenario = scenario
102
102
 
103
- @test_lab.drb.load_containers
104
-
105
- @test_lab.drb.chef_set_client_config(:chef_server_url => "http://192.168.255.254:4000",
106
- :validation_client_name => "chef-validator")
107
103
  end
108
104
 
109
105
  ################################################################################
110
106
 
111
107
  def after(scenario)
112
- @test_lab.drb.save_containers
113
-
114
- # cleanup non-persistent lxc containers after tests
115
- @test_lab.drb.containers.select{ |name, attributes| !attributes[:persist] }.each do |name, attributes|
116
- @test_lab.drb.server_destroy(name)
117
- end
118
108
  end
119
109
 
120
110
  ################################################################################
121
111
 
122
- def at_exit
123
- @ui.logger.fatal { "Waiting for cc-server to shutdown." }
124
- self.down
125
- @background.wait
126
- end
112
+ # def at_exit
113
+ # @ui.logger.fatal { "Waiting for cc-server to shutdown." }
114
+ # self.down
115
+ # @background.wait
116
+ # end
127
117
 
128
118
  ################################################################################
129
119