From 5afe2ee8928eaea7027b1de932b822f2a2b29fb2 Mon Sep 17 00:00:00 2001 From: Ricardo Noriega Date: Tue, 11 Apr 2017 16:33:48 +0200 Subject: [PATCH] Add BGPVPN API service to scenario004 This submission will enable the BGPVPN API on scenario004 and one of its tempest test. Change-Id: I9d7853bedd822a9d182f1c5dcd7db85e7cd59c07 Signed-off-by: Ricardo Noriega --- README.md | 1 + fixtures/scenario004.pp | 8 ++- manifests/neutron.pp | 20 ++++++- manifests/tempest.pp | 130 +++++++++++++++++++++------------------- run_tests.sh | 3 + 5 files changed, 96 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index 17f66b4ac..e9315c342 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,7 @@ scenario](#all-in-one). | ceph rgw | | | | X | | | vitrage | X | | | | | | watcher | | | | X | | +| bgpvpn-api | | | | X | | When the Jenkins slave is created, the *run_tests.sh* script will be executed. This script will execute *install_modules.sh* that prepare /etc/puppet/modules diff --git a/fixtures/scenario004.pp b/fixtures/scenario004.pp index aa3c67de9..9e643d321 100644 --- a/fixtures/scenario004.pp +++ b/fixtures/scenario004.pp @@ -20,10 +20,13 @@ if $::operatingsystem == 'Ubuntu' { $ipv6 = false # Watcher packages are not available in Ubuntu repository. $watcher_enabled = false + # TODO(rnoriega) Enable testing for BGPVPN when UCA releases pike-m1 + $bgpvpn_enabled = false } else { $ssl_enabled = true $ipv6 = true $watcher_enabled = true + $bgpvpn_enabled = true } include ::openstack_integration @@ -42,7 +45,9 @@ class { '::openstack_integration::keystone': class { '::openstack_integration::glance': backend => 'swift', } -include ::openstack_integration::neutron +class { '::openstack_integration::neutron': + bgpvpn_enabled => $bgpvpn_enabled +} class { '::openstack_integration::nova': libvirt_rbd => true, } @@ -61,4 +66,5 @@ include ::openstack_integration::provision # Glance, nova, neutron are true by default. class { '::openstack_integration::tempest': watcher => $watcher_enabled, + bgpvpn => $bgpvpn_enabled, } diff --git a/manifests/neutron.pp b/manifests/neutron.pp index 8b3a779f8..2be050286 100644 --- a/manifests/neutron.pp +++ b/manifests/neutron.pp @@ -5,8 +5,14 @@ # Can be: openvswitch or linuxbridge. # Defaults to 'openvswitch'. # +# [*bgpvpn_enabled*] +# (optional) Flag to enable BGPVPN +# API extensions. +# Defaults to false. +# class openstack_integration::neutron ( - $driver = 'openvswitch', + $driver = 'openvswitch', + $bgpvpn_enabled = false, ) { include ::openstack_integration::config @@ -98,6 +104,10 @@ class openstack_integration::neutron ( admin_url => "${::openstack_integration::config::base_url}:9696", password => 'a_big_secret', } + $plugins_list = $bgpvpn_enabled ? { + true => ['router', 'metering', 'firewall', 'lbaasv2', 'bgpvpn'], + default => ['router', 'metering', 'firewall', 'lbaasv2'], + } class { '::neutron': default_transport_url => os_transport_url({ 'transport' => 'rabbit', @@ -109,7 +119,7 @@ class openstack_integration::neutron ( rabbit_use_ssl => $::openstack_integration::config::ssl, allow_overlapping_ips => true, core_plugin => 'ml2', - service_plugins => ['router', 'metering', 'firewall', 'lbaasv2'], + service_plugins => $plugins_list, debug => true, bind_host => $::openstack_integration::config::host, use_ssl => $::openstack_integration::config::ssl, @@ -187,5 +197,9 @@ class openstack_integration::neutron ( driver => 'neutron_fwaas.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver', } - + if $bgpvpn_enabled { + class {'::neutron::services::bgpvpn': + service_providers => 'BGPVPN:Dummy:networking_bgpvpn.neutron.services.service_drivers.driver_api.BGPVPNDriver:default' + } + } } diff --git a/manifests/tempest.pp b/manifests/tempest.pp index ea1ac8da5..834ddfbb4 100644 --- a/manifests/tempest.pp +++ b/manifests/tempest.pp @@ -4,6 +4,10 @@ # (optional) Define if Aodh needs to be tested. # Default to false. # +# [*bgpvpn*] +# (optional) Define if BGPVPN needs to be tested. +# Default to false. +# # [*ceilometer*] # (optional) Define if Ceilometer needs to be tested. # Default to false. @@ -99,6 +103,7 @@ # trunk, dns-integration, qos, or port_security support) class openstack_integration::tempest ( $aodh = false, + $bgpvpn = false, $ceilometer = false, $cinder = false, $cinder_backup = false, @@ -174,71 +179,72 @@ class openstack_integration::tempest ( } class { '::tempest': - debug => true, - use_stderr => false, - log_file => 'tempest.log', - tempest_clone_owner => $::id, - git_clone => false, - tempest_clone_path => '/tmp/openstack/tempest', - lock_path => '/tmp/openstack/tempest', - tempest_config_file => '/tmp/openstack/tempest/etc/tempest.conf', - configure_images => true, - configure_networks => true, - identity_uri_v3 => "${::openstack_integration::config::keystone_auth_uri}/v3", - admin_username => 'admin', - admin_project_name => 'openstack', - admin_password => 'a_big_secret', - admin_domain_name => 'Default', - auth_version => 'v3', - tempest_roles => ['Member', 'creator'], # needed to use barbican. - image_name => 'cirros', - image_name_alt => 'cirros_alt', - cinder_available => $cinder, - cinder_backup_available => $cinder_backup, - designate_available => $designate, - glance_available => $glance, - glance_v1 => false, - glance_v2 => true, - keystone_v2 => false, - horizon_available => $horizon, - nova_available => $nova, - neutron_available => $neutron, - neutron_lbaas_available => true, - neutron_fwaas_available => true, - ceilometer_available => $ceilometer, - aodh_available => $aodh, - trove_available => $trove, - sahara_available => $sahara, - heat_available => $heat, - swift_available => $swift, - ironic_available => $ironic, - zaqar_available => $zaqar, - mistral_available => $mistral, - vitrage_available => $vitrage, - gnocchi_available => $gnocchi, - panko_available => $panko, - ec2api_available => $ec2api, - watcher_available => $watcher, - public_network_name => 'public', - neutron_api_extensions => join(any2array($neutron_api_extensions), ','), - dashboard_url => $::openstack_integration::config::base_url, - flavor_ref => '42', - flavor_ref_alt => '84', - db_flavor_ref => '42', - image_ssh_user => 'cirros', - image_alt_ssh_user => 'cirros', - img_file => 'cirros-0.3.4-x86_64-disk.img', - compute_build_interval => 10, - ca_certificates_file => $::openstack_integration::params::ca_bundle_cert_path, - manage_tests_packages => true, - attach_encrypted_volume => $attach_encrypted_volume, - murano_available => $murano, - tempest_workspace => '/tmp/openstack/tempest', - run_ssh => true, + debug => true, + use_stderr => false, + log_file => 'tempest.log', + tempest_clone_owner => $::id, + git_clone => false, + tempest_clone_path => '/tmp/openstack/tempest', + lock_path => '/tmp/openstack/tempest', + tempest_config_file => '/tmp/openstack/tempest/etc/tempest.conf', + configure_images => true, + configure_networks => true, + identity_uri_v3 => "${::openstack_integration::config::keystone_auth_uri}/v3", + admin_username => 'admin', + admin_project_name => 'openstack', + admin_password => 'a_big_secret', + admin_domain_name => 'Default', + auth_version => 'v3', + tempest_roles => ['Member', 'creator'], # needed to use barbican. + image_name => 'cirros', + image_name_alt => 'cirros_alt', + cinder_available => $cinder, + cinder_backup_available => $cinder_backup, + designate_available => $designate, + glance_available => $glance, + glance_v1 => false, + glance_v2 => true, + keystone_v2 => false, + horizon_available => $horizon, + nova_available => $nova, + neutron_available => $neutron, + neutron_bgpvpn_available => $bgpvpn, + neutron_lbaas_available => true, + neutron_fwaas_available => true, + ceilometer_available => $ceilometer, + aodh_available => $aodh, + trove_available => $trove, + sahara_available => $sahara, + heat_available => $heat, + swift_available => $swift, + ironic_available => $ironic, + zaqar_available => $zaqar, + mistral_available => $mistral, + vitrage_available => $vitrage, + gnocchi_available => $gnocchi, + panko_available => $panko, + ec2api_available => $ec2api, + watcher_available => $watcher, + public_network_name => 'public', + neutron_api_extensions => join(any2array($neutron_api_extensions), ','), + dashboard_url => $::openstack_integration::config::base_url, + flavor_ref => '42', + flavor_ref_alt => '84', + db_flavor_ref => '42', + image_ssh_user => 'cirros', + image_alt_ssh_user => 'cirros', + img_file => 'cirros-0.3.4-x86_64-disk.img', + compute_build_interval => 10, + ca_certificates_file => $::openstack_integration::params::ca_bundle_cert_path, + manage_tests_packages => true, + attach_encrypted_volume => $attach_encrypted_volume, + murano_available => $murano, + tempest_workspace => '/tmp/openstack/tempest', + run_ssh => true, # TODO(emilien) optimization by 1/ using Hiera to configure Glance image source # and 2/ if running in the gate, use /home/jenkins/cache/files/ cirros image. # img_dir => '/home/jenkins/cache/files', - img_dir => '/tmp/openstack/image', + img_dir => '/tmp/openstack/image', } } diff --git a/run_tests.sh b/run_tests.sh index cff389dc6..74fd77c13 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -301,6 +301,9 @@ echo "TestEncryptedCinderVolumes" >> /tmp/openstack/tempest/test-whitelist.txt # https://bugs.launchpad.net/mistral/+bug/1654555 echo "test_create_and_delete_workflow" >> /tmp/openstack/tempest/test-whitelist.txt +# BGPVPN +echo "test_create_bgpvpn" >> /tmp/openstack/tempest/test-whitelist.txt + if uses_debs; then # TODO(aschultz): check this after pike-m1 # 1) fwaas tests from ubuntu are still out of date LP#1667736