python-tempestconf/doc/source/user/profile.rst

4.4 KiB

Use python-tempestconf with a profile.yaml file

A profile.yaml is helpful mainly in jobs running on different versions of OpenStack, because arguments for python-tempestconf may differ in each OpenStack version. Using the --profile argument those jobs can use a profile.yaml file for each OpenStack version which makes the code of those jobs much clearer and more readable, as for example they contain less if else statements, ...

Note

Apart from --deployer-input config file which specifies content of a tempest.conf, profile.yaml file defines arguments which are passed to python-tempestconf, see CLI documentation.

Warning

If this argument is used, other arguments cannot be defined, it means, user uses either CLI arguments or profile.yaml file.

Generating a sample profile.yaml file

$ discover-tempest-config --generate-profile ./etc/profile.yaml
$ cat ./etc/profile.yaml
collect_timing: false
create: false
create_accounts_file: null
debug: false
deployer_input: null
endpoint_type: null
generate_profile: ./etc/profile.yaml
http_timeout: null
image: http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
image_disk_format: qcow2
insecure: false
network_id: null
no_default_deployer: false
non_admin: false
os_api_version: null
os_auth_type: password
os_auth_url: null
os_cacert: null
os_cert: null
os_cloud: null
os_default_domain_id: null
os_default_domain_name: null
os_domain_id: null
os_domain_name: null
os_endpoint_override: null
os_endpoint_type: null
os_interface: public
os_key: null
os_password: null
os_project_domain_id: null
os_project_domain_name: null
os_project_id: null
os_project_name: null
os_region_name: null
os_service_name: null
os_service_type: null
os_system_scope: null
os_trust_id: null
os_user_domain_id: null
os_user_domain_name: null
os_user_id: null
os_username: null
out: etc/tempest.conf
test_accounts: null
timeout: 600
verbose: false
append: {}
  #identity.username: username
  #network-feature-enabled.api_extensions:
  #  - dvr
  #  - extension
overrides: {}
  #identity.username: username
  #identity.password:
  #  - my_password
  #network-feature-enabled.api_extensions:
  #  - dvr
  #  - extension
remove: {}
  #identity.username: username
  #network-feature-enabled.api_extensions:
  #  - dvr
  #  - extension

Note

The generated sample of a profile.yaml file contains all python-tempestconf arguments set to their default values. That means, that you can remove arguments you didn't modify to keep the file simple and more readable.

python-tempestconf accepts both of the following inputs, so you can use what suits you better, either strings or lists:

create: True
out: ./etc/tempest.conf
deployer-input: ./deploy.txt
no-default-deployer: False
overrides:
  identity.username: my_override
  identity.password: my_password
  network-feature-enabled.api_extensions: all
  volume-feature-enabled.api_extensions: dvr,mine
remove:
  auth.identity: username
  network-feature-enabled.api_extensions: ''
  volume-feature-enabled.api_extensions: dvr,mine
create: True
out: ./etc/tempest.conf
deployer-input: ./deploy.txt
no-default-deployer: False
overrides:
  identity.username: my_override
  identity.password:
    - my_password
  network-feature-enabled.api_extensions:
    - all
  volume-feature-enabled.api_extensions:
    - dvr
    - mine
remove:
  auth.identity: username
  network-feature-enabled.api_extensions:
    - ''
  volume-feature-enabled.api_extensions:
    - dvr
    - mine

Using profile.yaml file

After you've created your customized profile.yaml file, let's say in ./etc/profile.yaml, use it as follows:

$ discover-tempest-config --profile ./etc/profile.yaml