{"id":392,"sha1":"ecbd427bbf4f1a664e0ec3901d9b59f12ebd96c3","playbook":{"id":4,"items":{"plays":104,"tasks":1377,"results":1365,"hosts":2,"files":504,"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":8,"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:39:52.478534Z","ended":"2025-12-08T14:14:54.510371Z","duration":"00:35:02.031837","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.12.3","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 2018, 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# Set the available build targets for all nodes within an environment.\n# build targets are grouped based on operating system and CPU\n# architecture.\n#\n# This is the data structure used to determine the build host.\n# venv_build_targets:\n#   {\n#     ansible_facts['distribution'] + '_' +\n#       ansible_facts['distribution_version'] + '_' +\n#            ansible_facts['architecture']: inventory_hostname\n#     }\n#   }\n#\n# Auto generation process:\n# * The current inventory hostname is inserted as the first build target\n#   and will be used if no other suitable targets are found.\n# * It then iterates over the group defined by {{ venv_build_group }} and if any\n#   targets are found it will catagorize them by distro and cpu architecture\n#   and add them to the list of targets.\n# * If no build target is found for matching the distro and cpu\n#   criteria of the active inventory item, the generator will fall\n#   back to using the active inventory host as the build target.\n#\n# NOTE: (cloudnull): While there may be multiple inventory items\n#                    that match a single distro and CPU architecture\n#                    type, only one build target will ever be used.\n#                    To make more than one build target effective,\n#                    deployers should be using a shared file system\n#                    for the repo servers.\nvenv_build_targets: |-\n  {% set targets = {} %}\n  {% for item in ((groups[venv_build_group] | default([])) | reverse) %}\n  {%   set distro = (hostvars[item]['ansible_facts']['distribution'] | default('none') | lower) | replace(' ', '_') %}\n  {%   if distro == 'ubuntu' %}\n  {%     set distro_ver = (hostvars[item]['ansible_facts']['distribution_version'] | default('none.none')).split('.')[:2] | join('.') %}\n  {%   else %}\n  {%     set distro_ver = hostvars[item]['ansible_facts']['distribution_major_version'] | default('none') %}\n  {%   endif %}\n  {%   set arch = hostvars[item]['ansible_facts']['architecture'] | default('none') %}\n  {%   set distro_arch = [distro, distro_ver, arch] | join('-') %}\n  {%   if distro_arch not in targets %}\n  {%     set _ = targets.update({distro_arch: item | string}) %}\n  {%   endif %}\n  {% endfor %}\n  {{ targets }}\n\n_venv_wheels_play_hosts: |-\n  {% set wheel_groups = {} %}\n  {% for host in ansible_play_hosts %}\n  {%   set arch = hostvars[host]['ansible_facts']['architecture'] %}\n  {%   set distro = (hostvars[host]['ansible_facts']['distribution'] | lower) | replace(' ', '_') %}\n  {%   if distro == 'ubuntu' %}\n  {%     set distro_ver = hostvars[host]['ansible_facts']['distribution_version'].split('.')[:2] | join('.') %}\n  {%   else %}\n  {%     set distro_ver = hostvars[host]['ansible_facts']['distribution_major_version'] %}\n  {%   endif %}\n  {%   set distro_arch = [distro, distro_ver, arch] | join('-') %}\n  {%   if distro_arch not in wheel_groups %}\n  {%     set _ = wheel_groups.update({distro_arch: [host]}) %}\n  {%   else %}\n  {%     set _ = wheel_groups[distro_arch].append(host) %}\n  {%   endif %}\n  {% endfor %}\n  {{ wheel_groups }}\n\n_venv_wheels_first_play_hosts: |-\n  {% set first_hosts = [] %}\n  {% for distro_arch_hosts in _venv_wheels_play_hosts.values() %}\n  {%   set _ = first_hosts.append(distro_arch_hosts | first) %}\n  {% endfor %}\n  {{ first_hosts }}\n\n_venv_pip_packages: \"{{ (venv_default_pip_packages | union(venv_pip_packages)) | sort | select | list }}\"\n\n_venv_build_dist: >-\n  {{ (ansible_facts['distribution'] | lower == 'ubuntu') | ternary(\n      ansible_facts['distribution_version'].split('.')[:2] | join('.'),\n      ansible_facts['distribution_major_version']\n  ) }}\n\n_venv_build_dist_arch: >-\n  {{\n    ((ansible_facts['distribution'] | lower) | replace(' ', '_')) ~ '-' ~\n    _venv_build_dist ~ '-' ~\n    (ansible_facts['architecture'] | lower)\n  }}\n\n_venv_build_requirements_prefix: \"{{ venv_build_host_requirements_path }}/{{ venv_install_destination_path | basename }}\"\n","created":"2025-12-08T13:39:53.972381Z","updated":"2025-12-08T13:39:53.972412Z","path":"/home/zuul/src/opendev.org/openstack/ansible-role-python_venv_build/vars/main.yml"}