scenario001: test Telemetry with Auto-Scaling scenario

Improving scenario001 use-case where we use Telemetry services for
Auto-Scaling. It's a end-to-end scenario, so it will really test all the
stack.

- It adds Heat to scenario001
- It runs TestAutoscalingGabbi test
- It increases token expiration to 2400

Change-Id: Ibaa44cf53b8c8fb59b765ce4f9b219dd65f38a42
This commit is contained in:
Pradeep Kilambi 2016-12-14 12:05:34 -05:00 committed by Emilien Macchi
parent 1e0980fece
commit f8a1504a00
7 changed files with 37 additions and 7 deletions

View File

@ -56,7 +56,7 @@ scenario](#all-in-one).
| backup | | swift | | | | | backup | | swift | | | |
| gnocchi | rbd | | | | | | gnocchi | rbd | | | | |
| ec2api | | X | | | | | ec2api | | X | | | |
| heat | | | X | | | | heat | X | | X | | |
| swift | | X | | | | | swift | | X | | | |
| sahara | | | X | | | | sahara | | | X | | |
| trove | | | X | | | | trove | | | X | | |

View File

@ -49,7 +49,11 @@ include ::openstack_integration::cacert
include ::openstack_integration::memcached include ::openstack_integration::memcached
include ::openstack_integration::rabbitmq include ::openstack_integration::rabbitmq
include ::openstack_integration::mysql include ::openstack_integration::mysql
include ::openstack_integration::keystone class { '::openstack_integration::keystone':
# NOTE(sileht):zTelemetry autoscaling tempest tests can't renew token, so we
# use a long one
token_expiration => '2400',
}
class { '::openstack_integration::glance': class { '::openstack_integration::glance':
backend => 'rbd', backend => 'rbd',
} }
@ -68,6 +72,7 @@ if $enable_vitrage {
include ::openstack_integration::vitrage include ::openstack_integration::vitrage
} }
include ::openstack_integration::ceph include ::openstack_integration::ceph
include ::openstack_integration::heat
include ::openstack_integration::provision include ::openstack_integration::provision
if ! $enable_legacy_telemetry { if ! $enable_legacy_telemetry {
include ::openstack_integration::redis include ::openstack_integration::redis
@ -80,6 +85,7 @@ class { '::openstack_integration::tempest':
gnocchi => ! $enable_legacy_telemetry, gnocchi => ! $enable_legacy_telemetry,
ceilometer => true, ceilometer => true,
aodh => true, aodh => true,
heat => true,
panko => ! $enable_legacy_telemetry, panko => ! $enable_legacy_telemetry,
vitrage => $enable_vitrage, vitrage => $enable_vitrage,
} }

View File

@ -82,6 +82,8 @@ class openstack_integration::aodh {
class { '::aodh::client': } class { '::aodh::client': }
class { '::aodh::notifier': } class { '::aodh::notifier': }
class { '::aodh::listener': } class { '::aodh::listener': }
class { '::aodh::evaluator': } class { '::aodh::evaluator':
evaluation_interval => 10,
}
} }

View File

