boxgrinder-build 0.9.6 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/CHANGELOG +5 -0
  2. data/Manifest +19 -29
  3. data/boxgrinder-build.gemspec +3 -3
  4. data/integ/appliances/gnome-fedora.appl +1 -1
  5. data/integ/appliances/jeos-centos5-files.appl +15 -0
  6. data/integ/appliances/{jeos-centos.appl → jeos-centos5.appl} +1 -1
  7. data/integ/appliances/jeos-f15.appl +9 -0
  8. data/integ/appliances/jeos-f16-files.appl +14 -0
  9. data/integ/appliances/{_hardware_cpus.appl → modular/_hardware_cpus.appl} +0 -0
  10. data/integ/appliances/{_hardware_memory.appl → modular/_hardware_memory.appl} +0 -0
  11. data/integ/appliances/{_hardware_partitions_home.appl → modular/_hardware_partitions_home.appl} +0 -0
  12. data/integ/appliances/{_hardware_partitions_root.appl → modular/_hardware_partitions_root.appl} +0 -0
  13. data/integ/appliances/{_os_password.appl → modular/_os_password.appl} +0 -0
  14. data/integ/appliances/{_packages_groups_base.appl → modular/_packages_groups_base.appl} +0 -0
  15. data/integ/appliances/{_packages_groups_core.appl → modular/_packages_groups_core.appl} +0 -0
  16. data/integ/appliances/{_packages_squid.appl → modular/_packages_squid.appl} +0 -0
  17. data/integ/appliances/{_packages_utils.appl → modular/_packages_utils.appl} +0 -0
  18. data/integ/appliances/{_repos_boxgrinder_permanent_noarch.appl → modular/_repos_boxgrinder_permanent_noarch.appl} +0 -0
  19. data/integ/appliances/{_repos_testlocal_ephemeral_noarch.appl → modular/_repos_testlocal_ephemeral_noarch.appl} +0 -0
  20. data/integ/appliances/{_test_base.appl → modular/_test_base.appl} +0 -0
  21. data/integ/appliances/{modular.appl → modular/modular.appl} +7 -1
  22. data/integ/spec/files-spec.rb +73 -0
  23. data/integ/spec/jeos-spec.rb +14 -4
  24. data/integ/spec/modular-spec.rb +1 -1
  25. data/lib/boxgrinder-build/appliance.rb +2 -2
  26. data/lib/boxgrinder-build/helpers/guestfs-helper.rb +3 -0
  27. data/lib/boxgrinder-build/helpers/linux-helper.rb +11 -2
  28. data/lib/boxgrinder-build/plugins/base-plugin.rb +17 -0
  29. data/lib/boxgrinder-build/plugins/delivery/ebs/ebs-plugin.rb +1 -1
  30. data/lib/boxgrinder-build/plugins/os/fedora/fedora-plugin.rb +5 -1
  31. data/lib/boxgrinder-build/plugins/os/rpm-based/rpm-based-os-plugin.rb +8 -2
  32. data/lib/boxgrinder-build/plugins/os/rpm-based/rpm-dependency-validator.rb +1 -1
  33. data/lib/boxgrinder-build/plugins/platform/ec2/ec2-plugin.rb +18 -4
  34. data/rubygem-boxgrinder-build.spec +6 -1
  35. data/spec/helpers/linux-helper-spec.rb +5 -0
  36. data/spec/plugins/base-plugin-spec.rb +14 -0
  37. data/spec/plugins/delivery/ebs/ebs-plugin-spec.rb +1 -1
  38. data/spec/plugins/os/fedora/fedora-plugin-spec.rb +3 -9
  39. data/spec/plugins/os/rpm-based/rpm-based-os-plugin-spec.rb +46 -3
  40. data/spec/plugins/platform/ec2/ec2-plugin-spec.rb +17 -10
  41. metadata +22 -19
  42. data/integ/appliances/jeos-fedora.appl +0 -5
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ v0.9.7
2
+
3
+ * [BGBUILD-307] Appliance with swap file fails to build if selected OS is centos
4
+ * [BGBUILD-306] Switch for updates-testing repository for integration tests
5
+
1
6
  v0.9.6
2
7
 
3
8
  * [BGBUILD-298] Fedora 16 or newer has networking issue on platforms different than EC2 because of biosdevname not disabled
data/Manifest CHANGED
@@ -5,25 +5,28 @@ README.md
5
5
  Rakefile
6
6
  bin/boxgrinder-build
7
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
8
  integ/appliances/gnome-fedora.appl
21
- integ/appliances/jeos-centos.appl
9
+ integ/appliances/jeos-centos5-files.appl
10
+ integ/appliances/jeos-centos5.appl
11
+ integ/appliances/jeos-f15.appl
12
+ integ/appliances/jeos-f16-files.appl
22
13
  integ/appliances/jeos-f16.appl
23
- integ/appliances/jeos-fedora.appl
24
- integ/appliances/modular.appl
14
+ integ/appliances/modular/_hardware_cpus.appl
15
+ integ/appliances/modular/_hardware_memory.appl
16
+ integ/appliances/modular/_hardware_partitions_home.appl
17
+ integ/appliances/modular/_hardware_partitions_root.appl
18
+ integ/appliances/modular/_os_password.appl
19
+ integ/appliances/modular/_packages_groups_base.appl
20
+ integ/appliances/modular/_packages_groups_core.appl
21
+ integ/appliances/modular/_packages_squid.appl
22
+ integ/appliances/modular/_packages_utils.appl
23
+ integ/appliances/modular/_repos_boxgrinder_permanent_noarch.appl
24
+ integ/appliances/modular/_repos_testlocal_ephemeral_noarch.appl
25
+ integ/appliances/modular/_test_base.appl
26
+ integ/appliances/modular/modular.appl
25
27
  integ/packages/ephemeral-repo-test-0.1-1.noarch.rpm
