Allow packages to be updatable

In order for package updates to occur, package resources need to use
the upgrade action.  This is first phase of blueprint, to get some
consistency, next phase is to allow some update control.

Change-Id: I91d6a47c3b5787df65f78e3e86941de1fb28583d
Implements: blueprint allow-package-updates
This commit is contained in:
Mark Vanderwiel 2014-05-01 12:45:42 -05:00
parent 1343955c51
commit e8189f2fe9
34 changed files with 84 additions and 73 deletions

View File

@ -1,6 +1,9 @@
# CHANGELOG for cookbook-openstack-compute
This file is used to list changes made in each version of cookbook-openstack-compute.
## 9.1.1
* Fix package action to allow updates
## 9.1.0
* Remove openrc, it's been moved to Common

View File

@ -4,7 +4,7 @@ maintainer_email 'matt@opscode.com'
license 'Apache 2.0'
description 'The OpenStack Compute service Nova.'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '9.1.0'
version '9.1.1'
recipe 'openstack-compute::api-ec2', 'Installs AWS EC2 compatible API'
recipe 'openstack-compute::api-metadata', 'Installs the nova metadata package'

View File

@ -25,7 +25,8 @@ platform_options = node['openstack']['compute']['platform']
platform_options['libvirt_packages'].each do |pkg|
package pkg do
action :install
options platform_options['package_overrides']
action :upgrade
end
end
@ -95,7 +96,8 @@ when 'suse'
when 'kvm'
node['openstack']['compute']['platform']['kvm_packages'].each do |pkg|
package pkg do
action :install
options platform_options['package_overrides']
action :upgrade
end
end
execute 'loading kvm modules' do
@ -107,7 +109,8 @@ when 'suse'
when 'xen'
node['openstack']['compute']['platform']['xen_packages'].each do |pkg|
package pkg do
action :install
options platform_options['package_overrides']
action :upgrade
end
end
update_boot_kernel_and_trigger_reboot('xen')
@ -115,14 +118,16 @@ when 'suse'
when 'qemu'
node['openstack']['compute']['platform']['kvm_packages'].each do |pkg|
package pkg do
action :install
options platform_options['package_overrides']
action :upgrade
end
end
when 'lxc'
node['openstack']['compute']['platform']['lxc_packages'].each do |pkg|
package pkg do
action :install
options platform_options['package_overrides']
action :upgrade
end
end
service 'boot.cgroup' do

View File

@ -28,7 +28,8 @@ platform_options = node['openstack']['compute']['platform']
platform_options['libvirt_ceph_packages'].each do |pkg|
package pkg do
action :install
options platform_options['package_overrides']
action :upgrade
end
end

View File

@ -39,14 +39,16 @@ end
db_type = node['openstack']['db']['compute']['service_type']
platform_options["#{db_type}_python_packages"].each do |pkg|
package pkg do
action :install
options platform_options['package_overrides']
action :upgrade
end
end
# required to run more than one consoleauth process
platform_options['memcache_python_packages'].each do |pkg|
package pkg do
action :install
options platform_options['package_overrides']
action :upgrade
end
end

View File

@ -10,7 +10,7 @@ describe 'openstack-compute::api-ec2' do
include_context 'compute_stubs'
it 'installs ec2 api packages' do
it 'upgrades ec2 api packages' do
expect(chef_run).to upgrade_package 'openstack-nova-api'
end

View File

@ -11,9 +11,9 @@ describe 'openstack-compute::api-ec2' do
include_context 'compute_stubs'
include_examples 'expect_runs_nova_common_recipe'
include_examples 'expect_creates_nova_lock_dir'
include_examples 'expect_installs_python_keystoneclient'
include_examples 'expect_upgrades_python_keystoneclient'
it 'installs ec2 api packages' do
it 'upgrade ec2 api package' do
expect(chef_run).to upgrade_package 'nova-api-ec2'
end

View File

@ -10,7 +10,7 @@ describe 'openstack-compute::api-metadata' do
include_context 'compute_stubs'
it 'installs metadata api packages' do
it 'upgrades metadata api packages' do
expect(chef_run).to upgrade_package 'openstack-nova-api'
end

View File

