{"id":774,"sha1":"ca9a8de72e514f96e82a65323a215a4a64d5da88","playbook":{"id":4,"items":{"plays":32,"tasks":1505,"results":1497,"hosts":12,"files":487,"records":0},"arguments":{"version":null,"verbosity":0,"private_key_file":null,"remote_user":null,"connection":"openstack.osa.ssh","timeout":null,"ssh_common_args":null,"sftp_extra_args":null,"scp_extra_args":null,"ssh_extra_args":null,"ask_pass":false,"connection_password_file":null,"force_handlers":true,"flush_cache":false,"become":false,"become_method":"sudo","become_user":null,"become_ask_pass":false,"become_password_file":null,"tags":["all"],"skip_tags":[],"check":false,"diff":false,"inventory":["/home/zuul/src/opendev.org/openstack/openstack-ansible/inventory/dynamic_inventory.py","/home/zuul/src/opendev.org/openstack/openstack-ansible/inventory/inventory.ini","/etc/openstack_deploy/inventory.ini"],"listhosts":false,"subset":null,"extra_vars":"Not saved by ARA as configured by 'ignored_arguments'","vault_ids":[],"ask_vault_pass":false,"vault_password_files":[],"forks":4,"module_path":null,"syntax":false,"listtasks":false,"listtags":false,"step":false,"start_at_task":null,"args":["setup-openstack.yml"]},"labels":[{"id":1,"name":"check:False"},{"id":2,"name":"tags:all"}],"started":"2025-12-08T13:57:07.871967Z","ended":"2025-12-08T14:21:54.049657Z","duration":"00:24:46.177690","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.12.11","server_version":"1.7.4","status":"failed","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/playbooks/setup-openstack.yml","controller":"aio1.openstack.local","user":"root"},"content":"---\n# Copyright 2014, Rackspace US, Inc.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n## Verbosity Options\ndebug: false\n\nstestr_executable: \"{{ _stestr_executable | default('stestr') }}\"\n\n# Install openstack tempest\n# set the tempest_install_method to source or distro\n# on choosing source it will install from git or venv\n# on choosing distro it will install based on distribution\ntempest_install_method: \"{{ service_install_method | default('source') }}\"\ntempest_venv_python_executable: \"{{ openstack_venv_python_executable | default(_tempest_venv_python_executable) | default('python3') }}\"\n\n# Set the package install state for distribution and pip packages\n# # Options are 'present' and 'latest'\ntempest_package_state: \"latest\"\n\n# Set the host which will execute the shade modules\n# for the service setup. The host must already have\n# clouds.yaml properly configured.\ntempest_service_setup_host: \"{{ openstack_service_setup_host | default('localhost') }}\"\ntempest_service_setup_host_python_interpreter: >-\n  {{\n    openstack_service_setup_host_python_interpreter | default(\n      (tempest_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable']))\n  }}\n\n# Toggle whether tempest actually executes\ntempest_run: false\n# Toggle whether tempest cleanup executes prior and after regular tempest run\ntempest_cleanup: false\n# if tempest_cleanup_dry_run is set to true, tempest cleanup will log all found\n# leftover resources to a dry_run.json file, none resources will be deleted\n# tempest_cleanup_dry_run: no\n\n# Credential Provider Mechanisms\n# If tempest_test_accounts is not an empty string, then use_dynamic_credentials will be turned off\ntempest_test_accounts: \"\"\ntempest_test_accounts_file_path: \"{{ tempest_workspace }}/etc/tempest_accounts.yaml\"\n# tempest_create_isolated_networks has an effect only when use_dynamic_credentials is enabled\ntempest_create_isolated_networks: true\n# tempest_fixed_network_name does not have an effect when dynamic credentials are used together with tempest_create_isolated_networks\ntempest_fixed_network_name: public\n\n# Tempest Resources\n# Toggle whether default resources are implemented\ntempest_default_role_resources: true\ntempest_public_net_create: true\ntempest_private_net_create: false\ntempest_router_create: false\ntempest_images_create: true\ntempest_flavors_create: true\ntempest_projects_create: \"{{ tempest_public_net_create or tempest_private_net_create or tempest_router_create }}\"\n\n# Define 0 (serial) or more to use a non default concurrency\n# tempest_run_concurrency:\n\n# Define the worker file to be used by tempest\n# This worker file is parsed to stestr to manually schedule tempest tests\n# tempest_test_worker_file_path:\n\n# We comment `tempest_git_repo` so that we do not attempt to build the wheel from this repo/branch.\n# Instead, we want tempest to get built from the stable release defined in global requirements.\n# tempest_git_repo: https://opendev.org/openstack/tempest\ntempest_git_install_branch: master\ntempest_upper_constraints_url: >-\n  {{ requirements_git_url | default('https://releases.openstack.org/constraints/upper/' ~ requirements_git_install_branch | default('master')) }}\ntempest_git_constraints:\n  - \"--constraint {{ tempest_upper_constraints_url }}\"\n\ntempest_pip_install_args: \"{{ pip_install_options | default('') }}\"\n\n# Name of the virtual env to deploy into\ntempest_venv_tag: \"{{ venv_tag | default('untagged') }}\"\ntempest_venv_bin: \"/openstack/venvs/tempest-{{ tempest_venv_tag }}/bin\"\n\n# The location where the tempest logs will be placed\ntempest_log_dir: \"/var/log/tempest\"\n\n## Tempest Plugins\n# Extra plugins can be defined in ``tempest_extra_plugins``.\n# tempest_extra_plugins:\n#   - name: custom-tempest-plugin\n#     repo: https://opendev.org/openstack/custom-tempest-plugin\n#     branch: master\n#     install: true\ntempest_extra_plugins: []\ntempest_plugins: \"{{ (_tempest_plugins + tempest_extra_plugins) | selectattr('install', 'equalto', true) }}\"\n\ntempest_plugin_barbican_git_repo: https://opendev.org/openstack/barbican-tempest-plugin\ntempest_plugin_barbican_git_install_branch: master\n\ntempest_plugin_blazar_git_repo: https://opendev.org/openstack/blazar-tempest-plugin\ntempest_plugin_blazar_git_install_branch: master\n\ntempest_plugin_cinder_git_repo: https://opendev.org/openstack/cinder-tempest-plugin\ntempest_plugin_cinder_git_install_branch: master\n\ntempest_plugin_cloudkitty_git_repo: https://opendev.org/openstack/cloudkitty-tempest-plugin\ntempest_plugin_cloudkitty_git_install_branch: master\n\ntempest_plugin_designate_git_repo: https://opendev.org/openstack/designate-tempest-plugin\ntempest_plugin_designate_git_install_branch: master\n\ntempest_plugin_glance_git_repo: https://opendev.org/openstack/glance-tempest-plugin\ntempest_plugin_glance_git_install_branch: master\n\ntempest_plugin_heat_git_repo: https://opendev.org/openstack/heat-tempest-plugin\ntempest_plugin_heat_git_install_branch: master\n\ntempest_plugin_ironic_git_repo: https://opendev.org/openstack/ironic-tempest-plugin\ntempest_plugin_ironic_git_install_branch: master\n\ntempest_plugin_keystone_git_repo: https://opendev.org/openstack/keystone-tempest-plugin\ntempest_plugin_keystone_git_install_branch: master\n\ntempest_plugin_magnum_git_repo: https://opendev.org/openstack/magnum-tempest-plugin\ntempest_plugin_magnum_git_install_branch: master\n\ntempest_plugin_manila_git_repo: https://opendev.org/openstack/manila-tempest-plugin\ntempest_plugin_manila_git_install_branch: master\n\ntempest_plugin_murano_git_repo: https://opendev.org/openstack/murano-tempest-plugin\ntempest_plugin_murano_git_install_branch: master\n\ntempest_plugin_neutron_git_repo: https://opendev.org/openstack/neutron-tempest-plugin\ntempest_plugin_neutron_git_install_branch: master\n\ntempest_plugin_novajoin_git_repo: https://opendev.org/x/novajoin-tempest-plugin\ntempest_plugin_novajoin_git_install_branch: master\n\ntempest_plugin_octavia_git_repo: https://opendev.org/openstack/octavia-tempest-plugin\ntempest_plugin_octavia_git_install_branch: master\n\ntempest_plugin_telemetry_git_repo: https://opendev.org/openstack/telemetry-tempest-plugin\ntempest_plugin_telemetry_git_install_branch: master\n\ntempest_plugin_trove_git_repo: https://opendev.org/openstack/trove-tempest-plugin\ntempest_plugin_trove_git_install_branch: master\n\ntempest_plugin_zaqar_git_repo: https://opendev.org/openstack/zaqar-tempest-plugin\ntempest_plugin_zaqar_git_install_branch: master\n\ntempest_plugin_zun_git_repo: https://opendev.org/openstack/zun-tempest-plugin\ntempest_plugin_zun_git_install_branch: master\n\n# tempest_workspace where tempest can be runned\ntempest_workspace: \"{{ ansible_facts['env']['HOME'] }}/workspace\"\n\n# The location where the test include/exclude lists will be placed\ntempest_includelist_file_path: \"{{ tempest_workspace }}/etc/tempest_includelist.txt\"\ntempest_excludelist_file_path: \"{{ tempest_workspace }}/etc/tempest_excludelist.txt\"\n\n# Variable prefixes that will be dynamically gathered to create the include/exclude list\ntempest_test_search_includelist_pattern: \"tempest_test_includelist_\"\ntempest_test_search_excludelist_pattern: \"tempest_test_excludelist_\"\n\n# Tests to execute:\n# This sets up a list of tests to execute based on what's deployed in the environment.\n# The list gets added to the includelist which tempest executes.\ntempest_test_includelist: []\n\n# Extra test to be executed\ntempest_test_extra_test: []\n\n# Tests being skipped by os_tempest\n# Example:\n# tempest_test_excludelist:\n#   - test: tempest.scenario.test.minimum_basic\n#     reason: This test is failing\n#     lp: 'https://bugs.launchpad.net/openstack-ansible/+bug/123456'\n#     bz: 'https://bugzilla.redhat.com/show_bug.cgi?id=123456'\n# OR\n# tempest_test_excludelist:\n#   - 'tempest.scenario.test.minimum_basic'\ntempest_test_excludelist: []\n\n# Private network configuration\n# Currently supports 2 types\n# vlan - will need to make sure your seg id and subnet cidr are correct\n# vxlan - default, can change subnet cidr and seg id\n\ntempest_private_net_name: \"private\"\ntempest_private_subnet_name: \"private-subnet\"\ntempest_private_subnet_cidr: \"192.168.74.0/28\"\ntempest_private_net_provider_type: \"vxlan\"\n# tempest_private_net_seg_id:\n# If you choose vlan as private network provider type, you must set a physical\n# name for it\n# tempest_private_net_physical_name: \"private\"\n\n# Public network configuration\n# Currently supports 2 types\n# Flat - default\n# Vlan - make sure you override seg id, cidr, provider and physical\ntempest_public_net_name: \"public\"\ntempest_public_subnet_name: \"public-subnet\"\ntempest_public_subnet_cidr: \"10.1.13.0/24\"\n# Neutron default gateway to first ip of subnet, usually .1\n# tempest_public_subnet_gateway_ip:\ntempest_public_net_provider_type: \"flat\"\ntempest_public_net_physical_name: \"physnet1\"\ntempest_public_net_shared: false\n# tempest_public_net_seg_id:\ntempest_public_router_external: \"True\"\n# Example allocation range:\n# tempest_public_subnet_allocation_pools: \"10.1.13.150-10.1.13.200\"\n\ntempest_compute_image_ssh_user: cirros\ntempest_compute_run_ssh: true\ntempest_network_ping_gateway: false\n\ntempest_dashboard_url: \"https://{{ external_lb_vip_address | default('127.0.0.1') }}/\"\n\n# var for setting tempest_service_available_{sevice_name} vars\n# Example:\n# tempest_services:\n#   - cinder\n#   - aodh\n# It will set tempest_service_available_aodh and\n# tempest_service_available_cinder to true.\ntempest_services: []\n\ntempest_service_available_aodh: \"{{ groups['aodh_all'] is defined and groups['aodh_all'] | length > 0 }}\"\ntempest_service_available_barbican: \"{{ groups['barbican_all'] is defined and groups['barbican_all'] | length > 0 }}\"\ntempest_service_available_blazar: \"{{ groups['blazar_all'] is defined and groups['blazar_all'] | length > 0 }}\"\ntempest_service_available_ceilometer: \"{{ groups['ceilometer_all'] is defined and groups['ceilometer_all'] | length > 0 }}\"\ntempest_service_available_cinder: \"{{ groups['cinder_all'] is defined and groups['cinder_all'] | length > 0 }}\"\ntempest_service_available_cloudkitty: \"{{ groups['cloudkitty_all'] is defined and groups['cloudkitty_all'] | length > 0 }}\"\ntempest_service_available_designate: \"{{ groups['designate_all'] is defined and groups['designate_all'] | length > 0 }}\"\ntempest_service_available_glance: \"{{ groups['glance_all'] is defined and groups['glance_all'] | length > 0 }}\"\ntempest_service_available_gnocchi: \"{{ groups['gnocchi_all'] is defined and groups['gnocchi_all'] | length > 0 }}\"\ntempest_service_available_heat: \"{{ groups['heat_all'] is defined and groups['heat_all'] | length > 0 }}\"\ntempest_service_available_horizon: \"{{ groups['horizon_all'] is defined and groups['horizon_all'] | length > 0 }}\"\ntempest_service_available_ironic: \"{{ groups['ironic_all'] is defined and groups['ironic_all'] | length > 0 }}\"\ntempest_service_available_magnum: \"{{ groups['magnum_all'] is defined and groups['magnum_all'] | length > 0 }}\"\ntempest_service_available_manila: \"{{ groups['manila_all'] is defined and groups['manila_all'] | length > 0 }}\"\ntempest_service_available_mistral: \"{{ groups['mistral_all'] is defined and groups['mistral_all'] | length > 0 }}\"\ntempest_service_available_murano: \"{{ groups['murano_all'] is defined and groups['murano_all'] | length > 0 }}\"\ntempest_service_available_neutron: \"{{ groups['neutron_all'] is defined and groups['neutron_all'] | length > 0 }}\"\ntempest_service_available_neutron_bgpvpn: >-\n  {{ (groups['neutron_all'] is defined) and (groups['neutron_all'] | length > 0) and ('bgpvpn' in neutron_plugin_base | default([])) }}\ntempest_service_available_neutron_vpnaas: >-\n  {{ (groups['neutron_all'] is defined) and (groups['neutron_all'] | length > 0) and ('vpnaas' in neutron_plugin_base | default([])) }}\ntempest_service_available_nova: \"{{ groups['nova_all'] is defined and groups['nova_all'] | length > 0 }}\"\ntempest_service_available_novajoin: false\ntempest_service_available_octavia: \"{{ groups['octavia_all'] is defined and groups['octavia_all'] | length > 0 }}\"\ntempest_service_available_swift: >-\n  {{\n    (groups['swift_all'] is defined and groups['swift_all'] | length > 0) or\n    (groups['ceph-rgw'] is defined and groups['ceph-rgw'] | length > 0) or\n    (ceph_rgws is defined and ceph_rgws | length > 0)\n  }}\ntempest_service_available_trove: \"{{ groups['trove_all'] is defined and groups['trove_all'] | length > 0 }}\"\ntempest_service_available_whitebox: false\ntempest_service_available_whitebox_neutron: false\ntempest_service_available_zaqar: \"{{ groups['zaqar_all'] is defined and groups['zaqar_all'] | length > 0 }}\"\ntempest_service_available_zun: \"{{ groups['zun_all'] is defined and groups['zun_all'] | length > 0 }}\"\n\n# Var for setting ssl verification\ntempest_keystone_interface_insecure: \"{{ (keystone_service_internaluri_insecure | default(false)) | bool }}\"\n\ntempest_pip_packages:\n  - \"{{\n      (tempest_git_repo is defined) | ternary(\n        'git+' ~ (tempest_git_repo | default('https://opendev.org/openstack/tempest.git')) ~ '@' ~ tempest_git_install_branch ~ '#egg=tempest',\n        'tempest')\n    }}\"\n  - cmd2\n  - ddt\n  - junitxml\n  - lxml\n  - nose\n  - python-cinderclient\n  - python-glanceclient\n  - python-heatclient\n  - python-keystoneclient\n  - python-manilaclient\n  - python-memcached\n  - python-neutronclient\n  - python-novaclient\n  - python-openstackclient\n  - python-subunit\n  - python-swiftclient\n  - python-troveclient\n  - testscenarios\n  - os-testr\n\n# The list of images for tempest to download for the current architecture, as defined\n# in this role vars/main.yml file\n# To override this list, use a list of the form\n# tempest_images:\n#   - url: ...         where to download from (required)\n#     checksum: ...    checksum to validate downloaded file, format: <algorithm>:<checksum> (optional)\n#     format: ...      format to use when uploading to glance (required)\n#     name: ...        name to use when uploading to glance (optional)\n#     properties:      a dict of custom properties to attach to the image in glance (optional)\n#       <property>: <value>\ntempest_images: \"{{ tempest_images_map[ansible_facts['architecture']] }}\"\n\n# The location where images are downloaded to\ntempest_image_dir: \"{{ lookup('env', 'HOME') }}/tempest-images\"\n\ntempest_flavors:\n  - name: tempest1\n    id: 201\n    ram: 256\n    disk: 1\n    vcpus: 1\n  - name: tempest2\n    id: 202\n    ram: 512\n    disk: 1\n    vcpus: 1\n\n# The projects for tempest to use\ntempest_projects:\n  - \"tempest\"\n\n## Tunable overrides\ntempest_tempest_conf_search_overrides_pattern: \"tempest_tempest_conf_overrides\"\ntempest_tempest_conf_overrides: {}\n\n## The name of cloud from clouds.yaml\ntempest_cloud_name: \"default\"\n\n## The name of domain from clouds.yaml\ntempest_domain_name: \"Default\"\n\n## The name of interface from clouds.yaml\ntempest_interface_name: \"internal\"\n\n# The default endpoint type to use by tempest\ntempest_endpoint_type: \"internal\"\n\n# python-tempestconf variables\n# The tempest_use_tempestconf by default is set to false, set to true if you\n# want to generate the tempest.conf file with this tool, instead of\n# tempest.conf from the template\ntempest_use_tempestconf: false\ntempest_tempestconf_venv_tag: \"{{ venv_tag | default('untagged') }}\"\ntempest_tempestconf_venv_bin: \"/openstack/venvs/tempestconf-{{ tempest_tempestconf_venv_tag }}/bin\"\n\n# We comment out `tempest_tempestconf_git_repo` so that the repo_build role does not attempt to\n# build the wheel from this repo/branch. Instead, we want python-tempestconf to get built\n# from the stable release defined in global requirements.\n# tempest_tempestconf_git_repo: https://opendev.org/openinfra/python-tempestconf\ntempest_tempestconf_git_install_branch: master\ntempest_tempestconf_git_constraints:\n  - \"--constraint {{ tempest_upper_constraints_url }}\"\ntempest_tempestconf_pip_packages:\n  - \"{{\n        (tempest_tempestconf_git_repo is defined) | ternary(\n          'git+' ~ (tempest_tempestconf_git_repo | default(\n            'https://opendev.org/openinfra/python-tempestconf')\n          ) ~ '@' ~ tempest_tempestconf_git_install_branch ~ '#egg=python_tempestconf',\n        'python_tempestconf')\n    }}\"\ntempest_tempestconf_profile:\n  debug: true\n  create: true\n  os-cloud: \"{{ tempest_cloud_name }}\"\n  out: \"{{ tempest_workspace }}/etc/tempest.conf\"\n  network-id: \"{{ tempest_neutron_public_network_id }}\"\n  overrides: \"{{ tempest_tempestconf_profile_overrides }}\"\ntempest_tempestconf_profile_extras: {}\ntempest_tempestconf_profile_overrides: \"{{ tempest_tempest_conf_overrides }}\"\n\n# Stackviz tarball url\nstackviz_pip_install_args: \"{{ pip_install_options | default('--isolated') }}\"\nstackviz_tarball: \"https://tarballs.opendev.org/openstack/stackviz/dist/stackviz-latest.tar.gz\"\nstackviz_venv_tag: \"{{ venv_tag | default('untagged') }}\"\nstackviz_venv_bin: \"/openstack/venvs/stackviz-{{ stackviz_venv_tag }}/bin\"\ntempest_run_stackviz: true\n","created":"2025-12-08T13:57:25.399527Z","updated":"2025-12-08T13:57:25.399539Z","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible-os_tempest/defaults/main.yml"}