Adopt oslo.versionedobjects for database interactions

Registered by Ihar Hrachyshka

This blueprint will give neutron a proper object facade to hide interactions with database behind. With that, we will have a cleaner code base as well as potential to implement support for no-downtime upgrades for controllers.

Blueprint information

Status:
Complete
Approver:
Miguel Lavalle
Priority:
Medium
Drafter:
None
Direction:
Approved
Assignee:
Lujin Luo
Definition:
Approved
Series goal:
Accepted for queens
Implementation:
Implemented
Milestone target:
milestone icon stein-3
Started by
Armando Migliaccio
Completed by
Slawek Kaplonski

Whiteboard

Sep-16-2016(ihrachys): Priority should be changed to High to reflect the fact it's a dependency for online-upgrades blueprint that is High now.

Sep-08-2016(armax): deferred to Ocata

Aug-8-2016(ihrachys): ongoing work, active development, slipping into Ocata.

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db,n,z

Addressed by: https://review.openstack.org/284738
    Introduces ovo objects for security groups

Gerrit topic: https://review.openstack.org/#q,topic:ovo,n,z

Addressed by: https://review.openstack.org/303406
    Add custom fields for vnic type and vif type

Addressed by: https://review.openstack.org/306685
    Flavor and Service Profile to OVO

Addressed by: https://review.openstack.org/268274
    Port allowed address pairs to OVO

Addressed by: https://review.openstack.org/307964
    WIP - RouterRoute and ExtraRoutes to OVO

Addressed by: https://review.openstack.org/297821
    Address Scope added to OVO

Addressed by: https://review.openstack.org/308005
    WIP - Replace plugin class for address scope ovo.

Addressed by: https://review.openstack.org/264273
    Introducing the Subnet OVO

Addressed by: https://review.openstack.org/304322
    Service Type to OVO

Addressed by: https://review.openstack.org/297887
    Agent to OVO

Addressed by: https://review.openstack.org/321001
    WIP Subnet OVO usage evaluation patch.

Addressed by: https://review.openstack.org/300056
    WIP: objects: switch base plugin class to using subnetpool object

Addressed by: https://review.openstack.org/326361
    objects: Use common plugin _model_query in get_object

Addressed by: https://review.openstack.org/326477
    Objects: DNSNameServer OVO usage patch.

Addressed by: https://review.openstack.org/327207
    WIP: _lock_subnetpool with objects

Addressed by: https://review.openstack.org/327249
    objects: in get_object(s), filter by fields, not model attributes

Addressed by: https://review.openstack.org/327257
    WIP: objects: introduce NetworkPortSecurity object

Addressed by: https://review.openstack.org/327582
    Add type information to ObjectNotFound message

Addressed by: https://review.openstack.org/328259
    qos: added api sorting/pagination tests

Addressed by: https://review.openstack.org/328273
    qos: support native sorting/pagination for policies and rules

Addressed by: https://review.openstack.org/328304
    objects: Add filter query hook to NeutronDbObject

Addressed by: https://review.openstack.org/328313
    qos: fix shared filter for policies

Addressed by: https://review.openstack.org/328906
    common_db_mixin: added a method to unregister query hooks

Addressed by: https://review.openstack.org/328452
    Refactor NetworkDhcpAgentBinding

Addressed by: https://review.openstack.org/329340
    Added sorting/pagination tests for subnets

Addressed by: https://review.openstack.org/329888
    object create move session context manager inside try block

Addressed by: https://review.openstack.org/330870
    [WIP]: Refactoring Agent DB model

Addressed by: https://review.openstack.org/331009
    objects: Subnet object adjustment, RBAC and tenant_id compatibility.

Addressed by: https://review.openstack.org/253641
    SUPER WIP OVO port object

Addressed by: https://review.openstack.org/334380
    objects: loading synthetic fields from defined ORM relationships.

Addressed by: https://review.openstack.org/334381
    objects: better apply filters for objects/db/api/get_object query.

Addressed by: https://review.openstack.org/322024
    Allow unique keys to be used with get_object

Addressed by: https://review.openstack.org/337539
    objects: Add update_fields method in base class.

Addressed by: https://review.openstack.org/337634
    objects: Add RBAC to Subnet OVO

Addressed by: https://review.openstack.org/334695
    Add OVO for dns Objects

Addressed by: https://review.openstack.org/338625
    WIP Introduce OVO for quotas

