boxgrinder-build 0.10.0 → 0.10.1

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 (63) hide show
  1. data/CHANGELOG +11 -0
  2. data/Manifest +6 -7
  3. data/Rakefile +11 -6
  4. data/bash_completion +37 -0
  5. data/bin/boxgrinder-build +20 -5
  6. data/boxgrinder-build.gemspec +4 -4
  7. data/lib/boxgrinder-build.rb +2 -1
  8. data/lib/boxgrinder-build/appliance.rb +26 -24
  9. data/lib/boxgrinder-build/helpers/augeas-helper.rb +1 -1
  10. data/lib/boxgrinder-build/helpers/ec2-helper.rb +2 -2
  11. data/lib/boxgrinder-build/helpers/guestfs-helper.rb +1 -1
  12. data/lib/boxgrinder-build/helpers/s3-helper.rb +2 -2
  13. data/lib/boxgrinder-build/managers/plugin-manager.rb +1 -1
  14. data/lib/boxgrinder-build/plugins/delivery/ebs/ebs-plugin.rb +1 -1
  15. data/lib/boxgrinder-build/plugins/delivery/elastichosts/elastichosts-plugin.rb +2 -2
  16. data/lib/boxgrinder-build/plugins/delivery/openstack/openstack-plugin.rb +3 -3
  17. data/lib/boxgrinder-build/plugins/delivery/s3/s3-plugin.rb +16 -10
  18. data/lib/boxgrinder-build/plugins/os/centos/centos-plugin.rb +1 -1
  19. data/lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb +1 -1
  20. data/lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb +1 -1
  21. data/lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb +5 -1
  22. data/lib/boxgrinder-build/plugins/os/rpm-based/rpm-based-os-plugin.rb +8 -3
  23. data/lib/boxgrinder-build/plugins/os/rpm-based/rpm-dependency-validator.rb +1 -1
  24. data/lib/boxgrinder-build/plugins/os/sl/sl-plugin.rb +1 -1
  25. data/lib/boxgrinder-build/plugins/platform/ec2/ec2-plugin.rb +1 -1
  26. data/lib/boxgrinder-build/util/concurrent/get_set.rb +46 -0
  27. data/lib/boxgrinder-build/util/permissions/fs-monitor.rb +182 -0
  28. data/lib/boxgrinder-build/util/permissions/fs-observer.rb +82 -0
  29. data/lib/boxgrinder-build/util/permissions/user-switcher.rb +42 -0
  30. data/rubygem-boxgrinder-build.spec +25 -3
  31. data/spec/appliance-spec.rb +69 -82
  32. data/spec/helpers/augeas-helper-spec.rb +0 -2
  33. data/spec/helpers/guestfs-helper-spec.rb +1 -3
  34. data/spec/helpers/image-helper-spec.rb +0 -2
  35. data/spec/helpers/linux-helper-spec.rb +0 -2
  36. data/spec/helpers/package-helper-spec.rb +0 -2
  37. data/spec/helpers/plugin-helper-spec.rb +0 -2
  38. data/spec/helpers/s3-helper-spec.rb +0 -2
  39. data/spec/managers/plugin-manager-spec.rb +0 -2
  40. data/spec/plugins/base-plugin-spec.rb +0 -2
  41. data/spec/plugins/delivery/ebs/ebs-plugin-spec.rb +0 -2
  42. data/spec/plugins/delivery/elastichosts/elastichosts-plugin-spec.rb +3 -5
  43. data/spec/plugins/delivery/libvirt/libvirt-plugin-spec.rb +19 -17
  44. data/spec/plugins/delivery/local/local-plugin-spec.rb +0 -2
  45. data/spec/plugins/delivery/s3/s3-plugin-spec.rb +6 -8
  46. data/spec/plugins/delivery/sftp/sftp-plugin-spec.rb +0 -2
  47. data/spec/plugins/os/centos/centos-plugin-spec.rb +0 -2
  48. data/spec/plugins/os/fedora/fedora-plugin-spec.rb +0 -2
  49. data/spec/plugins/os/rhel/rhel-plugin-spec.rb +0 -2
  50. data/spec/plugins/os/rpm-based/kickstart-spec.rb +0 -2
  51. data/spec/plugins/os/rpm-based/rpm-based-os-plugin-spec.rb +16 -4
  52. data/spec/plugins/os/rpm-based/rpm-dependency-validator-spec.rb +0 -2
  53. data/spec/plugins/platform/ec2/ec2-plugin-spec.rb +0 -2
  54. data/spec/plugins/platform/virtualbox/virtualbox-plugin-spec.rb +1 -3
  55. data/spec/plugins/platform/virtualpc/virtualpc-plugin-spec.rb +0 -1
  56. data/spec/plugins/platform/vmware/vmware-plugin-spec.rb +25 -24
  57. data/spec/rcov_helper.rb +2 -0
  58. data/spec/spec_helper.rb +9 -0
  59. data/spec/util/concurrent/get-set-spec.rb +43 -0
  60. data/spec/util/permissions/fs-monitor-spec.rb +233 -0
  61. data/spec/util/permissions/fs-observer-spec.rb +141 -0
  62. data/spec/util/permissions/user-switcher-spec.rb +69 -0
  63. metadata +20 -5
