)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4578bcc53f7c79b8a866c9256039786d96790a22","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This driver can be enabled by defining the below in the"},{"line_number":15,"context_line":"\u0027service_providers\u0027 section of neutron.conf"},{"line_number":16,"context_line":"service_provider \u003d LOADBALANCERV2:OVN:neutron_lbaas.drivers.ovn.driver.OvnDriver:default"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"(Note: Once octavia supports provider driver feature, we can move over there)"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7f96bb07_6a7d076d","line":16,"updated":"2018-01-22 19:44:40.000000000","message":"I don\u0027t think we want to set this as the default provider. At least not in the docs.","commit_id":"2bea418a987fe27b23491099014db164be136303"}],"neutron_lbaas/drivers/ovn/driver.py":[{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"e675114f506737613a3ae0ed4529a2ededad71b9","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        self.driver.ovn_nbdb_api.ls_lb_add("},{"line_number":127,"context_line":"            ovn_ls.uuid, ovn_lb.uuid, may_exist\u003dTrue).execute(check_error\u003dTrue)"},{"line_number":128,"context_line":"        self.successful_completion(context, listener)"},{"line_number":129,"context_line":"        "},{"line_number":130,"context_line":"    def update(self, context, old_listener, listener):"},{"line_number":131,"context_line":"        if listener.protocol not in self.driver.ovn_native_protocols:"},{"line_number":132,"context_line":"            self.failed_completion(context, listener)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f4e5783_1f4aa854","line":129,"updated":"2017-10-10 15:55:29.000000000","message":"This will be removed in the next patch set.","commit_id":"acc0ad1511292ed33b7b060aef3b9637eee6bce6"}],"neutron_lbaas/drivers/ovn/driver_v2.py":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"8c37ca6fb43ae2e7fb5cd711b8aa282c8a074c46","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_log import log as logging"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from neutron_lbaas._i18n import _"},{"line_number":18,"context_line":"from neutron_lbaas.common import exceptions"},{"line_number":19,"context_line":"from neutron_lbaas.drivers import driver_base"},{"line_number":20,"context_line":"from neutron_lbaas.services.loadbalancer import constants"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":23,"context_line":"VERSION \u003d \"1.0.0\""}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_eef04bcc","line":20,"range":{"start_line":15,"start_character":0,"end_line":20,"end_character":57},"updated":"2017-12-05 08:54:39.000000000","message":"nit but it would be nice to reorder the imports as per [0]. Both oslo_log and neutron_lbaas are third party to our project so we could move L15 down to L21.\n[0] https://docs.openstack.org/hacking/latest/user/hacking.html#import-order-template","commit_id":"284fddc94029a2ed255c51270f91ade59e17c76e"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"3c6bb2af4d0da55809dc2b286f7fb601e45743be","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_log import log as logging"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from neutron_lbaas._i18n import _"},{"line_number":18,"context_line":"from neutron_lbaas.common import exceptions"},{"line_number":19,"context_line":"from neutron_lbaas.drivers import driver_base"},{"line_number":20,"context_line":"from neutron_lbaas.services.loadbalancer import constants"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":23,"context_line":"VERSION \u003d \"1.0.0\""}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_3b22f253","line":20,"range":{"start_line":15,"start_character":0,"end_line":20,"end_character":57},"in_reply_to":"df87a7cf_eef04bcc","updated":"2017-12-05 10:55:30.000000000","message":"This was correct... first comes stdlib then comes third party then comes project imports so it was originally correct. Apologies :(","commit_id":"284fddc94029a2ed255c51270f91ade59e17c76e"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"8c37ca6fb43ae2e7fb5cd711b8aa282c8a074c46","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    @property"},{"line_number":39,"context_line":"    def ovn_nbdb_api(self):"},{"line_number":40,"context_line":"        if self._nb_ovn_idl is None:"},{"line_number":41,"context_line":"            mm \u003d self.plugin.db._core_plugin.mechanism_manager"},{"line_number":42,"context_line":"            ovn_mech_driver \u003d mm.mech_drivers[\u0027ovn\u0027].obj"},{"line_number":43,"context_line":"            self._nb_ovn_idl \u003d ovn_mech_driver._nb_ovn"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_0eec8ff1","line":40,"range":{"start_line":40,"start_character":8,"end_line":40,"end_character":35},"updated":"2017-12-05 08:54:39.000000000","message":"nit: if not self._nb_ovn_idl","commit_id":"284fddc94029a2ed255c51270f91ade59e17c76e"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"8c37ca6fb43ae2e7fb5cd711b8aa282c8a074c46","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            ovn_mech_driver \u003d mm.mech_drivers[\u0027ovn\u0027].obj"},{"line_number":43,"context_line":"            self._nb_ovn_idl \u003d ovn_mech_driver._nb_ovn"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        return self._nb_ovn_idl"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def find_ovn_lb(self, listener_id):"},{"line_number":48,"context_line":"        find_condition \u003d (\u0027name\u0027, \u0027\u003d\u0027, listener_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_cea467bc","line":45,"updated":"2017-12-05 08:54:39.000000000","message":"I\u0027d move this to L44 within the if block.","commit_id":"284fddc94029a2ed255c51270f91ade59e17c76e"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"dfc50cbe29bf7b8a7003be80d1541156bd09b403","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            ovn_mech_driver \u003d mm.mech_drivers[\u0027ovn\u0027].obj"},{"line_number":43,"context_line":"            self._nb_ovn_idl \u003d ovn_mech_driver._nb_ovn"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        return self._nb_ovn_idl"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def find_ovn_lb(self, listener_id):"},{"line_number":48,"context_line":"        find_condition \u003d (\u0027name\u0027, \u0027\u003d\u0027, listener_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_6509b92f","line":45,"in_reply_to":"df87a7cf_cea467bc","updated":"2017-12-05 10:02:19.000000000","message":"Disregard this comment, i\u0027m just dumb :)","commit_id":"284fddc94029a2ed255c51270f91ade59e17c76e"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"8c37ca6fb43ae2e7fb5cd711b8aa282c8a074c46","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        ovn_lb \u003d self.driver.find_ovn_lb(listener.id)"},{"line_number":139,"context_line":"        if not ovn_lb:"},{"line_number":140,"context_line":"            # Raise an exception"},{"line_number":141,"context_line":"            self.failed_completion(context, listener)"},{"line_number":142,"context_line":"            return"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_0ea80f75","line":140,"range":{"start_line":140,"start_character":13,"end_line":140,"end_character":32},"updated":"2017-12-05 08:54:39.000000000","message":"If I got right what failed_completion does, it will set the provisioning status of the object to ERROR but it won\u0027t raise an exception to the caller. Unless I understood it wrong, I think we could remove this comment to avoid confusion.","commit_id":"284fddc94029a2ed255c51270f91ade59e17c76e"},{"author":{"_account_id":10237,"name":"Numan Siddique","email":"nusiddiq@redhat.com","username":"numansiddique"},"change_message_id":"7cf114c99754fede3f47a8e4e6f4d6841b0957fa","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        ovn_lb \u003d self.driver.find_ovn_lb(listener.id)"},{"line_number":139,"context_line":"        if not ovn_lb:"},{"line_number":140,"context_line":"            # Raise an exception"},{"line_number":141,"context_line":"            self.failed_completion(context, listener)"},{"line_number":142,"context_line":"            return"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_a53ee1d7","line":140,"range":{"start_line":140,"start_character":13,"end_line":140,"end_character":32},"in_reply_to":"df87a7cf_0ea80f75","updated":"2018-01-23 03:40:43.000000000","message":"Done","commit_id":"284fddc94029a2ed255c51270f91ade59e17c76e"}],"neutron_lbaas/tests/unit/drivers/ovn/test_driver_v2.py":[{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"8c37ca6fb43ae2e7fb5cd711b8aa282c8a074c46","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"from neutron_lib import context"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from neutron_lbaas.common import exceptions"},{"line_number":19,"context_line":"from neutron_lbaas.drivers.ovn import driver_v2 as ovn_driver"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_8eeadfa9","line":16,"range":{"start_line":15,"start_character":0,"end_line":16,"end_character":31},"updated":"2017-12-05 08:54:39.000000000","message":"ditto, these are third party to us like neutron_lbaas. They al should go into the same import block","commit_id":"284fddc94029a2ed255c51270f91ade59e17c76e"}],"releasenotes/notes/ovn-driver-l4-support-8ed0f98f465c6ea3.yaml":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4578bcc53f7c79b8a866c9256039786d96790a22","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    TCP protocol is supported. This driver can be enabled by defining the below"},{"line_number":6,"context_line":"    in the service_providers section in configuration file with \u0027ovn\u0027 mechanism"},{"line_number":7,"context_line":"    driver enabled."},{"line_number":8,"context_line":"    service_provider \u003d LOADBALANCERV2:OVN:neutron_lbaas.drivers.ovn.driver.OvnDriver:default"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7f96bb07_2a97ff92","line":8,"updated":"2018-01-22 19:44:40.000000000","message":"I don\u0027t think we want to set this as the default provider. At least not in the docs.","commit_id":"2bea418a987fe27b23491099014db164be136303"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"ef0457ac95e1642701cf3ec76782acd1e475d493","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    TCP protocol is supported. This driver can be enabled by defining the below"},{"line_number":6,"context_line":"    in the service_providers section in configuration file with \u0027ovn\u0027 mechanism"},{"line_number":7,"context_line":"    driver enabled."},{"line_number":8,"context_line":"    service_provider \u003d LOADBALANCERV2:OVN:neutron_lbaas.drivers.ovn.driver.OvnDriver:default"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7f96bb07_8a5c13ee","line":8,"in_reply_to":"7f96bb07_2a97ff92","updated":"2018-01-22 19:48:37.000000000","message":"This is also incorrect, it is LOADBALANCERV2:OVN:neutron_lbaas.drivers.ovn.driver_v2.OvnDriver","commit_id":"2bea418a987fe27b23491099014db164be136303"}]}
