[openstack-keystone/el6: 14/14] Merge branch 'master' into el6

Alan Pevec apevec at fedoraproject.org
Thu Mar 1 22:54:14 UTC 2012


commit 80bca8993bf1d657978a006aba47380e3def24ef
Merge: fd1e19a c184bf1
Author: Alan Pevec <apevec at redhat.com>
Date:   Thu Mar 1 22:57:50 2012 +0100

    Merge branch 'master' into el6

 .gitignore                                         |    4 +-
 openstack-config-set                               |   22 ++
 openstack-keystone-db-setup                        |  249 ++++++++++++++++++++
 openstack-keystone-docmod.patch                    |   22 --
 openstack-keystone-newdeps.patch                   |   14 +-
 openstack-keystone-nonet.patch                     |   12 -
 openstack-keystone.init                            |    2 +-
 openstack-keystone.spec                            |  162 +++++++------
 ....sh-check-file-paths-for-packaged-install.patch |   73 ++++++
 sources                                            |    2 +-
 10 files changed, 441 insertions(+), 121 deletions(-)
---
diff --cc openstack-keystone-db-setup
index 0000000,4c95a3a..094e012
mode 000000,100755..100755
--- a/openstack-keystone-db-setup
+++ b/openstack-keystone-db-setup
@@@ -1,0 -1,249 +1,249 @@@
+ #!/bin/bash
+ #
+ # Copyright (C) 2011, Red Hat, Inc.
+ # Russell Bryant <rbryant at redhat.com>
+ # Alan Pevec <apevec at redhat.com>
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may
+ # not use this file except in compliance with the License. You may obtain
+ # a copy of the License at
+ #
+ #      http://www.apache.org/licenses/LICENSE-2.0
+ #
+ # Unless required by applicable law or agreed to in writing, software
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ # License for the specific language governing permissions and limitations
+ # under the License.
+ #
+ 
+ #
+ # Print --help output and exit.
+ #
+ 
+ # TODO put it in common place for all openstack service
+ #      (nova, glance and keystone) to use
+ APP=keystone
+ 
+ usage() {
+ 
+ cat << EOF
+ Set up a local MySQL database for use with openstack-$APP.
+ This script will create a '$APP' database that is accessible
+ only on localhost by user '$APP' with password '$APP'.
+ The setup of MySQL with a multi-server OpenStack installation
+ is outside of the scope of this simple helper script.
+ 
+ Usage: openstack-$APP-db-setup [options]
+ Options:
+ 	--help        | -h
+ 		Print usage information.
+ 	--password <pw> | -p <pw>
+ 		Specify the password for the '$APP' MySQL user that $APP will
+ 		use to connect to the '$APP' MySQL database.  By default,
+ 		the password '$APP' will be used.
+ 	--rootpw <pw> | -r <pw>
+ 		Specify the root MySQL password.  If the script installs
+ 		the MySQL server, it will set the root password to this value
+ 		instead of prompting for a password.  If the MySQL server is
+ 		already installed, this password will be used to connect to the
+ 		database instead of having to prompt for it.
+ 	--yes         | -y
+ 		In cases where the script would normally ask for confirmation
+ 		before doing something, such as installing mysql-server,
+ 		just assume yes.  This is useful if you want to run the script
+ 		non-interactively.
+ EOF
+ 
+ 	exit 0
+ }
+ 
+ install_mysql_server() {
+ 	if [ -z "${ASSUME_YES}" ] ; then
+ 		yum install mysql-server
+ 	else
+ 		yum install -y mysql-server
+ 	fi
+ }
+ 
+ start_mysql_server() {
 -	systemctl start mysqld.service
++	service mysqld start
+ }
+ 
+ MYSQL_APP_PW_DEFAULT="$APP"
+ MYSQL_APP_PW=${MYSQL_APP_PW_DEFAULT}
+ APP_CONFIG="/etc/$APP/$APP.conf"
+ ASSUME_YES=""
+ 
+ while [ $# -gt 0 ]
+ do
+ 	case "$1" in
+ 		-h|--help)
+ 			usage
+ 			;;
+ 		-p|--password)
+ 			shift
+ 			MYSQL_APP_PW=${1}
+ 			;;
+ 		-r|--rootpw)
+ 			shift
+ 			MYSQL_ROOT_PW=${1}
+ 			;;
+ 		-y|--yes)
+ 			ASSUME_YES="yes"
+ 			;;
+ 		*)
+ 			# ignore
+ 			shift
+ 			;;
+ 	esac
+ 	shift
+ done
+ 
+ 
+ # Make sure MySQL is installed.
+ 
+ NEW_MYSQL_INSTALL=0
+ if ! rpm -q mysql-server > /dev/null
+ then
+ 	if [ -z "${ASSUME_YES}" ] ; then
+ 		printf "mysql-server is not installed.  Would you like to install it now? (y/n): "
+ 		read response
+ 		case "$response" in
+ 			y|Y)
+ 				;;
+ 			n|N)
+ 				echo "mysql-server must be installed.  Please install it before proceeding."
+ 				exit 0
+ 				;;
+ 			*)
+ 				echo "Invalid response."
+ 				exit 1
+ 		esac
+ 	fi
+ 
+ 	NEW_MYSQL_INSTALL=1
+ 	install_mysql_server
+ fi
+ 
+ 
+ # Make sure mysqld is running.
+ 
 -if ! systemctl status mysqld.service > /dev/null