26
28
  integ/packages/local-repo-test.spec
29
+ integ/spec/files-spec.rb
27
30
  integ/spec/jeos-spec.rb
28
31
  integ/spec/modular-spec.rb
29
32
  lib/boxgrinder-build.rb
@@ -86,17 +89,4 @@ spec/plugins/delivery/ebs/ebs.yaml
86
89
  spec/plugins/delivery/elastichosts/elastichosts-plugin-spec.rb
87
90
  spec/plugins/delivery/local/local-plugin-spec.rb
88
91
  spec/plugins/delivery/s3/s3-plugin-spec.rb
89
- spec/plugins/delivery/sftp/sftp-plugin-spec.rb
90
- spec/plugins/os/centos/centos-plugin-spec.rb
91
- spec/plugins/os/fedora/fedora-plugin-spec.rb
92
- spec/plugins/os/rhel/rhel-plugin-spec.rb
93
- spec/plugins/os/rpm-based/kickstart-spec.rb
94
- spec/plugins/os/rpm-based/rpm-based-os-plugin-spec.rb
95
- spec/plugins/os/rpm-based/rpm-dependency-validator-spec.rb
96
- spec/plugins/os/rpm-based/src/jeos-f13-plain.ks
97
- spec/plugins/os/rpm-based/src/jeos-f13-without-version.ks
98
- spec/plugins/os/rpm-based/src/jeos-f13.ks
99
- spec/plugins/os/sl/sl-plugin-spec.rb
100
- spec/plugins/platform/ec2/ec2-plugin-spec.rb
101
- spec/plugins/platform/virtualbox/virtualbox-plugin-spec.rb
102
- spec/plugins/platform/vmware/vmware-plugin-spec.rb
92
+ spec/plugins/delivery/sftp/sftp-plugin-
@@ -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.6"
5
+ s.version = "0.9.7"
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-09-02}
9
+ s.date = %q{2011-09-10}
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
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/aws-helper.rb", "lib/boxgrinder-build/helpers/ec2-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/helpers/s3-helper.rb", "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-f16.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/aws-helper.rb", "lib/boxgrinder-build/helpers/ec2-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/helpers/s3-helper.rb", "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/ec2-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/helpers/s3-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"]
15
+ s.files = ["CHANGELOG", "LICENSE", "Manifest", "README.md", "Rakefile", "bin/boxgrinder-build", "boxgrinder-build.gemspec", "integ/appliances/gnome-fedora.appl", "integ/appliances/jeos-centos5-files.appl", "integ/appliances/jeos-centos5.appl", "integ/appliances/jeos-f15.appl", "integ/appliances/jeos-f16-files.appl", "integ/appliances/jeos-f16.appl", "integ/appliances/modular/_hardware_cpus.appl", "integ/appliances/modular/_hardware_memory.appl", "integ/appliances/modular/_hardware_partitions_home.appl", "integ/appliances/modular/_hardware_partitions_root.appl", "integ/appliances/modular/_os_password.appl", "integ/appliances/modular/_packages_groups_base.appl", "integ/appliances/modular/_packages_groups_core.appl", "integ/appliances/modular/_packages_squid.appl", "integ/appliances/modular/_packages_utils.appl", "integ/appliances/modular/_repos_boxgrinder_permanent_noarch.appl", "integ/appliances/modular/_repos_testlocal_ephemeral_noarch.appl", "integ/appliances/modular/_test_base.appl", "integ/appliances/modular/modular.appl", "integ/packages/ephemeral-repo-test-0.1-1.noarch.rpm", "integ/packages/local-repo-test.spec", "integ/spec/files-spec.rb", "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/aws-helper.rb", "lib/boxgrinder-build/helpers/ec2-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/helpers/s3-helper.rb", "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/ec2-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/helpers/s3-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"]
@@ -5,7 +5,7 @@ hardware:
5
5
  "/":
6
6
  size: 8
7
7
  appliances:
8
- - jeos-fedora
8
+ - jeos-f15
9
9
  packages:
10
10
  - @base
11
11
  - @base-x
@@ -0,0 +1,15 @@
1
+ name: jeos-centos5-files
2
+ os:
3
+ name: centos
4
+ version: 5
5
+ files:
6
+ "/opt":
7
+ - jeos-centos5.appl
8
+ - /etc/yum.repos.d/fedora.repo
9
+ - /etc/sysconfig
10
+ - modular
11
+ "/opt/abc":
12
+ - "http://ftp.tpnet.pl/vol/d1/apache//couchdb/1.0.3/apache-couchdb-1.0.3.tar.gz"
13
+ - "https://raw.github.com/boxgrinder/boxgrinder-build/master/README.md"
14
+ - "ftp://ftp.fu-berlin.de/unix/www/apache/couchdb/1.1.0/apache-couchdb-1.1.0.tar.gz"
15
+
@@ -1,4 +1,4 @@
1
- name: jeos-centos
1
+ name: jeos-centos5
2
2
  os:
3
3
  name: centos
4
4
  version: 5
