Unhardcode vif_pluggin and workers for Pike+

unhardcode the following options:
 * workers
 * vif_plugging_timeout
 * osapi_compute_workers

Change-Id: I4499ce4b73e4547e53a5d505c901378355897f2d
diff --git a/README.rst b/README.rst
index 8eaa2e2..90f2a4b 100644
--- a/README.rst
+++ b/README.rst
@@ -30,6 +30,8 @@
         workers: 8
         report_interval: 60
         dhcp_domain: novalocal
+        vif_plugging_timeout: 300
+        vif_plugging_is_fatal: false
         consoleauth:
           token_ttl: 600
         bind:
@@ -282,6 +284,8 @@
         resume_guests_state_on_host_boot: False
         preallocate_images: space  # Default is 'none'
         my_ip: 10.1.0.16
+        vif_plugging_timeout: 300
+        vif_plugging_is_fatal: false
         bind:
           vnc_address: 172.20.0.100
           vnc_port: 6080
diff --git a/nova/files/pike/nova-compute.conf.Debian b/nova/files/pike/nova-compute.conf.Debian
index 67bb430..a43729a 100644
--- a/nova/files/pike/nova-compute.conf.Debian
+++ b/nova/files/pike/nova-compute.conf.Debian
@@ -312,7 +312,7 @@
 # * False: Instances should continue booting after VIF plugging timeout
 #  (boolean value)
 #vif_plugging_is_fatal=true
-vif_plugging_is_fatal=true
+vif_plugging_is_fatal = {{ compute.get('vif_plugging_is_fatal', 'true') }}
 
 #
 # Timeout for Neutron VIF plugging event message arrival.
@@ -328,7 +328,7 @@
 #  (integer value)
 # Minimum value: 0
 #vif_plugging_timeout=300
-vif_plugging_timeout=300
+vif_plugging_timeout = {{ compute.get('vif_plugging_timeout', '300') }}
 
 # Path to '/etc/network/interfaces' template.
 #
diff --git a/nova/files/pike/nova-controller.conf.Debian b/nova/files/pike/nova-controller.conf.Debian
index a61c236..ac64982 100644
--- a/nova/files/pike/nova-controller.conf.Debian
+++ b/nova/files/pike/nova-controller.conf.Debian
@@ -316,7 +316,7 @@
 # * False: Instances should continue booting after VIF plugging timeout
 #  (boolean value)
 #vif_plugging_is_fatal=true
-vif_plugging_is_fatal=false
+vif_plugging_is_fatal = {{ controller.get('vif_plugging_is_fatal', 'false') }}
 
 #
 # Timeout for Neutron VIF plugging event message arrival.
@@ -332,7 +332,7 @@
 #  (integer value)
 # Minimum value: 0
 #vif_plugging_timeout=300
-vif_plugging_timeout=0
+vif_plugging_timeout = {{ controller.get('vif_plugging_timeout', '300') }}
 
 # Path to '/etc/network/interfaces' template.
 #
diff --git a/nova/files/queens/nova-controller.conf.Debian b/nova/files/queens/nova-controller.conf.Debian
index fbf978b..2f15f22 100644
--- a/nova/files/queens/nova-controller.conf.Debian
+++ b/nova/files/queens/nova-controller.conf.Debian
@@ -3231,6 +3231,7 @@
 #  (integer value)
 # Minimum value: 1
 #osapi_compute_workers = <None>
+osapi_compute_workers = {{ controller.workers }}
 
 #
 # IP address on which the metadata API will listen.
@@ -4486,7 +4487,8 @@
 # be the
 # number of CPUs available.
 #  (integer value)
-workers = {{ controller.workers }}
+
+workers = {{ controller.get('conductor', {}).get('workers', controller.workers) }}
 
 
 [console]