summaryrefslogtreecommitdiffstats
path: root/meta-openstack/recipes-extended/tempest
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openstack/recipes-extended/tempest')
-rw-r--r--meta-openstack/recipes-extended/tempest/tempest/logging.conf46
-rw-r--r--meta-openstack/recipes-extended/tempest/tempest/tempest.conf438
-rw-r--r--meta-openstack/recipes-extended/tempest/tempest_git.bb93
3 files changed, 577 insertions, 0 deletions
diff --git a/meta-openstack/recipes-extended/tempest/tempest/logging.conf b/meta-openstack/recipes-extended/tempest/tempest/logging.conf
new file mode 100644
index 0000000..3b468f1
--- /dev/null
+++ b/meta-openstack/recipes-extended/tempest/tempest/logging.conf
@@ -0,0 +1,46 @@
1[loggers]
2keys=root,tempest,tempest_stress
3
4[handlers]
5keys=file,syslog,devel
6
7[formatters]
8keys=default,tests
9
10[logger_root]
11level=NOTSET
12handlers=syslog
13
14[logger_tempest]
15level=DEBUG
16handlers=file
17qualname=tempest
18
19[logger_tempest_stress]
20level=INFO
21handlers=file,devel
22qualname=tempest.stress
23
24[handler_file]
25class=FileHandler
26level=DEBUG
27formatter=tests
28args=('tempest.log', 'w')
29
30[handler_syslog]
31class=handlers.SysLogHandler
32level=ERROR
33formatter = default
34args = ('/dev/log', handlers.SysLogHandler.LOG_USER)
35
36[handler_devel]
37class=StreamHandler
38level=DEBUG
39formatter=default
40args=(sys.stdout,)
41
42[formatter_default]
43format=%(name)s: %(levelname)s: %(message)s
44
45[formatter_tests]
46class = tempest.common.log.TestsFormatter
diff --git a/meta-openstack/recipes-extended/tempest/tempest/tempest.conf b/meta-openstack/recipes-extended/tempest/tempest/tempest.conf
new file mode 100644
index 0000000..aebda69
--- /dev/null
+++ b/meta-openstack/recipes-extended/tempest/tempest/tempest.conf
@@ -0,0 +1,438 @@
1[DEFAULT]
2log_config = /etc/tempest/logging.conf
3
4# disable logging to the stderr
5use_stderr = False
6
7# log file
8log_file = tempest.log
9
10# lock/semaphore base directory
11lock_path=/tmp
12
13default_log_levels=tempest.stress=INFO,amqplib=WARN,sqlalchemy=WARN,boto=WARN,suds=INFO,keystone=INFO,eventlet.wsgi.server=WARN
14
15[identity]
16# This section contains configuration options that a variety of Tempest
17# test clients use when authenticating with different user/tenant
18# combinations
19
20# The type of endpoint for a Identity service. Unless you have a
21# custom Keystone service catalog implementation, you probably want to leave
22# this value as "identity"
23catalog_type = identity
24# Ignore SSL certificate validation failures? Use when in testing
25# environments that have self-signed SSL certs.
26disable_ssl_certificate_validation = False
27# URL for where to find the OpenStack Identity API endpoint (Keystone)
28uri = http://127.0.0.1:5000/v2.0/
29# URL for where to find the OpenStack V3 Identity API endpoint (Keystone)
30uri_v3 = http://127.0.0.1:5000/v3/
31# The identity region. Also used as the other services' region name unless
32# they are set explicitly.
33region = RegionOne
34
35# This should be the username of a user WITHOUT administrative privileges
36username = demo
37# The above non-administrative user's password
38password = secret
39# The above non-administrative user's tenant name
40tenant_name = demo
41
42# This should be the username of an alternate user WITHOUT
43# administrative privileges
44alt_username = alt_demo
45# The above non-administrative user's password
46alt_password = secret
47# The above non-administrative user's tenant name
48alt_tenant_name = alt_demo
49
50# This should be the username of a user WITH administrative privileges
51admin_username = admin
52# The above administrative user's password
53admin_password = secret
54# The above administrative user's tenant name
55admin_tenant_name = admin
56
57# The role that is required to administrate keystone.
58admin_role = admin
59
60[compute]
61# This section contains configuration options used when executing tests
62# against the OpenStack Compute API.
63
64# Allows test cases to create/destroy tenants and users. This option
65# enables isolated test cases and better parallel execution,
66# but also requires that OpenStack Identity API admin credentials
67# are known.
68allow_tenant_isolation = true
69
70# Allows test cases to create/destroy tenants and users. This option
71# enables isolated test cases and better parallel execution,
72# but also requires that OpenStack Identity API admin credentials
73# are known.
74allow_tenant_reuse = true
75
76# Reference data for tests. The ref and ref_alt should be
77# distinct images/flavors.
78image_ref = {$IMAGE_ID}
79image_ref_alt = {$IMAGE_ID_ALT}
80flavor_ref = 1
81flavor_ref_alt = 2
82
83# User name used to authenticate to an instance
84image_ssh_user = root
85
86# Password used to authenticate to an instance
87image_ssh_password = password
88
89# User name used to authenticate to an instance using the alternate image
90image_alt_ssh_user = root
91
92# Password used to authenticate to an instance using the alternate image
93image_alt_ssh_password = password
94
95# Number of seconds to wait while looping to check the status of an
96# instance that is building.
97build_interval = 10
98
99# Number of seconds to time out on waiting for an instance
100# to build or reach an expected status
101build_timeout = 600
102
103# Run additional tests that use SSH for instance validation?
104# This requires the instances be routable from the host
105# executing the tests
106run_ssh = false
107
108# Name of a user used to authenticate to an instance.
109ssh_user = cirros
110
111# Visible fixed network name
112fixed_network_name = private
113
114# Network id used for SSH (public, private, etc)
115network_for_ssh = public
116
117# IP version of the address used for SSH
118ip_version_for_ssh = 4
119
120# Number of seconds to wait to ping to an instance
121ping_timeout = 60
122
123# Number of seconds to wait to authenticate to an instance
124ssh_timeout = 300
125
126# Additinal wait time for clean state, when there is
127# no OS-EXT-STS extension availiable
128ready_wait = 0
129
130# Number of seconds to wait for output from ssh channel
131ssh_channel_timeout = 60
132
133# Dose the SSH uses Floating IP?
134use_floatingip_for_ssh = True
135
136# The type of endpoint for a Compute API service. Unless you have a
137# custom Keystone service catalog implementation, you probably want to leave
138# this value as "compute"
139catalog_type = compute
140
141# The name of a region for compute. If empty or commented-out, the value of
142# identity.region is used instead. If no such region is found in the service
143# catalog, the first found one is used.
144#region = RegionOne
145
146# Does the Compute API support creation of images?
147create_image_enabled = true
148
149# For resize to work with libvirt/kvm, one of the following must be true:
150# Single node: allow_resize_to_same_host=True must be set in nova.conf
151# Cluster: the 'nova' user must have scp access between cluster nodes
152resize_available = true
153
154# Does the compute API support changing the admin password?
155change_password_available=true
156
157# Run live migration tests (requires 2 hosts)
158live_migration_available = false
159
160# Use block live migration (Otherwise, non-block migration will be
161# performed, which requires XenServer pools in case of using XS)
162use_block_migration_for_live_migration = false
163
164# Supports iSCSI block migration - depends on a XAPI supporting
165# relax-xsm-sr-check
166block_migrate_supports_cinder_iscsi = false
167
168# When set to false, disk config tests are forced to skip
169disk_config_enabled = true
170
171# When set to false, flavor extra data tests are forced to skip
172flavor_extra_enabled = true
173
174# Expected first device name when a volume is attached to an instance
175volume_device_name = vdb
176
177[compute-admin]
178# This should be the username of a user WITH administrative privileges
179# If not defined the admin user from the identity section will be used
180username =
181# The above administrative user's password
182password =
183# The above administrative user's tenant name
184tenant_name =
185
186[image]
187# This section contains configuration options used when executing tests
188# against the OpenStack Images API
189
190# The type of endpoint for an Image API service. Unless you have a
191# custom Keystone service catalog implementation, you probably want to leave
192# this value as "image"
193catalog_type = image
194
195# The name of a region for image. If empty or commented-out, the value of
196# identity.region is used instead. If no such region is found in the service
197# catalog, the first found one is used.
198#region = RegionOne
199
200# The version of the OpenStack Images API to use
201api_version = 1
202
203# HTTP image to use for glance http image testing
204http_image = http://download.cirros-cloud.net/0.3.1/cirros-0.3.1-x86_64-uec.tar.gz
205
206[network]
207# This section contains configuration options used when executing tests
208# against the OpenStack Network API.
209
210# Version of the Neutron API
211api_version = v1.1
212# Catalog type of the Neutron Service
213catalog_type = network
214
215# The name of a region for network. If empty or commented-out, the value of
216# identity.region is used instead. If no such region is found in the service
217# catalog, the first found one is used.
218#region = RegionOne
219
220# A large private cidr block from which to allocate smaller blocks for
221# tenant networks.
222tenant_network_cidr = 10.100.0.0/16
223
224# The mask bits used to partition the tenant block.
225tenant_network_mask_bits = 24
226
227# If tenant networks are reachable, connectivity checks will be
228# performed directly against addresses on those networks.
229tenant_networks_reachable = false
230
231# Id of the public network that provides external connectivity.
232public_network_id = {$PUBLIC_NETWORK_ID}
233
234# Id of a shared public router that provides external connectivity.
235# A shared public router would commonly be used where IP namespaces
236# were disabled. If namespaces are enabled, it would be preferable
237# for each tenant to have their own router.
238public_router_id = {$PUBLIC_ROUTER_ID}
239
240
241[volume]
242# This section contains the configuration options used when executing tests
243# against the OpenStack Block Storage API service
244
245# The type of endpoint for a Cinder or Block Storage API service.
246# Unless you have a custom Keystone service catalog implementation, you
247# probably want to leave this value as "volume"
248catalog_type = volume
249# The name of a region for volume. If empty or commented-out, the value of
250# identity.region is used instead. If no such region is found in the service
251# catalog, the first found one is used.
252#region = RegionOne
253# The disk format to use when copying a volume to image
254disk_format = raw
255# Number of seconds to wait while looping to check the status of a
256# volume that is being made available
257build_interval = 10
258# Number of seconds to time out on waiting for a volume
259# to be available or reach an expected status
260build_timeout = 300
261# Runs Cinder multi-backend tests (requires 2 backends declared in cinder.conf)
262# They must have different volume_backend_name (backend1_name and backend2_name
263# have to be different)
264multi_backend_enabled = false
265backend1_name = BACKEND_1
266backend2_name = BACKEND_2
267# Protocol and vendor of volume backend to target when testing volume-types.
268# You should update to reflect those exported by configured backend driver.
269storage_protocol = iSCSI
270vendor_name = Open Source
271
272[object-storage]
273# This section contains configuration options used when executing tests
274# against the OpenStack Object Storage API.
275
276# You can configure the credentials in the compute section
277
278# The type of endpoint for an Object Storage API service. Unless you have a
279# custom Keystone service catalog implementation, you probably want to leave
280# this value as "object-store"
281catalog_type = object-store
282
283# The name of a region for object storage. If empty or commented-out, the
284# value of identity.region is used instead. If no such region is found in
285# the service catalog, the first found one is used.
286#region = RegionOne
287
288# Number of seconds to time on waiting for a container to container
289# synchronization complete
290container_sync_timeout = 120
291# Number of seconds to wait while looping to check the status of a
292# container to container synchronization
293container_sync_interval = 5
294# Set to True if the Account Quota middleware is enabled
295accounts_quotas_available = True
296# Set to True if the Container Quota middleware is enabled
297container_quotas_available = True
298
299# Set operator role for tests that require creating a container
300operator_role = Member
301
302[boto]
303# This section contains configuration options used when executing tests
304# with boto.
305
306# EC2 URL
307ec2_url = http://localhost:8773/services/Cloud
308# S3 URL
309s3_url = http://localhost:3333
310
311# Use keystone ec2-* command to get those values for your test user and tenant
312aws_access =
313aws_secret =
314
315# Image materials for S3 upload
316# ALL content of the specified directory will be uploaded to S3
317s3_materials_path = /opt/stack/devstack/files/images/s3-materials/cirros-0.3.1
318
319# The manifest.xml files, must be in the s3_materials_path directory
320# Subdirectories not allowed!
321# The filenames will be used as a Keys in the S3 Buckets
322
323# ARI Ramdisk manifest. Must be in the above s3_materials_path
324ari_manifest = cirros-0.3.1-x86_64-initrd.manifest.xml
325
326# AMI Machine Image manifest. Must be in the above s3_materials_path
327ami_manifest = cirros-0.3.1-x86_64-blank.img.manifest.xml
328
329# AKI Kernel Image manifest, Must be in the above s3_materials_path
330aki_manifest = cirros-0.3.1-x86_64-vmlinuz.manifest.xml
331
332# Instance type
333instance_type = m1.tiny
334
335# TCP/IP connection timeout
336http_socket_timeout = 5
337
338# Number of retries actions on connection or 5xx error
339num_retries = 1
340
341# Status change wait timout
342build_timeout = 120
343
344# Status change wait interval
345build_interval = 1
346
347[orchestration]
348# The type of endpoint for an Orchestration API service. Unless you have a
349# custom Keystone service catalog implementation, you probably want to leave
350# this value as "orchestration"
351catalog_type = orchestration
352
353# The name of a region for orchestration. If empty or commented-out, the value
354# of identity.region is used instead. If no such region is found in the service
355# catalog, the first found one is used.
356#region = RegionOne
357
358# Status change wait interval
359build_interval = 1
360
361# Status change wait timout. This may vary across environments as some some
362# tests spawn full VMs, which could be slow if the test is already in a VM.
363build_timeout = 300
364
365# Instance type for tests. Needs to be big enough for a
366# full OS plus the test workload
367instance_type = m1.micro
368
369# Name of heat-cfntools enabled image to use when launching test instances
370# If not specified, tests that spawn instances will not run
371#image_ref = ubuntu-vm-heat-cfntools
372
373# Name of existing keypair to launch servers with. The default is not to specify
374# any key, which will generate a keypair for each test class
375#keypair_name = heat_key
376
377[dashboard]
378# URL where to find the dashboard home page
379dashboard_url = 'http://localhost/'
380
381# URL where to submit the login form
382login_url = 'http://localhost/auth/login/'
383
384[scenario]
385# Directory containing image files
386img_dir = /opt/stack/new/devstack/files/images/cirros-0.3.1-x86_64-uec
387
388# AMI image file name
389ami_img_file = cirros-0.3.1-x86_64-blank.img
390
391# ARI image file name
392ari_img_file = cirros-0.3.1-x86_64-initrd
393
394# AKI image file name
395aki_img_file = cirros-0.3.1-x86_64-vmlinuz
396
397# ssh username for the image file
398ssh_user = cirros
399
400# specifies how many resources to request at once. Used for large operations
401# testing."
402large_ops_number = 0
403
404[cli]
405# Enable cli tests
406enabled = True
407# directory where python client binaries are located
408cli_dir = /usr/local/bin
409# Number of seconds to wait on a CLI timeout
410timeout = 15
411
412[service_available]
413# Whether or not cinder is expected to be available
414cinder = True
415# Whether or not neutron is expected to be available
416neutron = false
417# Whether or not glance is expected to be available
418glance = True
419# Whether or not swift is expected to be available
420swift = True
421# Whether or not nova is expected to be available
422nova = True
423# Whether or not Heat is expected to be available
424heat = false
425# Whether or not horizon is expected to be available
426horizon = True
427
428[stress]
429# Maximum number of instances to create during test
430max_instances = 32
431# Time (in seconds) between log file error checks
432log_check_interval = 60
433# The default number of threads created while stress test
434default_thread_number_per_action=4
435
436[debug]
437# Enable diagnostic commands
438enable = True
diff --git a/meta-openstack/recipes-extended/tempest/tempest_git.bb b/meta-openstack/recipes-extended/tempest/tempest_git.bb
new file mode 100644
index 0000000..250e541
--- /dev/null
+++ b/meta-openstack/recipes-extended/tempest/tempest_git.bb
@@ -0,0 +1,93 @@
1DESCRIPTION = "The OpenStack Integration Test Suite"
2HOMEPAGE = "https://launchpad.net/tempest"
3SECTION = "devel/python"
4LICENSE = "Apache-2.0"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
6
7PR = "r0"
8SRCNAME = "tempest"
9
10SRC_URI = "git://github.com/openstack/${SRCNAME}.git;branch=stable/havana \
11 file://tempest.conf \
12 file://logging.conf \
13"
14
15SRCREV="6273339e2da725b01560b6a2db11a3bf7a6659d7"
16PV="2013.2+git${SRCPV}"
17S = "${WORKDIR}/git"
18
19do_install_append() {
20 TEMPLATE_CONF_DIR=${S}${sysconfdir}/
21 TEMPEST_CONF_DIR=${D}${sysconfdir}/${SRCNAME}
22
23 sed -e "s:%SERVICE_TENANT_NAME%:${SERVICE_TENANT_NAME}:g" -i ${WORKDIR}/tempest.conf
24 sed -e "s:%SERVICE_USER%:${SRCNAME}:g" -i ${WORKDIR}/tempest.conf
25 sed -e "s:%SERVICE_PASSWORD%:${SERVICE_PASSWORD}:g" -i ${WORKDIR}/tempest.conf
26
27 sed -e "s:%DB_USER%:${DB_USER}:g" -i ${WORKDIR}/tempest.conf
28 sed -e "s:%DB_PASSWORD%:${DB_PASSWORD}:g" -i ${WORKDIR}/tempest.conf
29
30 sed -e "s:%CONTROLLER_IP%:${CONTROLLER_IP}:g" -i ${WORKDIR}/tempest.conf
31 sed -e "s:%CONTROLLER_HOST%:${CONTROLLER_HOST}:g" -i ${WORKDIR}/tempest.conf
32
33 sed -e "s:%COMPUTE_IP%:${COMPUTE_IP}:g" -i ${WORKDIR}/tempest.conf
34 sed -e "s:%COMPUTE_HOST%:${COMPUTE_HOST}:g" -i ${WORKDIR}/tempest.conf
35
36 sed -e "s:%ADMIN_PASSWORD%:${ADMIN_PASSWORD}:g" -i ${WORKDIR}/tempest.conf
37 sed -e "s:%SERVICE_TENANT_NAME%:${SERVICE_TENANT_NAME}:g" -i ${WORKDIR}/tempest.conf
38
39 install -d ${TEMPEST_CONF_DIR}
40 install -m 600 ${WORKDIR}/tempest.conf ${TEMPEST_CONF_DIR}
41 install -m 600 ${WORKDIR}/logging.conf ${TEMPEST_CONF_DIR}
42 install -m 600 ${TEMPLATE_CONF_DIR}/*.yaml ${TEMPEST_CONF_DIR}
43}
44
45pkg_postinst_${SRCNAME}() {
46 if [ "x$D" != "x" ]; then
47 exit 1
48 fi
49
50 # This is to make sure postgres is configured and running
51 if ! pidof postmaster > /dev/null; then
52 /etc/init.d/postgresql-init
53 /etc/init.d/postgresql start
54 sleep 5
55 fi
56}
57
58inherit setuptools identity hosts
59
60# PACKAGES += "${SRCNAME}-common ${SRCNAME}-api ${SRCNAME}-api-cfn ${SRCNAME}-engine"
61
62FILES_${PN} = "${libdir}/* \
63 ${sysconfdir}/* \
64"
65
66RDEPENDS_${PN} += " \
67 python-testrepository \
68 python-fixtures \
69 python-keyring \
70 python-glanceclient \
71 python-keystoneclient \
72 python-swiftclient \
73 python-novaclient \
74 python-cinderclient \
75 python-heatclient \
76 python-pbr \
77 python-anyjson \
78 python-nose \
79 python-httplib2 \
80 python-jsonschema \
81 python-testtools \
82 python-lxml \
83 python-boto \
84 python-paramiko \
85 python-netaddr \
86 python-testresources \
87 python-oslo.config \
88 python-eventlet \
89 python-six \
90 python-iso8601 \
91 python-mimeparse \
92 "
93