.kitchen
tests/build/
*.swp
+*.swo
*.pyc
.ropeproject
{%- set default_params = {
- 'cacert_file': salt['grains.filter_by']({
- 'Debian': '/etc/ssl/certs/ca-certificates.crt',
- 'RedHat': '/etc/pki/tls/certs/ca-bundle.crt'
- })}
+ 'cacert_file': salt['grains.filter_by']({
+ 'Debian': '/etc/ssl/certs/ca-certificates.crt',
+ 'RedHat': '/etc/pki/tls/certs/ca-bundle.crt'
+ }),
+ 'enabled': false,
+ }
%}
{% set controller = salt['grains.filter_by']({
'services_failed_critical_threshold_percent': 0.6,
'endpoint_failed_major_threshold': 0.5,
},
-}, grain='os_family', merge=salt['pillar.get']('cinder:monitoring')) %}
+}, grain='os_family', merge=pillar.get('cinder', {}).get('monitoring')) %}
+
+{% set upgrade = pillar.get('cinder', {}).get('upgrade', {}) %}
+
+{# Only for transition untill we split backup service to separate sls #}
+{%- if controller.enabled %}
+{% set backup = controller.get('backup', {}) %}
+{%- elif volume.enabled %}
+{% set backup = volume.get('backup', {}) %}
+{%- endif %}
-orchestrate:
- controller:
- priority: 540
- batch: 1
- require:
- - salt: keystone.server
- volume:
- priority: 550
- require:
- - salt: cinder.controller
+orchestration:
+ upgrade:
+ applications:
+ cinder:
+ priority: 1200
dependency:
{% from "cinder/map.jinja" import controller, client with context %}
{%- if client.get('enabled', False) or controller.get('enabled', False) %}
--- /dev/null
+{%- from "cinder/map.jinja" import controller,volume,backup,client with context %}
+
+cinder_task_pkg_latest:
+ test.show_notification:
+ - text: "Running cinder.upgrade.pkg_latest"
+
+policy-rc.d_present:
+ file.managed:
+ - name: /usr/sbin/policy-rc.d
+ - mode: 755
+ - contents: |
+ #!/bin/sh
+ exit 101
+
+{%- set pkgs = [] %}
+{%- if controller.enabled %}
+ {%- do pkgs.extend(controller.pkgs) %}
+{%- endif %}
+{%- if volume.enabled %}
+ {%- do pkgs.extend(volume.pkgs) %}
+{%- endif %}
+{%- if backup.engine != None %}
+ {%- do pkgs.extend(backup.pkgs) %}
+{%- endif %}
+{%- if client.enabled %}
+ {%- do pkgs.extend(client.pkgs) %}
+{%- endif %}
+
+cinder_pkg_latest:
+ pkg.latest:
+ - names: {{ pkgs|unique }}
+ - require:
+ - file: policy-rc.d_present
+ - require_in:
+ - file: policy-rc.d_absent
+
+policy-rc.d_absent:
+ file.absent:
+ - name: /usr/sbin/policy-rc.d
--- /dev/null
+cinder_post:
+ test.show_notification:
+ - text: "Running cinder.upgrade.post"
--- /dev/null
+include:
+ - cinder.upgrade.verify.api
+
+
+cinder_pre:
+ test.show_notification:
+ - text: "Running cinder.upgrade.pre"
--- /dev/null
+{%- from "cinder/map.jinja" import controller,volume with context %}
+
+{%- if volume.enabled %}
+ {%- set _data = volume %}
+ {%- set type = 'volume' %}
+{%- elif controller.enabled %}
+ {%- set _data = controller %}
+ {%- set type = 'controller' %}
+{%- endif %}
+
+/etc/cinder/cinder.conf:
+ file.managed:
+ - source: salt://cinder/files/{{ _data.version }}/cinder.conf.{{ type }}.{{ grains.os_family }}
+ - template: jinja
--- /dev/null
+{%- from "cinder/map.jinja" import controller,volume,backup,upgrade with context %}
+
+cinder_task_service_running:
+ test.show_notification:
+ - text: "Running cinder.upgrade.service_running"
+
+{%- set cservices = [] %}
+{%- if controller.enabled %}
+ {%- do cservices.extend(controller.services) %}
+ {#- After newton release cinder running under apache #}
+ {%- if upgrade.old_release in ['mitaka', 'newton'] %}
+ {%- do cservices.append('cinder-api') %}
+ {%- else %}
+ {%- do cservices.append('apache2') %}
+ {%- endif %}
+{%- endif %}
+{%- if volume.enabled %}
+ {%- do cservices.extend(volume.services) %}
+{%- endif %}
+{%- if backup.engine != None %}
+ {%- do cservices.extend(backup.services) %}
+{%- endif %}
+
+{%- for cservice in cservices|unique %}
+cinder_service_running_{{ cservice }}:
+ service.running:
+ - name: {{ cservice }}
+ - enable: True
+{%- endfor %}
--- /dev/null
+{%- from "cinder/map.jinja" import controller,volume,backup,upgrade with context %}
+
+cinder_task_service_stopped:
+ test.show_notification:
+ - text: "Running cinder.upgrade.service_stopped"
+
+{%- set cservices = [] %}
+{%- if controller.enabled %}
+ {%- do cservices.extend(controller.services) %}
+ {#- After newton release cinder running under apache #}
+ {%- if upgrade.old_release in ['mitaka', 'newton'] %}
+ {%- do cservices.append('cinder-api') %}
+ {%- else %}
+ {%- do cservices.append('apache2') %}
+ {%- endif %}
+{%- endif %}
+{%- if volume.enabled %}
+ {%- do cservices.extend(volume.services) %}
+{%- endif %}
+{%- if backup.engine != None %}
+ {%- do cservices.extend(backup.services) %}
+{%- endif %}
+
+{%- for cservice in cservices|unique %}
+cinder_service_stopped_{{ cservice }}:
+ service.dead:
+ - name: {{ cservice }}
+ - enable: False
+{%- endfor %}
--- /dev/null
+cinder_upgrade:
+ test.show_notification:
+ - text: "Running cinder.upgrade.upgrade"
+
+include:
+ - cinder.upgrade.service_stopped
+ - cinder.upgrade.pkgs_latest
+ - cinder.upgrade.render_config
+ - cinder.db.offline_sync
+ - cinder.upgrade.service_running
--- /dev/null
+{%- from "cinder/map.jinja" import controller with context %}
+{%- from "keystone/map.jinja" import client as kclient with context %}
+
+
+cinder_upgrade_verify_api:
+ test.show_notification:
+ - text: "Running cinder.upgrade.verify.api"
+
+{%- if kclient.enabled and kclient.get('os_client_config', {}).get('enabled', False) %}
+ {%- if controller.enabled %}
+ {%- if controller.get('version') not in ('mitaka', 'newton') -%}
+ {%- set volume_type_name = 'TestVolumeType' %}
+
+cinderv3_volume_list:
+ module.run:
+ - name: cinderv3.volume_list
+ - kwargs:
+ cloud_name: admin_identity
+
+cinderv3_volume_type_present:
+ cinderv3.volume_type_present:
+ - name: {{ volume_type_name }}
+ - cloud_name: admin_identity
+
+cinderv3_volume_type_key_present:
+ cinderv3.volume_type_key_present:
+ - name: {{ volume_type_name }}
+ - key: key1
+ - value: val1
+ - cloud_name: admin_identity
+
+cinderv3_volume_type_absent:
+ cinderv3.volume_type_absent:
+ - name: {{ volume_type_name }}
+ - cloud_name: admin_identity
+
+ {%- endif %}
+ {%- endif %}
+{%- endif %}