Cloned from launchpad blueprint https://blueprints.launchpad.net/keystone/+spec/keystone-py3kcompat. Description: We will move to Python 3 in the future. More and more openstack projects are forece Python 3 compatible , especilly the new stackforge projects. This main idea of this blueprint is using library six [1] to make the Keystone codes run both in Python 2 and Python 3. [1]http://pythonhosted.org/six/ Specification URL (additional information): None
This work is happening upstream, mostly by David Stanek. As of now, most of the unit tests run in the python 3 version, but there are a few places where they fail. Status of Python 3 for various projects is posted here: https://wiki.openstack.org/wiki/Python3 Current status for Keystone is: The spec Add spec for python-3 compatibility (by Morgan Fainberg) was accepted for Liberty. See also the blueprint python3 started by Dolph Mathews on 2014-07-22; David Stanek is working on it. Patches: bp/python3 topic. pysaml2 3.0 now supports Python 3. Aslo blocked by ldappool and python-ldap. pyldap is a fork of python-ldap which adds Python 3 support. python-ldap may be replaced with ldap3, but it requires more work.
Additional upstream work is happening on ldap3, now the last piece to hold Keystone on Python2.7.
Upstream plans to address this in the Newton release. The main blocker for python3 is python-ldap.
There has been work upstream to allow Keystone to work in Python 3, but I don't believe we need a downstream bug for this as there is really no work to do here for us. At some point, we will run Keystone in Python 3 in RH-OSP, which should just work due to the validation provided upstream py3 CI.