blob: 759c108c4e876cedac40a955f43d226141540301 [file] [log] [blame]
{%- from "cinder/map.jinja" import controller with context %}
{%- if controller.get('enabled', False) %}
include:
- cinder.user
cinder_controller_packages:
pkg.installed:
- names: {{ controller.pkgs }}
/etc/cinder/cinder.conf:
file.managed:
- source: salt://cinder/files/{{ controller.version }}/cinder.conf.controller.{{ grains.os_family }}
- template: jinja
- require:
- pkg: cinder_controller_packages
/etc/cinder/api-paste.ini:
file.managed:
- source: salt://cinder/files/{{ controller.version }}/api-paste.ini.controller.{{ grains.os_family }}
- template: jinja
- require:
- pkg: cinder_controller_packages
{%- for name, rule in controller.get('policy', {}).iteritems() %}
{%- if rule != None %}
rule_{{ name }}_present:
keystone_policy.rule_present:
- path: /etc/cinder/policy.json
- name: {{ name }}
- rule: {{ rule }}
- require:
- pkg: cinder_controller_packages
{%- else %}
rule_{{ name }}_absent:
keystone_policy.rule_absent:
- path: /etc/cinder/policy.json
- name: {{ name }}
- require:
- pkg: cinder_controller_packages
{%- endif %}
{%- endfor %}
{%- if controller.version == 'ocata' %}
/etc/apache2/conf-available/cinder-wsgi.conf:
file.managed:
- source: salt://cinder/files/{{ controller.version }}/cinder-wsgi.conf
- template: jinja
- require:
- pkg: cinder_controller_packages
{%- if not grains.get('noservices', False) %}
cinder_api_service:
service.running:
- name: apache2
- enable: true
- watch:
- file: /etc/cinder/cinder.conf
- file: /etc/cinder/api-paste.ini
- file: /etc/apache2/conf-available/cinder-wsgi.conf
{%- endif %}
{%- else %}
{%- if not grains.get('noservices', False) %}
cinder_api_service:
service.running:
- name: cinder-api
- enable: true
- watch:
- file: /etc/cinder/cinder.conf
- file: /etc/cinder/api-paste.ini
{%- endif %}
{%- endif %}
{%- if grains.get('virtual_subtype', None) == "Docker" %}
cinder_entrypoint:
file.managed:
- name: /entrypoint.sh
- template: jinja
- source: salt://cinder/files/entrypoint.sh
- mode: 755
{%- endif %}
{%- if not grains.get('noservices', False) %}
cinder_controller_services:
service.running:
- names: {{ controller.services }}
- enable: true
- watch:
- file: /etc/cinder/cinder.conf
- file: /etc/cinder/api-paste.ini
cinder_syncdb:
cmd.run:
- name: cinder-manage db sync
- require:
- service: cinder_controller_services
{# new way #}
{%- for backend_name, backend in controller.get('backend', {}).iteritems() %}
{%- if backend.engine is defined and backend.engine == 'nfs' %}
/etc/cinder/nfs_shares_{{ backend_name }}:
file.managed:
- source: salt://cinder/files/{{ controller.version }}/nfs_shares
- defaults:
backend: {{ backend|yaml }}
- template: jinja
- require:
- pkg: cinder_controller_packages
{%- endif %}
cinder_type_create_{{ backend_name }}:
cmd.run:
- name: "source /root/keystonerc; cinder type-create {{ backend.type_name }}"
- unless: "source /root/keystonerc; cinder type-list | grep {{ backend.type_name }}"
- shell: /bin/bash
- require:
- service: cinder_controller_services
cinder_type_update_{{ backend_name }}:
cmd.run:
- name: "source /root/keystonerc; cinder type-key {{ backend.type_name }} set volume_backend_name={{ backend_name }}"
- unless: "source /root/keystonerc; cinder extra-specs-list | grep \"{u'volume_backend_name': u'{{ backend_name }}'}\""
- shell: /bin/bash
- require:
- cmd: cinder_type_create_{{ backend_name }}
{%- endfor %}
{%- endif %}
{# old way #}
{% for type in controller.get('types', []) %}
cinder_type_create_{{ type.name }}:
cmd.run:
- name: "source /root/keystonerc; cinder type-create {{ type.name }}"
- unless: "source /root/keystonerc; cinder type-list | grep {{ type.name }}"
- shell: /bin/bash
- require:
- service: cinder_controller_services
cinder_type_update_{{ type.name }}:
cmd.run:
- name: "source /root/keystonerc; cinder type-key {{ type.name }} set volume_backend_name={{ type.get('backend', type.name) }}"
- unless: "source /root/keystonerc; cinder extra-specs-list | grep \"{u'volume_backend_name': u'{{ type.get('backend', type.name) }}'}\""
- shell: /bin/bash
- require:
- cmd: cinder_type_create_{{ type.name }}
{% endfor %}
{%- if controller.backup.engine != None %}
cinder_backup_packages:
pkg.installed:
- names: {{ controller.backup.pkgs }}
cinder_backup_services:
service.running:
- names: {{ controller.backup.services }}
- enable: true
- watch:
- file: /etc/cinder/cinder.conf
- file: /etc/cinder/api-paste.ini
{%- endif %}
{%- endif %}