Merge "fix service differentiator"
diff --git a/README.rst b/README.rst
index 5bd2abc..ee64e32 100644
--- a/README.rst
+++ b/README.rst
@@ -22,6 +22,8 @@
         security_group: true
         cpu_allocation_ratio: 8.0
         ram_allocation_ratio: 1.0
+        disk_allocation_ratio: 1.0
+        workers: 8
         bind:
           public_address: 10.0.0.122
           public_name: openstack.domain.com
diff --git a/metadata/service/compute/kvm.yml b/metadata/service/compute/kvm.yml
index 5b3c064..7fa0036 100644
--- a/metadata/service/compute/kvm.yml
+++ b/metadata/service/compute/kvm.yml
@@ -23,6 +23,7 @@
         password: ${_param:mysql_nova_password}
       identity:
         engine: keystone
+        region: RegionOne
         host: ${_param:cluster_vip_address}
         port: 35357
         user: nova
@@ -41,6 +42,7 @@
         port: 9292
       network:
         engine: neutron
+        region: RegionOne
         host: ${_param:cluster_vip_address}
         port: 9696
       cache:
diff --git a/metadata/service/control/cluster.yml b/metadata/service/control/cluster.yml
index 03e1900..2e2837c 100644
--- a/metadata/service/control/cluster.yml
+++ b/metadata/service/control/cluster.yml
@@ -17,6 +17,8 @@
       scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter"
       cpu_allocation_ratio: 16.0
       ram_allocation_ratio: 1.5
+      disk_allocation_ratio: 1.0
+      workers: 8
       logging:
       - engine: syslog
         facility: local0
@@ -36,6 +38,7 @@
         password: ${_param:mysql_nova_password}
       identity:
         engine: keystone
+        region: RegionOne
         host: ${_param:cluster_vip_address}
         port: 35357
         user: nova
@@ -54,6 +57,7 @@
         port: 9292
       network:
         engine: neutron
+        region: RegionOne
         host: ${_param:cluster_vip_address}
         port: 9696
         mtu: 1500
diff --git a/metadata/service/control/single.yml b/metadata/service/control/single.yml
index f2ec608..b4add44 100644
--- a/metadata/service/control/single.yml
+++ b/metadata/service/control/single.yml
@@ -17,6 +17,8 @@
       scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter"
       cpu_allocation_ratio: 16.0
       ram_allocation_ratio: 1.5
+      disk_allocation_ratio: 1.0
+      workers: 1
       logging:
       - engine: syslog
         facility: local0
@@ -36,6 +38,7 @@
         password: ${_param:mysql_nova_password}
       identity:
         engine: keystone
+        region: RegionOne
         host: ${_param:single_address}
         port: 35357
         user: nova
@@ -53,6 +56,7 @@
         port: 9292
       network:
         engine: neutron
+        region: RegionOne
         host: ${_param:single_address}
         port: 9696
         mtu: 1500
diff --git a/nova/files/kilo/nova-compute.conf.Debian b/nova/files/kilo/nova-compute.conf.Debian
index f5e0a2d..a17f282 100644
--- a/nova/files/kilo/nova-compute.conf.Debian
+++ b/nova/files/kilo/nova-compute.conf.Debian
@@ -36,6 +36,7 @@
 neutron_admin_tenant_name={{ compute.identity.tenant }}
 neutron_admin_auth_url = http://{{ compute.identity.host }}:35357/v{% if compute.identity.get('version', 2) == 2 %}2.0{% else %}3{% endif %}
 neutron_url=http://{{ compute.network.host }}:{{ compute.network.port }}
+neutron_region_name= {{ compute.network.region }}
 #neutron_url = http://10.0.102.35:9696/
 
 
@@ -159,6 +160,7 @@
 admin_tenant_name={{ compute.identity.tenant }}
 admin_auth_url=http://{{ compute.identity.host }}:{{ compute.identity.port }}/v{% if compute.identity.get('version', 2) == 2 %}2.0{% else %}3{% endif %}
 url=http://{{ compute.network.host }}:{{ compute.network.port }}
