boxgrinder-build 0.9.2 → 0.9.3

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 (62) hide show
  1. data/CHANGELOG +21 -0
  2. data/Manifest +92 -0
  3. data/Rakefile +9 -0
  4. data/boxgrinder-build.gemspec +4 -4
  5. data/integ/appliances/_hardware_cpus.appl +13 -0
  6. data/integ/appliances/_hardware_memory.appl +13 -0
  7. data/integ/appliances/_hardware_partitions_home.appl +15 -0
  8. data/integ/appliances/_hardware_partitions_root.appl +15 -0
  9. data/integ/appliances/_os_password.appl +15 -0
  10. data/integ/appliances/_packages_groups_base.appl +13 -0
  11. data/integ/appliances/_packages_groups_core.appl +13 -0
  12. data/integ/appliances/_packages_squid.appl +13 -0
  13. data/integ/appliances/_packages_utils.appl +7 -0
  14. data/integ/appliances/_repos_boxgrinder_permanent_noarch.appl +14 -0
  15. data/integ/appliances/_repos_testlocal_ephemeral_noarch.appl +17 -0
  16. data/integ/appliances/_test_base.appl +22 -0
  17. data/integ/appliances/gnome-fedora.appl +19 -0
  18. data/integ/appliances/jeos-centos.appl +4 -0
  19. data/integ/appliances/jeos-fedora.appl +5 -0
  20. data/integ/appliances/modular.appl +16 -0
  21. data/integ/packages/ephemeral-repo-test-0.1-1.noarch.rpm +0 -0
  22. data/integ/packages/local-repo-test.spec +20 -0
  23. data/integ/spec/jeos-spec.rb +69 -0
  24. data/integ/spec/modular-spec.rb +71 -0
  25. data/lib/boxgrinder-build/appliance.rb +48 -48
  26. data/lib/boxgrinder-build/helpers/guestfs-helper.rb +11 -8
  27. data/lib/boxgrinder-build/helpers/plugin-helper.rb +1 -0
  28. data/lib/boxgrinder-build/helpers/qemu.wrapper +1 -1
  29. data/lib/boxgrinder-build/plugins/base-plugin.rb +55 -14
  30. data/lib/boxgrinder-build/plugins/delivery/ebs/ebs-plugin.rb +270 -54
  31. data/lib/boxgrinder-build/plugins/delivery/elastichosts/elastichosts-plugin.rb +3 -4
  32. data/lib/boxgrinder-build/plugins/delivery/local/local-plugin.rb +20 -16
  33. data/lib/boxgrinder-build/plugins/delivery/s3/s3-plugin.rb +57 -20
  34. data/lib/boxgrinder-build/plugins/delivery/sftp/sftp-plugin.rb +6 -4
  35. data/lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb +2 -1
  36. data/lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb +2 -32
  37. data/lib/boxgrinder-build/plugins/os/rpm-based/rpm-based-os-plugin.rb +29 -4
  38. data/lib/boxgrinder-build/plugins/os/rpm-based/rpm-dependency-validator.rb +15 -46
  39. data/lib/boxgrinder-build/plugins/os/sl/sl-plugin.rb +56 -0
  40. data/lib/boxgrinder-build/plugins/platform/ec2/ec2-plugin.rb +1 -0
  41. data/lib/boxgrinder-build/plugins/platform/ec2/src/rc_local +15 -8
  42. data/lib/boxgrinder-build/plugins/platform/vmware/vmware-plugin.rb +8 -6
  43. data/rubygem-boxgrinder-build.spec +23 -3
  44. data/spec/appliance-spec.rb +114 -73
  45. data/spec/helpers/guestfs-helper-spec.rb +12 -3
  46. data/spec/plugins/base-plugin-spec.rb +24 -18
  47. data/spec/plugins/delivery/ebs/ebs-plugin-spec.rb +206 -67
  48. data/spec/plugins/delivery/elastichosts/elastichosts-plugin-spec.rb +228 -225
  49. data/spec/plugins/delivery/local/local-plugin-spec.rb +13 -34
  50. data/spec/plugins/delivery/s3/s3-plugin-spec.rb +107 -50
  51. data/spec/plugins/os/centos/centos-plugin-spec.rb +1 -1
  52. data/spec/plugins/os/fedora/fedora-plugin-spec.rb +14 -8
  53. data/spec/plugins/os/rhel/rhel-plugin-spec.rb +1 -1
  54. data/spec/plugins/os/rpm-based/kickstart-spec.rb +0 -44
  55. data/spec/plugins/os/rpm-based/rpm-based-os-plugin-spec.rb +31 -2
  56. data/spec/plugins/os/rpm-based/rpm-dependency-validator-spec.rb +20 -7
  57. data/spec/plugins/os/sl/sl-plugin-spec.rb +44 -0
  58. data/spec/plugins/platform/ec2/ec2-plugin-spec.rb +1 -1
  59. data/spec/plugins/platform/virtualbox/virtualbox-plugin-spec.rb +6 -6
  60. data/spec/plugins/platform/vmware/vmware-plugin-spec.rb +14 -13
  61. metadata +27 -5
  62. data/spec/Rakefile +0 -32
