Merge "Don't fall when just loading cinderv3 modules"
diff --git a/README.rst b/README.rst
index ed605ca..a3a507c 100644
--- a/README.rst
+++ b/README.rst
@@ -843,6 +843,59 @@
strategy: ENCRYPT
secret_key: secret
+Cinder service supports to define iscsi_helper for lvm backend.
+=======
+
+.. code-block:: yaml
+
+ cinder:
+ volume:
+ ...
+ backend:
+ lvm:
+ ...
+ engine: lvm
+ iscsi_helper: tgtadm
+
+Cinder service supports to define scheduler_default_filters. Which filter class names
+to use for filtering hosts when not specified in the request.
+
+.. code-block:: yaml
+
+ cinder:
+ volume:
+ ...
+ scheduler_default_filters: (filters)
+
+ cinder:
+ controller:
+ ...
+ scheduler_default_filters: (filters)
+=======
+
+* Cinder database connection setup:
+
+.. code-block:: yaml
+
+ cinder:
+ controller:
+ enabled: True
+ ...
+ database:
+ idle_timeout: 280
+ max_pool_size: 30
+ max_retries: '-1'
+ max_overflow: 40
+ volume:
+ enabled: True
+ ...
+ database:
+ idle_timeout: 280
+ max_pool_size: 30
+ max_retries: '-1'
+ max_overflow: 40
+
+
Upgrades
========
diff --git a/cinder/files/backend/_lvm.conf b/cinder/files/backend/_lvm.conf
index e305056..db24344 100644
--- a/cinder/files/backend/_lvm.conf
+++ b/cinder/files/backend/_lvm.conf
@@ -6,5 +6,5 @@
{%- if backend.lvm_type is defined %}
lvm_type = {{ backend.lvm_type }}
{%- endif %}
-iscsi_helper = tgtadm
-volume_group = {{ backend.volume_group }}
\ No newline at end of file
+iscsi_helper = {{ backend.get('iscsi_helper', 'tgtadm') }}
+volume_group = {{ backend.volume_group }}
diff --git a/cinder/files/ocata/cinder.conf.controller.Debian b/cinder/files/ocata/cinder.conf.controller.Debian
index 3e48653..8e44564 100644
--- a/cinder/files/ocata/cinder.conf.controller.Debian
+++ b/cinder/files/ocata/cinder.conf.controller.Debian
@@ -202,10 +202,10 @@
{%- endif %}
[database]
-idle_timeout=3600
-max_pool_size=30
-max_retries=-1
-max_overflow=40
+idle_timeout = {{ controller.database.get('idle_timeout', 280) }}
+max_pool_size = {{ controller.database.get('max_pool_size', 30) }}
+max_retries = {{ controller.database.get('max_retries', '-1') }}
+max_overflow = {{ controller.database.get('max_overflow', 40) }}
connection = {{ controller.database.engine }}+pymysql://{{ controller.database.user }}:{{ controller.database.password }}@{{ controller.database.host }}/{{ controller.database.name }}?charset=utf8{%- if controller.database.get('ssl',{}).get('enabled',False) %}&ssl_ca={{ controller.database.ssl.get('cacert_file', controller.cacert_file) }}{% endif %}
{%- if controller.backend is defined %}
diff --git a/cinder/files/ocata/cinder.conf.volume.Debian b/cinder/files/ocata/cinder.conf.volume.Debian
index 7a070ee..a52c22a 100644
--- a/cinder/files/ocata/cinder.conf.volume.Debian
+++ b/cinder/files/ocata/cinder.conf.volume.Debian
@@ -185,10 +185,10 @@
{%- endif %}
[database]
-idle_timeout=3600
-max_pool_size=30
-max_retries=-1
-max_overflow=40
+idle_timeout = {{ volume.database.get('idle_timeout', 280) }}
+max_pool_size = {{ volume.database.get('max_pool_size', 30) }}
+max_retries = {{ volume.database.get('max_retries', '-1') }}
+max_overflow = {{ volume.database.get('max_overflow', 40) }}
connection = {{ volume.database.engine }}+pymysql://{{ volume.database.user }}:{{ volume.database.password }}@{{ volume.database.host }}/{{ volume.database.name }}?charset=utf8{%- if volume.database.get('ssl',{}).get('enabled',False) %}&ssl_ca={{ volume.database.ssl.get('cacert_file', volume.cacert_file) }}{% endif %}
{%- if volume.backend is defined %}
diff --git a/cinder/files/pike/cinder.conf.controller.Debian b/cinder/files/pike/cinder.conf.controller.Debian
index e15e46a..7a1d2f4 100644
--- a/cinder/files/pike/cinder.conf.controller.Debian
+++ b/cinder/files/pike/cinder.conf.controller.Debian
@@ -8,6 +8,10 @@
{%- endif %}
[DEFAULT]
+{%- if controller.scheduler_default_filters is defined %}
+scheduler_default_filters = {{ controller.scheduler_default_filters }}
+{%- endif %}
+
rootwrap_config = /etc/cinder/rootwrap.conf
api_paste_confg = /etc/cinder/api-paste.ini
@@ -224,10 +228,10 @@
{%- endif %}
[database]
-idle_timeout=3600
-max_pool_size=30
-max_retries=-1
-max_overflow=40
+idle_timeout = {{ controller.database.get('idle_timeout', 280) }}
+max_pool_size = {{ controller.database.get('max_pool_size', 30) }}
+max_retries = {{ controller.database.get('max_retries', '-1') }}
+max_overflow = {{ controller.database.get('max_overflow', 40) }}
connection = {{ controller.database.engine }}+pymysql://{{ controller.database.user }}:{{ controller.database.password }}@{{ controller.database.host }}/{{ controller.database.name }}?charset=utf8{{ connection_x509_ssl_option|string }}
{%- if controller.backend is defined %}
diff --git a/cinder/files/pike/cinder.conf.volume.Debian b/cinder/files/pike/cinder.conf.volume.Debian
index 0373859..48c138a 100644
--- a/cinder/files/pike/cinder.conf.volume.Debian
+++ b/cinder/files/pike/cinder.conf.volume.Debian
@@ -8,6 +8,10 @@
{%- endif %}
[DEFAULT]
+{%- if volume.scheduler_default_filters is defined %}
+scheduler_default_filters = {{ volume.scheduler_default_filters }}
+{%- endif %}
+
rootwrap_config = /etc/cinder/rootwrap.conf
api_paste_confg = /etc/cinder/api-paste.ini
@@ -206,10 +210,10 @@
{%- endif %}
[database]
-idle_timeout=3600
-max_pool_size=30
-max_retries=-1
-max_overflow=40
+idle_timeout = {{ volume.database.get('idle_timeout', 280) }}
+max_pool_size = {{ volume.database.get('max_pool_size', 30) }}
+max_retries = {{ volume.database.get('max_retries', '-1') }}
+max_overflow = {{ volume.database.get('max_overflow', 40) }}
connection = {{ volume.database.engine }}+pymysql://{{ volume.database.user }}:{{ volume.database.password }}@{{ volume.database.host }}/{{ volume.database.name }}?charset=utf8{{ connection_x509_ssl_option|string }}
{%- if volume.backend is defined %}
diff --git a/cinder/files/queens/cinder.conf.controller.Debian b/cinder/files/queens/cinder.conf.controller.Debian
index d72efc1..7c04364 100644
--- a/cinder/files/queens/cinder.conf.controller.Debian
+++ b/cinder/files/queens/cinder.conf.controller.Debian
@@ -557,6 +557,9 @@
# Which filter class names to use for filtering hosts when not specified in the
# request. (list value)
#scheduler_default_filters = AvailabilityZoneFilter,CapacityFilter,CapabilitiesFilter
+{%- if controller.scheduler_default_filters is defined %}
+scheduler_default_filters = {{ controller.scheduler_default_filters }}
+{%- endif %}
# Which weigher class names to use for weighing hosts. (list value)
#scheduler_default_weighers = CapacityWeigher
diff --git a/cinder/files/queens/cinder.conf.volume.Debian b/cinder/files/queens/cinder.conf.volume.Debian
index bdf764d..d1b51a8 100644
--- a/cinder/files/queens/cinder.conf.volume.Debian
+++ b/cinder/files/queens/cinder.conf.volume.Debian
@@ -555,6 +555,9 @@
# Which filter class names to use for filtering hosts when not specified in the
# request. (list value)
#scheduler_default_filters = AvailabilityZoneFilter,CapacityFilter,CapabilitiesFilter
+{%- if volume.scheduler_default_filters is defined %}
+scheduler_default_filters = {{ volume.scheduler_default_filters }}
+{%- endif %}
# Which weigher class names to use for weighing hosts. (list value)
#scheduler_default_weighers = CapacityWeigher
diff --git a/cinder/files/rocky/cinder.conf.controller.Debian b/cinder/files/rocky/cinder.conf.controller.Debian
index 7e8c773..f7555ba 100644
--- a/cinder/files/rocky/cinder.conf.controller.Debian
+++ b/cinder/files/rocky/cinder.conf.controller.Debian
@@ -565,6 +565,9 @@
# Which filter class names to use for filtering hosts when not specified in the
# request. (list value)
#scheduler_default_filters = AvailabilityZoneFilter,CapacityFilter,CapabilitiesFilter
+{%- if controller.scheduler_default_filters is defined %}
+scheduler_default_filters = {{ controller.scheduler_default_filters }}
+{%- endif %}
# Which weigher class names to use for weighing hosts. (list value)
#scheduler_default_weighers = CapacityWeigher
diff --git a/cinder/files/rocky/cinder.conf.volume.Debian b/cinder/files/rocky/cinder.conf.volume.Debian
index 64ba7b0..4b82a8d 100644
--- a/cinder/files/rocky/cinder.conf.volume.Debian
+++ b/cinder/files/rocky/cinder.conf.volume.Debian
@@ -564,6 +564,9 @@
# Which filter class names to use for filtering hosts when not specified in the
# request. (list value)
#scheduler_default_filters = AvailabilityZoneFilter,CapacityFilter,CapabilitiesFilter
+{%- if volume.scheduler_default_filters is defined %}
+scheduler_default_filters = {{ volume.scheduler_default_filters }}
+{%- endif %}
# Which weigher class names to use for weighing hosts. (list value)
#scheduler_default_weighers = CapacityWeigher
diff --git a/tests/pillar/control_cluster.sls b/tests/pillar/control_cluster.sls
index 5851aaa..3c106dd 100644
--- a/tests/pillar/control_cluster.sls
+++ b/tests/pillar/control_cluster.sls
@@ -11,6 +11,10 @@
name: cinder
user: cinder
password: password
+ idle_timeout: 280
+ max_pool_size: 30
+ max_retries: '-1'
+ max_overflow: 40
identity:
engine: keystone
region: RegionOne
diff --git a/tests/pillar/control_single.sls b/tests/pillar/control_single.sls
index a1c6014..cd1f7d9 100644
--- a/tests/pillar/control_single.sls
+++ b/tests/pillar/control_single.sls
@@ -2,6 +2,7 @@
controller:
enabled: true
version: liberty
+ scheduler_default_filters: AvailabilityZoneFilter
osapi:
host: 127.0.0.1
database:
diff --git a/tests/pillar/volume_single.sls b/tests/pillar/volume_single.sls
index 73037ed..cea5f55 100644
--- a/tests/pillar/volume_single.sls
+++ b/tests/pillar/volume_single.sls
@@ -2,6 +2,16 @@
volume:
enabled: true
version: liberty
+ scheduler_default_filters: AvailabilityZoneFilter
+ default_volume_type: defaultVolumeType
+ backend:
+ lvm:
+ host: 127.0.0.1
+ engine: lvm
+ lvm_type: auto
+ type_name: volumeType
+ iscsi_helper: tgtadm
+ volume_group: cinder-volumes
osapi:
host: 127.0.0.1
database:
@@ -11,6 +21,10 @@
name: cinder
user: cinder
password: password
+ idle_timeout: 280
+ max_pool_size: 30
+ max_retries: '-1'
+ max_overflow: 40
identity:
engine: keystone
host: 127.0.0.1