Add option max_concurrent_live_migrations
diff --git a/README.rst b/README.rst
index 2a8ace1..c3a67f1 100644
--- a/README.rst
+++ b/README.rst
@@ -618,6 +618,32 @@
format: iso9660 # Default: vfat
inject_password: False # Default: False
+Number of concurrent live migrates
+----------------------------------
+
+Default is to have no concurrent live migrations (so 1 live-migration at a time).
+
+Excerpt from config options page (https://docs.openstack.org/ocata/config-reference/compute/config-options.html):
+
+ Maximum number of live migrations to run concurrently. This limit is
+ enforced to avoid outbound live migrations overwhelming the host/network
+ and causing failures. It is not recommended that you change this unless
+ you are very sure that doing so is safe and stable in your environment.
+
+ Possible values:
+
+ - 0 : treated as unlimited.
+ - Negative value defaults to 0.
+ - Any positive integer representing maximum number of live migrations to run concurrently.
+
+To configure this option:
+
+.. code-block:: yaml
+
+ nova:
+ compute:
+ max_concurrent_live_migrations: 1 # (1 is the default)
+
Documentation and Bugs
======================
diff --git a/nova/files/mitaka/nova-compute.conf.Debian b/nova/files/mitaka/nova-compute.conf.Debian
index e43e8ba..c46f18d 100644
--- a/nova/files/mitaka/nova-compute.conf.Debian
+++ b/nova/files/mitaka/nova-compute.conf.Debian
@@ -38,6 +38,10 @@
reserved_host_memory_mb = {{ compute.get('reserved_host_memory_mb', '512') }}
+{%- if compute.max_concurrent_live_migrations is defined %}
+max_concurrent_live_migrations = {{ compute.max_concurrent_live_migrations }}
+{%- endif %}
+
{%- if compute.vcpu_pin_set is defined %}
vcpu_pin_set={{ compute.vcpu_pin_set }}
{%- endif %}
diff --git a/nova/files/newton/nova-compute.conf.Debian b/nova/files/newton/nova-compute.conf.Debian
index 7050864..e729c04 100644
--- a/nova/files/newton/nova-compute.conf.Debian
+++ b/nova/files/newton/nova-compute.conf.Debian
@@ -40,6 +40,10 @@
reserved_host_memory_mb = {{ compute.get('reserved_host_memory_mb', '512') }}
+{%- if compute.max_concurrent_live_migrations is defined %}
+max_concurrent_live_migrations = {{ compute.max_concurrent_live_migrations }}
+{%- endif %}
+
{%- if compute.vcpu_pin_set is defined %}
vcpu_pin_set={{ compute.vcpu_pin_set }}
{%- endif %}
diff --git a/nova/files/ocata/nova-compute.conf.Debian b/nova/files/ocata/nova-compute.conf.Debian
index ab59964..54708a3 100644
--- a/nova/files/ocata/nova-compute.conf.Debian
+++ b/nova/files/ocata/nova-compute.conf.Debian
@@ -716,6 +716,9 @@
# to run concurrently.
# (integer value)
#max_concurrent_live_migrations=1
+{%- if compute.max_concurrent_live_migrations is defined %}
+max_concurrent_live_migrations = {{ compute.max_concurrent_live_migrations }}
+{%- endif %}
#
# Number of times to retry block device allocation on failures. Starting with