[openstack-dev] [nova][placement] placement newton leftovers

Chris Dent cdent+os at anticdent.org
Sun Oct 2 12:05:04 UTC 2016


A week or so ago, Jay posted a latest news on the placement API and
some plans for Ocata:

     http://lists.openstack.org/pipermail/openstack-dev/2016-September/104443.html

We're gearing up for the next steps (traits, custom resource classes,
the scheduler using inventories, etc). This is awesome but lest we
forget them I've spent a bit of time coming up with a list of leftovers
for things we have already started and not quite finished. Some of these
we knew we were going to punt to Ocata, others are things that have come
up as a result of the work but were not in the original plan. Some are
things I thought up while in the bathtub so could be completely wrong.
Please check my work; I'm sure I've forgotten some things and care about
other things that most don't find relevant.

I'm posting this as it would be great to get some feedback on:

* which of these things matter
* what is missing from the list
* how (or if) we should formalize the doing of the work
* who would like to help out in the doing (getting some help is the main
   goal, all the rest of is set up)

To avoid this being overly long I've kept description to a minimum. If
you'd like some clarification, please ask.

Once we've figured out some form of a plan I'll make sure it gets
recorded in the right place. Before that happens though, I'd like to
hash this out to a reasonable list.

I've added links to in progress stuff where I'm aware of it.

-=-=-

# Things Planned But Not Yet Done

     * Aggregate handling
       https://review.openstack.org/#/c/362863/

     * Install docs

     * API ref docs

     * Resource tracker aware of shared resource providers

     * Scheduler knows about inventories

     * Object crud notifications
       https://review.openstack.org/#/c/308503/
       (way out of date)

     * Inventory update example script
       https://github.com/cdent/updateinv
       (also rather out of date and very WIPpy, will be moved to
       nova:contrib)

# Features Needed Sooner or Later

     * Microversion handling
       experiment at https://gist.github.com/cdent/de50cb05a7ab8219cd4f5b4ab3c181dd
       (This is mostly the Nova way of handling things, modified to work with
       the placement APIs classless style.)

     * oslo_policy based authorization handling
       Current auth is admin-role-required for everything

     * Uncaught exception transformation
       (there are a couple places where exceptions are rising out
       of the placement app to be caught in FaultWrap, these are
       supposed to become webob responses sooner)

     * Optional placement db
       https://review.openstack.org/362766

     * More informative 404 handling
       (bare exception.NotFound that don't say what's not found)

     * Server retries allocations itself

     * Expand discovery json doc
       (current doc only reports microversions, not available resources)

     * Add CORS support
       (because we'd like things like horizon to be about to report usages)

     * Allocations respecting min_unit etc
       https://bugs.launchpad.net/nova/+bug/1623545

# Cleanup/Refactoring

     * Hygienic refactoring (files that are too big, too multi purpose)
       (resource_providers.py is huge and hold lots of objects, ditto for
       test_resource_provider.py (unit and function))

     * Refactor/clean/correct json schema to be more accurate readable and
       enforcing
       (current schemas are bug lumps, readability could be enhanced by
       extracting the meaningful meat from the surrounding setup)

     * Cleanup clarify wsgi.py/deploy.py overlap
       (they are both performing some parts of setting up the wsgi app,
       boundary unclear)

     * Gabbi test decomposition
       (too much per file)

     * Decompose handler.py
       (move routes elsewhere)

     * Extract http handling in SchedulerReportClient to own file

# Testing Completeness

     * Coverage audit and fix
       (because that's just polite)

     * Use optional placement db in a gate job

     * Performance evaluation
       (allocations per second on one inventory, allocations per second
       across many inventories, where's the knee?)

     * Tempest or other form of integration test
       (currently we can only evaluate success of resource tracker +
       placement api by lack of smoke, no real details)

-- 
Chris Dent               ┬─┬ノ( º _ ºノ)        https://anticdent.org/
freenode: cdent                                         tw: @anticdent


More information about the OpenStack-dev mailing list