@ -11,9 +11,9 @@ describe 'openstack-compute::api-metadata' do
include_context 'compute_stubs'
include_examples 'expect_runs_nova_common_recipe'
include_examples 'expect_creates_nova_lock_dir'
include_examples 'expect_installs_python_keystoneclient'
include_examples 'expect_upgrades_python_keystoneclient'
it 'installs metadata api packages' do
it 'upgrades metadata api packages' do
expect(chef_run).to upgrade_package 'nova-api-metadata'
end

View File

@ -10,7 +10,7 @@ describe 'openstack-compute::api-os-compute' do
include_context 'compute_stubs'
it 'installs openstack api packages' do
it 'upgrades openstack api packages' do
expect(chef_run).to upgrade_package 'openstack-nova-api'
end

View File

@ -11,7 +11,7 @@ describe 'openstack-compute::api-os-compute' do
include_context 'compute_stubs'
include_examples 'expect_runs_nova_common_recipe'
include_examples 'expect_creates_nova_lock_dir'
include_examples 'expect_installs_python_keystoneclient'
include_examples 'expect_upgrades_python_keystoneclient'
it 'creates the /var/cache/nova directory' do
expect(chef_run).to create_directory('/var/cache/nova').with(
@ -21,7 +21,7 @@ describe 'openstack-compute::api-os-compute' do
)
end
it 'installs openstack api packages' do
it 'upgrades openstack api packages' do
expect(chef_run).to upgrade_package 'nova-api-os-compute'
end

View File

@ -11,7 +11,7 @@ describe 'openstack-compute::client' do
runner.converge(described_recipe)
end
it 'installs packages' do
it 'upgrades python-novaclient package' do
expect(chef_run).to upgrade_package('python-novaclient')
end
end

View File

@ -11,7 +11,7 @@ describe 'openstack-compute::client' do
runner.converge(described_recipe)
end
it 'installs packages' do
it 'upgrades python-novaclient package' do
expect(chef_run).to upgrade_package('python-novaclient')
end
end

View File

@ -10,23 +10,23 @@ describe 'openstack-compute::compute' do
include_context 'compute_stubs'
it "does not install kvm when virt_type is 'kvm'" do
it "does not upgrade kvm when virt_type is 'kvm'" do
node.set['openstack']['compute']['libvirt']['virt_type'] = 'kvm'
expect(chef_run).to_not upgrade_package('nova-compute-kvm')
end
it "does not install qemu when virt_type is 'qemu'" do
it "does not upgrade qemu when virt_type is 'qemu'" do
node.set['openstack']['compute']['libvirt']['virt_type'] = 'qemu'
expect(chef_run).to_not upgrade_package('nova-compute-qemu')
end
it 'installs nova compute packages' do
it 'upgrades nova compute package' do
expect(chef_run).to upgrade_package('openstack-nova-compute')
end
it 'installs nfs client packages' do
it 'upgrades nfs client package' do
expect(chef_run).to upgrade_package('nfs-utils')
expect(chef_run).to upgrade_package('nfs-utils-lib')
end

View File

@ -10,7 +10,7 @@ describe 'openstack-compute::compute' do
include_context 'compute_stubs'
it 'installs nfs client packages' do
it 'upgrades nfs client packages' do
expect(chef_run).to upgrade_package 'nfs-utils'
expect(chef_run).not_to upgrade_package 'nfs-utils-lib'
end

View File

@ -28,15 +28,15 @@ describe 'openstack-compute::compute' do
expect(chef_run).to include_recipe 'openstack-compute::network'
end
it 'installs nova compute packages' do
it 'upgrades nova compute package' do
expect(chef_run).to upgrade_package 'nova-compute'
end
it 'installs nfs client packages' do
it 'upgrades nfs client package' do
expect(chef_run).to upgrade_package 'nfs-common'
end
it "installs kvm when virt_type is 'kvm'" do
it "upgrades kvm when virt_type is 'kvm'" do
node.set['openstack']['compute']['libvirt']['virt_type'] = 'kvm'
expect(chef_run).to upgrade_package 'nova-compute-kvm'
@ -50,7 +50,7 @@ describe 'openstack-compute::compute' do
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
it 'upgrades qemu when virt_type is qemu' do
node.set['openstack']['compute']['libvirt']['virt_type'] = 'qemu'
expect(chef_run).to upgrade_package 'nova-compute-qemu'

View File

@ -10,7 +10,7 @@ describe 'openstack-compute::conductor' do
include_context 'compute_stubs'
it 'installs conductor packages' do
it 'upgrades conductor package' do
expect(chef_run).to upgrade_package 'openstack-nova-conductor'
end