@@ -5,7 +5,7 @@
5
5
 
6
6
  Summary: A tool for creating appliances from simple plain text files
7
7
  Name: rubygem-%{gemname}
8
- Version: 0.10.0
8
+ Version: 0.10.1
9
9
  Release: 1%{?dist}
10
10
  Group: Development/Languages
11
11
  License: LGPLv3+
@@ -13,14 +13,14 @@ URL: http://boxgrinder.org/
13
13
  Source0: http://rubygems.org/gems/%{gemname}-%{version}.gem
14
14
 
15
15
  Requires: ruby(abi) = %{rubyabi}
16
- Requires: rubygem(boxgrinder-core) >= 0.3.0
16
+ Requires: rubygem(boxgrinder-core) >= 0.3.11
17
17
  Requires: rubygem(boxgrinder-core) < 0.4.0
18
18
  Requires: ruby-libguestfs
19
19
 
20
20
  BuildArch: noarch
21
21
 
22
22
  BuildRequires: rubygem(rake)
23
- BuildRequires: rubygem(boxgrinder-core) >= 0.3.0
23
+ BuildRequires: rubygem(boxgrinder-core) >= 0.3.11
24
24
  BuildRequires: rubygem(boxgrinder-core) < 0.4.0
25
25
  BuildRequires: rubygem(echoe)
26
26
  BuildRequires: ruby-libguestfs
