From b14f1c569540b85db854a50a5e76d62009e4e14e Mon Sep 17 00:00:00 2001
From: Eduardo Gonzalez <dabarren@gmail.com>
Date: Tue, 28 Feb 2017 15:36:27 +0000
Subject: [PATCH] Use versionless keystone endpoints

nova quota fail to create due a recent change.
Keystone endpoint cannot have version v3 in the url.

During upgrade to Pike nova endpoint must be changed
to be versionless.

Change-Id: Idb433d526f7d44dfe4fd02ee918bd67e05c523f6
Depends-On: I568db4559428525ac6c5083cfc20cffc20be6342
Closes-Bug: #1668663
---
 ansible/group_vars/all.yml                    |  6 +++---
 .../roles/keystone/tasks/update_endpoints.yml | 21 +++++++++++++++++++
 ansible/roles/keystone/tasks/upgrade.yml      |  3 +++
 3 files changed, 27 insertions(+), 3 deletions(-)
 create mode 100644 ansible/roles/keystone/tasks/update_endpoints.yml

diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index b126f3ba21..eefaaba697 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -411,9 +411,9 @@ kibana_user: "kibana"
 ####################
 # Keystone options
 ####################
-keystone_admin_url: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_admin_port }}/v3"
-keystone_internal_url: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_public_port }}/v3"
-keystone_public_url: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ keystone_public_port }}/v3"
+keystone_admin_url: "{{ admin_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_admin_port }}"
+keystone_internal_url: "{{ internal_protocol }}://{{ kolla_internal_fqdn }}:{{ keystone_public_port }}"
+keystone_public_url: "{{ public_protocol }}://{{ kolla_external_fqdn }}:{{ keystone_public_port }}"
 
 # Valid options are [ uuid, fernet ]
 keystone_token_provider: "uuid"
diff --git a/ansible/roles/keystone/tasks/update_endpoints.yml b/ansible/roles/keystone/tasks/update_endpoints.yml
new file mode 100644
index 0000000000..7cf9466ae0
--- /dev/null
+++ b/ansible/roles/keystone/tasks/update_endpoints.yml
@@ -0,0 +1,21 @@
+---
+- name: Updating keystone endpoints
+  kolla_toolbox:
+    module_name: "kolla_keystone_service"
+    module_args:
+      service_name: "keystone"
+      service_type: "identity"
+      description: "Identity Service"
+      endpoint_region: "{{ openstack_region_name }}"
+      url: "{{ item.url }}"
+      interface: "{{ item.interface }}"
+      region_name: "{{ openstack_region_name }}"
+      auth: "{{ '{{ openstack_keystone_auth }}' }}"
+    module_extra_vars:
+      openstack_keystone_auth: "{{ openstack_keystone_auth }}"
+  run_once: True
+  register: update
+  with_items:
+    - {'interface': 'admin', 'url': '{{ keystone_admin_url }}'}
+    - {'interface': 'internal', 'url': '{{ keystone_internal_url }}'}
+    - {'interface': 'public', 'url': '{{ keystone_public_url }}'}
diff --git a/ansible/roles/keystone/tasks/upgrade.yml b/ansible/roles/keystone/tasks/upgrade.yml
index c38db1adf4..64066f97f5 100644
--- a/ansible/roles/keystone/tasks/upgrade.yml
+++ b/ansible/roles/keystone/tasks/upgrade.yml
@@ -5,3 +5,6 @@
 
 - name: Flush handlers
   meta: flush_handlers
+
+#NOTE(egonzalez): Remove after Pike is released
+- include: update_endpoints.yml