View File

@ -11,7 +11,7 @@ describe 'openstack-compute::conductor' do
include_context 'compute_stubs'
include_examples 'expect_runs_nova_common_recipe'
it 'installs conductor packages' do
it 'upgrades conductor package' do
expect(chef_run).to upgrade_package 'nova-conductor'
end

View File

@ -10,8 +10,8 @@ describe 'openstack-compute::libvirt' do
include_context 'compute_stubs'
it 'installs libvirt packages' do
expect(chef_run).to install_package 'libvirt'
it 'upgrades libvirt packages' do
expect(chef_run).to upgrade_package 'libvirt'
end
it 'creates libvirtd group and adds nova as a member' do

View File

@ -17,8 +17,8 @@ describe 'openstack-compute::libvirt' do
include_context 'compute_stubs'
it 'installs libvirt packages' do
expect(chef_run).to install_package 'libvirt'
it 'upgrade libvirt package' do
expect(chef_run).to upgrade_package 'libvirt'
end
it 'starts libvirt' do
@ -33,19 +33,19 @@ describe 'openstack-compute::libvirt' do
expect(chef_run).not_to create_template('/etc/sysconfig/libvirtd')
end
it 'installs kvm packages' do
expect(chef_run).to install_package 'kvm'
it 'upgrade kvm package' do
expect(chef_run).to upgrade_package 'kvm'
end
it 'installs qemu packages' do
it 'upgrade kvm package' do
node.set['openstack']['compute']['libvirt']['virt_type'] = 'qemu'
expect(chef_run).to install_package 'kvm'
expect(chef_run).to upgrade_package 'kvm'
end
it 'installs xen packages' do
it 'upgrade xen packages' do
node.set['openstack']['compute']['libvirt']['virt_type'] = 'xen'
['kernel-xen', 'xen', 'xen-tools'].each do |pkg|
expect(chef_run).to install_package pkg
expect(chef_run).to upgrade_package pkg
end
end
@ -54,8 +54,8 @@ describe 'openstack-compute::libvirt' do
node.set['openstack']['compute']['libvirt']['virt_type'] = 'lxc'
end
it 'installs packages' do
expect(chef_run).to install_package 'lxc'
it 'upgrade lxc package' do
expect(chef_run).to upgrade_package 'lxc'
end
it 'starts boot.cgroupslxc' do

View File

@ -18,8 +18,8 @@ describe 'openstack-compute::libvirt_rbd' do
expect(chef_run).to include_recipe('openstack-common::ceph_client')
end
it 'installs rbd packages' do
expect(chef_run).to install_package 'ceph-common'
it 'upgrades rbd packages' do
expect(chef_run).to upgrade_package 'ceph-common'
end
describe 'if there was no secret with this uuid defined' do

View File

@ -10,8 +10,8 @@ describe 'openstack-compute::libvirt' do
include_context 'compute_stubs'
it 'installs libvirt packages' do
expect(chef_run).to install_package 'libvirt-bin'
it 'upgrades libvirt packages' do
expect(chef_run).to upgrade_package 'libvirt-bin'
end
it 'does not create libvirtd group and add to nova' do

View File

@ -10,7 +10,7 @@ describe 'openstack-compute::network' do
include_context 'compute_stubs'
it 'installs nova network packages' do
it 'upgrades nova network packages' do
expect(chef_run).to upgrade_package('iptables')
expect(chef_run).to upgrade_package('openstack-nova-network')
end

View File

@ -16,7 +16,7 @@ describe 'openstack-compute::network' do
node.set['openstack']['compute']['network']['service_type'] = 'nova'
end
it 'installs nova network packages' do
it 'upgrades nova network packages' do
expect(chef_run).to upgrade_package('iptables')
expect(chef_run).to upgrade_package('nova-network')
end

View File

@ -10,7 +10,7 @@ describe 'openstack-compute::nova-cert' do
include_context 'compute_stubs'
it 'installs nova cert packages' do
it 'upgrades nova cert package' do
expect(chef_run).to upgrade_package 'openstack-nova-cert'
end

View File

@ -11,7 +11,7 @@ describe 'openstack-compute::nova-cert' do
include_context 'compute_stubs'
include_examples 'expect_runs_nova_common_recipe'
it 'installs nova cert packages' do
it 'upgrades nova cert package' do
expect(chef_run).to upgrade_package('nova-cert')
end

