{"id":902,"sha1":"e6dbc19da9c347edaaab4e7b04999910aa2878de","playbook":{"id":4,"items":{"plays":107,"tasks":2438,"results":2413,"hosts":13,"files":511,"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-14T10:21:40.790759Z","ended":"2025-12-14T11:05:36.775743Z","duration":"00:43:55.984984","name":null,"ansible_version":"2.18.6","client_version":"1.7.4","python_version":"3.13.5","server_version":"1.7.4","status":"completed","path":"/home/zuul/src/opendev.org/openstack/openstack-ansible/playbooks/setup-openstack.yml","controller":"aio1.openstack.local","user":"root"},"content":"---\n# Copyright 2023, Cleura AB.\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- name: Creating domains\n  ansible.builtin.include_role:\n    name: openstack.osa.service_setup\n  vars:\n    _service_cloud_name: \"{{ openstack_resources_cloud_name }}\"\n    _service_setup_host: \"{{ openstack_resources_setup_host }}\"\n    _service_setup_host_python_interpreter: \"{{ openstack_resources_python_interpreter }}\"\n    _domain_name: \"{{ item.name }}\"\n    _domain_name_description: \"{{ item.description | default('') }}\"\n  loop: \"{{ openstack_resources_identity['domains'] | default([]) }}\"\n\n- name: Creating projects\n  ansible.builtin.include_role:\n    name: openstack.osa.service_setup\n  vars:\n    _service_cloud_name: \"{{ openstack_resources_cloud_name }}\"\n    _service_setup_host: \"{{ openstack_resources_setup_host }}\"\n    _service_setup_host_python_interpreter: \"{{ openstack_resources_python_interpreter }}\"\n    _project_name: \"{{ item.name }}\"\n    _project_description: \"{{ item.description | default('') }}\"\n    _project_domain: \"{{ item.domain | default('default') }}\"\n  loop: \"{{ openstack_resources_identity['projects'] | default([]) }}\"\n\n- name: Creating roles, users and endpoints\n  ansible.builtin.include_role:\n    name: openstack.osa.service_setup\n  vars:\n    _service_cloud_name: \"{{ openstack_resources_cloud_name }}\"\n    _service_setup_host: \"{{ openstack_resources_setup_host }}\"\n    _service_setup_host_python_interpreter: \"{{ openstack_resources_python_interpreter }}\"\n    _service_users: \"{{ openstack_resources_identity['users'] | default([]) }}\"\n    _service_catalog: \"{{ openstack_resources_identity['catalog'] | default([]) }}\"\n    _service_endpoints: \"{{ openstack_resources_identity['endpoints'] | default([]) }}\"\n\n- name: Setting up quotas\n  delegate_to: \"{{ openstack_resources_setup_host }}\"\n  vars:\n    ansible_python_interpreter: \"{{ openstack_resources_python_interpreter }}\"\n  openstack.cloud.quota:\n    cloud: \"{{ openstack_resources_cloud_name }}\"\n    interface: \"{{ openstack_resources_interface }}\"\n    name: \"{{ quota['name'] }}\"\n    floating_ips: \"{{ quota['floating_ips'] | default(omit) }}\"\n    networks: \"{{ quota['networks'] | default(omit) }}\"\n    ports: \"{{ quota['ports'] | default(omit) }}\"\n    rbac_policies: \"{{ quota['rbac_policies'] | default(omit) }}\"\n    routers: \"{{ quota['routers'] | default(omit) }}\"\n    subnets: \"{{ quota['subnets'] | default(omit) }}\"\n    subnet_pools: \"{{ quota['subnet_pools'] | default(omit) }}\"\n    security_group_rules: \"{{ quota['security_group_rules'] | default(omit) }}\"\n    security_groups: \"{{ quota['security_groups'] | default(omit) }}\"\n    backup_gigabytes: \"{{ quota['backup_gigabytes'] | default(omit) }}\"\n    backups: \"{{ quota['backups'] | default(omit) }}\"\n    gigabytes: \"{{ quota['gigabytes'] | default(omit) }}\"\n    groups: \"{{ quota['groups'] | default(omit) }}\"\n    pools: \"{{ quota['pools'] | default(omit) }}\"\n    per_volume_gigabytes: \"{{ quota['per_volume_gigabytes'] | default(omit) }}\"\n    snapshots: \"{{ quota['snapshots'] | default(omit) }}\"\n    volumes: \"{{ quota['volumes'] | default(omit) }}\"\n    cores: \"{{ quota['cores'] | default(omit) }}\"\n    instances: \"{{ quota['instances'] | default(omit) }}\"\n    key_pairs: \"{{ quota['key_pairs'] | default(omit) }}\"\n    metadata_items: \"{{ quota['metadata_items'] | default(omit) }}\"\n    ram: \"{{ quota['ram'] | default(omit) }}\"\n    server_groups: \"{{ quota['server_groups'] | default(omit) }}\"\n    server_group_members: \"{{ quota['server_group_members'] | default(omit) }}\"\n  loop: \"{{ openstack_resources_identity['quotas'] | default([]) }}\"\n  loop_control:\n    loop_var: quota\n","created":"2025-12-14T11:00:20.614490Z","updated":"2025-12-14T11:00:20.614505Z","path":"/etc/ansible/ansible_collections/openstack/osa/roles/openstack_resources/tasks/identity.yml"}