Jump to: navigation, search


This page is primarily meant to organize the steps for getting the first version of neutron-lib out the door, who is doing what, and pointers to how to help.


Code review guidelines: https://github.com/openstack/neutron-lib/blob/master/doc/source/review-guidelines.rst

Lib transition reviews: https://review.openstack.org/#/q/status:open+topic:bp/neutron-lib,n,z

Repo reviews: https://review.openstack.org/#/q/status:open+project:openstack/neutron-lib,n,z

Submission Procedures

  1. Identify a module to work on/move.
  2. Every module is subject to refactoring/bikeshedding, so you might want to check with the SME of what you're moving and see if they have problems with the current interfaces. A balance must be struct between forward progress breaking dependencies, and not carrying forward garbage.
  3. Make your changes, submit to neutron-lib repo.
  4. Make the changes to remove the code from neutron, including debtcollector shims in the old locations, and make that review DEPENDENT on https://review.openstack.org/#/c/242219/ , which contains magic to get neutron-lib running for a neutron patch, AND include a Depends-On for your neutron-lib patch. That will test your shims and the existing references.
  5. Make a similar change in at least one affect child repo, similar to https://review.openstack.org/#/c/253263/

Available work items

  • Centralize/generalize tox_install
  • Adopt _i18n through stadium.
  • Include message catalog initial commit throughout stadium.
  • Check the Neutron/Lib/AasProgress list, grab a module not already in the Tasks list, and go for it.


Priority Owner Description Status
0 dougwig Repo creation Done
1 dougwig Base exceptions/constants Done
1 dougwig i18n scheme across subprojects Done, _i18n work needed for subprojects
2 HenryG / dougwig neutron.db plan 0%
3 pc_m callbacks Done (revision needed to be public)
3 pc_m API validation Done

neutron.db rework

Discussion of below references with HenryG: https://etherpad.openstack.org/p/neutron-lib-db

1. Current usage from adv.services:

lbaas example:

        is_agent_down_str = 'neutron.db.agents_db.AgentDbMixin.is_agent_down'
        quota_driver = neutron.db.quota_db.DbQuotaDriver
# milestone identifier, used by neutron-db-manage
DB_CORE_PLUGIN_CLASS = 'neutron.db.db_base_plugin_v2.NeutronDbPluginV2'
DB_CORE_PLUGIN_KLASS = 'neutron.db.db_base_plugin_v2.NeutronDbPluginV2'
from neutron.db import agents_db
from neutron.db import agentschedulers_db
from neutron.db import common_db_mixin as base_db
from neutron.db import l3_db
from neutron.db import migration
from neutron.db import model_base
from neutron.db import models_v2
from neutron.db import servicetype_db
from neutron.db import servicetype_db as sdb
from neutron.db import servicetype_db as st_db
from neutron.db.migration import cli
import neutron.db.l3_db  # noqa

2. Current usage from "common" things inside neutron:

Example from neutron.common.rpc, following the import chain:

from neutron import context
from neutron.db import api as db_api
from neutron.db import common_db_mixin
from neutron.db import sqlalchemyutils

Other Candidates for Neutron-Lib

iptables management code

Progress against existing repos

Weekly Meetings

See Network/Lib/Meetings