@@ -110,6 +110,9 @@ find %{_builddir}%{geminstdir}/bin -type f | xargs chmod a+x
110
110
  rm -rf %{_builddir}/%{geminstdir}/integ/packages/*.rpm
111
111
  cp -r %{_builddir}%{gemdir}/* %{buildroot}/%{gemdir}
112
112
 
113
+ install -d -m 755 %{buildroot}/%{_sysconfdir}/bash_completion.d
114
+ mv %{buildroot}/%{geminstdir}/bash_completion %{buildroot}/%{_sysconfdir}/bash_completion.d/%{name}
115
+
113
116
  %check
114
117
  pushd %{_builddir}/%{geminstdir}
115
118
  rake spec
@@ -118,6 +121,7 @@ popd
118
121
  %files
119
122
  %defattr(-, root, root, -)
120
123
  %{_bindir}/boxgrinder-build
124
+ %{_sysconfdir}/bash_completion.d/%{name}
121
125
  %dir %{geminstdir}
122
126
  %{geminstdir}/bin
123
127
  %{geminstdir}/lib
@@ -139,6 +143,24 @@ popd
139
143
  %{gemdir}/doc/%{gemname}-%{version}
140
144
 
141
145
  %changelog
146
+ * Wed Feb 29 2012 Marc Savy <msavy@redhat.com> - 0.10.1-1
147
+ - Upstream release: 0.10.1
148
+ - [BGBUILD-332] Add support for bash completion
149
+ - [BGBUILD-338] Weed out non-deterministic tests
150
+ - [BGBUILD-337] In SL if default repos are disabled, /etc/yum.repos.d folder is not created
151
+ - [BGBUILD-344] New filesystem monitoring improvements (Fixes: Shifting failed. Permission denied issues)
152
+ - [BGBUILD-345] Change sudo/chown magic so it only occurs when running without explicit sudo/su (or --change-to-user)
153
+ - [BGBUILD-346] Confirm Ruby 1.9.3 support
154
+ - [BGBUILD-348] Simplecov coverage testing for Ruby >=1.9
155
+ - [BGBUILD-349] Use RbConfig instead of obsolete and deprecated Config deprecation warning with Ruby 1.9.3
156
+
157
+
158
+ * Tue Dec 27 2011 Marek Goldmann <mgoldman@redhat.com> - 0.11.0-1
159
+ - Upstream release: 0.11.0
160
+ - [BGBUILD-332] Add support for bash completion
161
+ - [BGBUILD-338] Weed out non-deterministic tests
162
+ - [BGBUILD-337] In SL if default repos are disabled, /etc/yum.repos.d folder is not created.
163
+
142
164
  * Tue Nov 29 2011 Marek Goldmann <mgoldman@redhat.com> - 0.10.0-1
143
165
  - Upstream release: 0.10.0
144
166
  - [BGBUILD-313] boxgrinder build fails to build ec2 image if ec2-user already exists
@@ -16,8 +16,6 @@
16
16
  # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
- require 'rubygems'
20
- require 'rspec'
21
19
  require 'boxgrinder-build/appliance'
22
20
  require 'ostruct'
23
21
  require 'logger'
@@ -26,8 +24,9 @@ module BoxGrinder
26
24
  describe Appliance do
27
25
  def prepare_appliance(options = {}, definition_file = "#{File.dirname(__FILE__)}/rspec/src/appliances/jeos-f13.appl")
28
26
  @log = LogHelper.new(:level => :trace, :type => :stdout)
29
- @config = OpenCascade.new(:platform => :none, :delivery => :none, :force => false,
30
- :uid => 501, :gid => 501, :dir => {:root => '/', :build => 'build'}).merge(options)
27
+ @config = OpenCascade.new(:platform => :none, :delivery => :none, :force => false,
28
+ :change_to_user => false, :uid => 501, :gid => 501,
29
+ :dir => {:root => '/', :build => 'build'}).merge(options)
31
30
 
32
31
  @plugin_manager = mock(PluginManager)
33
32
 
@@ -174,6 +173,13 @@ module BoxGrinder
174
173
  before(:each) do
175
174
  prepare_appliance
176
175
  @appliance.instance_variable_set(:@appliance_config, prepare_appliance_config)
176
+
177
+ UserSwitcher.stub(:change_user)
178
+
179
+ @plugin1, @plugin2, @plugin3 = 3.times.map{|i| mock(i).as_null_object}
180
+
181
+ @p_chain = [{:plugin => @plugin1, :param => 'definition'},
182
+ {:plugin => @plugin2}, {:plugin => @plugin3}]
177
183
  end
178
184
 
179
185
  it "should not fail when plugin chain is empty" do
@@ -182,30 +188,67 @@ module BoxGrinder
182
188
  end
183
189
 
184
190
  it "should execute the whole plugin chain" do
185
- @appliance.instance_variable_set(:@plugin_chain, [{:plugin => :plugin1, :param => 'definition'}, {:plugin => :plugin2}, {:plugin => :plugin3}])
191
+ @appliance.instance_variable_set(:@plugin_chain, @p_chain)
192
+
193
+ @appliance.should_receive(:execute_plugin).with(@plugin1, 'definition')
194
+ @appliance.should_receive(:execute_plugin).with(@plugin2, nil)
195
+ @appliance.should_receive(:execute_plugin).with(@plugin3, nil)
196
+
197
+ @appliance.execute_plugin_chain
198
+ end
186
199
 
187
- @appliance.should_receive(:execute_plugin).ordered.with(:plugin1, 'definition')
188
- @appliance.should_receive(:execute_plugin).ordered.with(:plugin2, nil)
189
- @appliance.should_receive(:execute_plugin).ordered.with(:plugin3, nil)
200
+ context "when executing without change_user" do
201
+ before(:each) do
202
+ @config.stub(:change_to_user).and_return(false) # default
203
+ end
204
+
205
+ it "should not switch users" do
206
+ @appliance.instance_variable_set(:@plugin_chain, [])
207
+
208
+ UserSwitcher.should_not_receive(:change_user)
209
+ @appliance.execute_plugin_chain
210
+ end
211
+ end
190
212
 
191
- @appliance.execute_plugin_chain
213
+ context "when executing with change_user" do
214
+ before(:each) do
215
+ @config.stub(:change_to_user).and_return(true)
216
+ @plugin1.stub_chain(:plugin_info, :[]).and_return(true)
217
+ @plugin2.stub_chain(:plugin_info, :[]).and_return(false)
218
+ @plugin3.stub_chain(:plugin_info, :[]).and_return(false)
219
+
220
+ @appliance.instance_variable_set(:@plugin_chain, @p_chain)
221
+ end
222
+
223
+ it "should switch users if the plugin requires root, but not for those that do not" do
224
+ UserSwitcher.should_receive(:change_user).with(0, 0)
225
+ UserSwitcher.should_receive(:change_user).twice.with(501, 501)
226
+
227
+ @appliance.execute_plugin_chain
228
+ end
192
229
  end
193
230
  end
194
231
 
195
232
  describe ".initialize_plugins" do
233
+ let(:os_plugin){ mock("OSPlugin") }
234
+
235
+ let(:os_plugin_info_mock){ mock('os_plugin_info_mock', :[] => 'os').as_null_object }
236
+ let(:platform_plugin_info_mock){ mock('platform_plugin_info_mock', :[] => 'plat').as_null_object }
237
+ let(:delivery_plugin_info_mock){ mock('delivery_plugin_info_mock', :[] => 'deliver').as_null_object }
238
+
239
+ let(:platform_plugin){ mock("PlatformPlugin", :deliverables => OpenCascade.new(:disk => 'a/disk.vmdk')) }
240
+ let(:delivery_plugin){ mock("DeliveryPlugin", :deliverables => {}) }
241
+
196
242
  it "should prepare the plugin chain to create an appliance and convert it to VMware format" do
197
243
  prepare_appliance(:platform => :vmware)
198
244
  @appliance.instance_variable_set(:@appliance_config, prepare_appliance_config)
199
245
 
200
- os_plugin = mock("OSPlugin")
201
- platform_plugin = mock("PlatformPlugin", :deliverables => OpenCascade.new(:disk => 'a/disk.vmdk'))
202
-
203
- @plugin_manager.should_receive(:initialize_plugin).with(:os, :fedora).and_return([os_plugin, "os_plugin_info"])
204
- @plugin_manager.should_receive(:initialize_plugin).with(:platform, :vmware).and_return([platform_plugin, "platform_plugin_info"])
246
+ @plugin_manager.should_receive(:initialize_plugin).with(:os, :fedora).and_return([os_plugin, os_plugin_info_mock])
247
+ @plugin_manager.should_receive(:initialize_plugin).with(:platform, :vmware).and_return([platform_plugin, platform_plugin_info_mock])
205
248
  @plugin_manager.should_not_receive(:initialize_plugin).with(:delivery, anything)
206
249
 
207
- os_plugin.should_receive(:init).with(@config, @appliance_config, "os_plugin_info", :log => @log)
208
- platform_plugin.should_receive(:init).with(@config, @appliance_config, "platform_plugin_info", :log => @log, :previous_plugin => os_plugin)
250
+ os_plugin.should_receive(:init).with(@config, @appliance_config, os_plugin_info_mock, :log => @log)
251
+ platform_plugin.should_receive(:init).with(@config, @appliance_config, platform_plugin_info_mock, :log => @log, :previous_plugin => os_plugin)
209
252
 
210
253
  @appliance.initialize_plugins
211
254
 
@@ -217,17 +260,13 @@ module BoxGrinder
217
260
  prepare_appliance(:platform => :vmware, :delivery => :s3)
218
261
  @appliance.instance_variable_set(:@appliance_config, prepare_appliance_config)
219
262
 
220
- os_plugin = mock("OSPlugin")
221
- platform_plugin = mock("PlatformPlugin")
222
- delivery_plugin = mock("DeliveryPlugin", :deliverables => {})
263
+ @plugin_manager.should_receive(:initialize_plugin).with(:os, :fedora).and_return([os_plugin, os_plugin_info_mock])
264
+ @plugin_manager.should_receive(:initialize_plugin).with(:platform, :vmware).and_return([platform_plugin, platform_plugin_info_mock])
265
+ @plugin_manager.should_receive(:initialize_plugin).with(:delivery, :s3).and_return([delivery_plugin, delivery_plugin_info_mock])
223
266
 
224
- @plugin_manager.should_receive(:initialize_plugin).with(:os, :fedora).and_return([os_plugin, "os_plugin_info"])
225
- @plugin_manager.should_receive(:initialize_plugin).with(:platform, :vmware).and_return([platform_plugin, "platform_plugin_info"])
226
- @plugin_manager.should_receive(:initialize_plugin).with(:delivery, :s3).and_return([delivery_plugin, "delivery_plugin_info"])
227
-
228
- os_plugin.should_receive(:init).with(@config, @appliance_config, "os_plugin_info", :log => @log)
229
- platform_plugin.should_receive(:init).with(@config, @appliance_config, "platform_plugin_info", :log => @log, :previous_plugin => os_plugin)
230
- delivery_plugin.should_receive(:init).with(@config, @appliance_config, "delivery_plugin_info", :log => @log, :previous_plugin => platform_plugin, :type => :s3)
267
+ os_plugin.should_receive(:init).with(@config, @appliance_config, os_plugin_info_mock, :log => @log)
268
+ platform_plugin.should_receive(:init).with(@config, @appliance_config, platform_plugin_info_mock, :log => @log, :previous_plugin => os_plugin)
269
+ delivery_plugin.should_receive(:init).with(@config, @appliance_config, delivery_plugin_info_mock, :log => @log, :previous_plugin => platform_plugin, :type => :s3)
231
270
 
232
271
  @appliance.initialize_plugins
233
272
 
@@ -239,15 +278,12 @@ module BoxGrinder
239
278
  prepare_appliance(:delivery => :s3)
240
279
  @appliance.instance_variable_set(:@appliance_config, prepare_appliance_config)
241
280
 
242
- os_plugin = mock("OSPlugin")
243
- delivery_plugin = mock("DeliveryPlugin")
244
-
245
- @plugin_manager.should_receive(:initialize_plugin).with(:os, :fedora).and_return([os_plugin, "os_plugin_info"])
246
- @plugin_manager.should_receive(:initialize_plugin).with(:delivery, :s3).and_return([delivery_plugin, "delivery_plugin_info"])
281
+ @plugin_manager.should_receive(:initialize_plugin).with(:os, :fedora).and_return([os_plugin, os_plugin_info_mock])
282
+ @plugin_manager.should_receive(:initialize_plugin).with(:delivery, :s3).and_return([delivery_plugin, delivery_plugin_info_mock])
247
283
  @plugin_manager.should_not_receive(:initialize_plugin).with(:platform, anything)
248
284
 
249
- os_plugin.should_receive(:init).with(@config, @appliance_config, "os_plugin_info", :log => @log)
250
- delivery_plugin.should_receive(:init).with(@config, @appliance_config, "delivery_plugin_info", :log => @log, :previous_plugin => os_plugin, :type => :s3)
285
+ os_plugin.should_receive(:init).with(@config, @appliance_config, os_plugin_info_mock, :log => @log)
286
+ delivery_plugin.should_receive(:init).with(@config, @appliance_config, delivery_plugin_info_mock, :log => @log, :previous_plugin => os_plugin, :type => :s3)
251
287
 
252
288
  @appliance.initialize_plugins
253
289
  end
@@ -271,30 +307,6 @@ module BoxGrinder
271
307
 
272
308
  @appliance.execute_plugin(plugin, :s3)
273
309
  end
274
-
275
- context "user switching" do
276
- before(:each) do
277
- FileUtils.stub!(:chown_R)
278
- @appliance.stub!(:change_user)
279
- end
280
-
281
- it "should switch to user from root after execution of OS plugin" do
282
- plugin = mock('OSPlugin', :deliverables_exists? => false, :plugin_info => {:name => :test, :type => :os})
283
- FileUtils.should_receive(:chown_R).with(501, 501, '/build')
284
- @appliance.should_receive(:change_user).with(501, 501)
285
- plugin.should_receive(:run).with(:test)
286
-
287
- @appliance.execute_plugin(plugin, :test)
288
- end
289
-
290
- it "should switch to user from root after OS plugin even if deliverables exist" do
291
- plugin = mock('OSPlugin', :deliverables_exists? => true, :plugin_info => {:name => :test, :type => :os})
292
- FileUtils.should_receive(:chown_R).with(501, 501, '/build')
293
- @appliance.should_receive(:change_user).with(501, 501)
294
-
295
- @appliance.execute_plugin(plugin, :test)
296
- end
297
- end
298
310
  end
299
311
 
300
312
  context "preparations" do
@@ -318,30 +330,5 @@ module BoxGrinder
318
330
  @appliance.delivery_selected?.should == false
319
331
  end
320
332
  end
321
-
322
- context ".change_user" do
323
- before(:each) do
324
- prepare_appliance
325
- end
326
- context "Interpreters supporting changes to real, effective and saved ids" do
327
- it "should change the real, effective and saved uid & gid" do
328
- Process::Sys.should_receive(:respond_to?).twice.and_return(true)
329
- Process::Sys.should_receive(:setresuid).with(501, 501, 501)
330
- Process::Sys.should_receive(:setresgid).with(502, 502, 502)
331
- @appliance.change_user(501, 502)
332
- end
333
- end
334
- context "Interpreters only supporting changes to real and effective ids" do
335
- it "should change the real and effective uid & gid" do
336
- Process::Sys.should_receive(:respond_to?).once.and_return(false)
337
- Process.should_receive(:gid=).with(502)
338
- Process.should_receive(:egid=).with(502)
339
- Process.should_receive(:uid=).with(501)
340
- Process.should_receive(:euid=).with(501)
341
- @appliance.change_user(501, 502)
342
- end
343
- end
344
- end
345
-
346
333
  end
347
334
  end
@@ -16,8 +16,6 @@
16
16
  # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
- require 'rubygems'
20
- require 'rspec'
21
19
  require 'boxgrinder-build/helpers/augeas-helper'
22
20
 
23
21
  module BoxGrinder
@@ -17,8 +17,6 @@
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
19
  require 'boxgrinder-build/helpers/guestfs-helper'
20
- require 'rubygems'
21
- require 'rspec'
22
20
  require 'hashery/opencascade'
23
21
 
24
22
  module BoxGrinder
@@ -56,7 +54,7 @@ module BoxGrinder
56
54
  end
57
55
  end
58
56
 
59
- it "should prepare and run guestfs wid IDE disk" do
57
+ it "should prepare and run guestfs with IDE disk" do
60
58
  guestfs = mock('Guestfs')
61
59
  @helper.instance_variable_set(:@guestfs, guestfs)
62
60
 
@@ -16,8 +16,6 @@
16
16
  # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
- require 'rubygems'
20
- require 'rspec'
21
19
  require 'boxgrinder-build/helpers/image-helper'
22
20
 
23
21
  module BoxGrinder
@@ -16,8 +16,6 @@
16
16
  # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
- require 'rubygems'
20
- require 'rspec'
21
19
  require 'boxgrinder-build/helpers/linux-helper'
22
20
 
23
21
  module BoxGrinder
@@ -16,8 +16,6 @@
16
16
  # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
- require 'rubygems'
20
- require 'rspec'
21
19
  require 'logger'
22
20
  require 'boxgrinder-build/helpers/package-helper'
23
21
 
@@ -16,8 +16,6 @@
16
16
  # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
- require 'rubygems'
20
- require 'rspec'
21
19
  require 'boxgrinder-core/helpers/log-helper'
22
20
  require 'boxgrinder-build/helpers/plugin-helper'
23
21
  require 'ostruct'
@@ -16,8 +16,6 @@
16
16
  # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
- require 'rubygems'
20
- require 'rspec'
21
19
  require 'boxgrinder-build/helpers/s3-helper'
22
20
  require 'aws-sdk'
23
21
 
@@ -16,8 +16,6 @@
16
16
  # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
- require 'rubygems'
20
- require 'rspec'
21
19
  require 'boxgrinder-build/managers/plugin-manager'
22
20
 
23
21
  module BoxGrinder
@@ -16,8 +16,6 @@
16
16
  # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
- require 'rubygems'
20
- require 'rspec'
21
19
  require 'boxgrinder-build/plugins/base-plugin'
22
20
  require 'boxgrinder-core/helpers/log-helper'
23
21
  require 'yaml'
@@ -17,8 +17,6 @@
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
19
  require 'boxgrinder-build/plugins/delivery/ebs/ebs-plugin'
20
- require 'rubygems'
21
- require 'rspec'
22
20
  require 'ostruct'
23
21
  require 'logger'
24
22
  require 'set'
@@ -16,8 +16,6 @@
16
16
  # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
17
  # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
18
 
19
- require 'rubygems'
20
- require 'rspec'
21
19
  require 'hashery/opencascade'
22
20
  require 'boxgrinder-build/plugins/delivery/elastichosts/elastichosts-plugin'
23
21
 
@@ -236,7 +234,7 @@ module BoxGrinder
236
234
  @plugin.upload_chunk("data", 1)
237
235
  end
238
236
 
239
- it "should upload a chunk of data and be succesful after 1 retry" do
237
+ it "should upload a chunk of data and be successful after 1 retry" do
240
238
  @plugin.should_receive(:api_url).with('/drives/drive-uuid/write/0').and_return('url')
241
239
  RestClient.should_receive(:post).with('url', 'data', :content_type=>"application/octet-stream", "Content-Encoding"=>"gzip").and_raise('boom')
242
240
  @plugin.should_receive(:sleep).with(5)
@@ -267,7 +265,7 @@ module BoxGrinder
267
265
  }.should raise_error(PluginError, "Couldn't upload appliance, boom.")
268
266
  end
269
267
 
270
- it "should not specify add content-encoding header if uplaoding to cloudsigma" do
268
+ it "should not specify add content-encoding header if uploading to cloudsigma" do
271
269
  @plugin_config.merge!('endpoint' => 'api.cloudsigma.com')
272
270
 
273
271
  @plugin.should_receive(:api_url).with('/drives/drive-uuid/write/0').and_return('url')
@@ -329,7 +327,7 @@ module BoxGrinder
329
327
 
330
328
  lambda {
331
329
  @plugin.create_server
332
- }.should raise_error(PluginError, 'An error occured while creating the server, boom. See logs for more info.')
330
+ }.should raise_error(PluginError, 'An error occurred while creating the server, boom. See logs for more info.')
333
331
  end
334
332
  end
335
333
 
@@ -279,22 +279,24 @@ module BoxGrinder
279
279
 
280
280
  # Fuller combinatorial coverage in cucumber required
281
281
  describe ".build_xml" do
282
- it "should build an xml definition from appliance config & user options" do
283
- prepare_plugin do |p, c|
284
- end
285
-
286
- @plugin.build_xml(:bus => 'bus', :os_type => :box, :domain_type => :grinder).
287
- should == open("#{File.dirname(__FILE__)}/libvirt_test.xml").read
288
- end
289
-
290
- it "should allow modification of the xml definition via script" do
291
- prepare_plugin do |p, c|
292
- c['script'] = "#{File.dirname(__FILE__)}/libvirt_modify.sh"
293
- end
294
-
295
- @plugin.build_xml(:bus => 'bus', :os_type => :box, :domain_type => :grinder).
296
- should == open("#{File.dirname(__FILE__)}/libvirt_modified.xml").read
297
- end
282
+ # These sometimes fail due to ordering of XML elements, after adding xml
283
+ # equivalence operators it should be much simpler.
284
+ # it "should build an xml definition from appliance config & user options" do
285
+ # prepare_plugin do |p, c|
286
+ # end
287
+
288
+ # @plugin.build_xml(:bus => 'bus', :os_type => :box, :domain_type => :grinder).
289
+ # should == open("#{File.dirname(__FILE__)}/libvirt_test.xml").read
290
+ # end
291
+
292
+ # it "should allow modification of the xml definition via script" do
293
+ # prepare_plugin do |p, c|
294
+ # c['script'] = "#{File.dirname(__FILE__)}/libvirt_modify.sh"
295
+ # end
296
+
297
+ # @plugin.build_xml(:bus => 'bus', :os_type => :box, :domain_type => :grinder).
298
+ # should == open("#{File.dirname(__FILE__)}/libvirt_modified.xml").read
299
+ # end
298
300
  end
299
301
  end
300
- end
302
+ end