data/CHANGELOG CHANGED
@@ -1,3 +1,24 @@
1
+ v0.9.3
2
+
3
+ * [BGBUILD-232] boxgrinder doesn't validate config early enough
4
+ * [BGBUILD-237] Tilde characters break creation of yum.conf
5
+ * [BGBUILD-223] BoxGrinder hangs because qemu.wrapper does not detect x86_64 properly on CentOS 5.6
6
+ * [BGBUILD-241] Add Scientific Linux support
7
+ * [BGBUILD-220] Group names have spaces (to the user), this breaks schema rules for packages
8
+ * [BGBUILD-222] Allow overwrite of uploaded ec2 image
9
+ * [BGBUILD-225] Move PAE configuration parameter to operating system configuration
10
+ * [BGBUILD-224] EBS Plugin Support for CentOS v5.5 and fix for non-integer EBS disk sizes
11
+ * [BGBUILD-231] Cannot register Fedora 15 EC2 AMI with S3 delivery plugin in eu-west-1 availability zone
12
+ * [BGBUILD-193] EBS delivery plugin timing/concurrency issues
13
+ * [BGBUILD-247] ap-northeast-1 end-point is missing in S3 plugin (added Tokyo region)
14
+ * [BGBUILD-251] Add ap-northeast-1 (tokyo) region for EBS plugin
15
+ * [BGBUILD-248] Throw error in S3 plugin if invalid region is specified
16
+ * [BGBUILD-252] rc.local script fills ~/.ssh/authorized_keys with a duplicate key every boot
17
+ * [BGBUILD-250] EBS plugin incorrectly determines that non-US regions are not EC2 instances
18
+ * [BGBUILD-254] Not able to deliver EBS AMIs to regions other than us-east-1
19
+ * [BGBUILD-260] Wrong EC2 discovery causing libguestfs errors on non US regions
20
+ * [BGBUILD-261] Decrease amount of debug log when downloading or uploading file using guestfs
21
+
1
22
  v0.9.2
2
23
 
3
24
  * [BGBUILD-148] Add support for building CentOS/RHEL images on Fedora
data/Manifest CHANGED
@@ -0,0 +1,92 @@
1
+ CHANGELOG
2
+ LICENSE
3
+ Manifest
4
+ README.md
5
+ Rakefile
6
+ bin/boxgrinder-build
7
+ boxgrinder-build.gemspec
8
+ integ/appliances/_hardware_cpus.appl
9
+ integ/appliances/_hardware_memory.appl
10
+ integ/appliances/_hardware_partitions_home.appl
11
+ integ/appliances/_hardware_partitions_root.appl
12
+ integ/appliances/_os_password.appl
13
+ integ/appliances/_packages_groups_base.appl
14
+ integ/appliances/_packages_groups_core.appl
15
+ integ/appliances/_packages_squid.appl
16
+ integ/appliances/_packages_utils.appl
17
+ integ/appliances/_repos_boxgrinder_permanent_noarch.appl
18
+ integ/appliances/_repos_testlocal_ephemeral_noarch.appl
19
+ integ/appliances/_test_base.appl
20
+ integ/appliances/gnome-fedora.appl
21
+ integ/appliances/jeos-centos.appl
22
+ integ/appliances/jeos-fedora.appl
23
+ integ/appliances/modular.appl
24
+ integ/packages/ephemeral-repo-test-0.1-1.noarch.rpm
25
+ integ/packages/local-repo-test.spec
26
+ integ/spec/jeos-spec.rb
27
+ integ/spec/modular-spec.rb
28
+ lib/boxgrinder-build.rb
29
+ lib/boxgrinder-build/appliance.rb
30
+ lib/boxgrinder-build/helpers/augeas-helper.rb
31
+ lib/boxgrinder-build/helpers/guestfs-helper.rb
32
+ lib/boxgrinder-build/helpers/image-helper.rb
33
+ lib/boxgrinder-build/helpers/linux-helper.rb
34
+ lib/boxgrinder-build/helpers/package-helper.rb
35
+ lib/boxgrinder-build/helpers/plugin-helper.rb
36
+ lib/boxgrinder-build/helpers/qemu.wrapper
37
+ lib/boxgrinder-build/managers/plugin-manager.rb
38
+ lib/boxgrinder-build/plugins/base-plugin.rb
39
+ lib/boxgrinder-build/plugins/delivery/ebs/ebs-plugin.rb
40
+ lib/boxgrinder-build/plugins/delivery/elastichosts/elastichosts-plugin.rb
41
+ lib/boxgrinder-build/plugins/delivery/local/local-plugin.rb
42
+ lib/boxgrinder-build/plugins/delivery/s3/s3-plugin.rb
43
+ lib/boxgrinder-build/plugins/delivery/s3/src/cert-ec2.pem
44
+ lib/boxgrinder-build/plugins/delivery/sftp/sftp-plugin.rb
45
+ lib/boxgrinder-build/plugins/delivery/usb/usb-plugin.rb
46
+ lib/boxgrinder-build/plugins/os/centos/centos-plugin.rb
47
+ lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb
48
+ lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb
49
+ lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb
50
+ lib/boxgrinder-build/plugins/os/rpm-based/rpm-based-os-plugin.rb
51
+ lib/boxgrinder-build/plugins/os/rpm-based/rpm-dependency-validator.rb
52
+ lib/boxgrinder-build/plugins/os/rpm-based/src/appliance.ks.erb
53
+ lib/boxgrinder-build/plugins/os/rpm-based/src/base.repo
54
+ lib/boxgrinder-build/plugins/os/rpm-based/src/motd.init
55
+ lib/boxgrinder-build/plugins/os/sl/sl-plugin.rb
56
+ lib/boxgrinder-build/plugins/platform/ec2/ec2-plugin.rb
57
+ lib/boxgrinder-build/plugins/platform/ec2/src/fstab_32bit
58
+ lib/boxgrinder-build/plugins/platform/ec2/src/fstab_64bit
59
+ lib/boxgrinder-build/plugins/platform/ec2/src/ifcfg-eth0
60
+ lib/boxgrinder-build/plugins/platform/ec2/src/menu.lst
61
+ lib/boxgrinder-build/plugins/platform/ec2/src/rc_local
62
+ lib/boxgrinder-build/plugins/platform/virtualbox/virtualbox-plugin.rb
63
+ lib/boxgrinder-build/plugins/platform/vmware/src/README-enterprise
64
+ lib/boxgrinder-build/plugins/platform/vmware/src/README-personal
65
+ lib/boxgrinder-build/plugins/platform/vmware/src/base.vmdk
66
+ lib/boxgrinder-build/plugins/platform/vmware/src/base.vmx
67
+ lib/boxgrinder-build/plugins/platform/vmware/vmware-plugin.rb
68
+ rubygem-boxgrinder-build.spec
69
+ spec/appliance-spec.rb
70
+ spec/helpers/augeas-helper-spec.rb
71
+ spec/helpers/guestfs-helper-spec.rb
72
+ spec/helpers/image-helper-spec.rb
73
+ spec/helpers/linux-helper-spec.rb
74
+ spec/helpers/package-helper-spec.rb
75
+ spec/helpers/plugin-helper-spec.rb
76
+ spec/managers/plugin-manager-spec.rb
77
+ spec/plugins/base-plugin-spec.rb
78
+ spec/plugins/delivery/ebs/ebs-plugin-spec.rb
79
+ spec/plugins/delivery/ebs/ebs.yaml
80
+ spec/plugins/delivery/elastichosts/elastichosts-plugin-spec.rb
81
+ spec/plugins/delivery/local/local-plugin-spec.rb
82
+ spec/plugins/delivery/s3/s3-plugin-spec.rb
83
+ spec/plugins/delivery/sftp/sftp-plugin-spec.rb
84
+ spec/plugins/os/centos/centos-plugin-spec.rb
85
+ spec/plugins/os/fedora/fedora-plugin-spec.rb
86
+ spec/plugins/os/rhel/rhel-plugin-spec.rb
87
+ spec/plugins/os/rpm-based/kickstart-spec.rb
88
+ spec/plugins/os/rpm-based/rpm-based-os-plugin-spec.rb
89
+ spec/plugins/os/rpm-based/rpm-dependency-validator-spec.rb
90
+ spec/plugins/os/rpm-based/src/jeos-f13-plain.ks
91
+ spec/plugins/os/rpm-based/src/jeos-f13-without-version.ks
92
+ spec/plugins/os/rpm-based
data/Rakefile CHANGED
@@ -40,6 +40,15 @@ Echoe.new("boxgrinder-build") do |p|
40
40
  ]
