← Back to team overview

openstack team mailing list archive

Keystone: Redux (Dubstep Remix)


tl;dr proposal to merge keystone redux: same API, same client, new
service.  Please review and ask questions!


We are gathered here today to celebrate the commencement of Keystone
(redux) to fill the role of Keystone (henceforth known as legacy). It is
with great pride that we propose this stand-up-fellow of a refactor to join
the ranks of the other OpenStack projects.

There will be differences, both in how you develop and how you use it,
though we've tried to keep those to a minimum (it has the same API, client,
and migration paths from existing deploys)

You will notice that the code is organized rather differently in most
cases, though still in line with the general form of OpenStack projects,
and we use the standard tools and procedures you may be familiar with from
work on a project like Nova.  (Your wrists will be shattered if you attempt
to use double quotes where single quotes might better suffice.)

The bulk of the work put into `redux` has been to reduce the complexity of
and provide a more easily extensible version of `legacy` while still
providing the features that the other projects require. We think we have
been successful in this, and we hope you'll agree.

Read on for more specifics.


Please voice your comments & votes on the merge proposal:


Since this is a rather large merge, you can explore the code at github
(reviews should happen in gerrit using the above link):

  * https://github.com/openstack/keystone/tree/redux
  * https://github.com/openstack-dev/devstack/tree/redux


The two major items we are working on adding to redux at time of writing.
Support for XML and LDAP integration.  We propose evaluating the merge with
these known issues, as work is being done to re-add support before E4.

State of XML (via Dolph Mathews)

   Work is underway to support the existing XSD/WADLs
   XML code in its current state is posted to
   Our hope is to convert XML to/from python objects with minor tweaks
where needed to meet the spec.
   Existing XML tests in legacy use a GUI tool http://www.soapui.org/ to
verify correctness, we hope to use a more pythonic tool in redux

State of LDAP (via Adam Young):

   LDAP code in its current state is posted to
   Unit tests pass against fakeldap, with the exception of the ones that
check for uniqueness.  I suspect that is supposed to be enforced by SLAPD
   I am working on getting the scheme documented for the LDAP server, and
for prepopulating Roles.
   Authentication against a live LDAP server works.  Roles and Tenants are
currently ignored.  Getting the schema straight needs to happen first.
   Should have working code in the next day or two.


We've been tagging bugs as "redux" that are against the rewrite.  You can
view the full list at full bug list at
https://bugs.launchpad.net/keystone/+bugs?field.tag=redux  We marked bugs
that are needed to land before this merge as CRITICAL, and before E4 as

Post Merge:

After merge we will continue improving Keystone, specifically:

 * Target critical/high bugs for E4
 * Work with downstream/packagers on changes needed for their distros
 * Work with tempest on test coverage
 * Another pass through the bugs & blueprints to update the state

Thanks to all the contributors to the rewrite:

Andy Smith
Anthony Young
Brian Waldon
Chmouel Boudjnah
Chuck Short
Dean Troyer
Devin Carlen
Dolph Mathews
James E. Blair
Jesse Andrews
Joe Heck
Justin Santa Barbara
Monty Taylor
Vishvananda Ishaya


p.s. wubwubwubSKREEEEwubwub

Follow ups