From 1d9f4f9ff1ca031a33d63e9b909e6e854948485c Mon Sep 17 00:00:00 2001
From: Arkadiy Shinkarev <kewatut@gmail.com>
Date: Mon, 10 Dec 2018 17:08:58 +0300
Subject: [PATCH] Added ability to skip enabled backends pre-check

When using custom storage backends with cinder.conf overrides file,
precheck stage in kolla-ansible is fail. This commit adds option
'skip_cinder_backend_check' (default: False) to cinder role.

Change-Id: Ifee138ad8b281903ea2365441aada044c80c46f0
---
 ansible/roles/cinder/defaults/main.yml        |  2 ++
 ansible/roles/cinder/tasks/precheck.yml       |  1 +
 doc/source/reference/storage/cinder-guide.rst | 13 +++++++++++++
 3 files changed, 16 insertions(+)

diff --git a/ansible/roles/cinder/defaults/main.yml b/ansible/roles/cinder/defaults/main.yml
index b813979cb0..4c145f739a 100644
--- a/ansible/roles/cinder/defaults/main.yml
+++ b/ansible/roles/cinder/defaults/main.yml
@@ -189,6 +189,8 @@ cinder_backends:
   - name: "zfssa-iscsi"
     enabled: "{{ enable_cinder_backend_zfssa_iscsi | bool }}"
 
+skip_cinder_backend_check: False
+
 cinder_enabled_backends: "{{ cinder_backends|selectattr('enabled', 'equalto', true)|list }}"
 
 #############################################
diff --git a/ansible/roles/cinder/tasks/precheck.yml b/ansible/roles/cinder/tasks/precheck.yml
index e2457bac1d..4d214127f5 100644
--- a/ansible/roles/cinder/tasks/precheck.yml
+++ b/ansible/roles/cinder/tasks/precheck.yml
@@ -20,6 +20,7 @@
   run_once: True
   local_action: fail msg="Please enable at least one backend when enabling Cinder"
   when:
+    - not skip_cinder_backend_check | bool
     - not enable_cinder_backend_hnas_iscsi | bool
     - not enable_cinder_backend_hnas_nfs | bool
     - not enable_cinder_backend_iscsi | bool
diff --git a/doc/source/reference/storage/cinder-guide.rst b/doc/source/reference/storage/cinder-guide.rst
index cd37f879cb..d6e8b2d53f 100644
--- a/doc/source/reference/storage/cinder-guide.rst
+++ b/doc/source/reference/storage/cinder-guide.rst
@@ -188,3 +188,16 @@ the following parameter must be specified in ``globals.yml``:
    enable_cinder_backend_iscsi: "yes"
 
 Also ``enable_cinder_backend_lvm`` should be set to ``no`` in this case.
+
+Skip Cinder prechecks for Custom backends
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In order to use custom storage backends which currently not yet implemented
+in Kolla, the following parameter must be specified in ``globals.yml``:
+
+.. code-block:: yaml
+
+   skip_cinder_backend_check: True
+
+All configuration for custom NFS backend should be performed
+via ``cinder.conf`` in config overrides directory.