| {%- from "keystone/map.jinja" import client with context %} |
| {%- set resources = client.get('resources', {}).get('v3', {}) %} |
| |
| {%- if resources.get('enabled', False) %} |
| |
| {% for role_name,role in resources.get('roles', {}).iteritems() %} |
| |
| {%- if role.enabled %} |
| keystone_role_{{ role_name }}: |
| keystonev3.role_present: |
| - cloud_name: {{ role.get('cloud_name', resources.cloud_name) }} |
| {#- The role name is not uniq among domains, use name here to have ability create #} |
| {#- roles with the same name in different domains #} |
| - name: {{ role.name }} |
| {%- if role.domain_id is defined %} |
| - domain_id: {{ role.domain_id }} |
| {%- endif %} |
| {%- else %} |
| keystone_role_{{ role_name }}: |
| keystonev3.role_absent: |
| - cloud_name: {{ role.get('cloud_name', resources.cloud_name) }} |
| - name: {{ role_name }} |
| {%- endif %} |
| |
| {%- endfor %} |
| |
| {% for service_name,service in resources.get('services', {}).iteritems() %} |
| keystone_service_{{ service_name }}_{{ service.type }}: |
| keystonev3.service_present: |
| - cloud_name: {{ service.get('cloud_name', resources.cloud_name) }} |
| - name: {{ service_name }} |
| - type: {{ service.type }} |
| {%- if service.description is defined %} |
| - description: {{ service.description }} |
| {%- endif %} |
| {%- if service.enabled is defined %} |
| - enabled: {{ service.enabled }} |
| {%- endif %} |
| |
| {% for endpoint_name, endpoint in service.get('endpoints', {}).iteritems() %} |
| |
| keystone_endpoint_{{ endpoint_name }}_{{ endpoint.interface }}_{{ endpoint.region }}: |
| keystonev3.endpoint_present: |
| - name: {{ endpoint_name }} |
| - cloud_name: {{ endpoint.get('cloud_name', resources.cloud_name) }} |
| - url: {{ endpoint.url }} |
| - interface: {{ endpoint.interface }} |
| - service_id: {{ service_name }} |
| - region_id: {{ endpoint.region }} |
| - require: |
| - keystone_service_{{ service_name }}_{{ service.type }} |
| |
| {%- endfor %} |
| {% endfor %} |
| |
| {% for domain_name, domain in resources.get('domains', {}).iteritems() %} |
| |
| {#- TODO: Add domain support #} |
| {%- for project_name, project in domain.get('projects', {}).iteritems() %} |
| keystone_project_{{ project_name }}: |
| keystonev3.project_present: |
| - cloud_name: {{ project.get('cloud_name', resources.cloud_name) }} |
| - name: {{ project_name }} |
| - domain_id: {{ project.get('domain_id', 'default')}} |
| {%- if project.is_domain is defined %} |
| - is_domain: {{ project.is_domain }} |
| {%- endif %} |
| {%- if project.description is defined %} |
| - description: {{ project.description }} |
| {%- endif %} |
| {%- if project.enabled is defined %} |
| - enabled: {{ project.enabled }} |
| {%- endif %} |
| {%- if project.parent_id is defined %} |
| - parent_id: {{ project.parent_id }} |
| {%- endif %} |
| {%- if project.tags is defined %} |
| - tags: {{ project.tags }} |
| {%- endif %} |
| |
| {%- endfor %} |
| |
| {%- endfor %} |
| |
| {%- for user_name, user in resources.get('users', {}).iteritems() %} |
| |
| keystone_user_{{ user_name }}: |
| keystonev3.user_present: |
| - cloud_name: {{ user.get('cloud_name', resources.cloud_name) }} |
| - name: {{ user_name }} |
| {%- if user.default_project_id is defined %} |
| - default_project_id: {{ user.default_project_id }} |
| {%- endif %} |
| {%- if user.domain_id is defined %} |
| - domain_id: {{ user.domain_id }} |
| {%- endif %} |
| {%- if user.enabled is defined %} |
| - enabled: {{ user.enabled }} |
| {%- endif %} |
| {%- if user.password is defined %} |
| - password: {{ user.password }} |
| {%- endif %} |
| {%- if user.email is defined %} |
| - email: {{ user.email }} |
| {%- endif %} |
| {%- if user.password_reset is defined %} |
| - password_reset: {{ user.password_reset }} |
| {%- endif %} |
| |
| {%- for role_name,role in user.get('roles', {}).iteritems() %} |
| keystone_user_{{ user_name }}_role_{{ role.name }}_assigned: |
| keystonev3.user_role_assigned: |
| - name: {{ user_name }} |
| - role_id: {{ role.name }} |
| - cloud_name: {{ user.get('cloud_name', resources.cloud_name) }} |
| {%- if role.domain_id is defined %} |
| - domain_id: {{ role.domain_id }} |
| {%- endif %} |
| {%- if role.project_id is defined %} |
| - project_id: {{ role.project_id }} |
| {%- endif %} |
| {%- if role.role_domain_id is defined %} |
| - role_domain_id: {{ role.role_domain_id }} |
| {%- endif %} |
| {%- endfor %} |
| |
| {%- endfor %} |
| |
| {%- endif %} |