+region_name= {{ compute.network.region }}
 
 [cinder]
-os_region_name = RegionOne
+os_region_name = {{ compute.identity.region }}
diff --git a/nova/files/kilo/nova-controller.conf.Debian b/nova/files/kilo/nova-controller.conf.Debian
index 86dc405..864056c 100644
--- a/nova/files/kilo/nova-controller.conf.Debian
+++ b/nova/files/kilo/nova-controller.conf.Debian
@@ -22,6 +22,7 @@
 vif_plugging_timeout = 0
 cpu_allocation_ratio = {{ controller.cpu_allocation_ratio }}
 ram_allocation_ratio = {{ controller.ram_allocation_ratio }}
+disk_allocation_ratio = {{ controller.disk_allocation_ratio }}
 scheduler_default_filters = {{ controller.scheduler_default_filters }}
 
 allow_resize_to_same_host = True
@@ -55,10 +56,12 @@
 neutron_admin_password={{ pillar.neutron.server.identity.password }}
 neutron_admin_tenant_name={{ pillar.neutron.server.identity.tenant }}
 neutron_admin_username={{ pillar.neutron.server.identity.user }}
+neutron_region_name={{ pillar.neutron.server.identity.region }}
 {%- else %}
 neutron_admin_password={{ controller.network.password }}
 neutron_admin_tenant_name={{ controller.network.tenant }}
 neutron_admin_username={{ controller.network.user }}
+neutron_region_name={{ controller.network.region }}
 {%- endif %}
 neutron_url=http://{{ controller.network.host }}:{{ controller.network.port }}
 
@@ -81,7 +84,7 @@
 osapi_compute_listen={{ controller.bind.private_address }}
 metadata_listen={{ controller.bind.private_address }}
 glance_host = {{ controller.glance.host }}
-osapi_compute_workers=8
+osapi_compute_workers = {{ controller.workers }}
 
 #NoVNC
 vnc_enabled=true
@@ -159,7 +162,7 @@
 {%- endif %}
 
 [conductor]
-workers = 8
+workers = {{ controller.workers }}
 
 [database]
 idle_timeout = 180
@@ -185,14 +188,16 @@
 admin_password={{ pillar.neutron.server.identity.password }}
 admin_tenant_name={{ pillar.neutron.server.identity.tenant }}
 admin_username={{ pillar.neutron.server.identity.user }}
+region_name= {{ pillar.neutron.server.identity.region }}
 {%- else %}
 admin_password={{ controller.network.password }}
 admin_tenant_name={{ controller.network.tenant }}
 admin_username={{ controller.network.user }}
+region_name= {{ controller.network.region }}
 {%- endif %}
 url=http://{{ controller.network.host }}:{{ controller.network.port }}
 
 service_metadata_proxy=True
 
 [cinder]
-os_region_name = RegionOne
+os_region_name = {{ controller.identity.region }}
diff --git a/nova/files/liberty/nova-compute.conf.Debian b/nova/files/liberty/nova-compute.conf.Debian
index bcd3251..0da4ace 100644
--- a/nova/files/liberty/nova-compute.conf.Debian
+++ b/nova/files/liberty/nova-compute.conf.Debian
@@ -36,6 +36,7 @@
 neutron_admin_tenant_name={{ compute.identity.tenant }}
 neutron_admin_auth_url=http://{{ compute.identity.host }}:{{ compute.identity.port }}/v{% if compute.identity.get('version', 2) == 2 %}2.0{% else %}3{% endif %}
 neutron_url=http://{{ compute.network.host }}:{{ compute.network.port }}
+neutron_region_name= {{ compute.network.region }}
 #neutron_url = http://10.0.102.35:9696/
 
 
@@ -159,6 +160,7 @@
 admin_tenant_name={{ compute.identity.tenant }}
 admin_auth_url=http://{{ compute.identity.host }}:{{ compute.identity.port }}/v{% if compute.identity.get('version', 2) == 2 %}2.0{% else %}3{% endif %}
 url=http://{{ compute.network.host }}:{{ compute.network.port }}
