Add support for Tempest plugin packages
This patch allows to install Tempest plugin packages provided by RDO. Disabled by default, manage_tests_packages boolean if set to True will install Python packages that are needed when a service is set as available in ::tempest class. Change-Id: Iac9a57c2ba006bb2a660d2b54ee05bbe68125abf
This commit is contained in:
parent
f908e62c10
commit
d657b79046
@ -150,6 +150,8 @@
|
|||||||
# Defaults to undef
|
# Defaults to undef
|
||||||
# [*disable_ssl_validation*]
|
# [*disable_ssl_validation*]
|
||||||
# Defaults to undef
|
# Defaults to undef
|
||||||
|
# [*manage_tests_packages*]
|
||||||
|
# Defaults to false
|
||||||
#
|
#
|
||||||
class tempest(
|
class tempest(
|
||||||
$install_from_source = true,
|
$install_from_source = true,
|
||||||
@ -247,12 +249,13 @@ class tempest(
|
|||||||
$run_service_broker_tests = false,
|
$run_service_broker_tests = false,
|
||||||
$ca_certificates_file = undef,
|
$ca_certificates_file = undef,
|
||||||
$disable_ssl_validation = undef,
|
$disable_ssl_validation = undef,
|
||||||
|
$manage_tests_packages = false,
|
||||||
# scenario options
|
# scenario options
|
||||||
$img_dir = '/var/lib/tempest',
|
$img_dir = '/var/lib/tempest',
|
||||||
$img_file = 'cirros-0.3.4-x86_64-disk.img',
|
$img_file = 'cirros-0.3.4-x86_64-disk.img',
|
||||||
) {
|
) {
|
||||||
|
|
||||||
include '::tempest::params'
|
include ::tempest::params
|
||||||
|
|
||||||
if $install_from_source {
|
if $install_from_source {
|
||||||
ensure_packages([
|
ensure_packages([
|
||||||
@ -374,6 +377,107 @@ class tempest(
|
|||||||
'service_broker/run_service_broker_tests': value => $run_service_broker_tests;
|
'service_broker/run_service_broker_tests': value => $run_service_broker_tests;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if $manage_tests_packages {
|
||||||
|
if $aodh_available and $::tempest::params::python_aodh_tests {
|
||||||
|
package { 'python-aodh-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_aodh_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $ceilometer_available and $::tempest::params::python_ceilometer_tests {
|
||||||
|
package { 'python-ceilometer-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_ceilometer_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $cinder_available and $::tempest::params::python_cinder_tests {
|
||||||
|
package { 'python-cinder-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_cinder_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $glance_available and $::tempest::params::python_glance_tests {
|
||||||
|
package { 'python-glance-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_glance_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $heat_available and $::tempest::params::python_heat_tests {
|
||||||
|
package { 'python-heat-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_heat_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $ironic_available and $::tempest::params::python_ironic_tests {
|
||||||
|
package { 'python-ironic-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_ironic_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $::tempest::params::python_keystone_tests {
|
||||||
|
package { 'python-keystone-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_keystone_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $murano_available and $::tempest::params::python_murano_tests {
|
||||||
|
package { 'python-murano-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_murano_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $neutron_available and $::tempest::params::python_neutron_tests {
|
||||||
|
package { 'python-neutron-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_neutron_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $nova_available and $::tempest::params::python_nova_tests {
|
||||||
|
package { 'python-nova-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_nova_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $sahara_available and $::tempest::params::python_sahara_tests {
|
||||||
|
package { 'python-sahara-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_sahara_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $swift_available and $::tempest::params::python_swift_tests {
|
||||||
|
package { 'python-swift-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_swift_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $trove_available and $::tempest::params::python_trove_tests {
|
||||||
|
package { 'python-trove-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_trove_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if $zaqar_available and $::tempest::params::python_zaqar_tests {
|
||||||
|
package { 'python-zaqar-tests':
|
||||||
|
ensure => present,
|
||||||
|
name => $::tempest::params::python_zaqar_tests,
|
||||||
|
tag => ['openstack', 'tempest-package'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if $configure_images {
|
if $configure_images {
|
||||||
if ! $image_ref and $image_name {
|
if ! $image_ref and $image_name {
|
||||||
# If the image id was not provided, look it up via the image name
|
# If the image id was not provided, look it up via the image name
|
||||||
|
@ -12,6 +12,20 @@ class tempest::params {
|
|||||||
'patch',
|
'patch',
|
||||||
'gcc',
|
'gcc',
|
||||||
]
|
]
|
||||||
|
$python_aodh_tests = 'python-aodh-tests'
|
||||||
|
$python_ceilometer_tests = 'python-ceilometer-tests'
|
||||||
|
$python_cinder_tests = 'python-cinder-tests'
|
||||||
|
$python_glance_tests = 'python-glance-tests'
|
||||||
|
$python_heat_tests = 'python-heat-tests'
|
||||||
|
$python_ironic_tests = 'python-ironic-tests'
|
||||||
|
$python_keystone_tests = 'python-keystone-tests'
|
||||||
|
$python_murano_tests = 'python-murano-tests'
|
||||||
|
$python_neutron_tests = 'python-neutron-tests'
|
||||||
|
$python_nova_tests = 'python-nova-tests'
|
||||||
|
$python_sahara_tests = 'python-sahara-tests'
|
||||||
|
$python_swift_tests = 'python-swift-tests'
|
||||||
|
$python_trove_tests = 'python-trove-tests'
|
||||||
|
$python_zaqar_tests = 'python-zaqar-tests'
|
||||||
}
|
}
|
||||||
'Debian': {
|
'Debian': {
|
||||||
$pip_bin_path = '/usr/local/bin'
|
$pip_bin_path = '/usr/local/bin'
|
||||||
@ -24,6 +38,20 @@ class tempest::params {
|
|||||||
'patch',
|
'patch',
|
||||||
'gcc',
|
'gcc',
|
||||||
]
|
]
|
||||||
|
$python_aodh_tests = false
|
||||||
|
$python_ceilometer_tests = false
|
||||||
|
$python_cinder_tests = false
|
||||||
|
$python_glance_tests = false
|
||||||
|
$python_heat_tests = false
|
||||||
|
$python_ironic_tests = false
|
||||||
|
$python_keystone_tests = false
|
||||||
|
$python_murano_tests = false
|
||||||
|
$python_neutron_tests = false
|
||||||
|
$python_nova_tests = false
|
||||||
|
$python_sahara_tests = false
|
||||||
|
$python_swift_tests = false
|
||||||
|
$python_trove_tests = false
|
||||||
|
$python_zaqar_tests = false
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} only support osfamily RedHat and Debian")
|
fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, module ${module_name} only support osfamily RedHat and Debian")
|
||||||
|
@ -6,12 +6,14 @@ describe 'basic tempest' do
|
|||||||
|
|
||||||
it 'should work with no errors' do
|
it 'should work with no errors' do
|
||||||
pp= <<-EOS
|
pp= <<-EOS
|
||||||
Exec { logoutput => 'on_failure' }
|
include ::openstack_integration
|
||||||
|
include ::openstack_integration::repos
|
||||||
|
|
||||||
class { '::tempest':
|
class { '::tempest':
|
||||||
setup_venv => true,
|
setup_venv => true,
|
||||||
configure_images => false,
|
configure_images => false,
|
||||||
configure_networks => false,
|
configure_networks => false,
|
||||||
|
manage_tests_packages => true,
|
||||||
}
|
}
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
|
@ -249,6 +249,36 @@ describe 'tempest' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
shared_examples 'tempest with plugins packages' do
|
||||||
|
let :pre_condition do
|
||||||
|
"include ::glance
|
||||||
|
class { 'neutron': rabbit_password => 'passw0rd' }"
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with when managing tests packages for keystone (required service)' do
|
||||||
|
let :params do
|
||||||
|
{ :manage_tests_packages => true }
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "should install keystone tests package" do
|
||||||
|
it { expect { is_expected.to contain_package('python-keystone-tests') } }
|
||||||
|
it { expect { is_expected.to_not contain_package('python-aodh-tests') } }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with when managing tests packages for aodh (optional service)' do
|
||||||
|
let :params do
|
||||||
|
{ :manage_tests_packages => true,
|
||||||
|
:aodh_available => true }
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "should install keystone tests package" do
|
||||||
|
it { expect { is_expected.to contain_package('python-aodh-tests') } }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
context 'on Debian platforms' do
|
context 'on Debian platforms' do
|
||||||
let :facts do
|
let :facts do
|
||||||
{ :osfamily => 'Debian' }
|
{ :osfamily => 'Debian' }
|
||||||
@ -284,6 +314,7 @@ describe 'tempest' do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it_behaves_like 'tempest'
|
it_behaves_like 'tempest'
|
||||||
|
it_behaves_like 'tempest with plugins packages'
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'unsupported operating system' do
|
context 'unsupported operating system' do
|
||||||
|
Loading…
x
Reference in New Issue
Block a user