41
41
  end
42
42
 
43
+ desc "Run all integration tests"
44
+ Spec::Rake::SpecTask.new('integ') do |t|
45
+ t.libs.unshift "../boxgrinder-core/lib"
46
+ t.rcov = false
47
+ t.spec_files = FileList["integ/**/*-spec.rb"]
48
+ t.spec_opts = ['--colour', '--format', 'specdoc', '-b']
49
+ t.verbose = true
50
+ end
51
+
43
52
  desc "Run all tests"
44
53
  Spec::Rake::SpecTask.new('spec') do |t|
45
54
  t.libs.unshift "../boxgrinder-core/lib"
@@ -2,17 +2,17 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{boxgrinder-build}
5
- s.version = "0.9.2"
5
+ s.version = "0.9.3"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Marek Goldmann"]
9
- s.date = %q{2011-05-17}
9
+ s.date = %q{2011-06-28}
10
10
  s.default_executable = %q{boxgrinder-build}
11
11
  s.description = %q{A tool for creating appliances from simple plain text files for various virtual environments.}
12
12
  s.email = %q{info@boxgrinder.org}
13
13
  s.executables = ["boxgrinder-build"]
14
- s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.md", "bin/boxgrinder-build", "lib/boxgrinder-build.rb", "lib/boxgrinder-build/appliance.rb", "lib/boxgrinder-build/helpers/augeas-helper.rb", "lib/boxgrinder-build/helpers/guestfs-helper.rb", "lib/boxgrinder-build/helpers/image-helper.rb", "lib/boxgrinder-build/helpers/linux-helper.rb", "lib/boxgrinder-build/helpers/package-helper.rb", "lib/boxgrinder-build/helpers/plugin-helper.rb", "lib/boxgrinder-build/helpers/qemu.wrapper", "lib/boxgrinder-build/managers/plugin-manager.rb", "lib/boxgrinder-build/plugins/base-plugin.rb", "lib/boxgrinder-build/plugins/delivery/ebs/ebs-plugin.rb", "lib/boxgrinder-build/plugins/delivery/elastichosts/elastichosts-plugin.rb", "lib/boxgrinder-build/plugins/delivery/local/local-plugin.rb", "lib/boxgrinder-build/plugins/delivery/s3/s3-plugin.rb", "lib/boxgrinder-build/plugins/delivery/s3/src/cert-ec2.pem", "lib/boxgrinder-build/plugins/delivery/sftp/sftp-plugin.rb", "lib/boxgrinder-build/plugins/delivery/usb/usb-plugin.rb", "lib/boxgrinder-build/plugins/os/centos/centos-plugin.rb", "lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb", "lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb", "lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb", "lib/boxgrinder-build/plugins/os/rpm-based/rpm-based-os-plugin.rb", "lib/boxgrinder-build/plugins/os/rpm-based/rpm-dependency-validator.rb", "lib/boxgrinder-build/plugins/os/rpm-based/src/appliance.ks.erb", "lib/boxgrinder-build/plugins/os/rpm-based/src/base.repo", "lib/boxgrinder-build/plugins/os/rpm-based/src/motd.init", "lib/boxgrinder-build/plugins/platform/ec2/ec2-plugin.rb", "lib/boxgrinder-build/plugins/platform/ec2/src/fstab_32bit", "lib/boxgrinder-build/plugins/platform/ec2/src/fstab_64bit", "lib/boxgrinder-build/plugins/platform/ec2/src/ifcfg-eth0", "lib/boxgrinder-build/plugins/platform/ec2/src/menu.lst", "lib/boxgrinder-build/plugins/platform/ec2/src/rc_local", "lib/boxgrinder-build/plugins/platform/virtualbox/virtualbox-plugin.rb", "lib/boxgrinder-build/plugins/platform/vmware/src/README-enterprise", "lib/boxgrinder-build/plugins/platform/vmware/src/README-personal", "lib/boxgrinder-build/plugins/platform/vmware/src/base.vmdk", "lib/boxgrinder-build/plugins/platform/vmware/src/base.vmx", "lib/boxgrinder-build/plugins/platform/vmware/vmware-plugin.rb"]
15
- s.files = ["CHANGELOG", "LICENSE", "Manifest", "README.md", "Rakefile", "bin/boxgrinder-build", "boxgrinder-build.gemspec", "lib/boxgrinder-build.rb", "lib/boxgrinder-build/appliance.rb", "lib/boxgrinder-build/helpers/augeas-helper.rb", "lib/boxgrinder-build/helpers/guestfs-helper.rb", "lib/boxgrinder-build/helpers/image-helper.rb", "lib/boxgrinder-build/helpers/linux-helper.rb", "lib/boxgrinder-build/helpers/package-helper.rb", "lib/boxgrinder-build/helpers/plugin-helper.rb", "lib/boxgrinder-build/helpers/qemu.wrapper", "lib/boxgrinder-build/managers/plugin-manager.rb", "lib/boxgrinder-build/plugins/base-plugin.rb", "lib/boxgrinder-build/plugins/delivery/ebs/ebs-plugin.rb", "lib/boxgrinder-build/plugins/delivery/elastichosts/elastichosts-plugin.rb", "lib/boxgrinder-build/plugins/delivery/local/local-plugin.rb", "lib/boxgrinder-build/plugins/delivery/s3/s3-plugin.rb", "lib/boxgrinder-build/plugins/delivery/s3/src/cert-ec2.pem", "lib/boxgrinder-build/plugins/delivery/sftp/sftp-plugin.rb", "lib/boxgrinder-build/plugins/delivery/usb/usb-plugin.rb", "lib/boxgrinder-build/plugins/os/centos/centos-plugin.rb", "lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb", "lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb", "lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb", "lib/boxgrinder-build/plugins/os/rpm-based/rpm-based-os-plugin.rb", "lib/boxgrinder-build/plugins/os/rpm-based/rpm-dependency-validator.rb", "lib/boxgrinder-build/plugins/os/rpm-based/src/appliance.ks.erb", "lib/boxgrinder-build/plugins/os/rpm-based/src/base.repo", "lib/boxgrinder-build/plugins/os/rpm-based/src/motd.init", "lib/boxgrinder-build/plugins/platform/ec2/ec2-plugin.rb", "lib/boxgrinder-build/plugins/platform/ec2/src/fstab_32bit", "lib/boxgrinder-build/plugins/platform/ec2/src/fstab_64bit", "lib/boxgrinder-build/plugins/platform/ec2/src/ifcfg-eth0", "lib/boxgrinder-build/plugins/platform/ec2/src/menu.lst", "lib/boxgrinder-build/plugins/platform/ec2/src/rc_local", "lib/boxgrinder-build/plugins/platform/virtualbox/virtualbox-plugin.rb", "lib/boxgrinder-build/plugins/platform/vmware/src/README-enterprise", "lib/boxgrinder-build/plugins/platform/vmware/src/README-personal", "lib/boxgrinder-build/plugins/platform/vmware/src/base.vmdk", "lib/boxgrinder-build/plugins/platform/vmware/src/base.vmx", "lib/boxgrinder-build/plugins/platform/vmware/vmware-plugin.rb", "rubygem-boxgrinder-build.spec", "spec/Rakefile", "spec/appliance-spec.rb", "spec/helpers/augeas-helper-spec.rb", "spec/helpers/guestfs-helper-spec.rb", "spec/helpers/image-helper-spec.rb", "spec/helpers/linux-helper-spec.rb", "spec/helpers/package-helper-spec.rb", "spec/helpers/plugin-helper-spec.rb", "spec/managers/plugin-manager-spec.rb", "spec/plugins/base-plugin-spec.rb", "spec/plugins/delivery/ebs/ebs-plugin-spec.rb", "spec/plugins/delivery/ebs/ebs.yaml", "spec/plugins/delivery/elastichosts/elastichosts-plugin-spec.rb", "spec/plugins/delivery/local/local-plugin-spec.rb", "spec/plugins/delivery/s3/s3-plugin-spec.rb", "spec/plugins/delivery/sftp/sftp-plugin-spec.rb", "spec/plugins/os/centos/centos-plugin-spec.rb", "spec/plugins/os/fedora/fedora-plugin-spec.rb", "spec/plugins/os/rhel/rhel-plugin-spec.rb", "spec/plugins/os/rpm-based/kickstart-spec.rb", "spec/plugins/os/rpm-based/rpm-based-os-plugin-spec.rb", "spec/plugins/os/rpm-based/rpm-dependency-validator-spec.rb", "spec/plugins/os/rpm-based/src/jeos-f13-plain.ks", "spec/plugins/os/rpm-based/src/jeos-f13-without-version.ks", "spec/plugins/os/rpm-based/src/jeos-f13.ks", "spec/plugins/platform/ec2/ec2-plugin-spec.rb", "spec/plugins/platform/virtualbox/virtualbox-plugin-spec.rb", "spec/plugins/platform/vmware/vmware-plugin-spec.rb"]
14
+ s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.md", "bin/boxgrinder-build", "lib/boxgrinder-build.rb", "lib/boxgrinder-build/appliance.rb", "lib/boxgrinder-build/helpers/augeas-helper.rb", "lib/boxgrinder-build/helpers/guestfs-helper.rb", "lib/boxgrinder-build/helpers/image-helper.rb", "lib/boxgrinder-build/helpers/linux-helper.rb", "lib/boxgrinder-build/helpers/package-helper.rb", "lib/boxgrinder-build/helpers/plugin-helper.rb", "lib/boxgrinder-build/helpers/qemu.wrapper", "lib/boxgrinder-build/managers/plugin-manager.rb", "lib/boxgrinder-build/plugins/base-plugin.rb", "lib/boxgrinder-build/plugins/delivery/ebs/ebs-plugin.rb", "lib/boxgrinder-build/plugins/delivery/elastichosts/elastichosts-plugin.rb", "lib/boxgrinder-build/plugins/delivery/local/local-plugin.rb", "lib/boxgrinder-build/plugins/delivery/s3/s3-plugin.rb", "lib/boxgrinder-build/plugins/delivery/s3/src/cert-ec2.pem", "lib/boxgrinder-build/plugins/delivery/sftp/sftp-plugin.rb", "lib/boxgrinder-build/plugins/delivery/usb/usb-plugin.rb", "lib/boxgrinder-build/plugins/os/centos/centos-plugin.rb", "lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb", "lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb", "lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb", "lib/boxgrinder-build/plugins/os/rpm-based/rpm-based-os-plugin.rb", "lib/boxgrinder-build/plugins/os/rpm-based/rpm-dependency-validator.rb", "lib/boxgrinder-build/plugins/os/rpm-based/src/appliance.ks.erb", "lib/boxgrinder-build/plugins/os/rpm-based/src/base.repo", "lib/boxgrinder-build/plugins/os/rpm-based/src/motd.init", "lib/boxgrinder-build/plugins/os/sl/sl-plugin.rb", "lib/boxgrinder-build/plugins/platform/ec2/ec2-plugin.rb", "lib/boxgrinder-build/plugins/platform/ec2/src/fstab_32bit", "lib/boxgrinder-build/plugins/platform/ec2/src/fstab_64bit", "lib/boxgrinder-build/plugins/platform/ec2/src/ifcfg-eth0", "lib/boxgrinder-build/plugins/platform/ec2/src/menu.lst", "lib/boxgrinder-build/plugins/platform/ec2/src/rc_local", "lib/boxgrinder-build/plugins/platform/virtualbox/virtualbox-plugin.rb", "lib/boxgrinder-build/plugins/platform/vmware/src/README-enterprise", "lib/boxgrinder-build/plugins/platform/vmware/src/README-personal", "lib/boxgrinder-build/plugins/platform/vmware/src/base.vmdk", "lib/boxgrinder-build/plugins/platform/vmware/src/base.vmx", "lib/boxgrinder-build/plugins/platform/vmware/vmware-plugin.rb"]
15
+ s.files = ["CHANGELOG", "LICENSE", "Manifest", "README.md", "Rakefile", "bin/boxgrinder-build", "boxgrinder-build.gemspec", "integ/appliances/_hardware_cpus.appl", "integ/appliances/_hardware_memory.appl", "integ/appliances/_hardware_partitions_home.appl", "integ/appliances/_hardware_partitions_root.appl", "integ/appliances/_os_password.appl", "integ/appliances/_packages_groups_base.appl", "integ/appliances/_packages_groups_core.appl", "integ/appliances/_packages_squid.appl", "integ/appliances/_packages_utils.appl", "integ/appliances/_repos_boxgrinder_permanent_noarch.appl", "integ/appliances/_repos_testlocal_ephemeral_noarch.appl", "integ/appliances/_test_base.appl", "integ/appliances/gnome-fedora.appl", "integ/appliances/jeos-centos.appl", "integ/appliances/jeos-fedora.appl", "integ/appliances/modular.appl", "integ/packages/ephemeral-repo-test-0.1-1.noarch.rpm", "integ/packages/local-repo-test.spec", "integ/spec/jeos-spec.rb", "integ/spec/modular-spec.rb", "lib/boxgrinder-build.rb", "lib/boxgrinder-build/appliance.rb", "lib/boxgrinder-build/helpers/augeas-helper.rb", "lib/boxgrinder-build/helpers/guestfs-helper.rb", "lib/boxgrinder-build/helpers/image-helper.rb", "lib/boxgrinder-build/helpers/linux-helper.rb", "lib/boxgrinder-build/helpers/package-helper.rb", "lib/boxgrinder-build/helpers/plugin-helper.rb", "lib/boxgrinder-build/helpers/qemu.wrapper", "lib/boxgrinder-build/managers/plugin-manager.rb", "lib/boxgrinder-build/plugins/base-plugin.rb", "lib/boxgrinder-build/plugins/delivery/ebs/ebs-plugin.rb", "lib/boxgrinder-build/plugins/delivery/elastichosts/elastichosts-plugin.rb", "lib/boxgrinder-build/plugins/delivery/local/local-plugin.rb", "lib/boxgrinder-build/plugins/delivery/s3/s3-plugin.rb", "lib/boxgrinder-build/plugins/delivery/s3/src/cert-ec2.pem", "lib/boxgrinder-build/plugins/delivery/sftp/sftp-plugin.rb", "lib/boxgrinder-build/plugins/delivery/usb/usb-plugin.rb", "lib/boxgrinder-build/plugins/os/centos/centos-plugin.rb", "lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb", "lib/boxgrinder-build/plugins/os/rhel/rhel-plugin.rb", "lib/boxgrinder-build/plugins/os/rpm-based/kickstart.rb", "lib/boxgrinder-build/plugins/os/rpm-based/rpm-based-os-plugin.rb", "lib/boxgrinder-build/plugins/os/rpm-based/rpm-dependency-validator.rb", "lib/boxgrinder-build/plugins/os/rpm-based/src/appliance.ks.erb", "lib/boxgrinder-build/plugins/os/rpm-based/src/base.repo", "lib/boxgrinder-build/plugins/os/rpm-based/src/motd.init", "lib/boxgrinder-build/plugins/os/sl/sl-plugin.rb", "lib/boxgrinder-build/plugins/platform/ec2/ec2-plugin.rb", "lib/boxgrinder-build/plugins/platform/ec2/src/fstab_32bit", "lib/boxgrinder-build/plugins/platform/ec2/src/fstab_64bit", "lib/boxgrinder-build/plugins/platform/ec2/src/ifcfg-eth0", "lib/boxgrinder-build/plugins/platform/ec2/src/menu.lst", "lib/boxgrinder-build/plugins/platform/ec2/src/rc_local", "lib/boxgrinder-build/plugins/platform/virtualbox/virtualbox-plugin.rb", "lib/boxgrinder-build/plugins/platform/vmware/src/README-enterprise", "lib/boxgrinder-build/plugins/platform/vmware/src/README-personal", "lib/boxgrinder-build/plugins/platform/vmware/src/base.vmdk", "lib/boxgrinder-build/plugins/platform/vmware/src/base.vmx", "lib/boxgrinder-build/plugins/platform/vmware/vmware-plugin.rb", "rubygem-boxgrinder-build.spec", "spec/appliance-spec.rb", "spec/helpers/augeas-helper-spec.rb", "spec/helpers/guestfs-helper-spec.rb", "spec/helpers/image-helper-spec.rb", "spec/helpers/linux-helper-spec.rb", "spec/helpers/package-helper-spec.rb", "spec/helpers/plugin-helper-spec.rb", "spec/managers/plugin-manager-spec.rb", "spec/plugins/base-plugin-spec.rb", "spec/plugins/delivery/ebs/ebs-plugin-spec.rb", "spec/plugins/delivery/ebs/ebs.yaml", "spec/plugins/delivery/elastichosts/elastichosts-plugin-spec.rb", "spec/plugins/delivery/local/local-plugin-spec.rb", "spec/plugins/delivery/s3/s3-plugin-spec.rb", "spec/plugins/delivery/sftp/sftp-plugin-spec.rb", "spec/plugins/os/centos/centos-plugin-spec.rb", "spec/plugins/os/fedora/fedora-plugin-spec.rb", "spec/plugins/os/rhel/rhel-plugin-spec.rb", "spec/plugins/os/rpm-based/kickstart-spec.rb", "spec/plugins/os/rpm-based/rpm-based-os-plugin-spec.rb", "spec/plugins/os/rpm-based/rpm-dependency-validator-spec.rb", "spec/plugins/os/rpm-based/src/jeos-f13-plain.ks", "spec/plugins/os/rpm-based/src/jeos-f13-without-version.ks", "spec/plugins/os/rpm-based/src/jeos-f13.ks", "spec/plugins/os/sl/sl-plugin-spec.rb", "spec/plugins/platform/ec2/ec2-plugin-spec.rb", "spec/plugins/platform/virtualbox/virtualbox-plugin-spec.rb", "spec/plugins/platform/vmware/vmware-plugin-spec.rb"]
16
16
  s.homepage = %q{http://boxgrinder.org/}
17
17
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Boxgrinder-build", "--main", "README.md"]
18
18
  s.require_paths = ["lib"]
@@ -0,0 +1,13 @@
1
+ name: hardware-cpus
2
+ summary: Assign number of CPUs
3
+ hardware:
4
+ cpus: 2
5
+ post:
6
+ base:
7
+ - "/bin/echo 'true' > /hardware-cpus-boxgrinder-test"
8
+ ec2:
9
+ - "/bin/echo 'true' > /hardware-cpus-ec2-boxgrinder-test"
10
+ vmware:
11
+ - "/bin/echo 'true' > /hardware-cpus-vmware-boxgrinder-test"
12
+ virtualbox:
13
+ - "/bin/echo 'true' > /hardware-cpus-virtualbox-boxgrinder-test"
@@ -0,0 +1,13 @@
1
+ name: hardware-memory
2
+ summary: Assign memory
3
+ hardware:
4
+ memory: 2048
5
+ post:
6
+ base:
7
+ - "/bin/echo 'true' > /hardware-memory-boxgrinder-test"
8
+ ec2:
9
+ - "/bin/echo 'true' > /hardware-memory-ec2-boxgrinder-test"
10
+ vmware:
11
+ - "/bin/echo 'true' > /hardware-memory-vmware-boxgrinder-test"
12
+ virtualbox:
13
+ - "/bin/echo 'true' > /hardware-memory-virtualbox-boxgrinder-test"
@@ -0,0 +1,15 @@
1
+ name: hardware-partitions-home
2
+ summary: create 2GB home partition
3
+ hardware:
4
+ partitions:
5
+ "/home":
6
+ size: 2
7
+ post:
8
+ base:
9
+ - "/bin/echo 'true' > /hardware-partitions-home-boxgrinder-test"
10
+ ec2:
11
+ - "/bin/echo 'true' > /hardware-partitions-home-ec2-boxgrinder-test"
12
+ vmware:
13
+ - "/bin/echo 'true' > /hardware-partitions-home-vmware-boxgrinder-test"
14
+ virtualbox:
15
+ - "/bin/echo 'true' > /hardware-partitions-home-virtualbox-boxgrinder-test"
@@ -0,0 +1,15 @@
1
+ name: hardware-partitions-root
2
+ summary: set 2GB root partition
3
+ hardware:
4
+ partitions:
5
+ "/":
6
+ size: 2
7
+ post:
8
+ base:
9
+ - "/bin/echo 'true' > /hardware-partitions-root-boxgrinder-test"
10
+ ec2:
11
+ - "/bin/echo 'true' > /hardware-partitions-root-ec2-boxgrinder-test"
12
+ vmware:
13
+ - "/bin/echo 'true' > /hardware-partitions-root-vmware-boxgrinder-test"
14
+ virtualbox:
15
+ - "/bin/echo 'true' > /hardware-partitions-root-virtualbox-boxgrinder-test"
@@ -0,0 +1,15 @@
1
+ name: os-password
2
+ summary: create password
3
+ os:
4
+ name: dummy-os
5
+ version: 14
6
+ password: boxgrinder-pw
7
+ post:
8
+ base:
9
+ - "/bin/echo 'true' > /os-password-boxgrinder-test"
10
+ ec2:
11
+ - "/bin/echo 'true' > /os-password-ec2-boxgrinder-test"
12
+ vmware:
13
+ - "/bin/echo 'true' > /os-password-vmware-boxgrinder-test"
14
+ virtualbox:
15
+ - "/bin/echo 'true' > /os-password-virtualbox-boxgrinder-test"
@@ -0,0 +1,13 @@
1
+ name: packages-groups-base
2
+ summary: Require "Base" group of packages (e.g. In YUM). Minimal additional packages for small setups like routers, small VMs etc.
3
+ packages:
4
+ - @base
5
+ post:
6
+ base:
7
+ - "/bin/echo 'true' > /packages-groups-base-boxgrinder-test"
8
+ ec2:
9
+ - "/bin/echo 'true' > /packages-groups-base-ec2-boxgrinder-test"
10
+ vmware:
11
+ - "/bin/echo 'true' > /packages-groups-base-vmware-boxgrinder-test"
12
+ virtualbox:
13
+ - "/bin/echo 'true' > /packages-groups-base-virtualbox-boxgrinder-test"
@@ -0,0 +1,13 @@
1
+ name: packages-groups-core
2
+ summary: Require "Core" group of packages (e.g. In YUM). The minimal packages for a functional OS.
3
+ packages:
4
+ - @core
5
+ post:
6
+ base:
7
+ - "/bin/echo 'true' > /packages-groups-core-boxgrinder-test"
8
+ ec2:
9
+ - "/bin/echo 'true' > /packages-groups-core-ec2-boxgrinder-test"
10
+ vmware:
11
+ - "/bin/echo 'true' > /packages-groups-core-vmware-boxgrinder-test"
12
+ virtualbox:
13
+ - "/bin/echo 'true' > /packages-groups-core-virtualbox-boxgrinder-test"
@@ -0,0 +1,13 @@
1
+ name: packages-squid
2
+ summary: Require Squid individual package
3
+ packages:
4
+ - squid
5
+ post:
6
+ base:
7
+ - "/bin/echo 'true' > /packages-squid-boxgrinder-test"
8
+ ec2:
9
+ - "/bin/echo 'true' > /packages-squid-ec2-boxgrinder-test"
10
+ vmware:
11
+ - "/bin/echo 'true' > /packages-squid-vmware-boxgrinder-test"
12
+ virtualbox:
13
+ - "/bin/echo 'true' > /packages-squid-virtualbox-boxgrinder-test"
@@ -0,0 +1,7 @@
1
+ name: util-packages
2
+ summary: Require some util packages for testing
3
+ packages:
4
+ - git
5
+ - rubygem-boxgrinder-build
6
+ - createrepo
7
+ - rpm-build
@@ -0,0 +1,14 @@
1
+ name: repos-boxgrinder-permanent-noarch
2
+ summary: Add an external repository (BG-CI)
3
+ repos:
4
+ - name: "boxgrinder-ci-noarch"
5
+ baseurl: "http://repo.ci.boxgrinder.org/#OS_NAME#/#OS_VERSION#/RPMS/"
6
+ post:
7
+ base:
8
+ - "/bin/echo 'true' > /repos-boxgrinder-noarch-boxgrinder-test"
9
+ ec2:
10
+ - "/bin/echo 'true' > /repos-boxgrinder-noarch-ec2-boxgrinder-test"
11
+ vmware:
12
+ - "/bin/echo 'true' > /repos-boxgrinder-noarch-vmware-boxgrinder-test"
13
+ virtualbox:
14
+ - "/bin/echo 'true' > /repos-boxgrinder-noarch-virtualbox-boxgrinder-test"
@@ -0,0 +1,17 @@
1
+ name: repos-testlocal-ephemeral-noarch
2
+ summary: Local ephemeral test repository with dummy file - Please note the fixed URI.
3
+ packages:
4
+ - ephemeral-repo-test
5
+ repos:
6
+ - name: "BoxGrinder-Test-ephemeral-localrepo-noarch"
7
+ baseurl: file:///tmp/boxgrinder-repo/
8
+ ephemeral: true
9
+ post:
10
+ base:
11
+ - "/bin/echo 'true' > /repos-noarch-ephemeral-boxgrinder-test"
12
+ ec2:
13
+ - "/bin/echo 'true' > /repos-noarch-ephemeral-ec2-boxgrinder-test"
14
+ vmware:
15
+ - "/bin/echo 'true' > /repos-noarch-ephemeral-vmware-boxgrinder-test"
16
+ virtualbox:
17
+ - "/bin/echo 'true' > /repos-noarch-ephemeral-virtualbox-boxgrinder-test"
@@ -0,0 +1,22 @@
1
+ name: test-base
2
+ summary: Bare common test-base, requires all modular appls
3
+ appliances:
4
+ - _hardware_cpus
5
+ - _hardware_memory
6
+ - _hardware_partitions_home
7
+ - _hardware_partitions_root
8
+ - _os_password
9
+ - _packages_groups_base
10
+ - _packages_groups_core
11
+ - _packages_squid
12
+ - _packages_utils
13
+ - _repos_testlocal_ephemeral_noarch
14
+ post:
15
+ base:
16
+ - "/bin/echo 'true' > /common-test-base-boxgrinder-test"
17
+ ec2:
18
+ - "/bin/echo 'true' > /common-test-base-ec2-boxgrinder-test"
19
+ vmware:
20
+ - "/bin/echo 'true' > /common-test-base-vmware-boxgrinder-test"
21
+ virtualbox:
22
+ - "/bin/echo 'true' > /common-test-base-virtualbox-boxgrinder-test"
@@ -0,0 +1,19 @@
1
+ name: gnome-fedora
2
+ summary: Fedora with GNOME
3
+ hardware:
4
+ partitions:
5
+ "/":
6
+ size: 8
7
+ appliances:
8
+ - jeos-fedora
9
+ packages:
10
+ - @base
11
+ - @base-x
12
+ - @fonts
13
+ - @gnome-desktop
14
+ - @critical-path-gnome
15
+ post:
16
+ base:
17
+ - "ln -s --force /lib/systemd/system/graphical.target /etc/systemd/system/default.target"
18
+ - "useradd boxgrinder && echo boxgrinder | passwd boxgrinder --stdin"
19
+
@@ -0,0 +1,4 @@
1
+ name: jeos-centos
2
+ os:
3
+ name: centos
4
+ version: 5
@@ -0,0 +1,5 @@
1
+ name: jeos-fedora
2
+ os:
3
+ name: fedora
4
+ version: 15
5
+
@@ -0,0 +1,16 @@
1
+ name: modular
2
+ summary: Modular appliance
3
+ version: 1
4
+ release: 2
5
+ appliances:
6
+ - _test_base
7
+ - jeos-fedora
8
+ post:
9
+ base:
10
+ - "/bin/echo 'true' > /fedora-boxgrinder-test"
11
+ ec2:
12
+ - "/bin/echo 'true' > /fedora-ec2-boxgrinder-test"
13
+ vmware:
14
+ - "/bin/echo 'true' > /fedora-vmware-boxgrinder-test"
15
+ virtualbox:
16
+ - "/bin/echo 'true' > /fedora-virtualbox-boxgrinder-test"
@@ -0,0 +1,20 @@
1
+ Summary: A test spec for use in verifying ephemeral repo functionality of BoxGrinder
2
+ Name: ephemeral-repo-test
3
+ Version: 0.1
4
+ Release: 1
5
+ License: GPLv3
6
+ Packager: Marc Savy
7
+ BuildArch: noarch
8
+
9
+ %description
10
+ A test spec for use in verifying ephemeral repo functionality in BoxGrinder
11
+
12
+ %install
13
+ rm -rf $RPM_BUILD_ROOT
14
+ mkdir $RPM_BUILD_ROOT
15
+
16
+ touch $RPM_BUILD_ROOT/repos-boxgrinder-noarch-ephemeral-boxgrinder-test
17
+
18
+ %files
19
+ %defattr(-,root,root)
20
+ /
@@ -0,0 +1,69 @@
1
+ #
2
+ # Copyright 2010 Red Hat, Inc.
3
+ #
4
+ # This is free software; you can redistribute it and/or modify it
5
+ # under the terms of the GNU Lesser General Public License as
6
+ # published by the Free Software Foundation; either version 3 of
7
+ # the License, or (at your option) any later version.
8
+ #
9
+ # This software is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ # Lesser General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU Lesser General Public
15
+ # License along with this software; if not, write to the Free
16
+ # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17
+ # 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18
+
19
+ require 'rubygems'
20
+ require 'boxgrinder-build/appliance'
21
+ require 'boxgrinder-core/models/config'
22
+ require 'boxgrinder-core/helpers/log-helper'
23
+ require 'boxgrinder-build/helpers/guestfs-helper'
24
+ require 'fileutils'
25
+
26
+ module BoxGrinder
27
+ describe 'BoxGrinder Build' do
28
+ before(:all) do
29
+ # Cleaning up before build
30
+ FileUtils.rm_rf('build/')
31
+ end
32
+
33
+ after(:all) do
34
+ # Cleaning up after build
35
+ FileUtils.rm_rf('build/')
36
+ end
37
+
38
+ before(:each) do
39
+ # Deliver the packaged appliance to CloudFront
40
+ @config = Config.new(:delivery => :cloudfront)
41
+ @log = LogHelper.new(:level => :trace, :type => :stdout)
42
+ end
43
+
44
+ after(:each) do
45
+ # Make sure all deliverables really exists
46
+ @appliance.plugin_chain.last[:plugin].deliverables.each_value do |file|
47
+ File.exists?(file).should == true
48
+ end
49
+ end
50
+
51
+ context "operating system plugin" do
52
+ it "should build Fedora JEOS" do
53
+ @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-fedora.appl", @config, :log => @log).create
54
+ end
55
+
56
+ it "should build CentOS JEOS" do
57
+ @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-centos.appl", @config, :log => @log).create
58
+ end
59
+ end
60
+
61
+ context "platform plugin" do
62
+ it "should create Fedora JEOS appliance and convert it to VMware personal platform" do
63
+ @config.merge!(:platform => :vmware, :platform_config => {'type' => 'personal'})
64
+ @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-fedora.appl", @config, :log => @log).create
65
+ end
66
+ end
67
+ end
68
+ end
69
+