Convert ovs_lib's usage of ovs-vsctl to use the OVSDB protocol

Registered by Terry Wilson on 2014-07-10

Neutron's ovs_lib makes heavy use of executing ovs-vsctl, even parsing "user-readable" output from it. Either directly sending OVSDB commands or using Open vSwitch's existing python API should be more flexible and should have much better performance.

Blueprint information

Status:
Complete
Approver:
Kyle Mestery
Priority:
High
Drafter:
Terry Wilson
Direction:
Approved
Assignee:
Terry Wilson
Definition:
Approved
Series goal:
Accepted for kilo
Implementation:
Implemented
Milestone target:
milestone icon 2015.1.0
Started by
Kyle Mestery on 2014-07-25
Completed by
Kyle Mestery on 2015-03-21

Related branches

Sprints

Whiteboard

March-19 (mestery): FFE and moving to RC1.

February-2 (mestery): Moving to Kilo-3, this is dependent on the rootwrap code landing first.

December-15 (mestery): Lets try Kilo-2 for this one.

August-22 (mestery): Moving out of Juno, there are some performance issues with the current approach (as well as security issues) which need ironing out. This is a good candidate for an early Kilo merge at this point.

21-July (mestery): Approved as high for Juno-3.

Gerrit topic: https://review.openstack.org/#q,topic:bp/vsctl-to-ovsdb,n,z

Addressed by: https://review.openstack.org/106183 -- Spec Merged for Juno
    Spec for converting from ovs-vsctl calls to OVSDB

Addressed by: https://review.openstack.org/106517 -- Merged
    Retry on unassigned ofport instead of treating it as a failure

Addressed by: https://review.openstack.org/113162 -- Abandoned
    Convert vsctl call to ovsdb WIP - DO NOT MERGE

Addressed by: https://review.openstack.org/114050 -- Abandoned
    Convert vsctl call to ovsdb WIP - DO NOT MERGE

Addressed by: https://review.openstack.org/140185 -- Spec Merged for Kilo
    Spec for converting from ovs-vsctl calls to OVSDB

Addressed by: https://review.openstack.org/141134 -- Merged
    Move non-bridge-related OVSBridge methods to BaseOVS

Addressed by: https://review.openstack.org/143709 -- Merged
    Add OVSDB Interface

Addressed by: https://review.openstack.org/146670 -- Merged
    Add ovsdb-related functional tests

TODO:
Implement native-OVSDB backend for the new OVSDB API.

Addressed by: https://review.openstack.org/152761
    WIP! Add native OVSDB implmentation of OVSDB API

Addressed by: https://review.openstack.org/153383 (Merged)
    Use proper capitalization for OVS table names

Addressed by: https://review.openstack.org/153384 (Merged)
    Reorganize OVSDB API

Addressed by: https://review.openstack.org/153385 (Merged)
    Prepare to functionally test OVSDB interfaces

Addressed by: https://review.openstack.org/153387 (Merged)
    Use ovsdb-api neutral column/value mappings

Addressed by: https://review.openstack.org/146113 (Merged)
    Automate host configuration for functional testing

Addressed by: https://review.openstack.org/165642
    Test shiny new ovslib backend

Gerrit topic: https://review.openstack.org/#q,topic:bp/hyper-v-ovs-agent,n,z

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

Addressed by: https://review.openstack.org/166294
    Add sanity check for OVSDB native support

Addressed by: https://review.openstack.org/170771
    Add OVSDB connection as a parameter to the transaction

Addressed by: https://review.openstack.org/170842
    allow OVSDB connection schema to be configurable

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.