summaryrefslogtreecommitdiffstats
path: root/meta-openstack/recipes-devtools
diff options
context:
space:
mode:
authorAmy Fong <amy.fong@windriver.com>2014-07-23 12:21:00 -0400
committerBruce Ashfield <bruce.ashfield@windriver.com>2014-07-30 00:50:59 -0400
commitc9e43b535ca44d06fcd57c9c670af6da59d0edb3 (patch)
treef6ffe0812e5b4d0a45eccc22b1d87c8caf04f165 /meta-openstack/recipes-devtools
parent2075b299cfd9b8d7860eef1d4d20cc46c73d49bc (diff)
downloadmeta-cloud-services-c9e43b535ca44d06fcd57c9c670af6da59d0edb3.tar.gz
keystone: Add script to change backend to hybrid
Adding /etc/keystone/hybrid-backend-setup and convert_keystone_backend.py to set the backend for keystone to hybrid and starts openldap and restarts keystone. Signed-off-by: Amy Fong <amy.fong@windriver.com>
Diffstat (limited to 'meta-openstack/recipes-devtools')
-rwxr-xr-xmeta-openstack/recipes-devtools/python/python-keystone/convert_keystone_backend.py43
-rwxr-xr-xmeta-openstack/recipes-devtools/python/python-keystone/hybrid-backend-setup6
-rw-r--r--meta-openstack/recipes-devtools/python/python-keystone/keystone2
-rw-r--r--meta-openstack/recipes-devtools/python/python-keystone_git.bb15
4 files changed, 56 insertions, 10 deletions
diff --git a/meta-openstack/recipes-devtools/python/python-keystone/convert_keystone_backend.py b/meta-openstack/recipes-devtools/python/python-keystone/convert_keystone_backend.py
new file mode 100755
index 0000000..eebd59d
--- /dev/null
+++ b/meta-openstack/recipes-devtools/python/python-keystone/convert_keystone_backend.py
@@ -0,0 +1,43 @@
1#!/usr/bin/python
2
3import sys
4import ConfigParser
5import shutil
6
7path = "/etc/keystone/keystone.conf"
8
9if len(sys.argv) != 2:
10 sys.stderr.write("Usage: "+sys.argv[0]+" [sql|hybrid]\n")
11 sys.exit(1)
12
13backend = sys.argv[1]
14if backend == "hybrid":
15 identity_backend = 'keystone.identity.backends.hybrid_identity.Identity'
16 assignment_backend = 'keystone.assignment.backends.hybrid_assignment.Assignment'
17elif backend == "sql":
18 identity_backend = 'keystone.identity.backends.sql.Identity'
19 assignment_backend = 'keystone.assignment.backends.sql.Assignment'
20else:
21 sys.stderr.write("Usage: "+sys.argv[0]+" [sql|hybrid]\n")
22 sys.exit(1)
23
24shutil.copyfile(path, path + ".bak")
25
26cfg = ConfigParser.ConfigParser()
27c = cfg.read(path)
28
29if not cfg.has_section("identity"):
30 cfg.add_section("identity")
31
32cfg.set("identity", "driver", identity_backend)
33
34if not cfg.has_section("assignment"):
35 cfg.add_section("assignment")
36
37cfg.set("assignment", "driver", assignment_backend)
38
39fp = open(path, "w")
40cfg.write(fp)
41fp.close()
42
43exit(0)
diff --git a/meta-openstack/recipes-devtools/python/python-keystone/hybrid-backend-setup b/meta-openstack/recipes-devtools/python/python-keystone/hybrid-backend-setup
new file mode 100755
index 0000000..d3f7eac
--- /dev/null
+++ b/meta-openstack/recipes-devtools/python/python-keystone/hybrid-backend-setup
@@ -0,0 +1,6 @@
1#!/bin/sh
2
3/etc/keystone/convert_keystone_backend.py hybrid
4
5/etc/init.d/openldap start
6/etc/init.d/keystone restart
diff --git a/meta-openstack/recipes-devtools/python/python-keystone/keystone b/meta-openstack/recipes-devtools/python/python-keystone/keystone
index 6524fed..8953da8 100644
--- a/meta-openstack/recipes-devtools/python/python-keystone/keystone
+++ b/meta-openstack/recipes-devtools/python/python-keystone/keystone
@@ -98,7 +98,7 @@ reset()
98 ADMIN_PASSWORD=%ADMIN_PASSWORD% \ 98 ADMIN_PASSWORD=%ADMIN_PASSWORD% \
99 SERVICE_PASSWORD=%SERVICE_PASSWORD% \ 99 SERVICE_PASSWORD=%SERVICE_PASSWORD% \
100 SERVICE_TENANT_NAME=%SERVICE_TENANT_NAME% \ 100 SERVICE_TENANT_NAME=%SERVICE_TENANT_NAME% \
101 bash /etc/keystone/identity.sh 101 bash /etc/keystone/service-user-setup
102} 102}
103 103
104case "$1" in 104case "$1" in
diff --git a/meta-openstack/recipes-devtools/python/python-keystone_git.bb b/meta-openstack/recipes-devtools/python/python-keystone_git.bb
index 5eef096..7ce2548 100644
--- a/meta-openstack/recipes-devtools/python/python-keystone_git.bb
+++ b/meta-openstack/recipes-devtools/python/python-keystone_git.bb
@@ -4,7 +4,7 @@ SECTION = "devel/python"
4LICENSE = "Apache-2.0" 4LICENSE = "Apache-2.0"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2" 5LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
6 6
7PR = "r0" 7PR = "r1"
8SRCNAME = "keystone" 8SRCNAME = "keystone"
9 9
10SRC_URI = "git://github.com/openstack/${SRCNAME}.git;branch=master \ 10SRC_URI = "git://github.com/openstack/${SRCNAME}.git;branch=master \
@@ -14,6 +14,8 @@ SRC_URI = "git://github.com/openstack/${SRCNAME}.git;branch=master \
14 file://openrc \ 14 file://openrc \
15 file://keystone-search-in-etc-directory-for-config-files.patch \ 15 file://keystone-search-in-etc-directory-for-config-files.patch \
16 file://keystone-remove-git-commands-in-tests.patch \ 16 file://keystone-remove-git-commands-in-tests.patch \
17 file://hybrid-backend-setup \
18 file://convert_keystone_backend.py \
17 " 19 "
18 20
19SRCREV="1070afe2cb8707ad28d43c4ea76116a941cf2131" 21SRCREV="1070afe2cb8707ad28d43c4ea76116a941cf2131"
@@ -74,14 +76,6 @@ do_install_append() {
74 sed -e "s/%SERVICE_TENANT_NAME%/${SERVICE_TENANT_NAME}/g" -i ${D}${sysconfdir}/init.d/keystone 76 sed -e "s/%SERVICE_TENANT_NAME%/${SERVICE_TENANT_NAME}/g" -i ${D}${sysconfdir}/init.d/keystone
75 77
76 if ${@base_contains('DISTRO_FEATURES', 'OpenLDAP', 'true', 'false', d)}; then 78 if ${@base_contains('DISTRO_FEATURES', 'OpenLDAP', 'true', 'false', d)}; then
77 sed -i -e '/^\[identity\]/a \
78# Uncomment the following lines to enable the hybrid backend \
79# driver = keystone.identity.backends.hybrid_identity.Identity \
80#\
81# [assignment] \
82# driver = keystone.assignment.backends.hybrid_assignment.Assignment \
83' ${D}/etc/keystone/keystone.conf
84
85 sed -i -e '/^\[ldap\]/a \ 79 sed -i -e '/^\[ldap\]/a \
86url = ldap://localhost \ 80url = ldap://localhost \
87user = cn=Manager,${LDAP_DN} \ 81user = cn=Manager,${LDAP_DN} \
@@ -112,6 +106,9 @@ role_id_attribute = cn \
112role_name_attribute = ou \ 106role_name_attribute = ou \
113role_tree_dn = ou=Roles,${LDAP_DN} \ 107role_tree_dn = ou=Roles,${LDAP_DN} \
114' ${D}/etc/keystone/keystone.conf 108' ${D}/etc/keystone/keystone.conf
109
110 install -m 0755 ${WORKDIR}/hybrid-backend-setup ${D}${sysconfdir}/keystone/hybrid-backend-setup
111 install -m 0755 ${WORKDIR}/convert_keystone_backend.py ${D}${sysconfdir}/keystone/convert_keystone_backend.py
115 fi 112 fi
116} 113}
117 114