boxgrinder-build 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
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
+