@@ -0,0 +1,9 @@
1
+ name: jeos-f15
2
+ os:
3
+ name: fedora
4
+ version: 15
5
+ repos:
6
+ - name: "temp-fedora-updates-testing"
7
+ mirrorlist: "https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f#OS_VERSION#&arch=#BASE_ARCH#"
8
+ ephemeral: true
9
+
@@ -0,0 +1,14 @@
1
+ name: jeos-f16-files
2
+ appliances:
3
+ - jeos-f16
4
+ files:
5
+ "/opt":
6
+ - jeos-centos5.appl
7
+ - /etc/yum.repos.d/fedora.repo
8
+ - /etc/sysconfig
9
+ - modular
10
+ "/opt/abc":
11
+ - "http://ftp.tpnet.pl/vol/d1/apache//couchdb/1.0.3/apache-couchdb-1.0.3.tar.gz"
12
+ - "https://raw.github.com/boxgrinder/boxgrinder-build/master/README.md"
13
+ - "ftp://ftp.fu-berlin.de/unix/www/apache/couchdb/1.1.0/apache-couchdb-1.1.0.tar.gz"
14
+
@@ -4,7 +4,6 @@ version: 1
4
4
  release: 2
5
5
  appliances:
6
6
  - _test_base
7
- - jeos-fedora
8
7
  post:
9
8
  base:
10
9
  - "/bin/echo 'true' > /fedora-boxgrinder-test"
@@ -14,3 +13,10 @@ post:
14
13
  - "/bin/echo 'true' > /fedora-vmware-boxgrinder-test"
15
14
  virtualbox:
16
15
  - "/bin/echo 'true' > /fedora-virtualbox-boxgrinder-test"
16
+ os:
17
+ name: fedora
18
+ version: 15
19
+ repos:
20
+ - name: "temp-fedora-updates-testing"
21
+ mirrorlist: "https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f#OS_VERSION#&arch=#BASE_ARCH#"
22
+ ephemeral: true
@@ -0,0 +1,73 @@
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
+
50
+ GuestFSHelper.new([@appliance.plugin_chain.first[:plugin].deliverables[:disk]], @appliance.appliance_config, @config, :log => @log ).customize do |guestfs, guestfs_helper|
51
+ # Helper to see what's there
52
+ guestfs.sh('ls -hall')
53
+ guestfs.exists('/opt/jeos-centos5.appl').should == 1
54
+ guestfs.exists('/opt/etc/yum.repos.d/fedora.repo').should == 1
55
+ guestfs.exists('/opt/etc/sysconfig/network').should == 1
56
+ guestfs.exists('/opt/abc/apache-couchdb-1.0.3.tar.gz').should == 1
57
+ guestfs.exists('/opt/abc/README.md').should == 1
58
+ guestfs.exists('/opt/abc/apache-couchdb-1.1.0.tar.gz').should == 1
59
+ end
60
+ end
61
+
62
+ context "Files section" do
63
+ it "should build appliance with files section for Fedora 16" do
64
+ @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-f16-files.appl", @config, :log => @log).create
65
+ end
66
+
67
+ it "should build appliance with files section for CentOS 5" do
68
+ @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-centos5-files.appl", @config, :log => @log).create
69
+ end
70
+ end
71
+ end
72
+ end
73
+
@@ -50,7 +50,7 @@ module BoxGrinder
50
50
 
51
51
  context "operating system plugin" do
52
52
  it "should build Fedora JEOS" do
53
- @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-fedora.appl", @config, :log => @log).create
53
+ @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-f16.appl", @config, :log => @log).create
54
54
  end
55
55
 
56
56
  it "should build Fedora 16 JEOS and create an AMI" do
@@ -58,15 +58,25 @@ module BoxGrinder
58
58
  @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-f16.appl", @config, :log => @log).create
59
59
  end
60
60
 
61
- it "should build CentOS JEOS" do
62
- @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-centos.appl", @config, :log => @log).create
61
+ it "should build Fedora 15 JEOS and create an AMI" do
62
+ @config.merge!(:platform => :ec2, :delivery => :ami)
63
+ @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-f15.appl", @config, :log => @log).create
64
+ end
65
+
66
+ it "should build CentOS 5 JEOS" do
67
+ @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-centos5.appl", @config, :log => @log).create
68
+ end
69
+
70
+ it "should build CentOS 5 JEOS and create an AMI" do
71
+ @config.merge!(:platform => :ec2, :delivery => :ami)
72
+ @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-centos5.appl", @config, :log => @log).create
63
73
  end
64
74
  end
65
75
 
66
76
  context "platform plugin" do
67
77
  it "should create Fedora JEOS appliance and convert it to VMware personal platform" do
68
78
  @config.merge!(:platform => :vmware, :platform_config => {'type' => 'personal'})
69
- @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-fedora.appl", @config, :log => @log).create
79
+ @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/jeos-f16.appl", @config, :log => @log).create
70
80
  end
71
81
  end
72
82
  end
@@ -56,7 +56,7 @@ module BoxGrinder
56
56
  context "modular appliances" do
57
57
  it "should build modular appliance based on Fedora and convert it to VirtualBox" do
58
58
  @config.merge!(:platform => :virtualbox)
59
- @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/modular.appl", @config, :log => @log).create
59
+ @appliance = Appliance.new("#{File.dirname(__FILE__)}/../appliances/modular/modular.appl", @config, :log => @log).create
60
60
 
61
61
  GuestFSHelper.new([@appliance.plugin_chain[1][:plugin].deliverables[:disk]], @appliance.appliance_config, @config, :log => @log ).customize do |guestfs, guestfs_helper|
62
62
  guestfs.exists('/fedora-boxgrinder-test').should == 1
@@ -136,11 +136,11 @@ module BoxGrinder
136
136
  return
137
137
  end
138
138
 
139
- @log.debug "Executing #{plugin.plugin_info[:type]} plugin for #{@appliance_config.os.name}..."
139
+ @log.debug "Executing #{plugin.plugin_info[:type]} plugin..."
140
140
 
141
141
  param.nil? ? plugin.run : plugin.run(param)
142
142
 