@ -86,6 +86,7 @@ class openstack_integration::ceilometer (
class { '::ceilometer::expirer': } class { '::ceilometer::expirer': }
# Gnocchi and Panko are not avialable on Ubuntu
$sample_pipeline_publishers = ['database://'] $sample_pipeline_publishers = ['database://']
$event_pipeline_publishers = ['database://'] $event_pipeline_publishers = ['database://']
} else { } else {
@ -99,16 +100,24 @@ class openstack_integration::ceilometer (
Class['ceilometer::keystone::auth'] -> Exec['ceilometer-upgrade'] Class['ceilometer::keystone::auth'] -> Exec['ceilometer-upgrade']
Class['gnocchi::keystone::auth'] -> Exec['ceilometer-upgrade'] Class['gnocchi::keystone::auth'] -> Exec['ceilometer-upgrade']
# The default pipeline doesn't have Panko
$sample_pipeline_publishers = ['gnocchi://'] $sample_pipeline_publishers = ['gnocchi://']
$event_pipeline_publishers = ['gnocchi://', 'panko://'] $event_pipeline_publishers = ['gnocchi://', 'panko://']
} }
class { '::ceilometer::agent::notification': class { '::ceilometer::agent::notification':
notification_workers => '2', notification_workers => '2',
manage_pipeline => true,
pipeline_publishers => $sample_pipeline_publishers, pipeline_publishers => $sample_pipeline_publishers,
manage_event_pipeline => true,
event_pipeline_publishers => $event_pipeline_publishers, event_pipeline_publishers => $event_pipeline_publishers,
} }
class { '::ceilometer::agent::polling': } class { '::ceilometer::agent::polling':
manage_polling => true,
# NOTE(sileht): Use 1 minute instead 10 otherwise the telemetry tempest
# tests are too long to pass in less than 1 hour.
polling_interval => 60,
}
class { '::ceilometer::agent::auth': class { '::ceilometer::agent::auth':
auth_password => 'a_big_secret', auth_password => 'a_big_secret',
auth_url => $::openstack_integration::config::keystone_auth_uri, auth_url => $::openstack_integration::config::keystone_auth_uri,

View File

@ -56,7 +56,11 @@ class openstack_integration::gnocchi {
cleanup_delay => 10, cleanup_delay => 10,
} }
class { '::gnocchi::storage': class { '::gnocchi::storage':
coordination_url => $::openstack_integration::config::tooz_url, # NOTE(sileht): Since we set the pipeline interval to 1 minutes instead
# of 10, we must compute metrics more often too, otherwise Aodh alarms will
# always missed data just because they are 'not yet' computed.
metric_processing_delay => 5,
coordination_url => $::openstack_integration::config::tooz_url,
} }
class { '::gnocchi::storage::ceph': class { '::gnocchi::storage::ceph':
ceph_username => 'openstack', ceph_username => 'openstack',

View File

@ -15,10 +15,16 @@
# (optional) Define the token provider to use. # (optional) Define the token provider to use.
# Default to 'uuid'. # Default to 'uuid'.
# #
# [*token_expiration*]
# (optional) Define the token expiration to use.
# Default to '600'.
#
class openstack_integration::keystone ( class openstack_integration::keystone (
$default_domain = undef, $default_domain = undef,
$using_domain_config = false, $using_domain_config = false,
$token_provider = 'uuid', $token_provider = 'uuid',
$token_expiration = '600',
) { ) {
include ::openstack_integration::config include ::openstack_integration::config
@ -72,7 +78,7 @@ class openstack_integration::keystone (
enable_fernet_setup => $enable_fernet_setup, enable_fernet_setup => $enable_fernet_setup,
enable_credential_setup => $enable_credential_setup, enable_credential_setup => $enable_credential_setup,
fernet_max_active_keys => '4', fernet_max_active_keys => '4',
token_expiration => '600', token_expiration => $token_expiration,
} }
include ::apache include ::apache
class { '::keystone::wsgi::apache': class { '::keystone::wsgi::apache':

View File

@ -281,6 +281,9 @@ echo "gnocchi.tempest" >> /tmp/openstack/tempest/test-whitelist.txt
# Vitrage # Vitrage
echo "TestEvents" >> /tmp/openstack/tempest/test-whitelist.txt echo "TestEvents" >> /tmp/openstack/tempest/test-whitelist.txt
# Test Autoscaling with Telemetry (need panko, ubuntu doesn't ship it)
uses_debs || echo "test_telemetry_integration" >> /tmp/openstack/tempest/test-whitelist.txt
# Ironic # Ironic
# Note: running all Ironic tests under SSL is not working # Note: running all Ironic tests under SSL is not working
# https://bugs.launchpad.net/ironic/+bug/1554237 # https://bugs.launchpad.net/ironic/+bug/1554237
@ -314,7 +317,7 @@ if uses_debs; then
# 1) fwaas tests from ubuntu are still out of date LP#1667736 # 1) fwaas tests from ubuntu are still out of date LP#1667736
EXCLUDES="--regex=^(?!neutron_fwaas.tests.tempest_plugin.tests.api.test_fwaas_extensions.*$)(?!mistral_tempest_tests.tests.api.v2.test_executions.ExecutionTestsV2.test_get_list_executions.*$)(?!ceilometer.tests.tempest.api.test_telemetry_notification_api.TelemetryNotificationAPITest.test_check_glance_v2_notifications.*$).*" EXCLUDES="--regex=^(?!neutron_fwaas.tests.tempest_plugin.tests.api.test_fwaas_extensions.*$)(?!mistral_tempest_tests.tests.api.v2.test_executions.ExecutionTestsV2.test_get_list_executions.*$)(?!ceilometer.tests.tempest.api.test_telemetry_notification_api.TelemetryNotificationAPITest.test_check_glance_v2_notifications.*$).*"
else else
EXCLUDES="--regex=^(?!ceilometer.tests.tempest.api.test_telemetry_notification_api.TelemetryNotificationAPITest.test_check_glance_v2_notifications.*$)(?!tempest.scenario.gnocchi.test.live_assert_vcpus_metric_is_really_expurged.test_request.*$)(?!tempest.scenario.gnocchi.test.live_assert_no_delete_metrics_have_the_gabbilive_policy.test_request.*$).*" EXCLUDES="--regex=^(?!tempest.scenario.gnocchi.test.live_assert_vcpus_metric_is_really_expurged.test_request.*$)(?!tempest.scenario.gnocchi.test.live_assert_no_delete_metrics_have_the_gabbilive_policy.test_request.*$).*"
fi fi
print_header 'Running Tempest' print_header 'Running Tempest'
cd /tmp/openstack/tempest cd /tmp/openstack/tempest