Addressed by: https://review.openstack.org/342858
    objects: Convert filters to string for list values.

Addressed by: https://review.openstack.org/344434
    Refactor get_object in object/db/api

Addressed by: https://review.openstack.org/336518
    devref: docs about how to use NeutronDbObject.

Addressed by: https://review.openstack.org/313291
    Refactor DNS integration out of DB core plugin

Addressed by: https://review.openstack.org/347787
    objects: forbid updates for project_id field for subnets

Addressed by: https://review.openstack.org/347884
    Print out specific filter that failed in object filtering unit test

Addressed by: https://review.openstack.org/348271
    objects: remove support for multiple db models in from_db_object

Addressed by: https://review.openstack.org/348279
    objects: expose database model for NeutronDbObject instances

Addressed by: https://review.openstack.org/348378
    tests: enable test_get_objects_queries_constant for trunk ports

Addressed by: https://review.openstack.org/348396
    trunk: avoid redundant refetch of subports on create

Addressed by: https://review.openstack.org/348397
    trunk: declare port_id as a primary key

Addressed by: https://review.openstack.org/348398
    tests: check that trunk sub_ports field is properly populated

Addressed by: https://review.openstack.org/348478
    objects; avoid additional fetch for prefixes on pool get

Addressed by: https://review.openstack.org/348987
    objects: switched back to passing models into extension handlers

Addressed by: https://review.openstack.org/269658
    WIP Introducing Network OVO

Addressed by: https://review.openstack.org/350387
    WIP: OVO for metering

Addressed by: https://review.openstack.org/350405
    objects: introduce count() API to count matching objects

Addressed by: https://review.openstack.org/350423
    objects: introduce a util function to handle tenant_id filter

Addressed by: https://review.openstack.org/350452
    objects: rename tenant_id field into project_id for subnetpools

Addressed by: https://review.openstack.org/350991
    objects: rename tenant_id field to project_id for trunks

Addressed by: https://review.openstack.org/351101
    Introduce ovo objects for security groups

Addressed by: https://review.openstack.org/351368
    Introduce ovo objects for ports

Addressed by: https://review.openstack.org/351740
    objects: create subnet converted to OVO

Addressed by: https://review.openstack.org/352259
    objects: IPAvailabilityRange OVO introduction.

Addressed by: https://review.openstack.org/353088
    WIP OVO Introduce External Networks

Addressed by: https://review.openstack.org/348562
    Relocate L3 DB Models

Addressed by: https://review.openstack.org/352577
    Objects: Add README for neutron/objects directory tree

Addressed by: https://review.openstack.org/353571
    OVO Introduce Network Segment OVO

Gerrit topic: https://review.openstack.org/#q,topic:bug/1597913,n,z

Addressed by: https://review.openstack.org/353664
    Relocate Security Group DB models

Addressed by: https://review.openstack.org/351793
    models: move AllowedAddressPair model under neutron/db/models

Addressed by: https://review.openstack.org/354428
    Integrate Address Scope OVO in to database code

Addressed by: https://review.openstack.org/356223
    [WIP] OVO for Router Route

Addressed by: https://review.openstack.org/356576
    Qos Port Policy Binding to OVO

Addressed by: https://review.openstack.org/356593
    Qos Network Policy Binding OVO

Gerrit topic: https://review.openstack.org/#q,topic:bug/1541928,n,z

Addressed by: https://review.openstack.org/356660
    [WIP] OVO for VlanAllocation

Gerrit topic: https://review.openstack.org/#q,topic:AddrScopeOvo,n,z

Addressed by: https://review.openstack.org/356766
    WIP - OVO for Router Extra Attributes

Addressed by: https://review.openstack.org/356825
    [WIP] OVO for Tag

Addressed by: https://review.openstack.org/357207
    Add support fro multiple foreign keys in NeutronDbObject.

Addressed by: https://review.openstack.org/357488
    OVO for Provisioning Block DB Model

Addressed by: https://review.openstack.org/357506
    WIP: Add OVO for AutoAllocateToplogy

Addressed by: https://review.openstack.org/357516
    OVO for PortBindingPort

Addressed by: https://review.openstack.org/354797
    Relocate router route DB model

Addressed by: https://review.openstack.org/304873
    DistributedVirtualRouter mac address to OVO

