Unhardcode instance_build_timeout option

This patch allows to configure instance_build_timeout option that
defines maximum time in seconds that an instance can take to build.

Change-Id: Ia589aa368a87f02df3955697b19bcafe6e6390d7
diff --git a/README.rst b/README.rst
index a290d34..1d3daa9 100644
--- a/README.rst
+++ b/README.rst
@@ -32,6 +32,7 @@
         dhcp_domain: novalocal
         vif_plugging_timeout: 300
         vif_plugging_is_fatal: false
+        instance_build_timeout: 600
         consoleauth:
           token_ttl: 600
         bind:
diff --git a/nova/files/pike/nova-compute.conf.Debian b/nova/files/pike/nova-compute.conf.Debian
index a43729a..2d3f8dd 100644
--- a/nova/files/pike/nova-compute.conf.Debian
+++ b/nova/files/pike/nova-compute.conf.Debian
@@ -1028,7 +1028,11 @@
 # * Any positive integer in seconds: Enables the option.
 #  (integer value)
 # Minimum value: 0
-#instance_build_timeout=0
+{%- if compute.instance_build_timeout is defined %}
+instance_build_timeout = {{ compute.instance_build_timeout }}
+{%- else %}
+#instance_build_timeout = 0
+{%- endif %}
 
 #
 # Interval to wait before un-rescuing an instance stuck in RESCUE.
diff --git a/nova/files/pike/nova-controller.conf.Debian b/nova/files/pike/nova-controller.conf.Debian
index 8b59db2..910b0de 100644
--- a/nova/files/pike/nova-controller.conf.Debian
+++ b/nova/files/pike/nova-controller.conf.Debian
@@ -1008,7 +1008,11 @@
 # * Any positive integer in seconds: Enables the option.
 #  (integer value)
 # Minimum value: 0
-#instance_build_timeout=0
+{%- if controller.instance_build_timeout is defined %}
+instance_build_timeout = {{ controller.instance_build_timeout }}
+{%- else %}
+#instance_build_timeout = 0
+{%- endif %}
 
 #
 # Interval to wait before un-rescuing an instance stuck in RESCUE.
diff --git a/nova/files/queens/nova-compute.conf.Debian b/nova/files/queens/nova-compute.conf.Debian
index 645cc4d..2253255 100644
--- a/nova/files/queens/nova-compute.conf.Debian
+++ b/nova/files/queens/nova-compute.conf.Debian
@@ -1108,7 +1108,11 @@
 # * Any positive integer in seconds: Enables the option.
 #  (integer value)
 # Minimum value: 0
+{%- if compute.instance_build_timeout is defined %}
+instance_build_timeout = {{ compute.instance_build_timeout }}
+{%- else %}
 #instance_build_timeout = 0
+{%- endif %}
 
 #
 # Interval to wait before un-rescuing an instance stuck in RESCUE.
diff --git a/nova/files/queens/nova-controller.conf.Debian b/nova/files/queens/nova-controller.conf.Debian
index f430fdf..0bf9f65 100644
--- a/nova/files/queens/nova-controller.conf.Debian
+++ b/nova/files/queens/nova-controller.conf.Debian
@@ -1099,7 +1099,11 @@
 # * Any positive integer in seconds: Enables the option.
 #  (integer value)
 # Minimum value: 0
+{%- if controller.instance_build_timeout is defined %}
+instance_build_timeout = {{ controller.instance_build_timeout }}
+{%- else %}
 #instance_build_timeout = 0
+{%- endif %}
 
 #
 # Interval to wait before un-rescuing an instance stuck in RESCUE.
diff --git a/tests/pillar/compute_cluster.sls b/tests/pillar/compute_cluster.sls
index 378de4f..53ff9c6 100644
--- a/tests/pillar/compute_cluster.sls
+++ b/tests/pillar/compute_cluster.sls
@@ -14,6 +14,7 @@
     vnc_keymap: en-gb
     resume_guests_state_on_host_boot: True
     preallocate_images: space
+    instance_build_timeout: 600
     bind:
       vnc_address: 127.0.0.1
       vnc_port: 6080
diff --git a/tests/pillar/control_cluster.sls b/tests/pillar/control_cluster.sls
index 397d659..ab37b5f 100644
--- a/tests/pillar/control_cluster.sls
+++ b/tests/pillar/control_cluster.sls
@@ -12,6 +12,7 @@
     ram_allocation_ratio: 1.5
     disk_allocation_ratio: 1.0
     workers: 8
+    instance_build_timeout: 600
     bind:
       private_address: 127.0.0.1
       public_address: 127.0.0.1