+region_name= {{ compute.network.region }}
 
 [cinder]
-os_region_name = RegionOne
+os_region_name = {{ compute.identity.region }}
diff --git a/nova/files/liberty/nova-controller.conf.Debian b/nova/files/liberty/nova-controller.conf.Debian
index 98c8c7a..0e2f237 100644
--- a/nova/files/liberty/nova-controller.conf.Debian
+++ b/nova/files/liberty/nova-controller.conf.Debian
@@ -21,6 +21,7 @@
 vif_plugging_timeout = 0
 cpu_allocation_ratio = {{ controller.cpu_allocation_ratio }}
 ram_allocation_ratio = {{ controller.ram_allocation_ratio }}
+disk_allocation_ratio = {{ controller.disk_allocation_ratio }}
 scheduler_default_filters = {{ controller.scheduler_default_filters }}
 
 allow_resize_to_same_host = True
@@ -54,10 +55,12 @@
 neutron_admin_password={{ pillar.neutron.server.identity.password }}
 neutron_admin_tenant_name={{ pillar.neutron.server.identity.tenant }}
 neutron_admin_username={{ pillar.neutron.server.identity.user }}
+neutron_region_name={{ pillar.neutron.server.identity.region }}
 {%- else %}
 neutron_admin_password={{ controller.network.password }}
 neutron_admin_tenant_name={{ controller.network.tenant }}
 neutron_admin_username={{ controller.network.user }}
+neutron_region_name={{ controller.network.region }}
 {%- endif %}
 neutron_url=http://{{ controller.network.host }}:{{ controller.network.port }}
 
@@ -80,7 +83,7 @@
 osapi_compute_listen={{ controller.bind.private_address }}
 metadata_listen={{ controller.bind.private_address }}
 glance_host = {{ controller.glance.host }}
-osapi_compute_workers=8
+osapi_compute_workers = {{ controller.workers }}
 
 #NoVNC
 vnc_enabled=true
@@ -158,7 +161,7 @@
 {%- endif %}
 
 [conductor]
-workers = 8
+workers = {{ controller.workers  }}
 
 [database]
 idle_timeout = 180
@@ -184,14 +187,16 @@
 admin_password={{ pillar.neutron.server.identity.password }}
 admin_tenant_name={{ pillar.neutron.server.identity.tenant }}
 admin_username={{ pillar.neutron.server.identity.user }}
+region_name= {{ pillar.neutron.server.identity.region }}
 {%- else %}
 admin_password={{ controller.network.password }}
 admin_tenant_name={{ controller.network.tenant }}
 admin_username={{ controller.network.user }}
+region_name= {{ controller.network.region }}
 {%- endif %}
 url=http://{{ controller.network.host }}:{{ controller.network.port }}
 
 service_metadata_proxy=True
 
 [cinder]
-os_region_name = RegionOne
+os_region_name = {{ controller.identity.region }}
diff --git a/nova/map.jinja b/nova/map.jinja
index 3d786a1..3c1aa98 100644
--- a/nova/map.jinja
+++ b/nova/map.jinja
@@ -27,6 +27,12 @@
         'libvirt_service': 'libvirt-bin',
         'bind': compute_bind_defaults,
         'debug': false,
+        'identity': {
+            'region': 'RegionOne'
+        },
+        'network': {
+            'region': 'RegionOne'
+        },
         'heal_instance_info_cache_interval': '60',
     },
     'RedHat': {
@@ -37,6 +43,12 @@
         'libvirt_service': 'libvirtd',
         'bind': compute_bind_defaults,
         'debug': false,
+        'identity': {
+            'region': 'RegionOne'
+        },
+        'network': {
+            'region': 'RegionOne'
+        },
         'heal_instance_info_cache_interval': '60',
     },
 }, merge=salt['pillar.get']('nova:compute')) %}