Addressed by: https://review.openstack.org/355536
    Relocate Tag DB model

Addressed by: https://review.openstack.org/353541
    Relocate dvr model

Addressed by: https://review.openstack.org/358845
    [WIP] OVO for FlatAllocation

Addressed by: https://review.openstack.org/359379
    OVO for SegmentHostMapping

Addressed by: https://review.openstack.org/360699
    Add Unit Test for Foreign Keys Not Found Error

Addressed by: https://review.openstack.org/360799
    [WIP] OVO for IPam(Allocation,pool,range,subnet)

Gerrit topic: https://review.openstack.org/#q,topic:adopt-oslo-versioned-objects-for-db,n,z

Addressed by: https://review.openstack.org/360816
    Introduce ovo objects for subnet service types

Addressed by: https://review.openstack.org/360908
    OVO for RouterL3AgentBinding

Addressed by: https://review.openstack.org/361289
    OVO Gre Allocation Endpoints

Addressed by: https://review.openstack.org/361303
    [WIP] - Integration of OVO Provisioning Block

Addressed by: https://review.openstack.org/361443
    [WIP] OVO for L3HARouter

Addressed by: https://review.openstack.org/362508
    [WIP]OVO for VxlanAllocation and VxlanEndpoints

Addressed by: https://review.openstack.org/363196
    [WIP] GeneveAllocation OVO

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch12,n,z

Addressed by: https://review.openstack.org/356144
    Relocate VlanAllocation DB model

Addressed by: https://review.openstack.org/365155
    [WIP] Integarion of OVO for Ipam

Addressed by: https://review.openstack.org/365659
    Make optional the validation of filters

Addressed by: https://review.openstack.org/366052
    tests: refactor objects test cases to use db models instead of dicts

Addressed by: https://review.openstack.org/357855
    objects: for Pager, handle comparison with None

Addressed by: https://review.openstack.org/351955
    Relocate external network db models

Addressed by: https://review.openstack.org/366767
    objects: switch to expunging db_obj instead of carrying it attached

Addressed by: https://review.openstack.org/367071
    [WIP] Integration of RouterRoute OVO

Addressed by: https://review.openstack.org/367268
    objects: don't call DeclarativeObject's __init__ twice for rbac objects

Addressed by: https://review.openstack.org/361471
    Relocate SegmentHostMapping DB model

Gerrit topic: https://review.openstack.org/#q,topic:bug/1541928_bp_ovo_integration_vxlan_allocation_endpoints,n,z

Addressed by: https://review.openstack.org/368499
    Integration of FlatAllocation OVO

Addressed by: https://review.openstack.org/363206
    Change IPAM DB API to use context instead of session object. This change is required for implementing IPAM OVO.

Addressed by: https://review.openstack.org/369720
    [WIP] Integration for Tag OVO

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db/vxlan,n,z

Addressed by: https://review.openstack.org/369550
    OVO for VxlanAllocation and VxlanEndpoints

Addressed by: https://review.openstack.org/370037
    tests: don't override base object test class attributes

Gerrit topic: https://review.openstack.org/#q,topic:fip_ovo,n,z

Addressed by: https://review.openstack.org/355719
    Relocate RouterL3AgentBinding DB model

Addressed by: https://review.openstack.org/367810
    [WIP] Integration of VxlanAllocation/Endpoints OVO

Addressed by: https://review.openstack.org/370452
    OVO for NetworkDhcpAgentBinding

Addressed by: https://review.openstack.org/374418
    [WIP] Integration of Port Binding Level OVO.

Addressed by: https://review.openstack.org/374973
    [WIP] Integration of L3HARouterNetwork OVO

Addressed by: https://review.openstack.org/369744
    Add OVO for FloatingIPDNS

Addressed by: https://review.openstack.org/375135
    [WIP] Integration of NetworkDhcpAgentBinding OVO

Addressed by: https://review.openstack.org/375536
    OVO: add SubnetServiceType object and code integration.

Gerrit topic: https://review.openstack.org/#q,topic:bug/1614920,n,z

Addressed by: https://review.openstack.org/376430
    objects: add validate_filters option for count() method.

Addressed by: https://review.openstack.org/376979
    [WIP] Integration of L3HARouterVRIdAllocation OVO

Addressed by: https://review.openstack.org/377074
    [WIP] Integration of RouterL3AgentBinding