143
- @log.debug "Operating system plugin executed."
143
+ @log.debug "#{plugin.plugin_info[:type].to_s.capitalize} plugin executed."
144
144
  end
145
145
  end
146
146
  end
@@ -254,6 +254,9 @@ module BoxGrinder
254
254
 
255
255
  partitions = mountable_partitions(device)
256
256
  mount_points = LinuxHelper.new(:log => @log).partition_mount_points(@appliance_config.hardware.partitions)
257
+ # https://issues.jboss.org/browse/BGBUILD-307
258
+ # We don't want to mount swap partitions at all...
259
+ mount_points.delete("swap")
257
260
  partitions.each_index { |i| mount_partition(partitions[i], mount_points[i], mount_prefix) }
258
261
  end
259
262
 
@@ -28,6 +28,7 @@ module BoxGrinder
28
28
  #
29
29
  # ['/', '/home'] => ['/', '/home']
30
30
  # ['swap', '/', '/home'] => ['/', '/home', 'swap']
31
+ # ['swap', '/', '/home', '/boot'] => ['/', '/boot', '/home', 'swap']
31
32
  # ['/tmp-eventlog', '/', '/ubrc', '/tmp-config'] => ['/', '/ubrc', '/tmp-config', '/tmp-eventlog']
32
33
  #
33
34
  def partition_mount_points(partitions)
@@ -36,15 +37,23 @@ module BoxGrinder
36
37
  b_count = b.count('/')
37
38
 
38
39
  if a_count > b_count
39
- v = (b_count == 0 ? -1 : 1)
40
+ v = 1
40
41
  else
41
42
  if a_count < b_count
42
43
  v = -1
43
44
  else
44
- v = a.length <=> b.length
45
+ if a.length == b.length
46
+ v = a <=> b
47
+ else
48
+ v = a.length <=> b.length
49
+ end
45
50
  end
46
51
  end
47
52
 
53
+ # This forces having swap partition at the end of the disk
54
+ v = 1 if a_count == 0
55
+ v = -1 if b_count == 0
56
+
48
57
  v
49
58
  end
50
59
  end
@@ -37,6 +37,7 @@ module BoxGrinder
37
37
 
38
38
  @deliverables = OpenCascade.new
39
39
  @supported_oses = OpenCascade.new
40
+ @supported_platforms = []
40
41
  @target_deliverables = OpenCascade.new
41
42
  @dir = OpenCascade.new
42
43
  end
@@ -126,6 +127,17 @@ module BoxGrinder
126
127
  @supported_oses[name] = versions
127
128
  end
128
129
 
130
+ def register_supported_platform(name)
131
+ raise "You can register supported platform only after the plugin is initialized, please initialize the plugin using init method." if @initialized.nil?
132
+ @supported_platforms << name
133
+ end
134
+
135
+ def is_supported_platform?
136
+ return true if @supported_platforms.empty?
137
+ return false if @previous_plugin_info[:type] == :platform and !@supported_platforms.include?(@previous_plugin_info[:name])
138
+ true
139
+ end
140
+
129
141
  def is_supported_os?
130
142
  return true if @supported_oses.empty?
131
143
  return false unless !@supported_oses[@appliance_config.os.name].nil? and @supported_oses[@appliance_config.os.name].include?(@appliance_config.os.version)
@@ -171,6 +183,11 @@ module BoxGrinder
171
183
  return
172
184
  end
173
185
 
186
+ unless is_supported_platform?
187
+ @log.error "#{@plugin_info[:full_name]} plugin supports following platforms: #{@supported_platforms.join(', ')}. You selected #{@previous_plugin_info[:name]} platform which is not supported by this plugin, sorry."
188
+ return
189
+ end
190
+
174
191
  FileUtils.rm_rf @dir.tmp
175
192
  FileUtils.mkdir_p @dir.tmp
176
193
 
@@ -65,7 +65,7 @@ module BoxGrinder
65
65
  end
66
66
 
67
67
  def after_init
68
- register_supported_os('fedora', ['13', '14', '15'])
68
+ register_supported_os('fedora', ['13', '14', '15', '16'])
69
69
  register_supported_os('rhel', ['6'])
70
70
  register_supported_os('centos', ['5'])
71
71
  end
@@ -68,6 +68,8 @@ module BoxGrinder
68
68
  else
69
69
  @plugin_config['PAE'] ? packages << "kernel-PAE" : packages << "kernel"
70
70
  end
71
+
72
+ packages << "-grub2" if @appliance_config.os.version >= "16"
71
73
  end
72
74
 
73
75
  # Since Fedora 16 by default GRUB2 is used - we remove Legacy GRUB
@@ -77,6 +79,9 @@ module BoxGrinder
77
79
  def switch_to_grub2(guestfs, guestfs_helper)
78
80
  @log.debug "Switching to GRUB2..."
79
81
  guestfs_helper.sh("yum -y remove grub")
82
+ guestfs_helper.sh("yum -y install grub2")
83
+ # Disabling biosdevname in GRUB2
84
+ guestfs.write("/etc/default/grub", "GRUB_CMDLINE_LINUX=\"quiet rhgb biosdevname=0\"\n") if guestfs.exists("/boot/grub2/grub.cfg") != 0
80
85
  # We are using only one disk, so this is save
81
86
  guestfs.sh("cd / && grub2-install --force #{guestfs.list_devices.first}")
82
87
  guestfs.sh("cd / && grub2-mkconfig -o /boot/grub2/grub.cfg")
@@ -85,7 +90,6 @@ module BoxGrinder
85
90
 
86
91
  def disable_biosdevname(guestfs)
87
92
  @log.debug "Disabling biosdevname..."
