diff --git a/attributes/default.rb b/attributes/default.rb index a7eb105..65a4fa9 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -28,5 +28,12 @@ default['virtualbox']['url'] = 'http://download.virtualbox.org/virtualbox/4.2.12/VirtualBox-4.2.12-84980-Win.exe' default['virtualbox']['version'] = Vbox::Helpers.vbox_version(node['virtualbox']['url']) when 'debian', 'rhel', 'fedora' - default['virtualbox']['version'] = '4.3' + if node['platform'] == 'debian' && Chef::VersionConstraint.new('>= 8.0').include?(node['platform_version']) || + node['platform'] == 'ubuntu' && Chef::VersionConstraint.new('>= 16.04').include?(node['platform_version']) + default['virtualbox']['version'] = '5.1' + default['virtualbox']['apt']['key'] = 'https://www.virtualbox.org/download/oracle_vbox_2016.asc' + else + default['virtualbox']['version'] = '4.3' + default['virtualbox']['apt']['key'] = 'http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc' + end end diff --git a/recipes/default.rb b/recipes/default.rb index b51fa07..fe1dcdf 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -46,7 +46,7 @@ apt_repository 'oracle-virtualbox' do uri 'http://download.virtualbox.org/virtualbox/debian' - key 'http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc' + key node['virtualbox']['apt']['key'] distribution node['lsb']['codename'] components ['contrib'] end @@ -57,7 +57,7 @@ when 'rhel', 'fedora' yum_repository 'oracle-virtualbox' do - description "#{node['platform_family']} $releasever - $basearch - Virtualbox" + description "#{node['platform_family']} $releasever - $basearch - Virtualbox" baseurl "http://download.virtualbox.org/virtualbox/rpm/#{node['platform_family']}/$releasever/$basearch" gpgcheck true gpgkey 'http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc' diff --git a/spec/default_spec.rb b/spec/default_spec.rb index 8c6d8f1..80d533e 100644 --- a/spec/default_spec.rb +++ b/spec/default_spec.rb @@ -5,7 +5,7 @@ let(:chef_run) do ChefSpec::Runner.new(platform: 'centos', version: 6.4, step_into: ['yum_repository']) do |node| node.automatic['kernel']['machine'] = 'x86_64' - node.default['virtualbox']['version'] = 4.3 + node.default['virtualbox']['version'] = 4.3 end.converge(described_recipe) end @@ -15,4 +15,25 @@ end end + + context 'on Ubuntu 16.04 with virtualbox 5.1' do + let(:chef_run) do + ChefSpec::Runner.new(platform: 'ubuntu', version: 16.04).converge(described_recipe) + end + + it 'adds virtual box repository' do + expect(chef_run).to add_apt_repository('oracle-virtualbox').with( + uri: 'http://download.virtualbox.org/virtualbox/debian', + key: 'https://www.virtualbox.org/download/oracle_vbox_2016.asc' + ) + end + + it 'installs virtualbox package' do + expect(chef_run).to install_package('virtualbox-5.1') + end + + it 'installs dkms package' do + expect(chef_run).to install_package('dkms') + end + end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index a8786cc..7fe8b16 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -3,7 +3,7 @@ RSpec.configure do |config| config.formatter = :documentation - config.color_enabled = true + config.color = true end at_exit { ChefSpec::Coverage.report! }