Addressed by: https://review.openstack.org/377084
    Make OVO exception NeutronDbObjectDuplicateEntry retriable

Gerrit topic: https://review.openstack.org/#q,topic:377112,n,z

Addressed by: https://review.openstack.org/377112
    Integrate SubnetRoute OVO,

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch33,n,z

Gerrit topic: https://review.openstack.org/#q,topic:relocate,n,z

Addressed by: https://review.openstack.org/377114
    Moving query builder methods to Subnet OVO

Addressed by: https://review.openstack.org/378784
    Relocate ProviderResourceAssociation DB models

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch35,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch37,n,z

Addressed by: https://review.openstack.org/357787
    Move OVO exceptions to neutron/objects/exceptions

Addressed by: https://review.openstack.org/381209
    Integration of Router Extra Attributes OVO in /db/l3_hamode_db.py

Addressed by: https://review.openstack.org/355059
    Relocate L3HARouter DB model

Addressed by: https://review.openstack.org/381239
    [WIP] Integration of L3HARouterAgentPortBinding

Addressed by: https://review.openstack.org/381333
    Add OVO for dns Objects

Addressed by: https://review.openstack.org/382037
    Integration of Port Binding Level OVO in get_binding_levels method in neutron/plugin/ml2/db.py

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch39,n,z

Addressed by: https://review.openstack.org/382567
    [WIP] Integration of DistributedPortBinding

Addressed by: https://review.openstack.org/383842
    StandardAttribute to OVO

Addressed by: https://review.openstack.org/384949
    objects: Return tenant_id=None when project_id is not set.

Addressed by: https://review.openstack.org/384975
    objects: Removed project_id/tenant_id field translation

Addressed by: https://review.openstack.org/385178
    [WIP] Integrate NetworkSegment OVO

Addressed by: https://review.openstack.org/385597
    Use BaseDbObjectTestCase in AddressScope UT

Addressed by: https://review.openstack.org/386228
    Swap the order of arguments to _check_equal

Addressed by: https://review.openstack.org/386875
    Add query.one to object.db.api

Gerrit topic: https://review.openstack.org/#q,topic:bp/routed-networks,n,z

Addressed by: https://review.openstack.org/390673
    Replace a test with use of network object

Addressed by: https://review.openstack.org/394627
    Introduce context in methods for Router Extra Attriutes OVO usage.

Addressed by: https://review.openstack.org/395748
    Introduce any_object method in neutron/objects/db/api.py

Addressed by: https://review.openstack.org/396327
    OVO for Allocation and Endpoint

Addressed by: https://review.openstack.org/396351
    [WIP] Integration of Floating IP OVO

Addressed by: https://review.openstack.org/371212
    WIP QUOTA OVO implementation

Addressed by: https://review.openstack.org/396711
    Integration of IPAllocationPool

Addressed by: https://review.openstack.org/396718
    [WIP] Integration of IPAllocation

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch18,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch18-patch24,n,z

Addressed by: https://review.openstack.org/400052
    Replace create_test_segment with NetworkSegment object

Gerrit topic: https://review.openstack.org/#q,topic:bp/enginefacade-switch,n,z

Addressed by: https://review.openstack.org/400412
    [WIP] Get standard attribute ID from DeclarativeObject.

Gerrit topic: https://review.openstack.org/#q,topic:403832,n,z

Addressed by: https://review.openstack.org/403832
    objects: add delete_objects public method

Addressed by: https://review.openstack.org/404259
    tests: introduce update_obj_fields method in base objects test class

Addressed by: https://review.openstack.org/405687
    Add use of ports ovo in a test

Addressed by: https://review.openstack.org/406407
    Use Port OVO in plugins/ml2/test_db.py

Addressed by: https://review.openstack.org/407058
    Convert filters to empty dict if None in DB's get_subnetpools().

Addressed by: https://review.openstack.org/407686
    Use project_id instead of tenant_id

Addressed by: https://review.openstack.org/407868
    [WIP] Integration of Port Binding OVO

Addressed by: https://review.openstack.org/407007
    get_random_object_fields() for setting object attributes

Addressed by: https://review.openstack.org/408904
    [WIP]Agent OVO

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch14,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bug/1649733,n,z

Addressed by: https://review.openstack.org/410468
    Restore extraroute dict after OVO change

Addressed by: https://review.openstack.org/411741
    Integration of Port OVO

