From 57124620ab633216bb2110670f3b4284ab945cba Mon Sep 17 00:00:00 2001 From: SamYaple Date: Tue, 1 Mar 2016 14:38:47 +0000 Subject: Fix Keystone v3 and Horizon After our switch to keystone-manage bootstrap Horizon is not happy due to v3 not being setup correctly. This patch fixes that This also includes removal of unused variables (transforms them into endpoint url variables) TrivialFix Change-Id: I1e04db8c24049f80e974c063f03068a2ab32a563 --- docker/keystone/keystone_bootstrap.sh | 2 +- docker/kolla-toolbox/Dockerfile.j2 | 3 ++- docker/kolla-toolbox/kolla_keystone_service.py | 20 +++++++++----------- docker/kolla-toolbox/kolla_keystone_user.py | 14 +++++++------- 4 files changed, 19 insertions(+), 20 deletions(-) (limited to 'docker') diff --git a/docker/keystone/keystone_bootstrap.sh b/docker/keystone/keystone_bootstrap.sh index 9702f0288..2d6d63ee5 100644 --- a/docker/keystone/keystone_bootstrap.sh +++ b/docker/keystone/keystone_bootstrap.sh @@ -17,7 +17,7 @@ REGION=$8 function get_token { unset OS_TOKEN OS_URL OS_TOKEN=$(openstack --os-identity-api-version 3 --os-username "${USERNAME}" --os-password "${PASSWORD}" --os-project-name "${PROJECT}" --os-auth-url "${ADMIN_URL}" token issue 2>&1 | awk '/ id / {print $4}') - OS_URL="${ADMIN_URL}/v3" + OS_URL="${ADMIN_URL}" } function fail_json { diff --git a/docker/kolla-toolbox/Dockerfile.j2 b/docker/kolla-toolbox/Dockerfile.j2 index 3a6c5a6a4..d41fe1b1c 100644 --- a/docker/kolla-toolbox/Dockerfile.j2 +++ b/docker/kolla-toolbox/Dockerfile.j2 @@ -48,7 +48,8 @@ RUN git clone https://github.com/ansible/ansible.git \ RUN mkdir -p /etc/ansible /usr/share/ansible /home/ansible \ && echo 'localhost ansible_connection=local' > /etc/ansible/hosts \ - && useradd --user-group ansible --groups kolla + && useradd --user-group ansible --groups kolla \ + && sed -i 's| "identity_api_version": "2.0",| "identity_api_version": "3",|' /usr/lib/python2.7/site-packages/os_client_config/defaults.json COPY find_disks.py kolla_keystone_service.py kolla_keystone_user.py kolla_sanity.py kolla_zookeeper.py /usr/share/ansible/ COPY ansible.cfg /home/ansible/.ansible.cfg diff --git a/docker/kolla-toolbox/kolla_keystone_service.py b/docker/kolla-toolbox/kolla_keystone_service.py index 3551c2b99..6363042f7 100644 --- a/docker/kolla-toolbox/kolla_keystone_service.py +++ b/docker/kolla-toolbox/kolla_keystone_service.py @@ -30,9 +30,8 @@ def main(): description=dict(required=True, type='str'), service_name=dict(required=True, type='str'), service_type=dict(required=True, type='str'), - admin_url=dict(required=True, type='str'), - internal_url=dict(required=True, type='str'), - public_url=dict(required=True, type='str'), + url=dict(required=True, type='str'), + interface=dict(required=True, type='str'), endpoint_region=dict(required=True, type='str') ) module = AnsibleModule(argument_spec) @@ -41,9 +40,8 @@ def main(): description = module.params.pop('description') service_name = module.params.pop('service_name') service_type = module.params.pop('service_type') - admin_url = module.params.pop('admin_url') - internal_url = module.params.pop('internal_url') - public_url = module.params.pop('public_url') + url = module.params.pop('url') + interface = module.params.pop('interface') endpoint_region = module.params.pop('endpoint_region') changed = False @@ -61,7 +59,8 @@ def main(): if service is not None: for _endpoint in cloud.keystone_client.endpoints.list(): - if _endpoint.service_id == service.id: + if _endpoint.service_id == service.id and \ + _endpoint.interface == interface: endpoint = _endpoint else: service = cloud.keystone_client.services.create( @@ -72,10 +71,9 @@ def main(): if endpoint is None: changed = True cloud.keystone_client.endpoints.create( - service_id=service.id, - adminurl=admin_url, - internalurl=internal_url, - publicurl=public_url, + service=service.id, + url=url, + interface=interface, region=endpoint_region) module.exit_json(changed=changed) diff --git a/docker/kolla-toolbox/kolla_keystone_user.py b/docker/kolla-toolbox/kolla_keystone_user.py index 7688e1bd3..f1d7b2bb8 100644 --- a/docker/kolla-toolbox/kolla_keystone_user.py +++ b/docker/kolla-toolbox/kolla_keystone_user.py @@ -50,7 +50,7 @@ def main(): module.params['auth'].replace("'", '"')) cloud = shade.operator_cloud(**module.params) - for _project in cloud.keystone_client.tenants.list(): + for _project in cloud.keystone_client.projects.list(): if _project.name == project_name: project = _project @@ -64,8 +64,8 @@ def main(): if not project: changed = True - project = cloud.keystone_client.tenants.create( - tenant_name=project_name) + project = cloud.keystone_client.projects.create( + name=project_name, domain='default') if not role: changed = True @@ -75,10 +75,10 @@ def main(): changed = True user = cloud.keystone_client.users.create(name=user_name, password=password, - tenant_id=project.id) - cloud.keystone_client.roles.add_user_role(role=role.id, - user=user.id, - tenant=project.id) + project=project) + cloud.keystone_client.roles.grant(role=role, + user=user, + project=project) module.exit_json(changed=changed) except Exception as e: -- cgit v1.2.3