diff --git a/nova/meta/sphinx.yml b/nova/meta/sphinx.yml
index 29b6251..c4f67ed 100644
--- a/nova/meta/sphinx.yml
+++ b/nova/meta/sphinx.yml
@@ -81,11 +81,17 @@
           name: "Networking plugin"
           value: {{ controller.networking }}
         ram_allocation_ratio:
-          name: "RAM allocation ration"
+          name: "RAM allocation ratio"
           value: {{ controller.ram_allocation_ratio }}
         cpu_allocation_ratio:
-          name: "CPU allocation ration"
+          name: "CPU allocation ratio"
           value: {{ controller.cpu_allocation_ratio }}
+        disk_allocation_ratio:
+          name: "Disk allocation ratio"
+          value: {{ controller.disk_allocation_ratio }}
+        workers:
+          name: "Number of osapi and conductor workers"
+          value: {{ controller.workers }}
         dhcp_domain:
           name: "DHCP domain"
           value: {{ controller.dhcp_domain }}
diff --git a/other-requirements.txt b/other-requirements.txt
new file mode 100644
index 0000000..ba84cc5
--- /dev/null
+++ b/other-requirements.txt
@@ -0,0 +1 @@
+python-yaml
diff --git a/tests/pillar/compute_cluster.sls b/tests/pillar/compute_cluster.sls
index 6f03b6e..ea8289e 100644
--- a/tests/pillar/compute_cluster.sls
+++ b/tests/pillar/compute_cluster.sls
@@ -18,6 +18,7 @@
       password: password
     identity:
       engine: keystone
+      region: RegionOne
       host: 127.0.0.1
       port: 35357
       user: nova
@@ -36,6 +37,7 @@
       port: 9292
     network:
       engine: neutron
+      region: RegionOne
       host: 127.0.0.1
       port: 9696
     cache:
diff --git a/tests/pillar/compute_single.sls b/tests/pillar/compute_single.sls
index 036a140..fa22905 100644
--- a/tests/pillar/compute_single.sls
+++ b/tests/pillar/compute_single.sls
@@ -18,6 +18,7 @@
       password: password
     identity:
       engine: keystone
+      region: RegionOne
       host: 127.0.0.1
       port: 35357
       user: nova
@@ -36,6 +37,7 @@
       port: 9292
     network:
       engine: neutron
+      region: RegionOne
       host: 127.0.0.1
       port: 9696
     cache:
diff --git a/tests/pillar/control_cluster.sls b/tests/pillar/control_cluster.sls
index 158f565..5e33712 100644
--- a/tests/pillar/control_cluster.sls
+++ b/tests/pillar/control_cluster.sls
@@ -9,6 +9,8 @@
     scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter"
     cpu_allocation_ratio: 16.0
     ram_allocation_ratio: 1.5
+    disk_allocation_ratio: 1.0
+    workers: 8
     bind:
       private_address: 127.0.0.1
       public_address: 127.0.0.1
@@ -23,6 +25,7 @@
       password: password
     identity:
       engine: keystone
+      region: RegionOne
       host: 127.0.0.1
       port: 35357
       user: nova
@@ -41,6 +44,7 @@
       port: 9292
     network:
       engine: neutron
+      region: RegionOne
       host: 127.0.0.1
       port: 9696
       mtu: 1500
diff --git a/tests/pillar/control_single.sls b/tests/pillar/control_single.sls
index 68c77b2..8a06a7d 100644
--- a/tests/pillar/control_single.sls
+++ b/tests/pillar/control_single.sls
@@ -9,6 +9,8 @@
     scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter"
     cpu_allocation_ratio: 16.0
     ram_allocation_ratio: 1.5
+    disk_allocation_ratio: 1.0
+    workers: 8
     bind:
       private_address: 127.0.0.1
       public_address: 127.0.0.1
@@ -23,6 +25,7 @@
       password: password
     identity:
       engine: keystone
+      region: RegionOne
       host: 127.0.0.1
       port: 35357
       user: nova
@@ -40,6 +43,7 @@
       port: 9292
     network:
       engine: neutron
+      region: RegionOne
       host: 127.0.0.1
       port: 9696
       mtu: 1500