Addressed by: https://review.openstack.org/411830
    Add DictOfMiscValuesField for dictionary usage in OVO

Addressed by: https://review.openstack.org/411864
    Update comment about foreign keys

Addressed by: https://review.openstack.org/411981
    Use port object in notifiers/test_nova.py

Addressed by: https://review.openstack.org/411992
    Sort and Remove duplicate field types

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch26,n,z

Addressed by: https://review.openstack.org/412017
    Remove unnecessary overrides in Subnetpool OVO

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch9,n,z

Gerrit topic: https://review.openstack.org/#q,topic:407686,n,z

Addressed by: https://review.openstack.org/413815
    Move locked mode queries to objects/ports

Gerrit topic: https://review.openstack.org/#q,topic:416352,n,z

Addressed by: https://review.openstack.org/418565
    Centralize creation of security group test obj

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch26-patch27,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch34,n,z

Addressed by: https://review.openstack.org/421863
    [WIP] Integration of Router OVO

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch41,n,z

Addressed by: https://review.openstack.org/416352
    Break cirrcular import with use of common_types

Addressed by: https://review.openstack.org/424129
    Add corner case testing to address scope OVO access

Addressed by: https://review.openstack.org/424154
    RouterPort OVO integration

Addressed by: https://review.openstack.org/425800
    Refactoring _create_test methods for OVO UTs

Addressed by: https://review.openstack.org/423581
    Deprecate get_locked_port_and_binding

Addressed by: https://review.openstack.org/429668
    Simplify notify transaction tests

Addressed by: https://review.openstack.org/432494
    WIP Initial draft for online data migrations

Addressed by: https://review.openstack.org/433125
    Metering to OVO

Addressed by: https://review.openstack.org/435562
    Simplify get_reservations_for_resources

Addressed by: https://review.openstack.org/435598
    Added support for _lock_for_update=True to get_object[s]

Addressed by: https://review.openstack.org/438144
    Lockless segmentation synchronization in ML2 type drivers

Addressed by: https://review.openstack.org/402750
    New enginefacade for networks, subnets.

Addressed by: https://review.openstack.org/441579
    DNM check neutron gate against d-g that uses lib/neutron services

Addressed by: https://review.openstack.org/442181
    Make query in quota api lockless

Addressed by: https://review.openstack.org/442567
    Network OVO Integration

Addressed by: https://review.openstack.org/441226
    Added docstring for Pager for OVO

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch40,n,z

Addressed by: https://review.openstack.org/419152
    Support object string field filtering on "LIKE" statement

Addressed by: https://review.openstack.org/447554
    Revert "OVO creation for RouterL3AgentBinding"

Addressed by: https://review.openstack.org/452266
    Added update_objects to OVO framework

Addressed by: https://review.openstack.org/452333
    Update devref for update_objects

Gerrit topic: https://review.openstack.org/#q,topic:bp/adopt-oslo-versioned-objects-for-db-patch46,n,z

Addressed by: https://review.openstack.org/429829
    Allow Agent object to be queryable by dict's key field

Addressed by: https://review.openstack.org/457339
    Revert "Integrate NetworkSegment OVO"

Addressed by: https://review.openstack.org/457350
    segments: make sure we pass lists into get_objects

Addressed by: https://review.openstack.org/429440
    Delete segments using OVO code

Gerrit topic: https://review.openstack.org/#q,topic:bug/1665215,n,z

Addressed by: https://review.openstack.org/466237
    Change join relationship between routerport and router

Addressed by: https://review.openstack.org/466983
    objects: don't allow to update create_at and update_at

Addressed by: https://review.openstack.org/466984
    objects: update fields_no_update and primary_keys to reflect models

Addressed by: https://review.openstack.org/468406
    Add QoS policy port binding OVO

Addressed by: https://review.openstack.org/468837
    Add QoS policy network binding OVO

Addressed by: https://review.openstack.org/468793
    Change supported vif type in Linux Bridge.

Addressed by: https://review.openstack.org/469189
    tests: use devstack-gate to deploy dstat for functional/fullstack

Gerrit topic: https://review.openstack.org/#q,topic:bug/1493714,n,z

Addressed by: https://review.openstack.org/473786
    Stop using nested transactions in OVO get/delete

Gerrit topic: https://review.openstack.org/#q,topic:bp/push-notifications,n,z

