{"id":755,"sha1":"53bb19c51db4975f7dc32c256956a1fd2d8bd10f","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- name: Dashboard related tasks\n  when: ceph_dashboard_call_item is defined\n  block:\n    - name: Set current radosgw_address_block, radosgw_address, radosgw_interface  from node \"{{ ceph_dashboard_call_item }}\"\n      ansible.builtin.set_fact:\n        radosgw_address_block: \"{{ hostvars[ceph_dashboard_call_item]['radosgw_address_block'] | default(radosgw_address_block) }}\"\n        radosgw_address: \"{{ hostvars[ceph_dashboard_call_item]['radosgw_address'] | default(radosgw_address) }}\"\n        radosgw_interface: \"{{ hostvars[ceph_dashboard_call_item]['radosgw_interface'] | default(radosgw_interface) }}\"\n\n- name: Set_fact _radosgw_address to radosgw_address_block ipv4\n  ansible.builtin.set_fact:\n    _radosgw_address: \"{{ hostvars[inventory_hostname]['ansible_facts']['all_ipv4_addresses'] | ips_in_ranges(hostvars[inventory_hostname]['radosgw_address_block'].split(',')) | first }}\"\n  when:\n    - radosgw_address_block is defined\n    - radosgw_address_block != 'subnet'\n    - ip_version == 'ipv4'\n\n- name: Set_fact _radosgw_address to radosgw_address_block ipv6\n  ansible.builtin.set_fact:\n    _radosgw_address: \"{{ hostvars[inventory_hostname]['ansible_facts']['all_ipv6_addresses'] | ips_in_ranges(hostvars[inventory_hostname]['radosgw_address_block'].split(',')) | last | ansible.utils.ipwrap }}\"\n  when:\n    - radosgw_address_block is defined\n    - radosgw_address_block != 'subnet'\n    - ip_version == 'ipv6'\n\n- name: Set_fact _radosgw_address to radosgw_address\n  ansible.builtin.set_fact:\n    _radosgw_address: \"{{ radosgw_address | ansible.utils.ipwrap }}\"\n  when:\n    - radosgw_address is defined\n    - radosgw_address != 'x.x.x.x'\n\n- name: Tasks for radosgw interface\n  when:\n    - radosgw_address_block == 'subnet'\n    - radosgw_address == 'x.x.x.x'\n    - radosgw_interface != 'interface'\n  block:\n    - name: Set_fact _interface\n      ansible.builtin.set_fact:\n        _interface: \"{{ (hostvars[item]['radosgw_interface'] | replace('-', '_')) }}\"\n      loop: \"{{ groups.get(rgw_group_name, []) }}\"\n      delegate_to: \"{{ item }}\"\n      delegate_facts: true\n      run_once: true\n\n    - name: Set_fact _radosgw_address to radosgw_interface - ipv4\n      ansible.builtin.set_fact:\n        _radosgw_address: \"{{ hostvars[item]['ansible_facts'][hostvars[item]['_interface']][ip_version]['address'] }}\"\n      loop: \"{{ groups.get(rgw_group_name, []) }}\"\n      delegate_to: \"{{ item }}\"\n      delegate_facts: true\n      run_once: true\n      when: ip_version == 'ipv4'\n\n    - name: Set_fact _radosgw_address to radosgw_interface - ipv6\n      ansible.builtin.set_fact:\n        _radosgw_address: \"{{ hostvars[item]['ansible_facts'][hostvars[item]['_interface']][ip_version][0]['address'] | ansible.utils.ipwrap }}\"\n      loop: \"{{ groups.get(rgw_group_name, []) }}\"\n      delegate_to: \"{{ item }}\"\n      delegate_facts: true\n      run_once: true\n      when: ip_version == 'ipv6'\n\n- name: Rgw_instances\n  when:\n    - ceph_dashboard_call_item is defined or\n      inventory_hostname in groups.get(rgw_group_name, [])\n  block:\n    - name: Reset rgw_instances (workaround)\n      ansible.builtin.set_fact:\n        rgw_instances: []\n\n    - name: Set_fact rgw_instances\n      ansible.builtin.set_fact:\n        rgw_instances: \"{{ rgw_instances | default([]) | union([{'instance_name': 'rgw' + item | string, 'radosgw_address': hostvars[ceph_dashboard_call_item | default(inventory_hostname)]['_radosgw_address'], 'radosgw_frontend_port': radosgw_frontend_port | int + item | int}]) }}\"\n      with_sequence: start=0 end={{ radosgw_num_instances | int - 1 }}\n      delegate_to: \"{{ ceph_dashboard_call_item if ceph_dashboard_call_item is defined else inventory_hostname }}\"\n      delegate_facts: true\n","created":"2025-12-08T13:57:24.504834Z","updated":"2025-12-08T13:57:24.504847Z","path":"/etc/ansible/roles/ceph-ansible/roles/ceph-facts/tasks/set_radosgw_address.yml"}