Spec-ceilometer-api-server-pecan-wsme
- Launchpad Entry: CeilometerSpec:api-server-pecan-wsme
- Created: 26 Nov 2012
- Contributors: Doug Hellmann
Contents
Summary
During the Grizzly summit we had a discussion about whether the Oslo team should continue to maintain the WSGI server in openstack.common. I proposed switching to Pecan and WSME instead, because they give us multiple serialization formats and a reliable WSGI server without a bunch of extra coding on our part. This document discusses the work to be done to port the Ceilometer API to use these tools as a proof-of-concept.
Release Note
Rationale
Ceilometer chose to use Flask to implement the first version of its API because the OpenStack WSGI toolset is complicated and takes a lot of effort to understand. Flask is not necessarily going to have Python 3 support, though, so we want to look at other tools.
See https://etherpad.openstack.org/grizzly-common-wsgi-frameworks for more details
User stories
Assumptions
Design
See Ceilometer/blueprints/APIv2 for new API details
Implementation
UI Changes
We will likely need to make some API changes to ceilometer in order to have WSME work effectively, so there will be a v2 API. We will keep those changes to a minimum initially in order to make the two implementations easy to compare.
Code Changes
Code changes should include an overview of what needs to change, and in some cases even the specific details.
Migration
Include:
- data migration, if any
- redirects from old URLs to new ones, if any
- how users will be pointed to the new way of doing things, if necessary.
Test/Demo Plan
This need not be added or completed until the specification is nearing beta.
Unresolved issues
This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.
BoF agenda and discussion
Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.