Addressed by: https://review.openstack.org/475283
    OVO: Allow port queries based on security_group_ids

Addressed by: https://review.openstack.org/479342
    objects: support tenant_id filter for get_* if project_id is present

Addressed by: https://review.openstack.org/481972
    FloatingIP to OVO

Addressed by: https://review.openstack.org/481995
    RouterPort to OVO

Addressed by: https://review.openstack.org/482722
    Integrate ovo in type_vlan cleanup

Addressed by: https://review.openstack.org/483020
    Integrate OVO in helpers

Gerrit topic: https://review.openstack.org/#q,topic:bug/1604222,n,z

Addressed by: https://review.openstack.org/485490
    DictOfMiscValuesField in OVO cleanup

Addressed by: https://review.openstack.org/485082
    Add specific values to specific fields in get_random_object_fields()

Gerrit topic: https://review.openstack.org/#q,topic:bug/1705719,n,z

Addressed by: https://review.openstack.org/495810
    Use Agent OVO in agents_db and test_agents_db

Addressed by: https://review.openstack.org/498682
    Integration of Port OVO in db_base_plugin_common.py

Addressed by: https://review.openstack.org/499919
    OVO for L3HARouterAgentPortBinding

Addressed by: https://review.openstack.org/501190
    Integration of L3HARouterAgentPortBinding in ml2/drivers/l2pop/db.py

Addressed by: https://review.openstack.org/501925
    Use Agent OVO in l3_agentschedulers_db

Addressed by: https://review.openstack.org/504337
    Use Network OVO in db_base_plugin_common

Addressed by: https://review.openstack.org/507772
    Use Network OVO in db_base_plugin_v2

Addressed by: https://review.openstack.org/512488
    Revert "Change join relationship between routerport and router"

Addressed by: https://review.openstack.org/516961
    Router to OVO

Addressed by: https://review.openstack.org/519017
    Revert "objects: get, update and delete converted to Subnet OVO usage"

Addressed by: https://review.openstack.org/519039
    Revert "objects: get, update and delete converted to Subnet OVO usage"

Addressed by: https://review.openstack.org/506037
    Part II of Integrate Port OVO

Addressed by: https://review.openstack.org/519762
    Revert "Revert "objects: get, update and delete converted to Subnet OVO usage""

Addressed by: https://review.openstack.org/521797
    Use Router OVO in external_net_db

Addressed by: https://review.openstack.org/526183
    test_l3_agent_scheduler: convert from Agent model to OVO

Addressed by: https://review.openstack.org/526196
    test_l3_agent_scheduler: convert from RouterL3AgentBinding model to OVO

Addressed by: https://review.openstack.org/526199
    test_dhcp_agent_scheduler: Network model to OVO

Addressed by: https://review.openstack.org/526204
    test_agentschedulers_db: switch to OVO for Agent

Addressed by: https://review.openstack.org/526205
    test_l3_dvr_db: switch to OVO for Agent

Addressed by: https://review.openstack.org/526210
    test_timestamp: switch to Network OVO

Addressed by: https://review.openstack.org/527038
    test_metering_plugin: convert from Agent model to OVO

Addressed by: https://review.openstack.org/527051
    Switch to use subnet OVO object in get_subnet

Addressed by: https://review.openstack.org/527113
    Use subnet OVO in ipam_backend_mixin module

Addressed by: https://review.openstack.org/527324
    test_dhcp_rpc_agent_api: convert from Agent model to OVO

Addressed by: https://review.openstack.org/527330
    l3_agentschedulers_db: convert from Agent model to OVO

Addressed by: https://review.openstack.org/527392
    Switch to use _get_subnet_object in neutrondb_ipam driver

Addressed by: https://review.openstack.org/527570
    extraroute_db: convert from Subnet model to OVO

Addressed by: https://review.openstack.org/529551
    Use Router OVO in metering_db

Addressed by: https://review.openstack.org/530182
    [WIP]Use Router OVO in l3_db

Addressed by: https://review.openstack.org/530341
    OVO: Add primary_keys for NetworkPortSecurity

Addressed by: https://review.openstack.org/530448
    test_provisioning_blocks: Network model to OVO

Addressed by: https://review.openstack.org/530589
    Switch to Subnet OVO in ipam_backend_mixin _save_subnet method

