[identity]
# This section contains configuration options that a variety of Tempest
# test clients use when authenticating with different user/tenant
# combinations

# The type of endpoint for a Identity service. Unless you have a
# custom Keystone service catalog implementation, you probably want to leave
# this value as "identity"
catalog_type = identity
# Set to True if your test environment's Keystone authentication service should
# be accessed over HTTPS
use_ssl = False
# This is the main host address of the authentication service API
host = 127.0.0.1
# Port that the authentication service API is running on
port = 5000
# Version of the authentication service API (a string)
api_version = v2.0
# Path to the authentication service tokens resource (do not modify unless you
# have a custom authentication API and are not using Keystone)
path = tokens
# Should typically be left as keystone unless you have a non-Keystone
# authentication API service
strategy = keystone

[compute]
# This section contains configuration options used when executing tests
# against the OpenStack Compute API.

# Allows test cases to create/destroy tenants and users. This option
# enables isolated test cases and better parallel execution,
# but also requires that OpenStack Identity API admin credentials
# are known.
allow_tenant_isolation = true

# Allows test cases to create/destroy tenants and users. This option
# enables isolated test cases and better parallel execution,
# but also requires that OpenStack Identity API admin credentials
# are known.
allow_tenant_reuse = true

# This should be the username of a user WITHOUT administrative privileges
username = demo
# The above non-administrative user's password
password = pass
# The above non-administrative user's tenant name
tenant_name = demo

# This should be the username of an alternate user WITHOUT
# administrative privileges
alt_username = alt_demo
# The above non-administrative user's password
alt_password = pass
# The above non-administrative user's tenant name
alt_tenant_name = alt_demo

# Reference data for tests. The ref and ref_alt should be
# distinct images/flavors.
image_ref = {$IMAGE_ID}
image_ref_alt = {$IMAGE_ID_ALT}
flavor_ref = 1
flavor_ref_alt = 2

# Number of seconds to wait while looping to check the status of an
# instance or volume that is building.
build_interval = 10

# Number of seconds to time out on waiting for an instance or volume
# to build or reach an expected status
build_timeout = 600

# Run additional tests that use SSH for instance validation?
# This requires the instances be routable from the host
#  executing the tests
run_ssh = false

# Name of a user used to authenticated to an instance
ssh_user = {$SSH_USER}

# Network id used for SSH (public, private, etc)
network_for_ssh = {$SSH_NETWORK}

# IP version of the address used for SSH
ip_version_for_ssh = {$SSH_IP_VERSION}

# Number of seconds to wait to authenticate to an instance
ssh_timeout = 300

# The type of endpoint for a Compute API service. Unless you have a
# custom Keystone service catalog implementation, you probably want to leave
# this value as "compute"
catalog_type = compute

# Does the Compute API support creation of images?
create_image_enabled = true

# For resize to work with libvirt/kvm, one of the following must be true:
# Single node: allow_resize_to_same_host=True must be set in nova.conf
# Cluster: the 'nova' user must have scp access between cluster nodes
resize_available = true

# Does the compute API support changing the admin password?
change_password_available=true

# Level to log Compute API request/response details.
log_level = ERROR

# Whitebox options for compute. Whitebox options enable the
# whitebox test cases, which look at internal Nova database state,
# SSH into VMs to check instance state, etc.

# Should we run whitebox tests for Compute?
whitebox_enabled = true

# Path of nova source directory
source_dir = /opt/stack/nova

# Path of nova configuration file
config_path = /etc/nova/nova.conf

# Directory containing nova binaries such as nova-manage
bin_dir = /usr/local/bin

# Path to a private key file for SSH access to remote hosts
path_to_private_key = /home/user/.ssh/id_rsa

# Connection string to the database of Compute service
db_uri = mysql:///user:pass@localhost/nova

[image]
# This section contains configuration options used when executing tests
# against the OpenStack Images API

# The type of endpoint for an Image API service. Unless you have a
# custom Keystone service catalog implementation, you probably want to leave
# this value as "image"
catalog_type = image

# The version of the OpenStack Images API to use
api_version = 1

# This is the main host address of the Image API
host = 127.0.0.1

# Port that the Image API is running on
port = 9292

# This should be the username of a user WITHOUT administrative privileges
username = demo
# The above non-administrative user's password
password = pass
# The above non-administrative user's tenant name
tenant_name = demo

[compute-admin]
# This section contains configuration options for an administrative
# user of the Compute API. These options are used in tests that stress
# the admin-only parts of the Compute API

# This should be the username of a user WITH administrative privileges
username = admin
# The above administrative user's password
password = pass
# The above administrative user's tenant name
tenant_name = admin

[network]
# This section contains configuration options used when executing tests
# against the OpenStack Network API.
api_version = v1.1
catalog_type = network

[identity-admin]
# This section contains configuration options for an administrative
# user of the Compute API. These options are used in tests that stress
# the admin-only parts of the Compute API

# This should be the username of a user WITH administrative privileges
username = admin
# The above administrative user's password
password = pass
# The above administrative user's tenant name
tenant_name = admin