++if ! service mysqld status > /dev/null
+ then
+ 	if [ -z "${ASSUME_YES}" ] ; then
+ 		printf "mysqld is not running.  Would you like to start it now? (y/n): "
+ 		read response
+ 		case "$response" in
+ 			y|Y)
+ 				;;
+ 			n|N)
+ 				echo "mysqld must be running.  Please start it before proceeding."
+ 				exit 0
+ 				;;
+ 			*)
+ 				echo "Invalid response."
+ 				exit 1
+ 		esac
+ 	fi
+ 
+ 	start_mysql_server
+ 
+ 	# If we both installed and started, ensure it starts at boot
+ 	[ $NEW_MYSQL_INSTALL -eq 1 ] && chkconfig mysqld on
+ fi
+ 
+ 
+ # Get MySQL root access.
+ 
+ if [ $NEW_MYSQL_INSTALL -eq 1 ]
+ then
+ 	if [ ! "${MYSQL_ROOT_PW+defined}" ] ; then
+ 		echo "Since this is a fresh installation of MySQL, please set a password for the 'root' mysql user."
+ 
+ 		PW_MATCH=0
+ 		while [ $PW_MATCH -eq 0 ]
+ 		do
+ 			printf "Enter new password for 'root' mysql user: "
+ 			read -s MYSQL_ROOT_PW
+ 			echo
+ 			printf "Enter new password again: "
+ 			read -s PW2
+ 			echo
+ 			if [ "${MYSQL_ROOT_PW}" = "${PW2}" ] ; then
+ 				PW_MATCH=1
+ 			else
+ 				echo "Passwords did not match."
+ 			fi
+ 		done
+ 	fi
+ 
+ 	echo "UPDATE mysql.user SET password = password('${MYSQL_ROOT_PW}') WHERE user = 'root'; DELETE FROM mysql.user WHERE user = ''; flush privileges;" | mysql -u root
+ 	if ! [ $? -eq 0 ] ; then
+ 		echo "Failed to set password for 'root' MySQL user."
+ 		exit 1
+ 	fi
+ elif [ ! "${MYSQL_ROOT_PW+defined}" ] ; then
+ 	printf "Please enter the password for the 'root' MySQL user: "
+ 	read -s MYSQL_ROOT_PW
+ 	echo
+ fi
+ 
+ 
+ # Sanity check MySQL credentials.
+ 
+ MYSQL_ROOT_PW_ARG=""
+ if [ "${MYSQL_ROOT_PW+defined}" ]
+ then
+ 	MYSQL_ROOT_PW_ARG="--password=${MYSQL_ROOT_PW}"
+ fi
+ echo "SELECT 1;" | mysql -u root ${MYSQL_ROOT_PW_ARG} > /dev/null
+ if ! [ $? -eq 0 ]
+ then
+ 	echo "Failed to connect to the MySQL server.  Please check your root user credentials."
+ 	exit 1
+ fi
+ echo "Verified connectivity to MySQL."
+ 
+ 
+ # Now create the db.
+ 
+ echo "Creating '$APP' database."
+ cat << EOF | mysql -u root ${MYSQL_ROOT_PW_ARG}
+ CREATE DATABASE $APP;
+ CREATE USER '$APP'@'localhost' IDENTIFIED BY '${MYSQL_APP_PW}';
+ CREATE USER '$APP'@'%' IDENTIFIED BY '${MYSQL_APP_PW}';
+ GRANT ALL ON $APP.* TO '$APP'@'localhost';
+ GRANT ALL ON $APP.* TO '$APP'@'%';
+ flush privileges;
+ EOF
+ 
+ 
+ # Make sure $APP configuration has the right MySQL password.
+ 
+ if [ "${MYSQL_APP_PW}" != "${MYSQL_APP_PW_DEFAULT}" ] ; then
+ 	echo "Updating '$APP' database password in ${APP_CONFIG}"
+ 	sed -i -e "s/mysql:\/\/$APP:\(.*\)@/mysql:\/\/$APP:${MYSQL_APP_PW}@/" ${APP_CONFIG}
+ fi
+ 
+ 
+ # Ask openstack-$APP to sync the db.
+ 
+ echo "Asking openstack-$APP to sync the databse."
+ if [ "${APP}" = "nova" ]; then
+ 	nova-manage db sync
+ else
+ 	# glance and keystone
+ 	$APP-manage db_sync
+ fi
+ 
+ # Do a final sanity check on the database.
+ 
+ echo "SELECT * FROM migrate_version;" | mysql -u $APP --password=${MYSQL_APP_PW} $APP > /dev/null
+ if ! [ $? -eq 0 ]
+ then
+ 	echo "Final sanity check failed.  File a bug report on bugzilla.redhat.com against the openstack-$APP package."
+ 	exit 1
+ fi
+ 
+ echo "Complete!"
diff --cc openstack-keystone-newdeps.patch
index 759d380,0000000..e352dc2
mode 100644,000000..100644
--- a/openstack-keystone-newdeps.patch
+++ b/openstack-keystone-newdeps.patch
@@@ -1,32 -1,0 +1,24 @@@
- --- keystone-2011.3.1/keystone/__init__.py.orig	2011-11-25 12:27:19.920880470 +0100
- +++ keystone-2011.3.1/keystone/__init__.py	2011-11-25 12:27:49.801976645 +0100
- @@ -12,6 +12,29 @@
-  # See the License for the specific language governing permissions and
-  # limitations under the License.
-  
++--- keystone-2012.1/keystone/__init__.py.newdeps	2012-02-29 11:16:06.000000000 +0100
+++++ keystone-2012.1/keystone/__init__.py	2012-03-01 22:42:08.546503618 +0100
++@@ -0,0 +1,21 @@
 ++import sys
 ++import pkg_resources
 ++
 ++# If there is a conflicting non egg module,
 ++# i.e. an older standard system module installed,
 ++# then replace it with this requirement
 ++def replace_dist(requirement):
 ++    try:
 ++        return pkg_resources.require(requirement)
 ++    except pkg_resources.VersionConflict:
 ++        e = sys.exc_info()[1]
 ++        dist=e.args[0]
 ++        req=e.args[1]
 ++        if dist.key == req.key and not dist.location.endswith('.egg'):
 ++            del pkg_resources.working_set.by_key[dist.key]
 ++            # We assume there is no need to adjust sys.path
 ++            # and the associated pkg_resources.working_set.entries
 ++            return pkg_resources.require(requirement)
 ++
 ++replace_dist("WebOb >= 1.0")
 ++replace_dist("SQLAlchemy >= 0.6.3")
