Make nova-compute-{kvm,qemu} packages overridable
To keep the "we define platform choices in the attributes" spirit, the nova-compute "support packages" for ubuntu should be overridable, too. This change makes them behave just like to the "#{db_type}_python_packages" in openstack-compute::nova-common. Change-Id: Id38169121e52e0dc8be808c8822db55069e65e48
This commit is contained in:
parent
8798ba7c36
commit
e9be12597d
|
@ -268,6 +268,8 @@ when 'fedora', 'redhat', 'centos', 'suse' # :pragma-foodcritic: ~FC024 - won't f
|
|||
'compute_api_metadata_packages' => ['openstack-nova-api'],
|
||||
'compute_api_metadata_service' => 'openstack-nova-api',
|
||||
'compute_compute_packages' => ['openstack-nova-compute'],
|
||||
'qemu_compute_packages' => [],
|
||||
'kvm_compute_packages' => [],
|
||||
'compute_compute_service' => 'openstack-nova-compute',
|
||||
'compute_network_packages' => ['iptables', 'openstack-nova-network'],
|
||||
'compute_network_service' => 'openstack-nova-network',
|
||||
|
@ -316,6 +318,8 @@ when 'ubuntu'
|
|||
'compute_api_metadata_packages' => ['nova-api-metadata'],
|
||||
'compute_api_metadata_service' => 'nova-api-metadata',
|
||||
'compute_compute_packages' => ['nova-compute'],
|
||||
'qemu_compute_packages' => ['nova-compute-qemu'],
|
||||
'kvm_compute_packages' => ['nova-compute-kvm'],
|
||||
'compute_compute_service' => 'nova-compute',
|
||||
'compute_network_packages' => ['iptables', 'nova-network'],
|
||||
'compute_network_service' => 'nova-network',
|
||||
|
|
|
@ -30,19 +30,18 @@ if node['openstack']['compute']['network']['service_type'] == 'nova'
|
|||
end
|
||||
|
||||
platform_options = node['openstack']['compute']['platform']
|
||||
# Note(maoy): Make sure compute_compute_packages is not a node object.
|
||||
# so that this is compatible with chef 11 when being changed later.
|
||||
compute_compute_packages = Array.new(platform_options['compute_compute_packages'])
|
||||
|
||||
if platform?(%w(ubuntu))
|
||||
if node['openstack']['compute']['libvirt']['virt_type'] == 'kvm'
|
||||
compute_compute_packages << 'nova-compute-kvm'
|
||||
elsif node['openstack']['compute']['libvirt']['virt_type'] == 'qemu'
|
||||
compute_compute_packages << 'nova-compute-qemu'
|
||||
platform_options['compute_compute_packages'].each do |pkg|
|
||||
package pkg do
|
||||
options platform_options['package_overrides']
|
||||
|
||||
action :upgrade
|
||||
end
|
||||
end
|
||||
|
||||
compute_compute_packages.each do |pkg|
|
||||
virt_type = node['openstack']['compute']['libvirt']['virt_type']
|
||||
|
||||
platform_options["#{virt_type}_compute_packages"].each do |pkg|
|
||||
package pkg do
|
||||
options platform_options['package_overrides']
|
||||
|
||||
|
|
|
@ -47,7 +47,17 @@ describe 'openstack-compute::compute' do
|
|||
expect(chef_run).not_to upgrade_package 'nova-compute-qemu'
|
||||
end
|
||||
|
||||
it "installs qemu when virt_type is 'qemu'" do
|
||||
it 'honors the package options platform overrides for kvm' do
|
||||
chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
node = chef_run.node
|
||||
node.set['openstack']['compute']['libvirt']['virt_type'] = 'kvm'
|
||||
node.set['openstack']['compute']['platform']['package_overrides'] = '-o Dpkg::Options::=\'--force-confold\' -o Dpkg::Options::=\'--force-confdef\' --force-yes'
|
||||
chef_run.converge 'openstack-compute::compute'
|
||||
|
||||
expect(chef_run).to upgrade_package('nova-compute-kvm').with(options: '-o Dpkg::Options::=\'--force-confold\' -o Dpkg::Options::=\'--force-confdef\' --force-yes')
|
||||
end
|
||||
|
||||
it 'installs qemu when virt_type is qemu' do
|
||||
chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
node = chef_run.node
|
||||
node.set['openstack']['compute']['libvirt']['virt_type'] = 'qemu'
|
||||
|
@ -57,6 +67,28 @@ describe 'openstack-compute::compute' do
|
|||
expect(chef_run).not_to upgrade_package 'nova-compute-kvm'
|
||||
end
|
||||
|
||||
it 'honors the package options platform overrides for qemu' do
|
||||
chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
node = chef_run.node
|
||||
node.set['openstack']['compute']['libvirt']['virt_type'] = 'qemu'
|
||||
node.set['openstack']['compute']['platform']['package_overrides'] = '-o Dpkg::Options::=\'--force-confold\' -o Dpkg::Options::=\'--force-confdef\' --force-yes'
|
||||
chef_run.converge 'openstack-compute::compute'
|
||||
|
||||
expect(chef_run).to upgrade_package('nova-compute-qemu').with(options: '-o Dpkg::Options::=\'--force-confold\' -o Dpkg::Options::=\'--force-confdef\' --force-yes')
|
||||
end
|
||||
|
||||
%w{qemu kvm}.each do |virt_type|
|
||||
it "honors the package name platform overrides for #{virt_type}" do
|
||||
chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS
|
||||
node = chef_run.node
|
||||
node.set['openstack']['compute']['libvirt']['virt_type'] = virt_type
|
||||
node.set['openstack']['compute']['platform']["#{virt_type}_compute_packages"] = ["my-nova-#{virt_type}"]
|
||||
chef_run.converge 'openstack-compute::compute'
|
||||
|
||||
expect(chef_run).to upgrade_package("my-nova-#{virt_type}")
|
||||
end
|
||||
end
|
||||
|
||||
describe 'nova-compute.conf' do
|
||||
before do
|
||||
@file = @chef_run.cookbook_file '/etc/nova/nova-compute.conf'
|
||||
|
|
Loading…
Reference in New Issue