View File

@ -10,23 +10,23 @@ describe 'openstack-compute::nova-common' do
include_context 'compute_stubs'
it 'installs nova common packages' do
it 'upgrades nova common package' do
expect(chef_run).to upgrade_package 'openstack-nova-common'
end
it 'installs mysql python packages by default' do
expect(chef_run).to install_package 'MySQL-python'
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package 'MySQL-python'
end
it 'installs db2 python packages if explicitly told' do
it 'upgrades db2 python packages if explicitly told' do
node.set['openstack']['db']['compute']['service_type'] = 'db2'
['python-ibm-db', 'python-ibm-db-sa'].each do |pkg|
expect(chef_run).to install_package pkg
expect(chef_run).to upgrade_package pkg
end
end
it 'installs memcache python packages' do
expect(chef_run).to install_package 'python-memcached'
it 'upgrades memcache python packages' do
expect(chef_run).to upgrade_package 'python-memcached'
end
describe 'nova.conf' do

View File

@ -16,16 +16,16 @@ describe 'openstack-compute::nova-common' do
include_context 'compute_stubs'
it 'installs mysql python packages' do
expect(chef_run).to install_package 'python-mysqldb'
it 'upgrades mysql python package' do
expect(chef_run).to upgrade_package 'python-mysqldb'
end
it 'installs nova common packages' do
it 'upgrades nova common package' do
expect(chef_run).to upgrade_package 'nova-common'
end
it 'installs memcache python packages' do
expect(chef_run).to install_package 'python-memcache'
it 'upgrades memcache python package' do
expect(chef_run).to upgrade_package 'python-memcache'
end
it 'creates the /etc/nova directory' do

View File

@ -57,7 +57,7 @@ describe 'openstack-compute::nova-setup' do
node.set['openstack']['compute']['network']['floating']['public_network_name'] = 'public'
end
it 'installs the neutron python packages' do
it 'upgrades the neutron python packages' do
expect(chef_run).to upgrade_package('python-neutronclient')
expect(chef_run).to upgrade_package('python-pyparsing')
end

View File

@ -10,7 +10,7 @@ describe 'openstack-compute::scheduler' do
include_context 'compute_stubs'
it 'installs nova scheduler packages' do
it 'upgrades nova scheduler package' do
expect(chef_run).to upgrade_package('openstack-nova-scheduler')
end

View File

@ -12,7 +12,7 @@ describe 'openstack-compute::scheduler' do
include_examples 'expect_runs_nova_common_recipe'
include_examples 'expect_creates_nova_lock_dir'
it 'installs nova scheduler packages' do
it 'upgrades nova scheduler package' do
expect(chef_run).to upgrade_package('nova-scheduler')
end

View File

@ -88,13 +88,13 @@ shared_context 'compute_stubs' do
end
shared_examples 'expect_runs_nova_common_recipe' do
it 'installs nova-common' do
it 'includes nova-common' do
expect(chef_run).to include_recipe 'openstack-compute::nova-common'
end
end
shared_examples 'expect_installs_python_keystoneclient' do
it 'installs python-keystoneclient' do
shared_examples 'expect_upgrades_python_keystoneclient' do
it 'upgrades python-keystoneclient' do
expect(chef_run).to upgrade_package 'python-keystoneclient'
end
end

View File

@ -10,11 +10,11 @@ describe 'openstack-compute::vncproxy' do
include_context 'compute_stubs'
it 'installs nova vncproxy packages' do
it 'upgrades nova vncproxy package' do
expect(chef_run).to upgrade_package('openstack-nova-novncproxy')
end
it 'installs nova consoleauth packages' do
it 'upgrades nova consoleauth package' do
expect(chef_run).to upgrade_package('openstack-nova-console')
end

View File

@ -11,13 +11,13 @@ describe 'openstack-compute::vncproxy' do
include_context 'compute_stubs'
include_examples 'expect_runs_nova_common_recipe'
it 'installs nova vncproxy packages' do
it 'upgrades nova vncproxy packages' do
expect(chef_run).to upgrade_package('novnc')
expect(chef_run).to upgrade_package('websockify')
expect(chef_run).to upgrade_package('nova-novncproxy')
end
it 'installs nova consoleauth packages' do
it 'upgrades nova consoleauth package' do
expect(chef_run).to upgrade_package('nova-consoleauth')
end