Adjust Manila formula granularity
Change-Id: I7169370e5af5a5ca3bfeb7bfb7db98f6a3cb8ca3
Related-PROD: PROD-21940
diff --git a/manila/_common.sls b/manila/_common.sls
index 35c9d1d..e17f472 100644
--- a/manila/_common.sls
+++ b/manila/_common.sls
@@ -22,3 +22,5 @@
- pkg: manila_common.pkgs
- sls: manila._ssl.mysql
- sls: manila._ssl.rabbitmq
+ - require_in:
+ - sls: manila.db.offline_sync
diff --git a/manila/api.sls b/manila/api.sls
index ad72dd3..97a565d 100644
--- a/manila/api.sls
+++ b/manila/api.sls
@@ -3,10 +3,13 @@
include:
- apache
- manila._common
+ - manila.db.offline_sync
manila_api_packages:
pkg.installed:
- names: {{ api.pkgs }}
+ - require_in:
+ - sls: manila.db.offline_sync
{% if not api.get('logging', {}).get('log_appender', False) %}
{%- do api.update({'logging': cfg.logging})%}
@@ -18,6 +21,8 @@
manila_api_fluentd_logger_package:
pkg.installed:
- name: python-fluent-logger
+ - require_in:
+ - sls: manila.db.offline_sync
{%- endif %}
manila_api_general_conf:
@@ -39,18 +44,10 @@
{%- endif %}
- watch_in:
- service: {{ api.service }}
+ - require_in:
+ - sls: manila.db.offline_sync
{% endif %}
-manila_install_apibase:
- cmd.run:
- - names:
- - manila-manage --config-file /etc/manila/manila.conf db sync
- - require:
- - file: /etc/manila/manila.conf
- {%- if grains.get('noservices') %}
- - onlyif: /bin/false
- {%- endif %}
-
manila_api_service_dead:
service.dead:
- name: manila-api
@@ -82,6 +79,7 @@
- require:
- manila_api_service_dead
- manila_site_enabled
+ - sls: manila.db.offline_sync
/etc/manila/policy.json:
file.managed:
diff --git a/manila/db/offline_sync.sls b/manila/db/offline_sync.sls
new file mode 100644
index 0000000..1a54d31
--- /dev/null
+++ b/manila/db/offline_sync.sls
@@ -0,0 +1,9 @@
+{%- from "manila/map.jinja" import api with context %}
+
+manila_install_apibase:
+ cmd.run:
+ - names:
+ - manila-manage --config-file /etc/manila/manila.conf db sync
+ {%- if grains.get('noservices') or api.get('role', 'primary') == 'secondary' %}
+ - onlyif: /bin/false
+ {%- endif %}
diff --git a/manila/meta/salt.yml b/manila/meta/salt.yml
new file mode 100644
index 0000000..f4ac891
--- /dev/null
+++ b/manila/meta/salt.yml
@@ -0,0 +1,5 @@
+orchestration:
+ upgrade:
+ applications:
+ manila:
+ priority: 1270
diff --git a/manila/upgrade/pkgs_latest.sls b/manila/upgrade/pkgs_latest.sls
new file mode 100644
index 0000000..4698063
--- /dev/null
+++ b/manila/upgrade/pkgs_latest.sls
@@ -0,0 +1,42 @@
+{%- from "manila/map.jinja" import cfg,api,scheduler,data,share,client,upgrade with context %}
+
+manila_task_pkg_latest:
+ test.show_notification:
+ - text: "Running manila.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 api.get('enabled', False) %}
+ {%- do pkgs.extend(api.pkgs) %}
+{%- endif %}
+{%- if scheduler.get('enabled', False) %}
+ {%- do pkgs.extend(scheduler.pkgs) %}
+{%- endif %}
+{%- if data.get('enabled', False) %}
+ {%- do pkgs.extend(data.pkgs) %}
+{%- endif %}
+{%- if share.get('enabled', False) %}
+ {%- do pkgs.extend(share.pkgs) %}
+{%- endif %}
+{%- if client.get('enabled', False) %}
+ {%- do pkgs.extend(client.pkgs) %}
+{%- endif %}
+
+manila_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
diff --git a/manila/upgrade/post/init.sls b/manila/upgrade/post/init.sls
new file mode 100644
index 0000000..cfe1f7f
--- /dev/null
+++ b/manila/upgrade/post/init.sls
@@ -0,0 +1,7 @@
+manila_post:
+ test.show_notification:
+ - text: "Running manila.upgrade.post"
+
+keystone_os_client_config_absent:
+ file.absent:
+ - name: /etc/openstack/clouds.yml
diff --git a/manila/upgrade/pre/init.sls b/manila/upgrade/pre/init.sls
new file mode 100644
index 0000000..cdab3bc
--- /dev/null
+++ b/manila/upgrade/pre/init.sls
@@ -0,0 +1,14 @@
+manila_pre:
+ test.show_notification:
+ - text: "Running manila.upgrade.pre"
+
+{%- set os_content = salt['mine.get']('I@keystone:client:os_client_config:enabled:true', 'keystone_os_client_config', 'compound').values()[0] %}
+keystone_os_client_config:
+ file.managed:
+ - name: /etc/openstack/clouds.yml
+ - contents: |
+ {{ os_content |yaml(False)|indent(8) }}
+ - user: 'root'
+ - group: 'root'
+ - makedirs: True
+ - unless: test -f /etc/openstack/clouds.yml
diff --git a/manila/upgrade/render_config.sls b/manila/upgrade/render_config.sls
new file mode 100644
index 0000000..88daeba
--- /dev/null
+++ b/manila/upgrade/render_config.sls
@@ -0,0 +1,14 @@
+{%- from "manila/map.jinja" import cfg,api,scheduler,data,share,client,upgrade with context %}
+
+manila_render_config:
+ test.show_notification:
+ - text: "Running manila.upgrade.render_config"
+
+{%- if ( api.get('enabled', False) or scheduler.get('enabled', False) or data.get('enabled', False) or share.get('enabled', False)) %}
+/etc/manila/manila.conf:
+ file.managed:
+ - source: salt://manila/files/{{ cfg.version }}/manila.conf
+ - template: jinja
+ - mode: 0640
+ - group: manila
+{%- endif %}
diff --git a/manila/upgrade/service_running.sls b/manila/upgrade/service_running.sls
new file mode 100644
index 0000000..7edf1ec
--- /dev/null
+++ b/manila/upgrade/service_running.sls
@@ -0,0 +1,33 @@
+{%- from "manila/map.jinja" import cfg,api,scheduler,data,share with context %}
+
+manila_task_service_running:
+ test.show_notification:
+ - text: "Running manila.upgrade.service_running"
+
+{%- if api.get('enabled', False) %}
+manila_start_{{ api.service }}:
+ service.running:
+ - name: {{ api.service }}
+ - enable: True
+{%- endif %}
+
+{%- if scheduler.get('enabled', False) %}
+manila_start_{{ scheduler.service }}:
+ service.running:
+ - name: {{ scheduler.service }}
+ - enable: True
+{%- endif %}
+
+{%- if data.get('enabled', False) %}
+manila_start_{{ data.service }}:
+ service.running:
+ - name: {{ data.service }}
+ - enable: True
+{%- endif %}
+
+{%- if share.get('enabled', False) %}
+manila_start_{{ share.service }}:
+ service.running:
+ - name: {{ share.service }}
+ - enable: True
+{%- endif %}
diff --git a/manila/upgrade/service_stopped.sls b/manila/upgrade/service_stopped.sls
new file mode 100644
index 0000000..d50edc1
--- /dev/null
+++ b/manila/upgrade/service_stopped.sls
@@ -0,0 +1,38 @@
+{%- from "manila/map.jinja" import cfg,api,scheduler,data,share with context %}
+
+manila_task_service_stopped:
+ test.show_notification:
+ - text: "Running manila.upgrade.service_stopped"
+
+{%- if api.get('enabled', False) %}
+manila_api_service_dead:
+ service.dead:
+ - name: manila-api
+ - enable: False
+
+manila_stop_{{ api.service }}:
+ service.dead:
+ - name: {{ api.service }}
+ - enable: False
+{%- endif %}
+
+{%- if scheduler.get('enabled', False) %}
+manila_stop_{{ scheduler.service }}:
+ service.dead:
+ - name: {{ scheduler.service }}
+ - enable: False
+{%- endif %}
+
+{%- if data.get('enabled', False) %}
+manila_stop_{{ data.service }}:
+ service.dead:
+ - name: {{ data.service }}
+ - enable: False
+{%- endif %}
+
+{%- if share.get('enabled', False) %}
+manila_stop_{{ share.service }}:
+ service.dead:
+ - name: {{ share.service }}
+ - enable: False
+{%- endif %}
diff --git a/manila/upgrade/upgrade/init.sls b/manila/upgrade/upgrade/init.sls
new file mode 100644
index 0000000..ae7c769
--- /dev/null
+++ b/manila/upgrade/upgrade/init.sls
@@ -0,0 +1,12 @@
+{%- from "manila/map.jinja" import api with context %}
+
+include:
+ - manila.upgrade.upgrade.pre
+ - manila.upgrade.service_stopped
+ - manila.upgrade.pkgs_latest
+ - manila.upgrade.render_config
+{%- if api.get('enabled', False) %}
+ - manila.db.offline_sync
+{%- endif %}
+ - manila.upgrade.service_running
+ - manila.upgrade.upgrade.post
diff --git a/manila/upgrade/upgrade/post.sls b/manila/upgrade/upgrade/post.sls
new file mode 100644
index 0000000..3a1c664
--- /dev/null
+++ b/manila/upgrade/upgrade/post.sls
@@ -0,0 +1,3 @@
+manila_upgrade_uprade_post:
+ test.show_notification:
+ - text: "Running manila.upgrade.upgrade.post"
diff --git a/manila/upgrade/upgrade/pre.sls b/manila/upgrade/upgrade/pre.sls
new file mode 100644
index 0000000..cc98242
--- /dev/null
+++ b/manila/upgrade/upgrade/pre.sls
@@ -0,0 +1,3 @@
+manila_upgrade_upgrade_pre:
+ test.show_notification:
+ - text: "Running manila.upgrade.upgrade.pre"
diff --git a/manila/upgrade/verify/_api.sls b/manila/upgrade/verify/_api.sls
new file mode 100644
index 0000000..e1a6252
--- /dev/null
+++ b/manila/upgrade/verify/_api.sls
@@ -0,0 +1,24 @@
+{%- from "manila/map.jinja" import api with context %}
+
+manila_upgrade_verify_api:
+ test.show_notification:
+ - text: "Running manila.upgrade.verify.api"
+
+{%- if api.get('role', 'secondary') == 'primary' %}
+ {%- set share_type_name = 'UpgradeTestShareType' %}
+ {%- set share_type_extra_specs = {'driver_handles_share_servers': False} %}
+manila_create_share_type_{{ share_type_name }}:
+ manilang.share_type_present:
+ - cloud_name: admin_identity
+ - name: {{ share_type_name }}
+ - extra_specs: {{ share_type_extra_specs }}
+ - microversion: '2.40'
+
+manila_delete_share_type_{{ share_type_name }}:
+ manilang.share_type_absent:
+ - cloud_name: admin_identity
+ - name: {{ share_type_name }}
+ - require:
+ - manilang: manila_create_share_type_{{ share_type_name }}
+
+{%- endif %}
diff --git a/manila/upgrade/verify/init.sls b/manila/upgrade/verify/init.sls
new file mode 100644
index 0000000..fe2e2d1
--- /dev/null
+++ b/manila/upgrade/verify/init.sls
@@ -0,0 +1,2 @@
+include:
+ - manila.upgrade.verify._api