Merge "Don't fall when just loading novav21 modules"
diff --git a/README.rst b/README.rst
index 90f2a4b..a290d34 100644
--- a/README.rst
+++ b/README.rst
@@ -274,6 +274,8 @@
compute:
version: juno
enabled: true
+ timeout_nbd: 10
+ heal_instance_info_cache_interval: 60
cross_az_attach: false
disk_cachemodes: network=writeback,block=none
availability_zone: availability_zone_01
@@ -1182,6 +1184,27 @@
You can read more about it here:
https://docs.openstack.org/security-guide/databases/database-access-control.html
+Nova database connection setup:
+========
+
+.. code-block:: yaml
+
+ nova:
+ controller:
+ enabled: True
+ ...
+ database:
+ idle_timeout: 180
+ min_pool_size: 100
+ max_pool_size: 700
+ max_overflow: 100
+ retry_interval: 5
+ max_retries: '-1'
+ db_max_retries: 3
+ db_retry_interval: 1
+ connection_debug: 10
+ pool_timeout: 120
+
Upgrades
========
diff --git a/_states/novav21.py b/_states/novav21.py
index ffda7d1..ad8a4a5 100644
--- a/_states/novav21.py
+++ b/_states/novav21.py
@@ -466,6 +466,7 @@
:param timeout: amount of time in seconds mapping process should finish in.
:param runas: username to run the shell commands under.
"""
+ test = __opts__.get('test', False)
cell_uuid = __salt__['cmd.shell'](
"nova-manage cell_v2 list_cells 2>/dev/null | "
"awk '/%s/ {print $4}'" % name, runas=runas)
@@ -476,17 +477,21 @@
.format(name))
return result
start_time = time.time()
- while True:
- rc = __salt__['cmd.retcode']('nova-manage cell_v2 map_instances '
- '--cell_uuid %s' % cell_uuid, runas=runas)
- if rc == 0 or time.time() - start_time > timeout:
- break
- if rc != 0:
- result['comment'] = (
- 'Failed to map all instances in cell {0} in {1} seconds'
- .format(name, timeout))
- return result
+ if not test:
+ while True:
+ rc = __salt__['cmd.retcode'](
+ 'nova-manage cell_v2 map_instances --cell_uuid %s' % cell_uuid,
+ runas=runas)
+ if rc == 0 or time.time() - start_time > timeout:
+ break
+ if rc != 0:
+ result['comment'] = (
+ 'Failed to map all instances in cell {0} in {1} seconds'
+ .format(name, timeout))
+ return result
result['comment'] = 'All instances mapped in cell {0}'.format(name)
+ if test:
+ result['comment'] = 'TEST: {}'.format(result['comment'])
result['result'] = True
return result
diff --git a/nova/files/ocata/nova-controller.conf.Debian b/nova/files/ocata/nova-controller.conf.Debian
index 23db54e..11cec7e 100644
--- a/nova/files/ocata/nova-controller.conf.Debian
+++ b/nova/files/ocata/nova-controller.conf.Debian
@@ -3436,16 +3436,16 @@
#
# From nova.conf
#
-idle_timeout = 180
-min_pool_size = 100
-max_pool_size = 700
-max_overflow = 100
-retry_interval = 5
-max_retries = -1
-db_max_retries = 3
-db_retry_interval = 1
-connection_debug = 10
-pool_timeout = 120
+idle_timeout = {{ controller.database.get('idle_timeout', 180) }}
+min_pool_size = {{ controller.database.get('min_pool_size', 100) }}
+max_pool_size = {{ controller.database.get('max_pool_size', 700) }}
+max_overflow = {{ controller.database.get('max_overflow', 100) }}
+retry_interval = {{ controller.database.get('retry_interval', 5) }}
+max_retries = {{ controller.database.get('max_retries', '-1') }}
+db_max_retries = {{ controller.database.get('db_max_retries', 3) }}
+db_retry_interval = {{ controller.database.get('db_retry_interval', 1) }}
+connection_debug = {{ controller.database.get('connection_debug', 10) }}
+pool_timeout = {{ controller.database.get('pool_timeout', 120) }}
connection = {{ controller.database.engine }}+pymysql://{{ controller.database.user }}:{{ controller.database.password }}@{{ controller.database.host }}/{{ controller.database.name }}_api?charset=utf8{%- if controller.database.get('ssl',{}).get('enabled',False) %}&ssl_ca={{ controller.database.ssl.get('cacert_file', controller.cacert_file) }}{% endif %}
# The SQLAlchemy connection string to use to connect to the database. (string
@@ -4491,16 +4491,16 @@
# Reason: Should use config option connection or slave_connection to connect the
# database.
#sqlite_db=oslo.sqlite
-idle_timeout = 180
-min_pool_size = 100
-max_pool_size = 700
-max_overflow = 100
-retry_interval = 5
-max_retries = -1
-db_max_retries = 3
-db_retry_interval = 1
-connection_debug = 10
-pool_timeout = 120
+idle_timeout = {{ controller.database.get('idle_timeout', 180) }}
+min_pool_size = {{ controller.database.get('min_pool_size', 100) }}
+max_pool_size = {{ controller.database.get('max_pool_size', 700) }}
+max_overflow = {{ controller.database.get('max_overflow', 100) }}
+retry_interval = {{ controller.database.get('retry_interval', 5) }}
+max_retries = {{ controller.database.get('max_retries', '-1') }}
+db_max_retries = {{ controller.database.get('db_max_retries', 3) }}
+db_retry_interval = {{ controller.database.get('db_retry_interval', 1) }}
+connection_debug = {{ controller.database.get('connection_debug', 10) }}
+pool_timeout = {{ controller.database.get('pool_timeout', 120) }}
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 True, SQLite uses synchronous mode. (boolean value)
diff --git a/nova/files/pike/nova-controller.conf.Debian b/nova/files/pike/nova-controller.conf.Debian
index ac64982..8b59db2 100644
--- a/nova/files/pike/nova-controller.conf.Debian
+++ b/nova/files/pike/nova-controller.conf.Debian
@@ -3486,16 +3486,16 @@
#
# From nova.conf
#
-idle_timeout = 180
-min_pool_size = 100
-max_pool_size = 700
-max_overflow = 100
-retry_interval = 5
-max_retries = -1
-db_max_retries = 3
-db_retry_interval = 1
-connection_debug = 10
-pool_timeout = 120
+idle_timeout = {{ controller.database.get('idle_timeout', 180) }}
+min_pool_size = {{ controller.database.get('min_pool_size', 100) }}
+max_pool_size = {{ controller.database.get('max_pool_size', 700) }}
+max_overflow = {{ controller.database.get('max_overflow', 100) }}
+retry_interval = {{ controller.database.get('retry_interval', 5) }}
+max_retries = {{ controller.database.get('max_retries', '-1') }}
+db_max_retries = {{ controller.database.get('db_max_retries', 3) }}
+db_retry_interval = {{ controller.database.get('db_retry_interval', 1) }}
+connection_debug = {{ controller.database.get('connection_debug', 10) }}
+pool_timeout = {{ controller.database.get('pool_timeout', 120) }}
connection = {{ controller.database.engine }}+pymysql://{{ controller.database.user }}:{{ controller.database.password }}@{{ controller.database.host }}/{{ controller.database.name }}_api?charset=utf8{{ connection_x509_ssl_option|string }}
# The SQLAlchemy connection string to use to connect to the database. (string
@@ -4540,16 +4540,16 @@
# Reason: Should use config option connection or slave_connection to connect the
# database.
#sqlite_db=oslo.sqlite
-idle_timeout = 180
-min_pool_size = 100
-max_pool_size = 700
-max_overflow = 100
-retry_interval = 5
-max_retries = -1
-db_max_retries = 3
-db_retry_interval = 1
-connection_debug = 10
-pool_timeout = 120
+idle_timeout = {{ controller.database.get('idle_timeout', 180) }}
+min_pool_size = {{ controller.database.get('min_pool_size', 100) }}
+max_pool_size = {{ controller.database.get('max_pool_size', 700) }}
+max_overflow = {{ controller.database.get('max_overflow', 100) }}
+retry_interval = {{ controller.database.get('retry_interval', 5) }}
+max_retries = {{ controller.database.get('max_retries', '-1') }}
+db_max_retries = {{ controller.database.get('db_max_retries', 3) }}
+db_retry_interval = {{ controller.database.get('db_retry_interval', 1) }}
+connection_debug = {{ controller.database.get('connection_debug', 10) }}
+pool_timeout = {{ controller.database.get('pool_timeout', 120) }}
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 True, SQLite uses synchronous mode. (boolean value)
diff --git a/nova/files/queens/nova-compute.conf.Debian b/nova/files/queens/nova-compute.conf.Debian
index 54dfd87..645cc4d 100644
--- a/nova/files/queens/nova-compute.conf.Debian
+++ b/nova/files/queens/nova-compute.conf.Debian
@@ -430,6 +430,9 @@
# (integer value)
# Minimum value: 0
#timeout_nbd = 10
+{%- if compute.timeout_nbd is defined %}
+timeout_nbd = {{ compute.timeout_nbd }}
+{%- endif %}
#
# Location of cached images.
diff --git a/nova/files/queens/nova-controller.conf.Debian b/nova/files/queens/nova-controller.conf.Debian
index 2f15f22..f430fdf 100644
--- a/nova/files/queens/nova-controller.conf.Debian
+++ b/nova/files/queens/nova-controller.conf.Debian
@@ -423,6 +423,9 @@
# (integer value)
# Minimum value: 0
#timeout_nbd = 10
+{%- if controller.timeout_nbd is defined %}
+timeout_nbd = {{ controller.timeout_nbd }}
+{%- endif %}
#
# Location of cached images.
@@ -885,6 +888,9 @@
# * Any value <=0 will disable the sync. This is not recommended.
# (integer value)
#heal_instance_info_cache_interval = 60
+{%- if controller.heal_instance_info_cache_interval is defined %}
+heal_instance_info_cache_interval = {{ controller.heal_instance_info_cache_interval }}
+{%- endif %}
#
# Interval for reclaiming deleted instances.
diff --git a/nova/files/rocky/nova-compute.conf.Debian b/nova/files/rocky/nova-compute.conf.Debian
index 819ad84..ed0aceb 100644
--- a/nova/files/rocky/nova-compute.conf.Debian
+++ b/nova/files/rocky/nova-compute.conf.Debian
@@ -319,6 +319,9 @@
# Amount of time, in seconds, to wait for NBD device start up. (integer value)
# Minimum value: 0
#timeout_nbd = 10
+{%- if compute.timeout_nbd is defined %}
+timeout_nbd = {{ compute.timeout_nbd }}
+{%- endif %}
#
# Location of cached images.
diff --git a/nova/files/rocky/nova-controller.conf.Debian b/nova/files/rocky/nova-controller.conf.Debian
index 63810ad..4856353 100644
--- a/nova/files/rocky/nova-controller.conf.Debian
+++ b/nova/files/rocky/nova-controller.conf.Debian
@@ -313,6 +313,9 @@
# Amount of time, in seconds, to wait for NBD device start up. (integer value)
# Minimum value: 0
#timeout_nbd = 10
+{%- if controller.timeout_nbd is defined %}
+timeout_nbd = {{ controller.timeout_nbd }}
+{%- endif %}
#
# Location of cached images.
@@ -736,6 +739,9 @@
# * Any value <=0 will disable the sync. This is not recommended.
# (integer value)
#heal_instance_info_cache_interval = 60
+{%- if controller.heal_instance_info_cache_interval is defined %}
+heal_instance_info_cache_interval = {{ controller.heal_instance_info_cache_interval }}
+{%- endif %}
#
# Interval for reclaiming deleted instances.
diff --git a/nova/upgrade/pre/init.sls b/nova/upgrade/pre/init.sls
index 9ed049a..0c5834e 100644
--- a/nova/upgrade/pre/init.sls
+++ b/nova/upgrade/pre/init.sls
@@ -16,7 +16,7 @@
/etc/nova/nova.conf:
file.managed:
- name: /etc/nova/nova.conf
- - source: salt://nova/files/{{ _data.version }}/nova-{{ type }}.conf.{{ grains.os_family }}
+ - source: salt://nova/files/{{ upgrade.old_release }}/nova-{{ type }}.conf.{{ grains.os_family }}
- template: jinja
{%- if controller.get('enabled') %}
diff --git a/tests/pillar/compute_cluster.sls b/tests/pillar/compute_cluster.sls
index 7c79c8a..378de4f 100644
--- a/tests/pillar/compute_cluster.sls
+++ b/tests/pillar/compute_cluster.sls
@@ -7,6 +7,7 @@
mount_points:
- path: /mnt/hugepages_1GB
disk_cachemodes: network=writeback,block=none
+ timeout_nbd: 10
heal_instance_info_cache_interval: 60
vncproxy_url: openstack:6080
report_interval: 60
diff --git a/tests/pillar/compute_single.sls b/tests/pillar/compute_single.sls
index c2b740a..5677ab6 100644
--- a/tests/pillar/compute_single.sls
+++ b/tests/pillar/compute_single.sls
@@ -2,6 +2,7 @@
compute:
version: newton
enabled: true
+ timeout_nbd: 10
heal_instance_info_cache_interval: 60
vncproxy_url: openstack:6080
vnc_keymap: en-gb
diff --git a/tests/pillar/compute_single_config_drive_options.sls b/tests/pillar/compute_single_config_drive_options.sls
index 739f876..44c6428 100644
--- a/tests/pillar/compute_single_config_drive_options.sls
+++ b/tests/pillar/compute_single_config_drive_options.sls
@@ -2,6 +2,7 @@
compute:
version: queens
enabled: true
+ timeout_nbd: 10
heal_instance_info_cache_interval: 60
vncproxy_url: openstack:6080
vnc_keymap: en-gb
diff --git a/tests/pillar/control_cluster.sls b/tests/pillar/control_cluster.sls
index c844124..397d659 100644
--- a/tests/pillar/control_cluster.sls
+++ b/tests/pillar/control_cluster.sls
@@ -24,6 +24,16 @@
name: nova
user: nova
password: password
+ idle_timeout: 180
+ min_pool_size: 100
+ max_pool_size: 700
+ max_overflow: 100
+ retry_interval: 5
+ max_retries: '-1'
+ db_max_retries: 3
+ db_retry_interval: 1
+ connection_debug: 10
+ pool_timeout: 120
identity:
engine: keystone
region: RegionOne
diff --git a/tests/pillar/control_single.sls b/tests/pillar/control_single.sls
index 443e821..114aee8 100644
--- a/tests/pillar/control_single.sls
+++ b/tests/pillar/control_single.sls
@@ -3,6 +3,8 @@
enabled: true
networking: contrail
version: queens
+ timeout_nbd: 10
+ heal_instance_info_cache_interval: 60
security_group: false
vncproxy_url: 127.0.0.1
vnc_keymap: en-gb
@@ -36,6 +38,16 @@
name: nova
user: nova
password: password
+ idle_timeout: 180
+ min_pool_size: 100
+ max_pool_size: 700
+ max_overflow: 100
+ retry_interval: 5
+ max_retries: '-1'
+ db_max_retries: 3
+ db_retry_interval: 1
+ connection_debug: 10
+ pool_timeout: 120
identity:
engine: keystone
region: RegionOne