Addressed by: https://review.openstack.org/536913
    Revert "Integration of (Distributed) Port Binding OVO"

Addressed by: https://review.openstack.org/537320
    Use Port OVO in neutron/db/external_net_db.py

Addressed by: https://review.openstack.org/537325
    Use Meter Label OVO in neutron/db/metering/metering_db.py

Addressed by: https://review.openstack.org/544206
    Integration of (Distributed) Port Binding OVO

Addressed by: https://review.openstack.org/549168
    Use Router OVO in l3_db.py

Addressed by: https://review.openstack.org/553617
    WIP objects: automatically detect whether engine facade is used

Addressed by: https://review.openstack.org/556667
    Automatically expire obsolete relationships

Addressed by: https://review.openstack.org/559414
    [WIP] Convert Segment db model to OVO

Addressed by: https://review.openstack.org/559652
    test_servicetype: Service Type model to OVO

Addressed by: https://review.openstack.org/561834
    ipam_backend_mixin: Segments model to OVO

Addressed by: https://review.openstack.org/562489
    ipam_backend_mixin: Service Type model to OVO

Addressed by: https://review.openstack.org/563736
    Revert "Revert "Automatically expire obsolete relationships""

Addressed by: https://review.openstack.org/565358
    objects: don't refetch a non-list object field if it's None

Addressed by: https://review.openstack.org/565773
    Use Tag OVO in neutron/db/tag_db.py

Addressed by: https://review.openstack.org/566750
    WIP Fixed PortBindingLevelDbObjectTestCase

Addressed by: https://review.openstack.org/568693
    [WIP] Use OVO in test_ipam_pluggable_backend

Addressed by: https://review.openstack.org/570244
    Use OVO in ml2/test_db

Addressed by: https://review.openstack.org/579678
    Use OVO in plugins/ml2/test_plugin.py

Addressed by: https://review.openstack.org/579689
    Adopt Port OVO for tests/unit/db/test_provisioning_blocks.py

Addressed by: https://review.openstack.org/579053
    Use OVO in neutron/ipam/subnet_alloc.py

Addressed by: https://review.openstack.org/579682
    Use OVO for tests/unit/plugins/ml2/drivers/l2pop/test_db.py

Addressed by: https://review.openstack.org/580721
    Adopt Port OVO for ipam pluggable backend

Gerrit topic: https://review.openstack.org/#q,topic:592701,n,z

Addressed by: https://review.openstack.org/602362
    Move retry_if_session_inactive to tag OVO

Addressed by: https://review.openstack.org/602497
    use ovo for L3HARouterAgentPortBinding in l3_hamode.

Addressed by: https://review.openstack.org/605365
    Make retry decorator work if context is in self

Addressed by: https://review.openstack.org/608198
    [WIP] Use OVO in neutron/db/db_base_plugin_v2.py

Addressed by: https://review.openstack.org/608628
    Use NetworkPolicyRBAC OVO in neutron/db/external_net_db.py

Addressed by: https://review.openstack.org/608638
    Use NetworkRBAC OVO in tests/unit/db/test_db_base_plugin_v2.py

Addressed by: https://review.openstack.org/609691
    Introduce functional testing for Network RBAC policies

Addressed by: https://review.openstack.org/609692
    Add Network RBAC functional tests for External_net_db_mixin

Addressed by: https://review.openstack.org/609847
    Support filter with "not in" criterion

Addressed by: https://review.openstack.org/609848
    Convert Port to OVO in db/ipam_pluggable_backend.py

Addressed by: https://review.openstack.org/610182
    [WIP] Support fetching specific db column in OVO

Addressed by: https://review.openstack.org/610184
    Convert Subnet to OVO in ipam_pluggable_backend.py

Addressed by: https://review.openstack.org/610280
    [WIP] Use RBACBaseObject OVO in neutron/db/rbac_db_mixin.py

Addressed by: https://review.openstack.org/611461
    WIP: Fix port status for router ha_migration

Gerrit topic: https://review.opendev.org/#/q/topic:bp/adopt-oslo-versioned-objects-for-db

Addressed by: https://review.opendev.org/694046
    objects: don't refetch a non-list object field if it's None

Addressed by: https://review.opendev.org/704682
    objects: automatically detect whether engine facade is used

Addressed by: https://review.opendev.org/709375
    All Neutron ML2 drivers use Allocation/Endpoints OVO

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.