- +
- +
-  import gettext
-  
-  
diff --cc openstack-keystone.init
index a6f5410,0000000..aff8c1f
mode 100755,000000..100755
--- a/openstack-keystone.init
+++ b/openstack-keystone.init
@@@ -1,94 -1,0 +1,94 @@@
 +#!/bin/sh
 +#
 +# keystone  OpenStack Identity Service
 +#
 +# chkconfig:   - 20 80
 +# description: keystone works provide apis to  \
 +#		* Authenticate users and provide a token \
 +#		* Validate tokens
 +### END INIT INFO
 +
 +. /etc/rc.d/init.d/functions
 +
 +prog=keystone
- exec="/usr/bin/$prog"
++exec="/usr/bin/$prog-all"
 +config="/etc/$prog/$prog.conf"
 +pidfile="/var/run/$prog/$prog.pid"
 +
 +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
 +
 +lockfile=/var/lock/subsys/$prog
 +
 +start() {
 +    [ -x $exec ] || exit 5
 +    [ -f $config ] || exit 6
 +    echo -n $"Starting $prog: "
 +    daemon --user keystone --pidfile $pidfile "$exec --config-file $config &>/dev/null & echo \$! > $pidfile"
 +    retval=$?
 +    echo
 +    [ $retval -eq 0 ] && touch $lockfile
 +    return $retval
 +}
 +
 +stop() {
 +    echo -n $"Stopping $prog: "
 +    killproc -p $pidfile $prog
 +    retval=$?
 +    echo
 +    [ $retval -eq 0 ] && rm -f $lockfile
 +    return $retval
 +}
 +
 +restart() {
 +    stop
 +    start
 +}
 +
 +reload() {
 +    restart
 +}
 +
 +force_reload() {
 +    restart
 +}
 +
 +rh_status() {
 +    status -p $pidfile $prog
 +}
 +
 +rh_status_q() {
 +    rh_status >/dev/null 2>&1
 +}
 +
 +
 +case "$1" in
 +    start)
 +        rh_status_q && exit 0
 +        $1
 +        ;;
 +    stop)
 +        rh_status_q || exit 0
 +        $1
 +        ;;
 +    restart)
 +        $1
 +        ;;
 +    reload)
 +        rh_status_q || exit 7
 +        $1
 +        ;;
 +    force-reload)
 +        force_reload
 +        ;;
 +    status)
 +        rh_status
 +        ;;
 +    condrestart|try-restart)
 +        rh_status_q || exit 0
 +        restart
 +        ;;
 +    *)
 +        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
 +        exit 2
 +esac
 +exit $?
