Add tag to package and service resources

In order to be able to take an action after all the packages of the
module have been installed/updated or all the services have been
started/restarted, we set a 'nova-package' and 'nova-service' tag
for each package and service of this module.

At the moment, there is a generic openstack tag that is not specific
enough if one wants to take action upon a single module change.

Use case :

If an action needs to be taken after all the packages have been
installed or updated : Package <| tag == 'nova-package' |> -> X

Change-Id: I6a28ed68ba3b0cbdd14cc224e2cf0c253786064a
This commit is contained in:
Yanis Guenane 2015-07-22 22:47:49 +02:00
parent ce641f2689
commit 2a2005d4e9
7 changed files with 28 additions and 18 deletions

View File

@ -57,7 +57,7 @@ define nova::generic_service(
ensure => $ensure_package,
name => $package_name,
notify => Service[$nova_title],
tag => ['openstack'],
tag => ['openstack', 'nova-package'],
}
}
@ -85,6 +85,7 @@ define nova::generic_service(
enable => $enabled,
hasstatus => true,
require => [Package['nova-common']],
tag => 'nova-service',
}
}
}

View File

@ -438,7 +438,7 @@ class nova(
ensure => $ensure_package,
name => $::nova::params::common_package_name,
require => [Package['python-nova'], Anchor['nova-start']],
tag => ['openstack'],
tag => ['openstack', 'nova-package'],
}
file { '/etc/nova/nova.conf':

View File

@ -23,12 +23,13 @@ describe 'nova::api' do
:name => platform_params[:nova_api_service],
:ensure => 'running',
:hasstatus => true,
:enable => true
:enable => true,
:tag => 'nova-service',
)
is_expected.to contain_package('nova-api').with(
:name => platform_params[:nova_api_package],
:ensure => 'present',
:tag => ['openstack']
:tag => ['openstack', 'nova-package'],
)
is_expected.to contain_package('nova-api').that_notifies('Service[nova-api]')
is_expected.to_not contain_exec('validate_nova_api')
@ -107,13 +108,14 @@ describe 'nova::api' do
is_expected.to contain_package('nova-api').with(
:name => platform_params[:nova_api_package],
:ensure => '2012.1-2',
:tag => ['openstack']
:tag => ['openstack', 'nova-package'],
)
is_expected.to contain_service('nova-api').with(
:name => platform_params[:nova_api_service],
:ensure => 'stopped',
:hasstatus => true,
:enable => false
:enable => false,
:tag => 'nova-service',
)
end

View File

@ -61,14 +61,15 @@ describe 'nova::cells' do
is_expected.to contain_package('nova-cells').with(
:ensure => 'present',
:name => platform_params[:cells_package_name],
:tag => ['openstack']
:tag => ['openstack', 'nova-package']
)
end
it 'configures nova-cells service' do
is_expected.to contain_service('nova-cells').with(
:ensure => 'running',
:name => platform_params[:cells_service_name]
:name => platform_params[:cells_service_name],
:tag => 'nova-service'
)
end

View File

@ -15,11 +15,12 @@ describe 'nova::compute' do
:name => platform_params[:nova_compute_service],
:ensure => 'running',
:hasstatus => true,
:enable => true
:enable => true,
:tag => 'nova-service'
})
is_expected.to contain_package('nova-compute').with({
:name => platform_params[:nova_compute_package],
:tag => ['openstack']
:tag => ['openstack', 'nova-package']
})
end
@ -67,12 +68,13 @@ describe 'nova::compute' do
:name => platform_params[:nova_compute_service],
:ensure => 'stopped',
:hasstatus => true,
:enable => false
:enable => false,
:tag => 'nova-service'
})
is_expected.to contain_package('nova-compute').with({
:name => platform_params[:nova_compute_package],
:ensure => '2012.1-2',
:tag => ['openstack']
:tag => ['openstack', 'nova-package']
})
end

View File

@ -12,12 +12,13 @@ describe 'nova' do
)
is_expected.to contain_package('python-nova').with(
:ensure => 'present',
:require => 'Package[python-greenlet]'
:require => 'Package[python-greenlet]',
:tag => ['openstack']
)
is_expected.to contain_package('nova-common').with(
:name => platform_params[:nova_common_package],
:ensure => 'present',
:tag => ['openstack']
:tag => ['openstack', 'nova-package']
)
end

View File

@ -12,13 +12,14 @@ shared_examples 'generic nova service' do |service|
:name => service[:package_name],
:ensure => 'present',
:notify => "Service[#{service[:name]}]",
:tag => ['openstack']
:tag => ['openstack', 'nova-package'],
})
is_expected.to contain_service(service[:name]).with({
:name => service[:service_name],
:ensure => 'running',
:hasstatus => true,
:enable => true
:enable => true,
:tag => 'nova-service',
})
end
end
@ -33,13 +34,15 @@ shared_examples 'generic nova service' do |service|
is_expected.to contain_package(service[:name]).with({
:name => service[:package_name],
:ensure => '2012.1-2',
:notify => "Service[#{service[:name]}]"
:notify => "Service[#{service[:name]}]",
:tag => ['openstack', 'nova-package'],
})
is_expected.to contain_service(service[:name]).with({
:name => service[:service_name],
:ensure => 'stopped',
:hasstatus => true,
:enable => false
:enable => false,
:tag => 'nova-service',
})
end
end