88
- guestfs.write("/etc/default/grub", "GRUB_CMDLINE_LINUX=\"quiet rhgb biosdevname=0\"\n") if guestfs.exists("/boot/grub2/grub.cfg") != 0
89
93
  guestfs.sh('sed -i "s/kernel\(.*\)/kernel\1 biosdevname=0/g" /boot/grub/grub.conf') if guestfs.exists("/boot/grub/grub.conf") != 0
90
94
  @log.debug "Biosdevname disabled."
91
95
  end
@@ -21,6 +21,7 @@ require 'boxgrinder-build/plugins/base-plugin'
21
21
  require 'boxgrinder-build/plugins/os/rpm-based/kickstart'
22
22
  require 'boxgrinder-build/plugins/os/rpm-based/rpm-dependency-validator'
23
23
  require 'boxgrinder-build/helpers/linux-helper'
24
+ require 'boxgrinder-core/errors'
24
25
 
25
26
  module BoxGrinder
26
27
  class RPMBasedOSPlugin < BasePlugin
@@ -357,14 +358,19 @@ module BoxGrinder
357
358
  else
358
359
  @log.trace "Local path detected: '#{f}'."
359
360
 
360
- local_files << (f.match(/^\//) ? f : "#{File.dirname(@appliance_definition_file)}/#{f}")
361
+ file_path = (f.match(/^\//) ? f : "#{File.dirname(@appliance_definition_file)}/#{f}")
362
+
363
+ # TODO validate this earlier
364
+ raise ValidationError, "File '#{f}' specified in files section of appliance definition file doesn't exists." unless File.exists?(file_path)
365
+
366
+ local_files << f
361
367
  end
362
368
  end
363
369
 
364
370
  next if local_files.empty?
365
371
 
366
372
  @log.trace "Tarring files..."
367
- @exec_helper.execute("tar -cvf /tmp/bg_install_files.tar --wildcards #{local_files.join(' ')}")
373
+ @exec_helper.execute("cd #{File.dirname(@appliance_definition_file)} && tar -cvf /tmp/bg_install_files.tar --wildcards #{local_files.join(' ')}")
368
374
  @log.trace "Files tarred."
369
375
 
370
376
  @log.trace "Uploading and unpacking..."
@@ -98,7 +98,7 @@ module BoxGrinder
98
98
  def generate_package_list
99
99
  packages = []
100
100
  for package in @appliance_config.packages
101
- packages << package unless package.match /^@/
101
+ packages << package unless package.match /^@/ or package.match /^-/
102
102
  end
103
103
  packages
104
104
  end
@@ -165,22 +165,36 @@ module BoxGrinder
165
165
  end
166
166
 
167
167
  def upload_rc_local(guestfs)
168
- @log.debug "Uploading '/etc/rc.local' file..."
168
+ @log.debug "Uploading '/etc/rc.d/rc.local' file..."
169
169
  rc_local = Tempfile.new('rc_local')
170
- rc_local << guestfs.read_file("/etc/rc.local") + File.read("#{File.dirname(__FILE__)}/src/rc_local")
170
+
171
+ if guestfs.exists("/etc/rc.d/rc.local") == 1
172
+ # We're appending
173
+ rc_local << guestfs.read_file("/etc/rc.d/rc.local")
174
+ else
175
+ # We're creating new file
176
+ rc_local << "#!/bin/bash\n\n"
177
+ end
178
+
179
+ rc_local << File.read("#{File.dirname(__FILE__)}/src/rc_local")
171
180
  rc_local.flush
172
181
 
173
- guestfs.upload(rc_local.path, "/etc/rc.local")
182
+ guestfs.upload(rc_local.path, "/etc/rc.d/rc.local")
174
183
 
175
184
  rc_local.close
176
185
 
186
+ # Fedora 16 doesn't have /etc/rc.local file and we need to
187
+ # enable rc.local compatibility with systemd
177
188
  # We need to make sure that network is available when executing rc.local
178
189
  if (@appliance_config.os.name == 'fedora' and @appliance_config.os.version >= '16')
179
190
  guestfs.cp("/lib/systemd/system/rc-local.service", "/etc/systemd/system/")
180
191
  guestfs.sh("sed -i '/^ConditionFileIsExecutable/a After=network.target' /etc/systemd/system/rc-local.service")
192
+ guestfs.sh("systemctl enable rc-local.service")
193
+ guestfs.ln_sf("/etc/rc.d/rc.local", "/etc/rc.local")
194
+ guestfs.chmod(0755, "/etc/rc.d/rc.local")
181
195
  end
182
196
 
183
- @log.debug "'/etc/rc.local' file uploaded."
197
+ @log.debug "'/etc/rc.d/rc.local' file uploaded."
184
198
  end
185
199
 
186
200
  def change_configuration(guestfs_helper)
@@ -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.9.6
8
+ Version: 0.9.7
9
9
  Release: 1%{?dist}
10
10
  Group: Development/Languages
11
11
  License: LGPLv3+
@@ -130,6 +130,11 @@ popd
130
130
  %{gemdir}/doc/%{gemname}-%{version}
131
131
 
132
132
  %changelog
133
+ * Tue Sep 06 2011 Marek Goldmann <mgoldman@redhat.com> - 0.9.7-1
134
+ - Upstream release: 0.9.7
135
+ - [BGBUILD-307] Appliance with swap file fails to build if selected OS is centos
136
+ - [BGBUILD-306] Switch for updates-testing repository for integration tests
137
+
133
138
  * Sat Aug 27 2011 Marek Goldmann <mgoldman@redhat.com> - 0.9.6-1
134
139
  - Upstream release: 0.9.6
135
140
  - [BGBUILD-298] Fedora 16 or newer has networking issue on platforms different than EC2 because of biosdevname not disabled
@@ -76,6 +76,11 @@ module BoxGrinder
76
76
  @helper.partition_mount_points(hash).should == ['/', '/home', 'swap']
77
77
  end
78
78
 
79
+ it "should return ['/', '/boot', '/home', 'swap']" do
80
+ hash = {'swap' => {"size" => 1}, "/boot" => {"size" => 0.1}, "/"=>{"size"=>2, "type"=>"ext3"}, "/home"=>{"size"=>2, "type"=>"ext3"}}
81
+ @helper.partition_mount_points(hash).should == ['/', '/boot', '/home', 'swap']
82
+ end
83
+
79
84
  it "should return ['/', '/ubrc', '/tmp-config', '/tmp-eventlog']" do
80
85
  hash = {"/tmp-eventlog"=>{"size"=>0.01, "type"=>"ext3"}, "/"=>{"size"=>2, "type"=>"ext3"}, "/ubrc"=>{"size"=>0.02, "type"=>"ext3"}, "/tmp-config"=>{"size"=>0.26}}
81
86
  @helper.partition_mount_points(hash).should == ["/", "/ubrc", "/tmp-config", "/tmp-eventlog"]
@@ -131,6 +131,20 @@ module BoxGrinder
131
131
  @log.should_receive(:error).with('Amazon Simple Storage Service (Amazon S3) plugin supports following operating systems: fedora (versions: 12, 13). Your appliance contains fedora 14 operating system which is not supported by this plugin, sorry.')
132
132
  @plugin.run
133
133
  end
134
+
135
+ it "should fail if platform is not supported" do
136
+ @plugin.instance_variable_set(:@previous_plugin_info, {:type => :platform, :name => :ec2})
137
+ @plugin.register_supported_platform('vmware')
138
+ @log.should_receive(:error).with('Amazon Simple Storage Service (Amazon S3) plugin supports following platforms: vmware. You selected ec2 platform which is not supported by this plugin, sorry.')
139
+ @plugin.run
140
+ end
141
+
142
+ it "should not fail if previous plugin is not a platform plugin" do
143
+ @plugin.instance_variable_set(:@previous_plugin_info, {:type => :os, :name => :fedora})
144
+ @plugin.register_supported_platform('vmware')
145
+ @log.should_not_receive(:error)
146
+ @plugin.run
147
+ end
134
148
  end
135
149
 
136
150
  it "should register a supported os" do
@@ -85,7 +85,7 @@ module BoxGrinder
85
85
  supported_oses.size.should == 3
86
86
  Set.new(supported_oses.keys).should == Set.new(['fedora', 'rhel', 'centos'])
87
87
  supported_oses['rhel'].should == ['6']
88
- supported_oses['fedora'].should == ['13', '14', '15']
88
+ supported_oses['fedora'].should == ['13', '14', '15', '16']
89
89
  supported_oses['centos'].should == ['5']
90
90
  end
91
91
 
@@ -92,20 +92,11 @@ module BoxGrinder
92
92
  context "BGBUILD-204" do
93
93
  it "should disable bios device name hints for GRUB legacy" do
94
94
  guestfs = mock("GuestFS")
95
- guestfs.should_receive(:exists).with("/boot/grub2/grub.cfg").and_return(0)
96
95
  guestfs.should_receive(:exists).with("/boot/grub/grub.conf").and_return(1)
97
96
  guestfs.should_receive(:sh).with("sed -i \"s/kernel\\(.*\\)/kernel\\1 biosdevname=0/g\" /boot/grub/grub.conf")
98
97
  @plugin.disable_biosdevname(guestfs)
99
98
  end
100
99
 
101
- it "should disable bios device name hints for GRUB2" do
102
- guestfs = mock("GuestFS")
103
- guestfs.should_receive(:exists).with("/boot/grub2/grub.cfg").and_return(1)
104
- guestfs.should_receive(:exists).with("/boot/grub/grub.conf").and_return(0)
105
- guestfs.should_receive(:write).with("/etc/default/grub", "GRUB_CMDLINE_LINUX=\"quiet rhgb biosdevname=0\"\n")
106
- @plugin.disable_biosdevname(guestfs)
107
- end
108
-
109
100
  it "should change to runlevel 3 by default" do
110
101
  guestfs = mock("GuestFS")
111
102
  guestfs.should_receive(:rm).with("/etc/systemd/system/default.target")
@@ -130,9 +121,12 @@ module BoxGrinder
130
121
  guestfs = mock("GuestFS")
131
122
  guestfs_helper = mock("GuestFSHelper")
132
123
  guestfs_helper.should_receive(:sh).ordered.with("yum -y remove grub")
124
+ guestfs_helper.should_receive(:sh).ordered.with("yum -y install grub2")
133
125
  guestfs.should_receive(:list_devices).and_return(['/dev/vda'])
134
126
  guestfs.should_receive(:sh).ordered.with("cd / && grub2-install --force /dev/vda")
135
127
  guestfs.should_receive(:sh).ordered.with("cd / && grub2-mkconfig -o /boot/grub2/grub.cfg")
128
+ guestfs.should_receive(:exists).with("/boot/grub2/grub.cfg").and_return(1)
129
+ guestfs.should_receive(:write).with("/etc/default/grub", "GRUB_CMDLINE_LINUX=\"quiet rhgb biosdevname=0\"\n")
136
130
  @plugin.switch_to_grub2(guestfs, guestfs_helper)
137
131
  end
138
132
  describe ".execute" do
@@ -353,7 +353,11 @@ module BoxGrinder
353
353
  guestfs.should_receive(:exists).with("/opt").once.and_return(1)
354
354
  guestfs.should_receive(:tar_in).with("/tmp/bg_install_files.tar", "/opt")
355
355
 
356
- @exec_helper.should_receive(:execute).with("tar -cvf /tmp/bg_install_files.tar --wildcards ./abc ./def")
356
+ File.stub!(:exists?)
357
+ File.should_receive(:exists?).with('./abc').and_return(true)
358
+ File.should_receive(:exists?).with('./def').and_return(true)
359
+
360
+ @exec_helper.should_receive(:execute).with("cd . && tar -cvf /tmp/bg_install_files.tar --wildcards abc def")
357
361
 
358
362
  @plugin.install_files(guestfs)
359
363
  end
@@ -366,7 +370,11 @@ module BoxGrinder
366
370
  guestfs.should_receive(:exists).with("/opt").once.and_return(1)
367
371
  guestfs.should_receive(:tar_in).with("/tmp/bg_install_files.tar", "/opt")
368
372
 
369
- @exec_helper.should_receive(:execute).with("tar -cvf /tmp/bg_install_files.tar --wildcards /opt/abc /opt/def")
373
+ File.stub!(:exists?)
374
+ File.should_receive(:exists?).with('/opt/abc').and_return(true)
375
+ File.should_receive(:exists?).with('/opt/def').and_return(true)
376
+
377
+ @exec_helper.should_receive(:execute).with("cd . && tar -cvf /tmp/bg_install_files.tar --wildcards /opt/abc /opt/def")
370
378
 
371
379
  @plugin.install_files(guestfs)
372
380
  end
@@ -394,10 +402,45 @@ module BoxGrinder
394
402
  guestfs.should_receive(:mkdir_p).with("/opt/aaa")
395
403
  guestfs.should_receive(:tar_in).with("/tmp/bg_install_files.tar", "/opt/aaa")
396
404
 
397
- @exec_helper.should_receive(:execute).with("tar -cvf /tmp/bg_install_files.tar --wildcards ./abc")
405
+ File.stub!(:exists?)
406
+ File.should_receive(:exists?).with('./abc').and_return(true)
407
+
408
+ @exec_helper.should_receive(:execute).with("cd . && tar -cvf /tmp/bg_install_files.tar --wildcards abc")
409
+
410
+ @plugin.install_files(guestfs)
411
+ end
412
+
413
+ it "should upload files when correctly when appliance definition file is not in current directory" do
414
+ @appliance_config.stub!(:files).and_return("/opt/aaa" => ['abc', '/blah/def'])
415
+ @plugin.instance_variable_set(:@appliance_definition_file, "some/dir/to/file.appl")
416
+
417
+ guestfs = mock("GuestFS")
418
+ guestfs.should_receive(:exists).with("/opt/aaa").and_return(0)
419
+ guestfs.should_receive(:mkdir_p).with("/opt/aaa")
420
+ guestfs.should_receive(:tar_in).with("/tmp/bg_install_files.tar", "/opt/aaa")
421
+
422
+ File.stub!(:exists?)
423
+ File.should_receive(:exists?).with('some/dir/to/abc').and_return(true)
424
+ File.should_receive(:exists?).with('/blah/def').and_return(true)
425
+
426
+ @exec_helper.should_receive(:execute).with("cd some/dir/to && tar -cvf /tmp/bg_install_files.tar --wildcards abc /blah/def")
398
427
 
399
428
  @plugin.install_files(guestfs)
400
429
  end
430
+
431
+ it "should raise if file doesn't exists" do
432
+ @appliance_config.stub!(:files).and_return("/opt/aaa" => ['abc', '/blah/def'])
433
+ @plugin.instance_variable_set(:@appliance_definition_file, "some/dir/to/file.appl")
434
+
435
+ guestfs = mock("GuestFS")
436
+ guestfs.should_receive(:exists).with("/opt/aaa").and_return(0)
437
+ guestfs.should_receive(:mkdir_p).with("/opt/aaa")
438
+
439
+ File.stub!(:exists?)
440
+ File.should_receive(:exists?).with('some/dir/to/abc').and_return(false)
441
+
442
+ lambda { @plugin.install_files(guestfs) }.should raise_error(ValidationError, "File 'abc' specified in files section of appliance definition file doesn't exists.")
443
+ end
401
444
  end
402
445
 
403
446
  describe ".set_label_for_swap_partitions" do
@@ -109,15 +109,17 @@ module BoxGrinder
109
109
  Tempfile.should_receive(:new).with("rc_local").and_return(tempfile)
110
110
  File.should_receive(:read).with(any_args()).and_return("with other content")
111
111
 
112
- guestfs.should_receive(:read_file).once.ordered.with("/etc/rc.local").and_return("content ")
113
- tempfile.should_receive(:<<).once.ordered.with("content with other content")
112
+ guestfs.should_receive(:exists).with('/etc/rc.d/rc.local').and_return(1)
113
+ guestfs.should_receive(:read_file).once.ordered.with("/etc/rc.d/rc.local").and_return("content ")
114
+ tempfile.should_receive(:<<).once.ordered.with("content ")
115
+ tempfile.should_receive(:<<).once.ordered.with("with other content")
114
116
  tempfile.should_receive(:flush).once.ordered
115
117
  tempfile.should_receive(:path).once.ordered.and_return("path")
116
- guestfs.should_receive(:upload).once.ordered.with("path", "/etc/rc.local")
118
+ guestfs.should_receive(:upload).once.ordered.with("path", "/etc/rc.d/rc.local")
117
119
  tempfile.should_receive(:close).once.ordered
118
120
 
119
- @log.should_receive(:debug).once.with("Uploading '/etc/rc.local' file...")
120
- @log.should_receive(:debug).once.with("'/etc/rc.local' file uploaded.")
121
+ @log.should_receive(:debug).once.with("Uploading '/etc/rc.d/rc.local' file...")
122
+ @log.should_receive(:debug).once.with("'/etc/rc.d/rc.local' file uploaded.")
121
123
 
122
124
  @plugin.upload_rc_local(guestfs)
123
125
  end
@@ -131,18 +133,23 @@ module BoxGrinder
131
133
  Tempfile.should_receive(:new).with("rc_local").and_return(tempfile)
132
134
  File.should_receive(:read).with(any_args()).and_return("with other content")
133
135
 
134
- guestfs.should_receive(:read_file).once.ordered.with("/etc/rc.local").and_return("content ")
135
- tempfile.should_receive(:<<).once.ordered.with("content with other content")
136
+ guestfs.should_receive(:exists).with('/etc/rc.d/rc.local').and_return(0)
137
+ guestfs.should_not_receive(:read_file).with("/etc/rc.d/rc.local")
138
+ tempfile.should_receive(:<<).once.ordered.with("#!/bin/bash\n\n")
139
+ tempfile.should_receive(:<<).once.ordered.with("with other content")
136
140
  tempfile.should_receive(:flush).once.ordered
137
141
  tempfile.should_receive(:path).once.ordered.and_return("path")
138
- guestfs.should_receive(:upload).once.ordered.with("path", "/etc/rc.local")
142
+ guestfs.should_receive(:upload).once.ordered.with("path", "/etc/rc.d/rc.local")
139
143
  tempfile.should_receive(:close).once.ordered
140
144
 
141
- @log.should_receive(:debug).once.with("Uploading '/etc/rc.local' file...")
142
- @log.should_receive(:debug).once.with("'/etc/rc.local' file uploaded.")
145
+ @log.should_receive(:debug).once.with("Uploading '/etc/rc.d/rc.local' file...")
146
+ @log.should_receive(:debug).once.with("'/etc/rc.d/rc.local' file uploaded.")
143
147
 
144
148
  guestfs.should_receive(:cp).with("/lib/systemd/system/rc-local.service", "/etc/systemd/system/")
145
149
  guestfs.should_receive(:sh).with("sed -i '/^ConditionFileIsExecutable/a After=network.target' /etc/systemd/system/rc-local.service")
150
+ guestfs.should_receive(:sh).with("systemctl enable rc-local.service")
151
+ guestfs.should_receive(:ln_sf).with("/etc/rc.d/rc.local", "/etc/rc.local")
152
+ guestfs.should_receive(:chmod).with(0755, "/etc/rc.d/rc.local")
146
153
 
147
154
  @plugin.upload_rc_local(guestfs)
148
155
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boxgrinder-build
3
3
  version: !ruby/object:Gem::Version
4
- hash: 55
4
+ hash: 53
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 6
10
- version: 0.9.6
9
+ - 7
10
+ version: 0.9.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Marek Goldmann
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-02 00:00:00 +02:00
18
+ date: 2011-09-10 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -168,25 +168,28 @@ files:
168
168
  - Rakefile
169
169
  - bin/boxgrinder-build
170
170
  - boxgrinder-build.gemspec
171
- - integ/appliances/_hardware_cpus.appl
172
- - integ/appliances/_hardware_memory.appl
173
- - integ/appliances/_hardware_partitions_home.appl
174
- - integ/appliances/_hardware_partitions_root.appl
175
- - integ/appliances/_os_password.appl
176
- - integ/appliances/_packages_groups_base.appl
177
- - integ/appliances/_packages_groups_core.appl
178
- - integ/appliances/_packages_squid.appl
179
- - integ/appliances/_packages_utils.appl
180
- - integ/appliances/_repos_boxgrinder_permanent_noarch.appl
181
- - integ/appliances/_repos_testlocal_ephemeral_noarch.appl
182
- - integ/appliances/_test_base.appl
183
171
  - integ/appliances/gnome-fedora.appl
184
- - integ/appliances/jeos-centos.appl
172
+ - integ/appliances/jeos-centos5-files.appl
173
+ - integ/appliances/jeos-centos5.appl
174
+ - integ/appliances/jeos-f15.appl
175
+ - integ/appliances/jeos-f16-files.appl
185
176
  - integ/appliances/jeos-f16.appl
186
- - integ/appliances/jeos-fedora.appl
187
- - integ/appliances/modular.appl
177
+ - integ/appliances/modular/_hardware_cpus.appl
178
+ - integ/appliances/modular/_hardware_memory.appl
179
+ - integ/appliances/modular/_hardware_partitions_home.appl
180
+ - integ/appliances/modular/_hardware_partitions_root.appl
181
+ - integ/appliances/modular/_os_password.appl
182
+ - integ/appliances/modular/_packages_groups_base.appl
183
+ - integ/appliances/modular/_packages_groups_core.appl
184
+ - integ/appliances/modular/_packages_squid.appl
185
+ - integ/appliances/modular/_packages_utils.appl
186
+ - integ/appliances/modular/_repos_boxgrinder_permanent_noarch.appl
187
+ - integ/appliances/modular/_repos_testlocal_ephemeral_noarch.appl
188
+ - integ/appliances/modular/_test_base.appl
189
+ - integ/appliances/modular/modular.appl
188
190
  - integ/packages/ephemeral-repo-test-0.1-1.noarch.rpm
189
191
  - integ/packages/local-repo-test.spec
192
+ - integ/spec/files-spec.rb
190
193
  - integ/spec/jeos-spec.rb
191
194
  - integ/spec/modular-spec.rb
192
195
  - lib/boxgrinder-build.rb
@@ -1,5 +0,0 @@
1
- name: jeos-fedora
2
- os:
3
- name: fedora
4
- version: 15
5
-