Ability to set lock_path

PROD-34037

Change-Id: I35fbd0acb5f5a09f2a8070ebe32c30e09fdac747
diff --git a/README.rst b/README.rst
index 07bd013..456fc74 100644
--- a/README.rst
+++ b/README.rst
@@ -32,6 +32,8 @@
             enabled: True
           qcow2:
             enabled: True
+        concurrency:
+          lock_path: '/var/lib/glance/tmp'
         policy:
           publicize_image:
             - "role:admin"
diff --git a/glance/files/pike/glance-api.conf.Debian b/glance/files/pike/glance-api.conf.Debian
index f610704..8689e9e 100644
--- a/glance/files/pike/glance-api.conf.Debian
+++ b/glance/files/pike/glance-api.conf.Debian
@@ -3511,6 +3511,7 @@
 # path must be set. (string value)
 # Deprecated group/name - [DEFAULT]/lock_path
 #lock_path = <None>
+lock_path = {{ server.get('concurrency', {}).get('lock_path', '/var/lib/glance/tmp') }}
 
 
 [oslo_messaging_amqp]
diff --git a/glance/files/pike/glance-scrubber.conf.Debian b/glance/files/pike/glance-scrubber.conf.Debian
index a406bc5..712e0d1 100644
--- a/glance/files/pike/glance-scrubber.conf.Debian
+++ b/glance/files/pike/glance-scrubber.conf.Debian
@@ -2445,6 +2445,7 @@
 # path must be set. (string value)
 # Deprecated group/name - [DEFAULT]/lock_path
 #lock_path = <None>
+lock_path = {{ server.get('concurrency', {}).get('lock_path', '/var/lib/glance/tmp') }}
 
 
 [oslo_policy]
diff --git a/glance/files/queens/glance-scrubber.conf.Debian b/glance/files/queens/glance-scrubber.conf.Debian
index c91d385..30b5154 100644
--- a/glance/files/queens/glance-scrubber.conf.Debian
+++ b/glance/files/queens/glance-scrubber.conf.Debian
@@ -2264,7 +2264,7 @@
 
 [oslo_concurrency]
 {%- if server.concurrency is defined %}
-{%- set _data = server.oslo_policy %}
+{%- set _data = server.concurrency %}
 {%- include "oslo_templates/files/queens/oslo/_concurrency.conf" %}
 {%- endif %}
 
diff --git a/glance/server.sls b/glance/server.sls
index cb2de00..2b84c9e 100644
--- a/glance/server.sls
+++ b/glance/server.sls
@@ -89,6 +89,20 @@
   - require_in:
     - sls: glance.db.offline_sync
 
+{%- if server.get('concurrency', {}).lock_path is defined %}
+glance_lock_path_{{ server.concurrency.lock_path }}:
+  file.directory:
+  - name: {{ server.concurrency.lock_path }}
+  - user: glance
+  - group: glance
+  - mode: 750
+  - makedirs: True
+  - require:
+    - pkg: glance_packages
+  - require_in:
+    - service: glance_services
+{%- endif %}
+
 {%- if server.show_multiple_locations is defined %}
 horizon_images_allow_location:
   module.run:
diff --git a/glance/upgrade/render_config.sls b/glance/upgrade/render_config.sls
index b63a913..5662c2e 100644
--- a/glance/upgrade/render_config.sls
+++ b/glance/upgrade/render_config.sls
@@ -15,3 +15,13 @@
   - source: salt://glance/files/{{ server.version }}/glance-registry.conf.{{ grains.os_family }}
   - template: jinja
 {%- endif %}
+
+{%- if server.get('concurrency', {}).lock_path is defined %}
+glance_upgrade_lock_path_{{ server.concurrency.lock_path }}:
+  file.directory:
+  - name: {{ server.concurrency.lock_path }}
+  - user: glance
+  - group: glance
+  - mode: 750
+  - makedirs: True
+{%- endif %}
diff --git a/metadata/service/control/cluster.yml b/metadata/service/control/cluster.yml
index 561dc31..cc20935 100644
--- a/metadata/service/control/cluster.yml
+++ b/metadata/service/control/cluster.yml
@@ -14,6 +14,8 @@
       enabled: true
       version: ${_param:glance_version}
       workers: 8
+      concurrency:
+        lock_path: '/var/lib/glance/tmp'
       database:
         engine: mysql
         host: ${_param:cluster_vip_address}
diff --git a/metadata/service/control/single.yml b/metadata/service/control/single.yml
index 0987a6f..b625557 100644
--- a/metadata/service/control/single.yml
+++ b/metadata/service/control/single.yml
@@ -14,6 +14,8 @@
       enabled: true
       version: ${_param:glance_version}
       workers: 1
+      concurrency:
+        lock_path: '/var/lib/glance/tmp'
       database:
         engine: mysql
         host: localhost