diff --cc openstack-keystone.spec
index e9d1a90,40d65e2..40b0e34
--- a/openstack-keystone.spec
+++ b/openstack-keystone.spec
@@@ -14,21 -15,43 +15,46 @@@ Summary:        OpenStack Identity Serv
  
  License:        ASL 2.0
  URL:            http://keystone.openstack.org/
- Source0:        http://keystone.openstack.org/tarballs/keystone-%{version}%{snaptag}.tar.gz
+ Source0:        http://launchpad.net/keystone/%{release_name}/%{release_name}-%{milestone}/+download/keystone-%{version}~%{release_letter}%{milestone}.tar.gz
+ #Source0:        http://keystone.openstack.org/tarballs/keystone-%{version}%{snaptag}.tar.gz
  Source1:        openstack-keystone.logrotate
 -Source2:        openstack-keystone.service
 +Source2:        openstack-keystone.init
- Patch0:         openstack-keystone-newdeps.patch
- Patch1:         openstack-keystone-docmod.patch
- Patch2:         openstack-keystone-nonet.patch
+ Source3:        openstack-keystone-db-setup
+ Source4:        openstack-config-set
 -
++# EPEL6: use web1.0 and sqlalchemy0.7
++Patch0:       openstack-keystone-newdeps.patch
+ # upstream review: https://review.openstack.org/4658
+ Patch1:         sample_data.sh-check-file-paths-for-packaged-install.patch
  
  BuildArch:      noarch
  BuildRequires:  python2-devel
 -BuildRequires:  python-sphinx >= 1.1.2
 +BuildRequires:  python-sphinx10
 +BuildRequires:  python-sqlalchemy0.7
 +BuildRequires:  python-webob1.0
  BuildRequires:  python-iniparse
 -BuildRequires:  systemd-units
  
