Decouple networking-ovn from neutron via neutron-lib

Registered by Boden R

This is a continuation of the neutron-lib saga.

While our initial work in [1] laid a foundation for neutron-lib's future by plumbing out the approaches/processes/implementations/etc., as discussed at the Pike PTG we need additional neutron-lib BPs that are containable within a single release.

The new approach for tracking neutron-lib work is to create a BP for a target sub-project and use the BP track the rehoming of that sub-project's neutron dependencies to neutron-lib + consume them. The BP is closed once the sub-project it targets no longer depends on neutron, but neutron-lib instead.

This BP targets the networking-ovn project and includes the work to:
- Rehome networking-ovn's neutron dependencies to neutron-lib (refactoring as needed).
- Release them via neutron-lib pypi package.
- Consume them in networking-ovn, thereby removing the respective neutron dependency(s).

We are also tracking the networking-ovn neutron dependencies and their status in a google sheet [3]. Please see the sheet for finer grained details.

For details on the rehoming process, please see [2].

[1] https://blueprints.launchpad.net/neutron/+spec/neutron-lib
[2] https://docs.openstack.org/developer/neutron-lib/contributing.html
[3] https://docs.google.com/spreadsheets/d/1W--ojpMftnj_gIEVNpjm7ouEEVRGkJot8LOXMujjwxE/edit#gid=813043914

Blueprint information

Status:
Complete
Approver:
Kevin Benton
Priority:
Low
Drafter:
Boden R
Direction:
Approved
Assignee:
Boden R
Definition:
Obsolete
Series goal:
Accepted for queens
Implementation:
Started
Milestone target:
milestone icon pike-2
Started by
Armando Migliaccio
Completed by
Slawek Kaplonski

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/neutron-lib-networking-ovn,n,z

Addressed by: https://review.openstack.org/441129
    Consume ServicePluginBase from neutron-lib

Addressed by: https://review.openstack.org/424151
    Formalize base service classes

Addressed by: https://review.openstack.org/428473
    rehome port security api-def

Addressed by: https://review.openstack.org/441280
    consume ServicePluginBase from neutron-lib

Addressed by: https://review.openstack.org/441292
    consume ServicePluginBase from neutron-lib

Addressed by: https://review.openstack.org/441729
    Consume ServicePluginBase from neutron-lib

Addressed by: https://review.openstack.org/429036
    rehome plugin common constants

Addressed by: https://review.openstack.org/422210
    use neutron_lib's portbindings api-def

Addressed by: https://review.openstack.org/423382
    Use l3 api-def from neutron-lib

Addressed by: https://review.openstack.org/442763
    Clarify pep8 inclusion in periodic job

Addressed by: https://review.openstack.org/445624
    API extension updates and fixture

Addressed by: https://review.openstack.org/421562
    use neutron_lib's provider_net api-def

Addressed by: https://review.openstack.org/428803
    rehome NeutronWorker class

Addressed by: https://review.openstack.org/428387
    rehome extra_dhcp_opt api-def

Addressed by: https://review.openstack.org/447375
    Consume ServicePluginBase from neutron-lib

Addressed by: https://review.openstack.org/448286
    Consume neutron_lib core resource attributes

Addressed by: https://review.openstack.org/394244
    Rehome neutron.api.v2.attributes

Addressed by: https://review.openstack.org/449277
    rehome core resource api-defs

Addressed by: https://review.openstack.org/450098
    Migrate neutron.plugins.common to neutron-lib

Addressed by: https://review.openstack.org/452293
    dynamically determine api attrs/resources/aliases

Addressed by: https://review.openstack.org/452903
    rehome is_port_trusted util function

Addressed by: https://review.openstack.org/453264
    rehome a few neutron.common.utils functions

Addressed by: https://review.openstack.org/456343
    introduce plugin loading

Addressed by: https://review.openstack.org/439146
    consume neutron-lib callbacks

Addressed by: https://review.openstack.org/457323
    DNM: Test lib callback fixture

Addressed by: https://review.openstack.org/457324
    Patch _get_callback_manager for callback fixture

Addressed by: https://review.openstack.org/439177
    consume neutron-lib callbacks

Addressed by: https://review.openstack.org/439173
    consume neutron-lib callbacks

Addressed by: https://review.openstack.org/459335
    sync callbacks with neutron

Addressed by: https://review.openstack.org/459458
    use neutron-lib callbacks

Addressed by: https://review.openstack.org/461464
    use neutron-lib port security api-def

Addressed by: https://review.openstack.org/462534
    use constants rather than static strings

Addressed by: https://review.openstack.org/462721
    rehome NETWORK_ID ml2 constant

Addressed by: https://review.openstack.org/462731
    use MechanismDriver from neutron-lib

Addressed by: https://review.openstack.org/463983
    use is_port_trusted from neutron-lib

Addressed by: https://review.openstack.org/464044
    use extra_dhcp_opt api-def from neutron-lib

Addressed by: https://review.openstack.org/464055
    make extra_dhcp_opt vars public

Addressed by: https://review.openstack.org/464079
    use worker from neutron-lib

Addressed by: https://review.openstack.org/465063
    shim and use RESOURCE_ATTRIBUTE_MAP from neutron-lib

Addressed by: https://review.openstack.org/466809
    APIDefinitionFixture bugfix

Addressed by: https://review.openstack.org/466888
    sync callbacks: Eliminate SUBNET_GATEWAY resource

Addressed by: https://review.openstack.org/467348
    use core resource attribute constants from neutron-lib

Addressed by: https://review.openstack.org/468114
    use attribute functions/operations from neutron-lib

Addressed by: https://review.openstack.org/469495
    use plugin constants from neutron-lib

Addressed by: https://review.openstack.org/470024
    replace WorkerSupportServiceMixin with neutron-lib's WorkerBase

Addressed by: https://review.openstack.org/470369
    rehome consumed neutron.common.constants

Addressed by: https://review.openstack.org/470426
    rehome qos service DriverBase class

Addressed by: https://review.openstack.org/471135
    use neutron-lib's callback fixture

Addressed by: https://review.openstack.org/471464
    remove unused reraise_as_retryrequest

Addressed by: https://review.openstack.org/471482
    rehome ovo exceptions

Addressed by: https://review.openstack.org/473878
    use plugin constants from neutron-lib

Addressed by: https://review.openstack.org/474213
    use new payload objects for *_INIT callbacks

Addressed by: https://review.openstack.org/475514
    rehome ml2 driver_api

Addressed by: https://review.openstack.org/476980
    use service type constants from neutron_lib plugins

Addressed by: https://review.openstack.org/478232
    use service type constants from neutron_lib plugins

Addressed by: https://review.openstack.org/478240
    use service type constants from neutron_lib plugins

Addressed by: https://review.openstack.org/478281
    use service type constants from neutron_lib plugins

Addressed by: https://review.openstack.org/483470
    use RESOURCES from neutron-lib

Addressed by: https://review.openstack.org/487132
    consume load_class_by_alias_or_classname from neutron-lib

Addressed by: https://review.openstack.org/487139
    consume load_class_by_alias_or_classname from neutron-lib

Addressed by: https://review.openstack.org/487147
    use synchronized lock decorator from neutron-lib

Addressed by: https://review.openstack.org/487162
    use synchronized decorator from neutron-lib

Addressed by: https://review.openstack.org/487194
    use qos DriverBase from neutron-lib

Addressed by: https://review.openstack.org/487521
    use qos constants from neutron-lib

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.