+ Requires:       python-keystone = %{version}-%{release}
+ 
 -Requires(post):   systemd-units
 -Requires(preun):  systemd-units
 -Requires(postun): systemd-units
++Requires(post):   chkconfig
++Requires(postun): initscripts
++Requires(preun):  chkconfig
++Requires(preun):  initscripts
+ Requires(pre):    shadow-utils
+ 
+ %description
+ Keystone is a Python implementation of the OpenStack
+ (http://www.openstack.org) identity service API.
  
+ This package contains the Keystone daemon.
+ 
+ %package -n       python-keystone
+ Summary:          Keystone Python libraries
+ Group:            Applications/System
+ # python-keystone added in 2012.1-0.2.e3
+ Conflicts:      openstack-keystone < 2012.1-0.2.e3
+ 
+ Requires:       python-crypto
+ Requires:       python-dateutil
  Requires:       python-eventlet
  Requires:       python-httplib2
  Requires:       python-ldap
@@@ -37,21 -61,14 +64,15 @@@ Requires:       python-migrat
  Requires:       python-paste
  Requires:       python-paste-deploy
  Requires:       python-paste-script
+ Requires:       python-prettytable
  Requires:       python-routes
 -Requires:       python-sqlalchemy
 -Requires:       python-webob
 +Requires:       python-sqlalchemy0.7
- Requires:       python-sqlite2
 +Requires:       python-webob1.0
  Requires:       python-passlib
 +Requires:       python-setuptools
+ Requires:       MySQL-python
  
- Requires(post):   chkconfig
- Requires(postun): initscripts
- Requires(preun):  chkconfig
- Requires(preun):  initscripts
- Requires(postun): python-iniparse
- Requires(pre):    shadow-utils
- 
- %description
+ %description -n   python-keystone
  Keystone is a Python implementation of the OpenStack
  (http://www.openstack.org) identity service API.
  
@@@ -68,49 -76,52 +80,52 @@@ This package contains the Keystone Pyth
  
  %prep
  %setup -q -n keystone-%{version}
 +%patch0 -p1 -b .newdeps
- %patch1 -p1 -b .docmod
- %patch2 -p1 -b .nonet
- 
- # log_file is ignored, use log_dir instead
- # https://bugs.launchpad.net/keystone/+bug/844959/comments/3
- python -c 'import iniparse
- conf=iniparse.ConfigParser()
- conf.read("etc/keystone.conf")
- if conf.has_option("DEFAULT", "log_file"):
-     conf.remove_option("DEFAULT", "log_file")
- conf.set("DEFAULT", "log_dir", "%{_localstatedir}/log/keystone")
- conf.set("keystone.backends.sqlalchemy", "sql_connection", "sqlite:///%{_sharedstatedir}/keystone/keystone.sqlite")
- fp=open("etc/keystone.conf","w")
- conf.write(fp)
- fp.close()'
+ %patch1 -p1
+ 
+ # change default configuration
+ %{SOURCE4} etc/keystone.conf DEFAULT log_file %{_localstatedir}/log/keystone/keystone.log
+ %{SOURCE4} etc/keystone.conf sql connection mysql://keystone:keystone@localhost/keystone
+ %{SOURCE4} etc/keystone.conf catalog template_file %{_sysconfdir}/keystone/default_catalog.templates
+ %{SOURCE4} etc/keystone.conf identity driver keystone.identity.backends.sql.Identity
+ %{SOURCE4} etc/keystone.conf token driver keystone.token.backends.sql.Token
+ %{SOURCE4} etc/keystone.conf ec2 driver keystone.contrib.ec2.backends.sql.Ec2
  
  find . \( -name .gitignore -o -name .placeholder \) -delete
  find keystone -name \*.py -exec sed -i '/\/usr\/bin\/env python/d' {} \;
  
 -
  %build
  %{__python} setup.py build
- find examples -type f -exec chmod 0664 \{\} \;
  
  %install
- %{__python} setup.py install -O1 --skip-build --root %{buildroot}
+ %{__python} setup.py install --skip-build --root %{buildroot}
+ 
+ # Delete tests
+ rm -fr %{buildroot}%{python_sitelib}/tests
+ rm -fr %{buildroot}%{python_sitelib}/run_tests.*
  
- install -p -D -m 644 etc/keystone.conf %{buildroot}%{_sysconfdir}/keystone/keystone.conf
+ install -d -m 755 %{buildroot}%{_sysconfdir}/keystone
+ install -p -D -m 640 etc/keystone.conf %{buildroot}%{_sysconfdir}/keystone/keystone.conf
+ install -p -D -m 640 etc/default_catalog.templates %{buildroot}%{_sysconfdir}/keystone/default_catalog.templates
  install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-keystone
 +install -p -D -m 755 %{SOURCE2} %{buildroot}%{_initrddir}/openstack-keystone
+ install -p -D -m 644 %{SOURCE2} %{buildroot}%{_unitdir}/openstack-keystone.service
+ # Install database setup helper script.
+ install -p -D -m 755 %{SOURCE3} %{buildroot}%{_bindir}/openstack-keystone-db-setup
+ # Install sample data script.
+ install -p -D -m 755 tools/sample_data.sh %{buildroot}%{_bindir}/openstack-keystone-sample-data
+ # Install configuration helper script.
+ install -p -D -m 755 %{SOURCE4} %{buildroot}%{_bindir}/openstack-config-set
+ 
  install -d -m 755 %{buildroot}%{_sharedstatedir}/keystone
  install -d -m 755 %{buildroot}%{_localstatedir}/log/keystone
 +install -d -m 755 %{buildroot}%{_localstatedir}/run/keystone
  
- rm -rf %{buildroot}%{python_sitelib}/tools
- rm -rf %{buildroot}%{python_sitelib}/examples
- rm -rf %{buildroot}%{python_sitelib}/doc
- 
  # docs generation requires everything to be installed first
  export PYTHONPATH="$( pwd ):$PYTHONPATH"
- make SPHINXBUILD=sphinx-1.0-build -C doc
 -pushd docs
 -make html
 -popd
++make SPHINXAPIDOC=echo SPHINXBUILD=sphinx-1.0-build -C docs html
  # Fix hidden-file-or-dir warnings
- rm -fr doc/build/html/.doctrees doc/build/html/.buildinfo
+ rm -fr docs/build/html/.doctrees docs/build/html/.buildinfo
  
  %pre
  getent group keystone >/dev/null || groupadd -r keystone
@@@ -145,46 -147,69 +160,51 @@@ f
  /bin/systemctl daemon-reload >/dev/null 2>&1 || :
  if [ $1 -ge 1 ] ; then
      # Package upgrade, not uninstall
-     # fix conf for LP844959
-     python -c 'import iniparse
- conf_file="%{_sysconfdir}/keystone/keystone.conf"
- conf=iniparse.ConfigParser()
- conf.read(conf_file)
- if not conf.has_option("DEFAULT", "log_dir"):
-     conf.set("DEFAULT", "log_dir", "%{_localstatedir}/log/keystone")
-     fp=open(conf_file,"w")
-     conf.write(fp)
-     fp.close()'
 +%if 0%{?fedora} >= 15
      /bin/systemctl try-restart openstack-keystone.service >/dev/null 2>&1 || :
 +%else
 +    /sbin/service openstack-keystone condrestart >/dev/null 2>&1 || :
 +%endif
  fi
  
  %files
- %doc README.md
  %doc LICENSE
- %doc doc/build/html
- %doc examples
- %{python_sitelib}/*
- %{_bindir}/keystone*
+ %doc README.rst
+ %doc docs/build/html
+ %{_bindir}/keystone-all
+ %{_bindir}/keystone-manage
+ %{_bindir}/openstack-config-set
+ %{_bindir}/openstack-keystone-db-setup
+ %{_bindir}/openstack-keystone-sample-data
 -%{_unitdir}/openstack-keystone.service
 +%{_initrddir}/openstack-keystone
  %dir %{_sysconfdir}/keystone
- %config(noreplace) %{_sysconfdir}/keystone/keystone.conf
+ %config(noreplace) %attr(-, keystone, keystone) %{_sysconfdir}/keystone/keystone.conf
+ %config(noreplace) %attr(-, keystone, keystone) %{_sysconfdir}/keystone/default_catalog.templates
  %config(noreplace) %{_sysconfdir}/logrotate.d/openstack-keystone
  %dir %attr(-, keystone, keystone) %{_sharedstatedir}/keystone
  %dir %attr(-, keystone, keystone) %{_localstatedir}/log/keystone
 +%dir %attr(-, keystone, keystone) %{_localstatedir}/run/keystone
  
+ %files -n python-keystone
+ %defattr(-,root,root,-)
+ %doc LICENSE
+ %{python_sitelib}/keystone
+ %{python_sitelib}/keystone-%{version}-*.egg-info
+ 
  %changelog
+ * Thu Mar 01 2012 Alan Pevec <apevec at redhat.com> 2012.1-0.9.e4
+ - essex-4 milestone
 -
 -* Sat Feb 25 2012 Alan Pevec <apevec at redhat.com> 2012.1-0.8.e4
+ - change default database to mysql
 -
 -* Tue Feb 21 2012 Alan Pevec <apevec at redhat.com> 2012.1-0.7.e4
+ - switch all backends to sql
 -
 -* Mon Feb 20 2012 Alan Pevec <apevec at redhat.com> 2012.1-0.6.e4
 -- add missing default_catalog.templates
 -
 -* Mon Feb 20 2012 Alan Pevec <apevec at redhat.com> 2012.1-0.5.e4
 -- pre essex-4 snapshot, for keystone rebase
 -
 -* Mon Feb 13 2012 Alan Pevec <apevec at redhat.com> 2012.1-0.4.e3
 -- fix deps rhbz#787072
 -- keystone is not hashing passwords lp#924391
 -- Fix "KeyError: 'service-header-mappings'" lp#925872
 -
 -* Wed Feb  8 2012 Toshio Kuratomi <toshio at fedoraproject.org> - 2012.1-0.3.e3
 -- Remove the dep on python-sqlite2 as that's being retired in F17 and keystone
 -  will work with the sqlite3 module from the stdlib
 -
 -* Thu Jan 26 2012 Alan Pevec <apevec at redhat.com> 2012.1-0.2.e3
+ - separate library to python-keystone
 -- avoid conflict with python-keystoneclient
 -
 -* Thu Jan 26 2012 Alan Pevec <apevec at redhat.com> 2012.1-0.1.e3
 -- essex-3 milestone
+ 
 -* Wed Jan 18 2012 Alan Pevec <apevec at redhat.com> 2012.1-0.e2
 -- essex-2 milestone
 +* Sun Dec 04 2011 Alan Pevec <apevec at redhat.com> 2011.3.1-4
 +- fix initscript for keystone
  
 -* Fri Jan 13 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2011.3.1-3
 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
 +* Wed Nov 30 2011 Alan Pevec <apevec at redhat.com> 2011.3.1-3
 +- Use updated parallel install versions of epel packages (pbrady)
 +- Ensure the docs aren't built with the system glance module (pbrady)
 +- Ensure we don't access the net when building docs (pbrady)
  
  * Thu Nov 24 2011 Alan Pevec <apevec at redhat.com> 2011.3.1-2
  - include LICENSE, update package description from README.md


More information about the scm-commits mailing list