)]}'
{"networking_ovn/octavia/ovn_driver.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"890eda01f80315445f35f9d78efbb814b714401f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from octavia_lib.api.drivers import exceptions as driver_exceptions"},{"line_number":30,"context_line":"from octavia_lib.api.drivers import provider_base as driver_base"},{"line_number":31,"context_line":"from octavia_lib.common import constants"},{"line_number":32,"context_line":"from octavia.common import utils"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"from networking_ovn._i18n import _"},{"line_number":35,"context_line":"from networking_ovn.common import config as ovn_cfg"}],"source_content_type":"text/x-python","patch_set":23,"id":"dfd5e7cf_fb7a5686","line":32,"updated":"2019-01-08 16:19:13.000000000","message":"ImportError: No module named octavia.common\n\nPerhaps it has been moved to octavia_lib as well ?\n\nhttp://logs.openstack.org/48/601948/23/check/openstack-tox-py27/8330ed3/job-output.txt.gz#_2019-01-08_13_19_14_670384","commit_id":"8a7c95c367089ed1889a994e8a8124f455778920"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"52219d11a878c4a2c256fbee5f11c0f92df32a72","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from octavia_lib.api.drivers import exceptions as driver_exceptions"},{"line_number":30,"context_line":"from octavia_lib.api.drivers import provider_base as driver_base"},{"line_number":31,"context_line":"from octavia_lib.common import constants"},{"line_number":32,"context_line":"from octavia.common import utils"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"from networking_ovn._i18n import _"},{"line_number":35,"context_line":"from networking_ovn.common import config as ovn_cfg"}],"source_content_type":"text/x-python","patch_set":23,"id":"bfdaf3ff_a282754e","line":32,"in_reply_to":"bfdaf3ff_7a9446e9","updated":"2019-01-11 19:09:32.000000000","message":"hmm strange that error in the log then... perhaps octavia is not being installed ?","commit_id":"8a7c95c367089ed1889a994e8a8124f455778920"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"cc1f16efab0db748d75af052f1c2f3948525c9a6","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from octavia_lib.api.drivers import exceptions as driver_exceptions"},{"line_number":30,"context_line":"from octavia_lib.api.drivers import provider_base as driver_base"},{"line_number":31,"context_line":"from octavia_lib.common import constants"},{"line_number":32,"context_line":"from octavia.common import utils"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"from networking_ovn._i18n import _"},{"line_number":35,"context_line":"from networking_ovn.common import config as ovn_cfg"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_a76342b1","line":32,"in_reply_to":"bfdaf3ff_a282754e","updated":"2019-01-23 07:25:28.000000000","message":"Octavia isnt in the Global Requirements, so we cannot install it , I believe","commit_id":"8a7c95c367089ed1889a994e8a8124f455778920"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"db46821a0b83fbfd43c8b0cef7f35063d5877d77","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from octavia_lib.api.drivers import exceptions as driver_exceptions"},{"line_number":30,"context_line":"from octavia_lib.api.drivers import provider_base as driver_base"},{"line_number":31,"context_line":"from octavia_lib.common import constants"},{"line_number":32,"context_line":"from octavia.common import utils"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"from networking_ovn._i18n import _"},{"line_number":35,"context_line":"from networking_ovn.common import config as ovn_cfg"}],"source_content_type":"text/x-python","patch_set":23,"id":"bfdaf3ff_7a9446e9","line":32,"in_reply_to":"dfd5e7cf_fb7a5686","updated":"2019-01-11 06:14:54.000000000","message":"Octavia Lib doesnt have Utils , which is used in 320, 500 and 619 Line","commit_id":"8a7c95c367089ed1889a994e8a8124f455778920"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5a1a2683df7d29fd7108baa88309afff5108a609","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"def get_network_driver():"},{"line_number":199,"context_line":"    CONF.import_group(\u0027controller_worker\u0027, \u0027octavia.common.config\u0027)"},{"line_number":200,"context_line":"    network_driver \u003d driver.DriverManager("},{"line_number":201,"context_line":"        namespace\u003d\u0027octavia.network.drivers\u0027,"},{"line_number":202,"context_line":"        name\u003dCONF.controller_worker.network_driver,"},{"line_number":203,"context_line":"        invoke_on_load\u003dTrue"}],"source_content_type":"text/x-python","patch_set":30,"id":"9fdfeff1_6aaa16d3","line":200,"range":{"start_line":200,"start_character":4,"end_line":200,"end_character":20},"updated":"2019-02-06 09:40:36.000000000","message":"nit: this can be replaced by a return statement\n\ns/network_driver\u003d/return","commit_id":"3c344d149d87b77692fad7fdf9325ceddfc1378c"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"401717af938cf4b0b8be5e01d48a9a50f5c36a83","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"def get_network_driver():"},{"line_number":199,"context_line":"    CONF.import_group(\u0027controller_worker\u0027, \u0027octavia.common.config\u0027)"},{"line_number":200,"context_line":"    network_driver \u003d driver.DriverManager("},{"line_number":201,"context_line":"        namespace\u003d\u0027octavia.network.drivers\u0027,"},{"line_number":202,"context_line":"        name\u003dCONF.controller_worker.network_driver,"},{"line_number":203,"context_line":"        invoke_on_load\u003dTrue"}],"source_content_type":"text/x-python","patch_set":30,"id":"9fdfeff1_7e4ca19d","line":200,"range":{"start_line":200,"start_character":4,"end_line":200,"end_character":20},"in_reply_to":"9fdfeff1_6aaa16d3","updated":"2019-02-14 17:22:01.000000000","message":"Done","commit_id":"3c344d149d87b77692fad7fdf9325ceddfc1378c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"2198a42ed84d867301270af9b91fe66b1ae3ab6d","unresolved":false,"context_lines":[{"line_number":1152,"context_line":"                             \"provisioning_status\": constants.ERROR}],"},{"line_number":1153,"context_line":"                \u0027loadbalancers\u0027: [{\"id\": ovn_lb.name,"},{"line_number":1154,"context_line":"                                   \"provisioning_status\": constants.ACTIVE}]}"},{"line_number":1155,"context_line":""},{"line_number":1156,"context_line":"        return status"},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"    def _update_member(self, member, ovn_lb, pool_key):"}],"source_content_type":"text/x-python","patch_set":42,"id":"5fc1f717_bd7374b4","side":"PARENT","line":1155,"updated":"2019-04-01 12:40:35.000000000","message":"unrelated change","commit_id":"0a9447a615966bef2765a6bed38728f1dfc43772"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"2198a42ed84d867301270af9b91fe66b1ae3ab6d","unresolved":false,"context_lines":[{"line_number":1201,"context_line":"                     \u0027provisioning_status\u0027: constants.ACTIVE})"},{"line_number":1202,"context_line":"            status[\u0027listeners\u0027] \u003d listener_status"},{"line_number":1203,"context_line":"        except Exception:"},{"line_number":1204,"context_line":"            LOG.exception(\"Error occurred during member update\")"},{"line_number":1205,"context_line":"            status \u003d {"},{"line_number":1206,"context_line":"                \u0027pools\u0027: [{\u0027id\u0027: member[\u0027pool_id\u0027],"},{"line_number":1207,"context_line":"                           \u0027provisioning_status\u0027: constants.ACTIVE}],"}],"source_content_type":"text/x-python","patch_set":42,"id":"5fc1f717_1d45e843","line":1204,"updated":"2019-04-01 12:40:35.000000000","message":"unrelated change","commit_id":"189db31a12343fd84f3859a395068de8419e1206"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":1431,"context_line":"        self._ovn_helper.add_request(request)"},{"line_number":1432,"context_line":""},{"line_number":1433,"context_line":"    def is_monitor_enabled(self, member):"},{"line_number":1434,"context_line":"        if isinstance("},{"line_number":1435,"context_line":"            member.monitor_address, o_datamodels.UnsetType) or isinstance("},{"line_number":1436,"context_line":"                member.monitor_port, o_datamodels.UnsetType):"},{"line_number":1437,"context_line":"            return False"},{"line_number":1438,"context_line":"        return True"},{"line_number":1439,"context_line":""},{"line_number":1440,"context_line":"    # Member"},{"line_number":1441,"context_line":"    def member_create(self, member):"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_7a5de577","line":1438,"range":{"start_line":1434,"start_character":0,"end_line":1438,"end_character":19},"updated":"2019-04-03 09:20:44.000000000","message":"How about:\n\n return not (isinstance(member.monitor_address, o_datamodels.UnsetType) or \n             isinstance(member.monitor_port, o_datamodels.UnsetType))","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49e8afa8f50866e40b14b7b1960f36122927a990","unresolved":false,"context_lines":[{"line_number":1431,"context_line":"        self._ovn_helper.add_request(request)"},{"line_number":1432,"context_line":""},{"line_number":1433,"context_line":"    def is_monitor_enabled(self, member):"},{"line_number":1434,"context_line":"        return not (isinstance("},{"line_number":1435,"context_line":"            member.monitor_address, o_datamodels.UnsetType) or isinstance("},{"line_number":1436,"context_line":"                member.monitor_port, o_datamodels.UnsetType))"},{"line_number":1437,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_f4ff7afe","line":1434,"range":{"start_line":1434,"start_character":19,"end_line":1434,"end_character":20},"updated":"2019-04-17 11:00:43.000000000","message":"nit: parens are not needed here","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61fc1ba312d254ffa1280f9ed79078339ef23338","unresolved":false,"context_lines":[{"line_number":1431,"context_line":"        self._ovn_helper.add_request(request)"},{"line_number":1432,"context_line":""},{"line_number":1433,"context_line":"    def is_monitor_enabled(self, member):"},{"line_number":1434,"context_line":"        return not (isinstance("},{"line_number":1435,"context_line":"            member.monitor_address, o_datamodels.UnsetType) or isinstance("},{"line_number":1436,"context_line":"                member.monitor_port, o_datamodels.UnsetType))"},{"line_number":1437,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_fa2e80f8","line":1434,"range":{"start_line":1434,"start_character":19,"end_line":1434,"end_character":20},"in_reply_to":"3fce034c_f4ff7afe","updated":"2019-04-17 15:43:18.000000000","message":"I add it just for readability, but sure thing , can be removed","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49e8afa8f50866e40b14b7b1960f36122927a990","unresolved":false,"context_lines":[{"line_number":1437,"context_line":""},{"line_number":1438,"context_line":"    # Member"},{"line_number":1439,"context_line":"    def member_create(self, member):"},{"line_number":1440,"context_line":"        if self.is_monitor_enabled(member):"},{"line_number":1441,"context_line":"            msg \u003d _(\u0027OVN provider does not support monitor options\u0027)"},{"line_number":1442,"context_line":"            raise driver_exceptions.UnsupportedOptionError("},{"line_number":1443,"context_line":"                user_fault_string\u003dmsg,"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_940e3630","line":1440,"updated":"2019-04-17 11:00:43.000000000","message":"Is this change fixing anything? How is it related to adding the unittest coveraga?","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61fc1ba312d254ffa1280f9ed79078339ef23338","unresolved":false,"context_lines":[{"line_number":1437,"context_line":""},{"line_number":1438,"context_line":"    # Member"},{"line_number":1439,"context_line":"    def member_create(self, member):"},{"line_number":1440,"context_line":"        if self.is_monitor_enabled(member):"},{"line_number":1441,"context_line":"            msg \u003d _(\u0027OVN provider does not support monitor options\u0027)"},{"line_number":1442,"context_line":"            raise driver_exceptions.UnsupportedOptionError("},{"line_number":1443,"context_line":"                user_fault_string\u003dmsg,"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_3a4408b7","line":1440,"in_reply_to":"3fce034c_940e3630","updated":"2019-04-17 15:43:18.000000000","message":"I found this issue during the UT, where I assumed the incoming monitor information would be None, since Octavia wraps None to UnSetType, but the assumption was incorrect and I fixed it here.It should have been done in its parent patch, where I will move it","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"}],"networking_ovn/tests/functional/requirements.txt":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"57761f2713f79f329aa63a3cde62ff49fb40fb9b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"# of appearance. Changing the order has an impact on the overall integration"},{"line_number":5,"context_line":"# process, which may cause wedges in the gate later."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"octavia\u003e\u003d3.0.0.0b3"},{"line_number":8,"context_line":"psutil\u003e\u003d1.1.1,\u003c2.0.0"},{"line_number":9,"context_line":"psycopg2"},{"line_number":10,"context_line":"PyMySQL\u003e\u003d0.6.2  # MIT License"}],"source_content_type":"text/plain","patch_set":1,"id":"3f79a3b5_33a1d447","side":"PARENT","line":7,"range":{"start_line":7,"start_character":7,"end_line":7,"end_character":9},"updated":"2018-09-12 08:28:12.000000000","message":"The movement of octavia to test-requirements assists any future UT code for Octavia OVN driver","commit_id":"99ad5f185a8ccc748a3cf4f285b922cec1eb761f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"20324ee23ae4a37937e92b339c9700079a902350","unresolved":false,"context_lines":[{"line_number":4,"context_line":"# of appearance. Changing the order has an impact on the overall integration"},{"line_number":5,"context_line":"# process, which may cause wedges in the gate later."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"octavia\u003e\u003d3.0.0.0b3"},{"line_number":8,"context_line":"psutil\u003e\u003d1.1.1,\u003c2.0.0"},{"line_number":9,"context_line":"psycopg2"},{"line_number":10,"context_line":"PyMySQL\u003e\u003d0.6.2  # MIT License"}],"source_content_type":"text/plain","patch_set":1,"id":"3f79a3b5_dec5073f","side":"PARENT","line":7,"range":{"start_line":7,"start_character":7,"end_line":7,"end_character":9},"in_reply_to":"3f79a3b5_33a1d447","updated":"2018-09-12 09:15:37.000000000","message":"We have the octavia provider in the repository so this is a dependency for that code and should be left here no ?\n\nAs for unittests, octavia should be mocked there.","commit_id":"99ad5f185a8ccc748a3cf4f285b922cec1eb761f"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"9814b5d145c42d3810dc6799917fc28dc5e021bc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"# of appearance. Changing the order has an impact on the overall integration"},{"line_number":5,"context_line":"# process, which may cause wedges in the gate later."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"octavia\u003e\u003d3.0.0.0b3"},{"line_number":8,"context_line":"psutil\u003e\u003d1.1.1,\u003c2.0.0"},{"line_number":9,"context_line":"psycopg2"},{"line_number":10,"context_line":"PyMySQL\u003e\u003d0.6.2  # MIT License"}],"source_content_type":"text/plain","patch_set":1,"id":"3f79a3b5_39877515","side":"PARENT","line":7,"range":{"start_line":7,"start_character":7,"end_line":7,"end_character":9},"in_reply_to":"3f79a3b5_dec5073f","updated":"2018-09-12 10:21:08.000000000","message":"Including octavia in the test-requirements  solves both Functional and Unit test requirements, thats why I added it there","commit_id":"99ad5f185a8ccc748a3cf4f285b922cec1eb761f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"fc85a66d364fabdcd2988841b831fe13879c3dd2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"# of appearance. Changing the order has an impact on the overall integration"},{"line_number":5,"context_line":"# process, which may cause wedges in the gate later."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"octavia\u003e\u003d3.0.0.0b3"},{"line_number":8,"context_line":"psutil\u003e\u003d1.1.1,\u003c2.0.0"},{"line_number":9,"context_line":"psycopg2"},{"line_number":10,"context_line":"PyMySQL\u003e\u003d0.6.2  # MIT License"}],"source_content_type":"text/plain","patch_set":27,"id":"9fdfeff1_03935ea5","side":"PARENT","line":7,"updated":"2019-02-04 15:38:52.000000000","message":"I believe this change is making the functional tests to fail at: http://logs.openstack.org/48/601948/27/check/networking-ovn-dsvm-functional/8348c7e/job-output.txt.gz#_2019-02-04_12_57_08_114849","commit_id":"b77daa2f12c558e8ea8b3f0599a1fab4ffca0ab1"}],"networking_ovn/tests/unit/octavia/test_octavia_ovn.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"b80e953475c9a013749eb2dc1010480b954b8790","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from ovsdbapp.backend.ovs_idl import idlutils"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.tests import base"},{"line_number":21,"context_line":"from octavia.api.drivers import data_models"},{"line_number":22,"context_line":"from octavia.api.drivers import exceptions"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from networking_ovn.octavia import ovn_driver"}],"source_content_type":"text/x-python","patch_set":22,"id":"dfd5e7cf_6bd9ca81","line":21,"updated":"2019-01-07 17:05:12.000000000","message":"Apparently this module was moved/deleted ?\n\nhttp://logs.openstack.org/48/601948/22/check/openstack-tox-py27/25fec5d/job-output.txt.gz#_2019-01-07_15_30_03_848545","commit_id":"fd86f69ba8e5aca273751fa00c43bae4f79dd7aa"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5a1a2683df7d29fd7108baa88309afff5108a609","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def test_create_tcp_pool(self):"},{"line_number":190,"context_line":"        with mock.patch.object(idlutils, \u0027get_schema_helper\u0027):"},{"line_number":191,"context_line":"            self.driver.pool_create(self.ref_pool)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def test_update_pool(self):"},{"line_number":194,"context_line":"        with mock.patch.object(idlutils, \u0027get_schema_helper\u0027):"}],"source_content_type":"text/x-python","patch_set":30,"id":"9fdfeff1_6a93f6a4","line":191,"updated":"2019-02-06 09:40:36.000000000","message":"This comment is valid for most of these test_* methods.\n\nI think we need to add some assert statements to make sure that the pool/member/listener/loadbalancer was created/updated/delete, that the OVS commands were added to the transaction, etc...\n\nRight now, the tests seems a bit flaky because because when I look at their code [0] they all seem to have a try...except handling wrapping all the logic so that (with no reraise). So, if something fails in between these tests will still pass.\n\n[0] https://github.com/openstack/networking-ovn/blob/c0ebd5acd8393b103202baae82bfe638f18ac239/networking_ovn/octavia/ovn_driver.py#L849","commit_id":"3c344d149d87b77692fad7fdf9325ceddfc1378c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ed0507f36e531d9d9ea904a11cab292a3920c985","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            net_dr.return_value.neutron_client.list_ports.return_value \u003d ports"},{"line_number":291,"context_line":"            self.helper.lb_create(self.lb)"},{"line_number":292,"context_line":"            self.lb[\u0027admin_state_up\u0027] \u003d True"},{"line_number":293,"context_line":"            self.helper.lb_create(self.lb)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    @mock.patch(\u0027networking_ovn.octavia.ovn_driver.get_network_driver\u0027)"},{"line_number":296,"context_line":"    def test_lb_delete(self, net_dr):"}],"source_content_type":"text/x-python","patch_set":30,"id":"9fdfeff1_4adb927c","line":293,"updated":"2019-02-06 09:41:58.000000000","message":"ditto for the test_* methods in this class too. We need some assertions checking the results of these operations","commit_id":"3c344d149d87b77692fad7fdf9325ceddfc1378c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5f0c1910a38e11002cef989ade51500e77d0bd98","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def test_create_tcp_pool(self):"},{"line_number":190,"context_line":"        with mock.patch.object(idlutils, \u0027get_schema_helper\u0027):"},{"line_number":191,"context_line":"            self.driver.pool_create(self.ref_pool)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def test_update_pool(self):"},{"line_number":194,"context_line":"        with mock.patch.object(idlutils, \u0027get_schema_helper\u0027):"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_8f283186","line":191,"updated":"2019-02-13 09:59:43.000000000","message":"Copying\u0026pasting from a previous review:\n\nThis comment is valid for most of these test_* methods.\n\nWe need to add some assert statements to make sure that the pool/member/listener/loadbalancer was created/updated/delete, that the OVS commands were added to the transaction, etc...\n\nRight now, the tests seems a bit flaky because because when I look at their code [0] they all seem to have a try...except handling wrapping all the logic so that (with no re raise). So, if something fails in between these tests will still pass.\n\n[0] https://github.com/openstack/networking-ovn/blob/c0ebd5acd8393b103202baae82bfe638f18ac239/networking_ovn/octavia/ovn_driver.py#L849","commit_id":"35035e557b982f381aa4f236db53ddd1044fa748"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"401717af938cf4b0b8be5e01d48a9a50f5c36a83","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    def test_create_tcp_pool(self):"},{"line_number":190,"context_line":"        with mock.patch.object(idlutils, \u0027get_schema_helper\u0027):"},{"line_number":191,"context_line":"            self.driver.pool_create(self.ref_pool)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def test_update_pool(self):"},{"line_number":194,"context_line":"        with mock.patch.object(idlutils, \u0027get_schema_helper\u0027):"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_3a3cc591","line":191,"in_reply_to":"9fdfeff1_8f283186","updated":"2019-02-14 17:22:01.000000000","message":"I know, I had this comment and a ToDo in my itinerary for this :)","commit_id":"35035e557b982f381aa4f236db53ddd1044fa748"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"732f0d70736e916107822fa2591d137a0f62598f","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                          self.driver.pool_create, self.ref_http_pool)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def test_create_tcp_pool(self):"},{"line_number":199,"context_line":"        with mock.patch.object(idlutils, \u0027get_schema_helper\u0027):"},{"line_number":200,"context_line":"            self.driver.pool_create(self.ref_pool)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def test_update_pool(self):"}],"source_content_type":"text/x-python","patch_set":39,"id":"5fc1f717_bf640323","line":199,"range":{"start_line":199,"start_character":1,"end_line":199,"end_character":59},"updated":"2019-03-28 14:24:30.000000000","message":"Done","commit_id":"b4e4622a856328b9ea289dd0da39303fcc4ffea7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a25998cb08be113e3cbb7ec896ec31dc191cac56","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                          self.driver.pool_create, self.ref_http_pool)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def test_create_tcp_pool(self):"},{"line_number":199,"context_line":"        with mock.patch.object(idlutils, \u0027get_schema_helper\u0027):"},{"line_number":200,"context_line":"            self.driver.pool_create(self.ref_pool)"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def test_update_pool(self):"}],"source_content_type":"text/x-python","patch_set":39,"id":"5fc1f717_f50bbe8a","line":199,"range":{"start_line":199,"start_character":8,"end_line":199,"end_character":62},"updated":"2019-03-26 11:58:37.000000000","message":"nit: since almost all methods here are mocking this we can do it at the class level to avoid duplication:\n\n@mock.patch.object(idlutils,\u0027get_schema_helper\u0027)\nclass TestOvnProviderDriver(...):\n   ...","commit_id":"b4e4622a856328b9ea289dd0da39303fcc4ffea7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a25998cb08be113e3cbb7ec896ec31dc191cac56","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    def test_delete_pool(self):"},{"line_number":207,"context_line":"        with mock.patch.object(idlutils, \u0027get_schema_helper\u0027):"},{"line_number":208,"context_line":"            self.driver.pool_delete(self.ref_pool)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def test_create_member(self):"},{"line_number":211,"context_line":"        self.assertRaises(exceptions.UnsupportedOptionError,"}],"source_content_type":"text/x-python","patch_set":39,"id":"5fc1f717_55fad274","line":208,"range":{"start_line":208,"start_character":12,"end_line":208,"end_character":50},"updated":"2019-03-26 11:58:37.000000000","message":"What is this and the other methods invoking self.driver.*() testing exactly ?\n\nThere\u0027s no assertions made based what is the expect output from this call.\n\nThe only thing I see that this is testing is whether it raises an exception or not, but I think we can/should improve a bit more.","commit_id":"b4e4622a856328b9ea289dd0da39303fcc4ffea7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a25998cb08be113e3cbb7ec896ec31dc191cac56","unresolved":false,"context_lines":[{"line_number":256,"context_line":"                port_dict \u003d self.driver.create_vip_port(self.loadbalancer_id,"},{"line_number":257,"context_line":"                                                        self.project_id,"},{"line_number":258,"context_line":"                                                        self.vip_dict)"},{"line_number":259,"context_line":"                for key,value in self.vip_output.iteritems():"},{"line_number":260,"context_line":"                    self.assertEqual(value, port_dict[key])"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"5fc1f717_15e1aa9b","line":259,"range":{"start_line":259,"start_character":48,"end_line":259,"end_character":61},"updated":"2019-03-26 11:58:37.000000000","message":"iteritems() is Python2 only. Use items()","commit_id":"b4e4622a856328b9ea289dd0da39303fcc4ffea7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a25998cb08be113e3cbb7ec896ec31dc191cac56","unresolved":false,"context_lines":[{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        self.logical_sw \u003d mock.Mock()"},{"line_number":297,"context_line":"        nbdb_api \u003d self.helper.ovn_nbdb_api \u003d mock.Mock()"},{"line_number":298,"context_line":"        nbdb_api.ls_get \u003d mock.Mock()"},{"line_number":299,"context_line":"        nbdb_api.ls_get.return_value \u003d self.logical_sw"},{"line_number":300,"context_line":"        nbdb_api.db_list_rows.return_value \u003d mock.Mock()"},{"line_number":301,"context_line":"        ovn_ls \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":39,"id":"5fc1f717_3542a6ac","line":298,"range":{"start_line":298,"start_character":8,"end_line":298,"end_character":37},"updated":"2019-03-26 11:58:37.000000000","message":"since nb_api is an instance of mock.Mock() the ls_get() is already a mock as well","commit_id":"b4e4622a856328b9ea289dd0da39303fcc4ffea7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a25998cb08be113e3cbb7ec896ec31dc191cac56","unresolved":false,"context_lines":[{"line_number":302,"context_line":"        ovn_ls.ports \u003d []"},{"line_number":303,"context_line":"        self.logical_sw.execute.return_value \u003d ovn_ls"},{"line_number":304,"context_line":"        self.helper._execute_commands \u003d mock.Mock()"},{"line_number":305,"context_line":"        nbdb_api.db_find \u003d mock.Mock()"},{"line_number":306,"context_line":"        nbdb_api.db_find.return_value.execute \u003d mock.Mock()"},{"line_number":307,"context_line":"        ovn_lb \u003d mock.Mock()"},{"line_number":308,"context_line":"        ovn_lb.external_ids \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":39,"id":"5fc1f717_f5197ed6","line":305,"range":{"start_line":305,"start_character":8,"end_line":305,"end_character":38},"updated":"2019-03-26 11:58:37.000000000","message":"ditto, it\u0027s already a mock","commit_id":"b4e4622a856328b9ea289dd0da39303fcc4ffea7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a25998cb08be113e3cbb7ec896ec31dc191cac56","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    @mock.patch(\u0027networking_ovn.octavia.ovn_driver.get_network_driver\u0027)"},{"line_number":321,"context_line":"    def test_lb_create(self, net_dr):"},{"line_number":322,"context_line":"        ports \u003d self.ports"},{"line_number":323,"context_line":"        with mock.patch.object(idlutils, \u0027get_schema_helper\u0027):"},{"line_number":324,"context_line":"            net_dr.return_value.neutron_client.list_ports.return_value \u003d ports"},{"line_number":325,"context_line":"            status \u003d self.helper.lb_create(self.lb)"},{"line_number":326,"context_line":"            self.assertEqual(status[\u0027loadbalancers\u0027][0][\u0027provisioning_status\u0027],"}],"source_content_type":"text/x-python","patch_set":39,"id":"5fc1f717_354946b6","line":323,"range":{"start_line":323,"start_character":8,"end_line":323,"end_character":62},"updated":"2019-03-26 11:58:37.000000000","message":"nit: can be mocked at the class level","commit_id":"b4e4622a856328b9ea289dd0da39303fcc4ffea7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"2198a42ed84d867301270af9b91fe66b1ae3ab6d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        mocked_func \u003d \u0027networking_ovn.octavia.ovn_driver.OvnProviderHelper\u0027"},{"line_number":69,"context_line":"        mocked_func_for_lb \u003d mocked_func + \u0027._find_ovn_lb\u0027"},{"line_number":70,"context_line":"        mocked_func_for_pool_key \u003d mocked_func + \"._find_ovn_lb_with_pool_key\""},{"line_number":71,"context_line":"        ovn_driver.OvnProviderHelper.add_request \u003d self.add_request"},{"line_number":72,"context_line":"        self.project_id \u003d uuidutils.generate_uuid()"},{"line_number":73,"context_line":"        self.ref_member \u003d data_models.Member("},{"line_number":74,"context_line":"            address\u003d\u0027198.51.100.4\u0027,"}],"source_content_type":"text/x-python","patch_set":42,"id":"5fc1f717_fd601cd2","line":71,"range":{"start_line":71,"start_character":8,"end_line":71,"end_character":67},"updated":"2019-04-01 12:40:35.000000000","message":"Let\u0027s mock it properly. This is overwriting method on a certain module, it\u0027s not mocking.\n\npatcher \u003d mock.patch.object(ovn_driver.OvnProviderHelper, \u0027add_request\u0027)\nself.mock_add_request \u003d patcher.start()\nself.addCleanup(patcher.stop)","commit_id":"189db31a12343fd84f3859a395068de8419e1206"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"afb98b688ffb7e73d9ddd976cf6a75396e59ef33","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        mocked_func \u003d \u0027networking_ovn.octavia.ovn_driver.OvnProviderHelper\u0027"},{"line_number":69,"context_line":"        mocked_func_for_lb \u003d mocked_func + \u0027._find_ovn_lb\u0027"},{"line_number":70,"context_line":"        mocked_func_for_pool_key \u003d mocked_func + \"._find_ovn_lb_with_pool_key\""},{"line_number":71,"context_line":"        ovn_driver.OvnProviderHelper.add_request \u003d self.add_request"},{"line_number":72,"context_line":"        self.project_id \u003d uuidutils.generate_uuid()"},{"line_number":73,"context_line":"        self.ref_member \u003d data_models.Member("},{"line_number":74,"context_line":"            address\u003d\u0027198.51.100.4\u0027,"}],"source_content_type":"text/x-python","patch_set":42,"id":"5fc1f717_ae6d6acd","line":71,"range":{"start_line":71,"start_character":8,"end_line":71,"end_character":67},"in_reply_to":"5fc1f717_fd601cd2","updated":"2019-04-02 06:29:25.000000000","message":"Done","commit_id":"189db31a12343fd84f3859a395068de8419e1206"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"2198a42ed84d867301270af9b91fe66b1ae3ab6d","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        self.vip_output \u003d {\u0027vip_network_id\u0027: self.vip_dict[\u0027vip_network_id\u0027],"},{"line_number":182,"context_line":"                           \u0027vip_subnet_id\u0027: self.vip_dict[\u0027vip_subnet_id\u0027]}"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def add_request(self, request_dict):"},{"line_number":185,"context_line":"        ovn_driver.OvnProviderHelper.add_request \u003d mock.Mock()"},{"line_number":186,"context_line":"        self.assertEqual(request_dict, self.expected_dict)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def test_create_healthmonitor(self, helper):"},{"line_number":189,"context_line":"        self.assertRaises(exceptions.NotImplementedError,"}],"source_content_type":"text/x-python","patch_set":42,"id":"5fc1f717_9df558f0","line":186,"range":{"start_line":184,"start_character":0,"end_line":186,"end_character":58},"updated":"2019-04-01 12:40:35.000000000","message":"I know it works but, setting self.expected_dict in the test method and having this being called internally is a \"strange\" way to do unittest. It\u0027s hard to follow it\u0027s flow.\n\nLet\u0027s keep it simple like the rest of unittests and call the self.assertEqual() within the method itself.","commit_id":"189db31a12343fd84f3859a395068de8419e1206"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"afb98b688ffb7e73d9ddd976cf6a75396e59ef33","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        self.vip_output \u003d {\u0027vip_network_id\u0027: self.vip_dict[\u0027vip_network_id\u0027],"},{"line_number":182,"context_line":"                           \u0027vip_subnet_id\u0027: self.vip_dict[\u0027vip_subnet_id\u0027]}"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def add_request(self, request_dict):"},{"line_number":185,"context_line":"        ovn_driver.OvnProviderHelper.add_request \u003d mock.Mock()"},{"line_number":186,"context_line":"        self.assertEqual(request_dict, self.expected_dict)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def test_create_healthmonitor(self, helper):"},{"line_number":189,"context_line":"        self.assertRaises(exceptions.NotImplementedError,"}],"source_content_type":"text/x-python","patch_set":42,"id":"5fc1f717_ee7372b3","line":186,"range":{"start_line":184,"start_character":0,"end_line":186,"end_character":58},"in_reply_to":"5fc1f717_9df558f0","updated":"2019-04-02 06:29:25.000000000","message":"Done","commit_id":"189db31a12343fd84f3859a395068de8419e1206"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"2198a42ed84d867301270af9b91fe66b1ae3ab6d","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                \u0027loadbalancer_id\u0027: self.ref_pool.loadbalancer_id,"},{"line_number":210,"context_line":"                \u0027listener_id\u0027: self.ref_pool.listener_id,"},{"line_number":211,"context_line":"                \u0027admin_state_up\u0027: self.ref_pool.admin_state_up}"},{"line_number":212,"context_line":"        self.expected_dict \u003d {\u0027type\u0027: ovn_driver.REQ_TYPE_POOL_CREATE,"},{"line_number":213,"context_line":"                              \u0027info\u0027: info}"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        self.driver.pool_create(self.ref_pool)"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":42,"id":"5fc1f717_1de1682b","line":213,"range":{"start_line":212,"start_character":0,"end_line":213,"end_character":43},"updated":"2019-04-01 12:40:35.000000000","message":"(continuing comment L186)\n\nHere let\u0027s just do\n\nexpected_dict \u003d {...}\nself.driver.pool_create(self.ref_pool)\nself.mock_add_request.assert_called_once_with(expected_dict)\n\n(note self.mock_add_request comes from the comment at L71)","commit_id":"189db31a12343fd84f3859a395068de8419e1206"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"afb98b688ffb7e73d9ddd976cf6a75396e59ef33","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                \u0027loadbalancer_id\u0027: self.ref_pool.loadbalancer_id,"},{"line_number":210,"context_line":"                \u0027listener_id\u0027: self.ref_pool.listener_id,"},{"line_number":211,"context_line":"                \u0027admin_state_up\u0027: self.ref_pool.admin_state_up}"},{"line_number":212,"context_line":"        self.expected_dict \u003d {\u0027type\u0027: ovn_driver.REQ_TYPE_POOL_CREATE,"},{"line_number":213,"context_line":"                              \u0027info\u0027: info}"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        self.driver.pool_create(self.ref_pool)"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":42,"id":"5fc1f717_0e791e92","line":213,"range":{"start_line":212,"start_character":0,"end_line":213,"end_character":43},"in_reply_to":"5fc1f717_1de1682b","updated":"2019-04-02 06:29:25.000000000","message":"Done","commit_id":"189db31a12343fd84f3859a395068de8419e1206"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_ee1a766d","line":1,"updated":"2019-04-03 09:20:44.000000000","message":"The name of this file should be test_ovn_driver.py","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"e8912ef1f05959bd6b2741045979f9988ef0eb5c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_b7a81fd9","line":1,"in_reply_to":"5fc1f717_ee1a766d","updated":"2019-04-05 04:54:56.000000000","message":"Done","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"from oslo_utils import uuidutils"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from ovsdbapp.backend.ovs_idl import idlutils"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.tests import base"},{"line_number":21,"context_line":"from octavia_lib.api.drivers import data_models"},{"line_number":22,"context_line":"from octavia_lib.api.drivers import exceptions"},{"line_number":23,"context_line":"from octavia_lib.common import constants"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from networking_ovn.octavia import ovn_driver"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_da4df9c4","line":23,"range":{"start_line":16,"start_character":0,"end_line":23,"end_character":40},"updated":"2019-04-03 09:20:44.000000000","message":"These should be grouped together: https://docs.openstack.org/hacking/latest/user/hacking.html#imports","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"e8912ef1f05959bd6b2741045979f9988ef0eb5c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import mock"},{"line_number":16,"context_line":"from oslo_utils import uuidutils"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from ovsdbapp.backend.ovs_idl import idlutils"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from neutron.tests import base"},{"line_number":21,"context_line":"from octavia_lib.api.drivers import data_models"},{"line_number":22,"context_line":"from octavia_lib.api.drivers import exceptions"},{"line_number":23,"context_line":"from octavia_lib.common import constants"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from networking_ovn.octavia import ovn_driver"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_57b77b3b","line":23,"range":{"start_line":16,"start_character":0,"end_line":23,"end_character":40},"in_reply_to":"5fc1f717_da4df9c4","updated":"2019-04-05 04:54:56.000000000","message":"Done","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from networking_ovn.octavia import ovn_driver"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestOvnOctaviaPlugin(base.BaseTestCase):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _start_mock(self, path, return_value\u003dFalse, new_callable\u003dNone):"},{"line_number":31,"context_line":"        patcher \u003d mock.patch(path, return_value\u003dreturn_value,"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_6e5526fa","line":28,"range":{"start_line":28,"start_character":6,"end_line":28,"end_character":26},"updated":"2019-04-03 09:20:44.000000000","message":"This should be TestOvnProviderDriver ?","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"e8912ef1f05959bd6b2741045979f9988ef0eb5c","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from networking_ovn.octavia import ovn_driver"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestOvnOctaviaPlugin(base.BaseTestCase):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _start_mock(self, path, return_value\u003dFalse, new_callable\u003dNone):"},{"line_number":31,"context_line":"        patcher \u003d mock.patch(path, return_value\u003dreturn_value,"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_77b2b74b","line":28,"range":{"start_line":28,"start_character":6,"end_line":28,"end_character":26},"in_reply_to":"5fc1f717_6e5526fa","updated":"2019-04-05 04:54:56.000000000","message":"Done","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestOvnOctaviaPlugin(base.BaseTestCase):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _start_mock(self, path, return_value\u003dFalse, new_callable\u003dNone):"},{"line_number":31,"context_line":"        patcher \u003d mock.patch(path, return_value\u003dreturn_value,"},{"line_number":32,"context_line":"                             new_callable\u003dnew_callable)"},{"line_number":33,"context_line":"        patch \u003d patcher.start()"},{"line_number":34,"context_line":"        self.addCleanup(patcher.stop)"},{"line_number":35,"context_line":"        return patch"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestOvnOctaviaPlugin, self).setUp()"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_3ad43dbb","line":35,"range":{"start_line":30,"start_character":0,"end_line":35,"end_character":20},"updated":"2019-04-03 09:20:44.000000000","message":"You don\u0027t need this, all mocks are cleaned automatically:\nhttp://git.openstack.org/cgit/openstack/networking-ovn/tree/networking_ovn/tests/base.py#n48","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"e8912ef1f05959bd6b2741045979f9988ef0eb5c","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestOvnOctaviaPlugin(base.BaseTestCase):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _start_mock(self, path, return_value\u003dFalse, new_callable\u003dNone):"},{"line_number":31,"context_line":"        patcher \u003d mock.patch(path, return_value\u003dreturn_value,"},{"line_number":32,"context_line":"                             new_callable\u003dnew_callable)"},{"line_number":33,"context_line":"        patch \u003d patcher.start()"},{"line_number":34,"context_line":"        self.addCleanup(patcher.stop)"},{"line_number":35,"context_line":"        return patch"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestOvnOctaviaPlugin, self).setUp()"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_5790db95","line":35,"range":{"start_line":30,"start_character":0,"end_line":35,"end_character":20},"in_reply_to":"5fc1f717_3ad43dbb","updated":"2019-04-05 04:54:56.000000000","message":"I am using this function later on to call the mocks","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"cadf2f80b5f5c5347ca7a2c433bf78507f9f3cef","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestOvnOctaviaPlugin(base.BaseTestCase):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _start_mock(self, path, return_value\u003dFalse, new_callable\u003dNone):"},{"line_number":31,"context_line":"        patcher \u003d mock.patch(path, return_value\u003dreturn_value,"},{"line_number":32,"context_line":"                             new_callable\u003dnew_callable)"},{"line_number":33,"context_line":"        patch \u003d patcher.start()"},{"line_number":34,"context_line":"        self.addCleanup(patcher.stop)"},{"line_number":35,"context_line":"        return patch"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestOvnOctaviaPlugin, self).setUp()"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_5926c418","line":35,"range":{"start_line":30,"start_character":0,"end_line":35,"end_character":20},"in_reply_to":"5fc1f717_5790db95","updated":"2019-04-05 08:05:38.000000000","message":"I\u0027m not saying you\u0027re not using it. :) I\u0027m saying you don\u0027t need to use it. Just use mock.patch().start() directly instead.","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"493a181387ef13c9b57de91bce5d47c0e09a980b","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestOvnOctaviaPlugin(base.BaseTestCase):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _start_mock(self, path, return_value\u003dFalse, new_callable\u003dNone):"},{"line_number":31,"context_line":"        patcher \u003d mock.patch(path, return_value\u003dreturn_value,"},{"line_number":32,"context_line":"                             new_callable\u003dnew_callable)"},{"line_number":33,"context_line":"        patch \u003d patcher.start()"},{"line_number":34,"context_line":"        self.addCleanup(patcher.stop)"},{"line_number":35,"context_line":"        return patch"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestOvnOctaviaPlugin, self).setUp()"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_b98488d4","line":35,"range":{"start_line":30,"start_character":0,"end_line":35,"end_character":20},"in_reply_to":"5fc1f717_5926c418","updated":"2019-04-05 08:07:36.000000000","message":"Oops, I just pushed the patch out :)","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"f14f3f74f040d5175d210361819d3d23b5a20264","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestOvnOctaviaPlugin(base.BaseTestCase):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _start_mock(self, path, return_value\u003dFalse, new_callable\u003dNone):"},{"line_number":31,"context_line":"        patcher \u003d mock.patch(path, return_value\u003dreturn_value,"},{"line_number":32,"context_line":"                             new_callable\u003dnew_callable)"},{"line_number":33,"context_line":"        patch \u003d patcher.start()"},{"line_number":34,"context_line":"        self.addCleanup(patcher.stop)"},{"line_number":35,"context_line":"        return patch"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestOvnOctaviaPlugin, self).setUp()"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_79fdc039","line":35,"range":{"start_line":30,"start_character":0,"end_line":35,"end_character":20},"in_reply_to":"5fc1f717_b95d687a","updated":"2019-04-05 08:11:58.000000000","message":"No its ok, I modified the whole stuff based on your comments. Hope there is nothing major left. Will await your comments, and then push the next ps with the above change :)","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"42e99d0610cdf4613522992ccff7903b4b620b99","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestOvnOctaviaPlugin(base.BaseTestCase):"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def _start_mock(self, path, return_value\u003dFalse, new_callable\u003dNone):"},{"line_number":31,"context_line":"        patcher \u003d mock.patch(path, return_value\u003dreturn_value,"},{"line_number":32,"context_line":"                             new_callable\u003dnew_callable)"},{"line_number":33,"context_line":"        patch \u003d patcher.start()"},{"line_number":34,"context_line":"        self.addCleanup(patcher.stop)"},{"line_number":35,"context_line":"        return patch"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestOvnOctaviaPlugin, self).setUp()"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_b95d687a","line":35,"range":{"start_line":30,"start_character":0,"end_line":35,"end_character":20},"in_reply_to":"5fc1f717_b98488d4","updated":"2019-04-05 08:10:08.000000000","message":"It\u0027s ok, we can push as many updates as we want ;) I\u0027ll need to go through the testing scenarios anyways, I did only a partial review before, I apologize for that :)","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.port2_id \u003d uuidutils.generate_uuid()"},{"line_number":51,"context_line":"        self._start_mock("},{"line_number":52,"context_line":"            path\u003d\u0027networking_ovn.common.utils.get_ovsdb_connection\u0027,"},{"line_number":53,"context_line":"            return_value\u003dmock.Mock())"},{"line_number":54,"context_line":"        self.member_address \u003d \"192.168.2.149\""},{"line_number":55,"context_line":"        self.member_port \u003d \"1010\""},{"line_number":56,"context_line":"        self.member_pool_id \u003d self.pool_id"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_1a02a13f","line":53,"range":{"start_line":53,"start_character":12,"end_line":53,"end_character":36},"updated":"2019-04-03 09:20:44.000000000","message":"Mock is returned from function calls by default.","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        self.member_subnet_id \u003d uuidutils.generate_uuid()"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"@mock.patch.object(idlutils, \u0027get_schema_helper\u0027)"},{"line_number":61,"context_line":"class TestOvnProviderDriver(TestOvnOctaviaPlugin):"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def assert_called_with(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_da2c19ae","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":49},"updated":"2019-04-03 09:20:44.000000000","message":"You don\u0027t use the get_schema_helper anywhere but it\u0027s still passed to all testing methods. Perhaps it\u0027s better to mock it out in the setUp() and not pollute testing methods as it\u0027s not needed.","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"e8912ef1f05959bd6b2741045979f9988ef0eb5c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        self.member_subnet_id \u003d uuidutils.generate_uuid()"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"@mock.patch.object(idlutils, \u0027get_schema_helper\u0027)"},{"line_number":61,"context_line":"class TestOvnProviderDriver(TestOvnOctaviaPlugin):"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def assert_called_with(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_17d1f357","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":49},"in_reply_to":"5fc1f717_da2c19ae","updated":"2019-04-05 04:54:56.000000000","message":"It is used to mock the connection to the OVN NB DB IDL, but yeah, I can use it in the setup","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        add_req_thread \u003d mock.patch.object(ovn_driver.OvnProviderHelper,"},{"line_number":74,"context_line":"                                           \u0027add_request\u0027)"},{"line_number":75,"context_line":"        self.mock_add_request \u003d add_req_thread.start()"},{"line_number":76,"context_line":"        self.addCleanup(add_req_thread.stop)"},{"line_number":77,"context_line":"        self.project_id \u003d uuidutils.generate_uuid()"},{"line_number":78,"context_line":"        ovn_lb \u003d mock.Mock()"},{"line_number":79,"context_line":"        ovn_lb.name \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_babfcd5e","line":76,"range":{"start_line":76,"start_character":0,"end_line":76,"end_character":44},"updated":"2019-04-03 09:20:44.000000000","message":"You don\u0027t need this","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.mock_add_request \u003d add_req_thread.start()"},{"line_number":76,"context_line":"        self.addCleanup(add_req_thread.stop)"},{"line_number":77,"context_line":"        self.project_id \u003d uuidutils.generate_uuid()"},{"line_number":78,"context_line":"        ovn_lb \u003d mock.Mock()"},{"line_number":79,"context_line":"        ovn_lb.name \u003d mock.Mock()"},{"line_number":80,"context_line":"        ovn_lb.external_ids \u003d mock.MagicMock()"},{"line_number":81,"context_line":"        self.fail_member \u003d data_models.Member("}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_7a472579","line":78,"range":{"start_line":78,"start_character":0,"end_line":78,"end_character":28},"updated":"2019-04-03 09:20:44.000000000","message":"You don\u0027t need this as you only pass it as a return_value but return_value of called function is Mock by default.","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.addCleanup(add_req_thread.stop)"},{"line_number":77,"context_line":"        self.project_id \u003d uuidutils.generate_uuid()"},{"line_number":78,"context_line":"        ovn_lb \u003d mock.Mock()"},{"line_number":79,"context_line":"        ovn_lb.name \u003d mock.Mock()"},{"line_number":80,"context_line":"        ovn_lb.external_ids \u003d mock.MagicMock()"},{"line_number":81,"context_line":"        self.fail_member \u003d data_models.Member("},{"line_number":82,"context_line":"            address\u003d\u0027198.51.100.4\u0027,"},{"line_number":83,"context_line":"            admin_state_up\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_3aabdd1e","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":46},"updated":"2019-04-03 09:20:44.000000000","message":"Attributes of a Mock object are Mock by default.","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"aeb4a2411b6a9e11b51e76e9773f51e81b0a906a","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.addCleanup(add_req_thread.stop)"},{"line_number":77,"context_line":"        self.project_id \u003d uuidutils.generate_uuid()"},{"line_number":78,"context_line":"        ovn_lb \u003d mock.Mock()"},{"line_number":79,"context_line":"        ovn_lb.name \u003d mock.Mock()"},{"line_number":80,"context_line":"        ovn_lb.external_ids \u003d mock.MagicMock()"},{"line_number":81,"context_line":"        self.fail_member \u003d data_models.Member("},{"line_number":82,"context_line":"            address\u003d\u0027198.51.100.4\u0027,"},{"line_number":83,"context_line":"            admin_state_up\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_d974f49e","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":46},"in_reply_to":"5fc1f717_3aabdd1e","updated":"2019-04-05 08:06:13.000000000","message":"Actually I was wrong in probably picking up Mock instead of MagicMock.","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.vip_output \u003d {\u0027vip_network_id\u0027: self.vip_dict[\u0027vip_network_id\u0027],"},{"line_number":213,"context_line":"                           \u0027vip_subnet_id\u0027: self.vip_dict[\u0027vip_subnet_id\u0027]}"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_create_healthmonitor(self, helper):"},{"line_number":216,"context_line":"        self.assertRaises(exceptions.NotImplementedError,"},{"line_number":217,"context_line":"                          self.driver.health_monitor_create,"},{"line_number":218,"context_line":"                          False)"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_4e638ade","line":215,"range":{"start_line":215,"start_character":8,"end_line":215,"end_character":33},"updated":"2019-04-03 09:20:44.000000000","message":"the test name pattern is \"test_\u003cname_of_method\u003e\u003c_additional_suffix\u003e\" so this should be test_health_monitor_create(self)","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"e8912ef1f05959bd6b2741045979f9988ef0eb5c","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.vip_output \u003d {\u0027vip_network_id\u0027: self.vip_dict[\u0027vip_network_id\u0027],"},{"line_number":213,"context_line":"                           \u0027vip_subnet_id\u0027: self.vip_dict[\u0027vip_subnet_id\u0027]}"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_create_healthmonitor(self, helper):"},{"line_number":216,"context_line":"        self.assertRaises(exceptions.NotImplementedError,"},{"line_number":217,"context_line":"                          self.driver.health_monitor_create,"},{"line_number":218,"context_line":"                          False)"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_0308cb8e","line":215,"range":{"start_line":215,"start_character":8,"end_line":215,"end_character":33},"in_reply_to":"5fc1f717_4e638ade","updated":"2019-04-05 04:54:56.000000000","message":"Done","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.vip_output \u003d {\u0027vip_network_id\u0027: self.vip_dict[\u0027vip_network_id\u0027],"},{"line_number":213,"context_line":"                           \u0027vip_subnet_id\u0027: self.vip_dict[\u0027vip_subnet_id\u0027]}"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_create_healthmonitor(self, helper):"},{"line_number":216,"context_line":"        self.assertRaises(exceptions.NotImplementedError,"},{"line_number":217,"context_line":"                          self.driver.health_monitor_create,"},{"line_number":218,"context_line":"                          False)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def test_delete_healthmonitor(self, helper):"},{"line_number":221,"context_line":"        self.assertRaises(exceptions.NotImplementedError,"},{"line_number":222,"context_line":"                          self.driver.health_monitor_delete,"},{"line_number":223,"context_line":"                          False)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def test_update_healthmonitor(self, helper):"},{"line_number":226,"context_line":"        self.assertRaises(exceptions.NotImplementedError,"},{"line_number":227,"context_line":"                          self.driver.health_monitor_update, None,"},{"line_number":228,"context_line":"                          False)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    def test_create_member_failure(self, helper):"},{"line_number":231,"context_line":"        self.assertRaises(exceptions.UnsupportedOptionError,"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_ae99ced0","line":228,"range":{"start_line":215,"start_character":0,"end_line":228,"end_character":32},"updated":"2019-04-03 09:20:44.000000000","message":"I don\u0027t think we need to test it because it\u0027s coming from octavia_lib and we don\u0027t override those methods.","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"e8912ef1f05959bd6b2741045979f9988ef0eb5c","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.vip_output \u003d {\u0027vip_network_id\u0027: self.vip_dict[\u0027vip_network_id\u0027],"},{"line_number":213,"context_line":"                           \u0027vip_subnet_id\u0027: self.vip_dict[\u0027vip_subnet_id\u0027]}"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_create_healthmonitor(self, helper):"},{"line_number":216,"context_line":"        self.assertRaises(exceptions.NotImplementedError,"},{"line_number":217,"context_line":"                          self.driver.health_monitor_create,"},{"line_number":218,"context_line":"                          False)"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def test_delete_healthmonitor(self, helper):"},{"line_number":221,"context_line":"        self.assertRaises(exceptions.NotImplementedError,"},{"line_number":222,"context_line":"                          self.driver.health_monitor_delete,"},{"line_number":223,"context_line":"                          False)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"    def test_update_healthmonitor(self, helper):"},{"line_number":226,"context_line":"        self.assertRaises(exceptions.NotImplementedError,"},{"line_number":227,"context_line":"                          self.driver.health_monitor_update, None,"},{"line_number":228,"context_line":"                          False)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    def test_create_member_failure(self, helper):"},{"line_number":231,"context_line":"        self.assertRaises(exceptions.UnsupportedOptionError,"}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_776717b9","line":228,"range":{"start_line":215,"start_character":0,"end_line":228,"end_character":32},"in_reply_to":"5fc1f717_ae99ced0","updated":"2019-04-05 04:54:56.000000000","message":"Yes, can be removed","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"30025d106e4a7b783cda766a4a98cc05a05e60bb","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                          self.driver.health_monitor_update, None,"},{"line_number":228,"context_line":"                          False)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    def test_create_member_failure(self, helper):"},{"line_number":231,"context_line":"        self.assertRaises(exceptions.UnsupportedOptionError,"},{"line_number":232,"context_line":"                          self.driver.member_create, self.fail_member)"},{"line_number":233,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"5fc1f717_eee4b63e","line":230,"range":{"start_line":230,"start_character":8,"end_line":230,"end_character":34},"updated":"2019-04-03 09:20:44.000000000","message":"wrong naming","commit_id":"75b511d1c8db04ec73f4976ef9efa397873dc99a"}],"networking_ovn/tests/unit/octavia/test_ovn_driver.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49e8afa8f50866e40b14b7b1960f36122927a990","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class TestOvnOctaviaBase(base.BaseTestCase):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def _start_mock(self, path, return_value\u003dFalse, new_callable\u003dNone):"},{"line_number":28,"context_line":"        patcher \u003d mock.patch(path, return_value\u003dreturn_value,"},{"line_number":29,"context_line":"                             new_callable\u003dnew_callable)"},{"line_number":30,"context_line":"        patch \u003d patcher.start()"},{"line_number":31,"context_line":"        self.addCleanup(patcher.stop)"},{"line_number":32,"context_line":"        return patch"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def setUp(self):"},{"line_number":35,"context_line":"        super(TestOvnOctaviaBase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_b42252a3","line":32,"range":{"start_line":27,"start_character":0,"end_line":32,"end_character":20},"updated":"2019-04-17 11:00:43.000000000","message":"See my comment in PS50","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61fc1ba312d254ffa1280f9ed79078339ef23338","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class TestOvnOctaviaBase(base.BaseTestCase):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def _start_mock(self, path, return_value\u003dFalse, new_callable\u003dNone):"},{"line_number":28,"context_line":"        patcher \u003d mock.patch(path, return_value\u003dreturn_value,"},{"line_number":29,"context_line":"                             new_callable\u003dnew_callable)"},{"line_number":30,"context_line":"        patch \u003d patcher.start()"},{"line_number":31,"context_line":"        self.addCleanup(patcher.stop)"},{"line_number":32,"context_line":"        return patch"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def setUp(self):"},{"line_number":35,"context_line":"        super(TestOvnOctaviaBase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_3a72c812","line":32,"range":{"start_line":27,"start_character":0,"end_line":32,"end_character":20},"in_reply_to":"3fce034c_b42252a3","updated":"2019-04-17 15:43:18.000000000","message":"Will do. Missed out on this one","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"e9d82f2cd847a1e5e855a7b7d53751faa2a4ae6a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        self.vip_network_id \u003d uuidutils.generate_uuid()"},{"line_number":39,"context_line":"        self.vip_port_id \u003d uuidutils.generate_uuid()"},{"line_number":40,"context_line":"        self.vip_subnet_id \u003d uuidutils.generate_uuid()"},{"line_number":41,"context_line":"        self.listener_id \u003d uuidutils.generate_uuid()"},{"line_number":42,"context_line":"        self.pool_id \u003d uuidutils.generate_uuid()"},{"line_number":43,"context_line":"        self.member_id \u003d uuidutils.generate_uuid()"},{"line_number":44,"context_line":"        self.member_subnet_id \u003d uuidutils.generate_uuid()"},{"line_number":45,"context_line":"        self.project_id \u003d uuidutils.generate_uuid()"},{"line_number":46,"context_line":"        self.port1_id \u003d uuidutils.generate_uuid()"},{"line_number":47,"context_line":"        self.port2_id \u003d uuidutils.generate_uuid()"},{"line_number":48,"context_line":"        self._start_mock("},{"line_number":49,"context_line":"            path\u003d\u0027networking_ovn.common.utils.get_ovsdb_connection\u0027,"},{"line_number":50,"context_line":"            return_value\u003dmock.Mock())"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_897a75ee","line":47,"range":{"start_line":41,"start_character":0,"end_line":47,"end_character":49},"updated":"2019-04-19 06:05:22.000000000","message":"I arranged them in alphabetic order, just to be a bit more readable","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49e8afa8f50866e40b14b7b1960f36122927a990","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        self.port2_id \u003d uuidutils.generate_uuid()"},{"line_number":48,"context_line":"        self._start_mock("},{"line_number":49,"context_line":"            path\u003d\u0027networking_ovn.common.utils.get_ovsdb_connection\u0027,"},{"line_number":50,"context_line":"            return_value\u003dmock.Mock())"},{"line_number":51,"context_line":"        self.member_address \u003d \"192.168.2.149\""},{"line_number":52,"context_line":"        self.member_port \u003d \"1010\""},{"line_number":53,"context_line":"        self.member_pool_id \u003d self.pool_id"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_d4259eac","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":36},"updated":"2019-04-17 11:00:43.000000000","message":"This is implicit","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61fc1ba312d254ffa1280f9ed79078339ef23338","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        self.port2_id \u003d uuidutils.generate_uuid()"},{"line_number":48,"context_line":"        self._start_mock("},{"line_number":49,"context_line":"            path\u003d\u0027networking_ovn.common.utils.get_ovsdb_connection\u0027,"},{"line_number":50,"context_line":"            return_value\u003dmock.Mock())"},{"line_number":51,"context_line":"        self.member_address \u003d \"192.168.2.149\""},{"line_number":52,"context_line":"        self.member_port \u003d \"1010\""},{"line_number":53,"context_line":"        self.member_pool_id \u003d self.pool_id"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_ba5f9870","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":36},"in_reply_to":"3fce034c_d4259eac","updated":"2019-04-17 15:43:18.000000000","message":"Done","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49e8afa8f50866e40b14b7b1960f36122927a990","unresolved":false,"context_lines":[{"line_number":371,"context_line":""},{"line_number":372,"context_line":"    def setUp(self):"},{"line_number":373,"context_line":"        super(TestOvnProviderHelper, self).setUp()"},{"line_number":374,"context_line":"        mocked_func \u003d \u0027networking_ovn.octavia.ovn_driver.OvnProviderHelper\u0027"},{"line_number":375,"context_line":"        mocked_func +\u003d \u0027._update_status_to_octavia\u0027"},{"line_number":376,"context_line":"        self._start_mock(path\u003dmocked_func)"},{"line_number":377,"context_line":"        self.helper \u003d ovn_driver.OvnProviderHelper()"},{"line_number":378,"context_line":"        self.listener \u003d {\u0027id\u0027: self.listener_id,"},{"line_number":379,"context_line":"                         \u0027loadbalancer_id\u0027: self.loadbalancer_id,"},{"line_number":380,"context_line":"                         \u0027protocol\u0027: \"TCP\","}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_b47012a7","line":377,"range":{"start_line":374,"start_character":0,"end_line":377,"end_character":52},"updated":"2019-04-17 11:00:43.000000000","message":"mock.patch.object(self.helper, \u0027_update_status_to_octavia).start()","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61fc1ba312d254ffa1280f9ed79078339ef23338","unresolved":false,"context_lines":[{"line_number":371,"context_line":""},{"line_number":372,"context_line":"    def setUp(self):"},{"line_number":373,"context_line":"        super(TestOvnProviderHelper, self).setUp()"},{"line_number":374,"context_line":"        mocked_func \u003d \u0027networking_ovn.octavia.ovn_driver.OvnProviderHelper\u0027"},{"line_number":375,"context_line":"        mocked_func +\u003d \u0027._update_status_to_octavia\u0027"},{"line_number":376,"context_line":"        self._start_mock(path\u003dmocked_func)"},{"line_number":377,"context_line":"        self.helper \u003d ovn_driver.OvnProviderHelper()"},{"line_number":378,"context_line":"        self.listener \u003d {\u0027id\u0027: self.listener_id,"},{"line_number":379,"context_line":"                         \u0027loadbalancer_id\u0027: self.loadbalancer_id,"},{"line_number":380,"context_line":"                         \u0027protocol\u0027: \"TCP\","}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_dac70412","line":377,"range":{"start_line":374,"start_character":0,"end_line":377,"end_character":52},"in_reply_to":"3fce034c_b47012a7","updated":"2019-04-17 15:43:18.000000000","message":"Yeah, on removing the above function, would get the same line.\nThanks though :)","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49e8afa8f50866e40b14b7b1960f36122927a990","unresolved":false,"context_lines":[{"line_number":400,"context_line":"                       \u0027pool_id\u0027: self.member_pool_id,"},{"line_number":401,"context_line":"                       \u0027admin_state_up\u0027: True}"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        self.logical_sw \u003d mock.Mock()"},{"line_number":404,"context_line":"        nbdb_api \u003d self.helper.ovn_nbdb_api \u003d mock.Mock()"},{"line_number":405,"context_line":"        nbdb_api.ls_get.return_value \u003d self.logical_sw"},{"line_number":406,"context_line":"        nbdb_api.db_list_rows.return_value \u003d mock.Mock()"},{"line_number":407,"context_line":"        ovn_ls \u003d mock.Mock()"},{"line_number":408,"context_line":"        ovn_ls.ports \u003d []"},{"line_number":409,"context_line":"        self.logical_sw.execute.return_value \u003d ovn_ls"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_949396a3","line":406,"range":{"start_line":403,"start_character":0,"end_line":406,"end_character":56},"updated":"2019-04-17 11:00:43.000000000","message":"mock.patch.object(self.helper, \u0027ovn_nbdb_api\u0027).start()\nself.logical_sw \u003d self.helper.ovn_nbdb_api.ls_get.return_value","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61fc1ba312d254ffa1280f9ed79078339ef23338","unresolved":false,"context_lines":[{"line_number":400,"context_line":"                       \u0027pool_id\u0027: self.member_pool_id,"},{"line_number":401,"context_line":"                       \u0027admin_state_up\u0027: True}"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"        self.logical_sw \u003d mock.Mock()"},{"line_number":404,"context_line":"        nbdb_api \u003d self.helper.ovn_nbdb_api \u003d mock.Mock()"},{"line_number":405,"context_line":"        nbdb_api.ls_get.return_value \u003d self.logical_sw"},{"line_number":406,"context_line":"        nbdb_api.db_list_rows.return_value \u003d mock.Mock()"},{"line_number":407,"context_line":"        ovn_ls \u003d mock.Mock()"},{"line_number":408,"context_line":"        ovn_ls.ports \u003d []"},{"line_number":409,"context_line":"        self.logical_sw.execute.return_value \u003d ovn_ls"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_faca0018","line":406,"range":{"start_line":403,"start_character":0,"end_line":406,"end_character":56},"in_reply_to":"3fce034c_949396a3","updated":"2019-04-17 15:43:18.000000000","message":"Done","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49e8afa8f50866e40b14b7b1960f36122927a990","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        nbdb_api \u003d self.helper.ovn_nbdb_api \u003d mock.Mock()"},{"line_number":405,"context_line":"        nbdb_api.ls_get.return_value \u003d self.logical_sw"},{"line_number":406,"context_line":"        nbdb_api.db_list_rows.return_value \u003d mock.Mock()"},{"line_number":407,"context_line":"        ovn_ls \u003d mock.Mock()"},{"line_number":408,"context_line":"        ovn_ls.ports \u003d []"},{"line_number":409,"context_line":"        self.logical_sw.execute.return_value \u003d ovn_ls"},{"line_number":410,"context_line":"        self.helper._execute_commands \u003d mock.Mock()"},{"line_number":411,"context_line":"        nbdb_api.db_find.return_value.execute \u003d mock.Mock()"},{"line_number":412,"context_line":"        ovn_lb \u003d mock.MagicMock()"},{"line_number":413,"context_line":"        ovn_lb.external_ids.get.return_value \u003d {}"},{"line_number":414,"context_line":"        nbdb_api.db_find.return_value.execute.return_value \u003d [ovn_lb]"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_94d8767f","line":411,"range":{"start_line":407,"start_character":0,"end_line":411,"end_character":59},"updated":"2019-04-17 11:00:43.000000000","message":"mock.patch.object(self.helper, \u0027_execute_commands\u0027).start()\nself.logical_sw.execute.return_value.ports \u003d []","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61fc1ba312d254ffa1280f9ed79078339ef23338","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        nbdb_api \u003d self.helper.ovn_nbdb_api \u003d mock.Mock()"},{"line_number":405,"context_line":"        nbdb_api.ls_get.return_value \u003d self.logical_sw"},{"line_number":406,"context_line":"        nbdb_api.db_list_rows.return_value \u003d mock.Mock()"},{"line_number":407,"context_line":"        ovn_ls \u003d mock.Mock()"},{"line_number":408,"context_line":"        ovn_ls.ports \u003d []"},{"line_number":409,"context_line":"        self.logical_sw.execute.return_value \u003d ovn_ls"},{"line_number":410,"context_line":"        self.helper._execute_commands \u003d mock.Mock()"},{"line_number":411,"context_line":"        nbdb_api.db_find.return_value.execute \u003d mock.Mock()"},{"line_number":412,"context_line":"        ovn_lb \u003d mock.MagicMock()"},{"line_number":413,"context_line":"        ovn_lb.external_ids.get.return_value \u003d {}"},{"line_number":414,"context_line":"        nbdb_api.db_find.return_value.execute.return_value \u003d [ovn_lb]"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_9ad17cd0","line":411,"range":{"start_line":407,"start_character":0,"end_line":411,"end_character":59},"in_reply_to":"3fce034c_94d8767f","updated":"2019-04-17 15:43:18.000000000","message":"Done","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49e8afa8f50866e40b14b7b1960f36122927a990","unresolved":false,"context_lines":[{"line_number":413,"context_line":"        ovn_lb.external_ids.get.return_value \u003d {}"},{"line_number":414,"context_line":"        nbdb_api.db_find.return_value.execute.return_value \u003d [ovn_lb]"},{"line_number":415,"context_line":"        nbdb_api.db_list_rows.return_value.execute.return_value \u003d [ovn_lb]"},{"line_number":416,"context_line":"        self.helper._find_ovn_lb_with_pool_key \u003d mock.Mock()"},{"line_number":417,"context_line":"        self.helper._find_ovn_lb_with_pool_key.return_value \u003d ovn_lb"},{"line_number":418,"context_line":"        self.helper._get_pool_listeners \u003d mock.Mock()"},{"line_number":419,"context_line":"        self.helper._get_pool_listeners.return_value \u003d []"},{"line_number":420,"context_line":"        self.helper._update_lb_to_ls_association \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_f4d21a5c","line":417,"range":{"start_line":416,"start_character":0,"end_line":417,"end_character":68},"updated":"2019-04-17 11:00:43.000000000","message":"mock.patch.object(self.helper, \u0027_find_ovn_lb_with_pool_key\u0027, return_value\u003dovn_lb).start()","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61fc1ba312d254ffa1280f9ed79078339ef23338","unresolved":false,"context_lines":[{"line_number":413,"context_line":"        ovn_lb.external_ids.get.return_value \u003d {}"},{"line_number":414,"context_line":"        nbdb_api.db_find.return_value.execute.return_value \u003d [ovn_lb]"},{"line_number":415,"context_line":"        nbdb_api.db_list_rows.return_value.execute.return_value \u003d [ovn_lb]"},{"line_number":416,"context_line":"        self.helper._find_ovn_lb_with_pool_key \u003d mock.Mock()"},{"line_number":417,"context_line":"        self.helper._find_ovn_lb_with_pool_key.return_value \u003d ovn_lb"},{"line_number":418,"context_line":"        self.helper._get_pool_listeners \u003d mock.Mock()"},{"line_number":419,"context_line":"        self.helper._get_pool_listeners.return_value \u003d []"},{"line_number":420,"context_line":"        self.helper._update_lb_to_ls_association \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_bad478be","line":417,"range":{"start_line":416,"start_character":0,"end_line":417,"end_character":68},"in_reply_to":"3fce034c_f4d21a5c","updated":"2019-04-17 15:43:18.000000000","message":"Done","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49e8afa8f50866e40b14b7b1960f36122927a990","unresolved":false,"context_lines":[{"line_number":415,"context_line":"        nbdb_api.db_list_rows.return_value.execute.return_value \u003d [ovn_lb]"},{"line_number":416,"context_line":"        self.helper._find_ovn_lb_with_pool_key \u003d mock.Mock()"},{"line_number":417,"context_line":"        self.helper._find_ovn_lb_with_pool_key.return_value \u003d ovn_lb"},{"line_number":418,"context_line":"        self.helper._get_pool_listeners \u003d mock.Mock()"},{"line_number":419,"context_line":"        self.helper._get_pool_listeners.return_value \u003d []"},{"line_number":420,"context_line":"        self.helper._update_lb_to_ls_association \u003d mock.Mock()"},{"line_number":421,"context_line":"        self.helper._update_lb_to_ls_association.return_value \u003d []"},{"line_number":422,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_b4cc92bc","line":419,"range":{"start_line":418,"start_character":0,"end_line":419,"end_character":57},"updated":"2019-04-17 11:00:43.000000000","message":"mock.patch.object(self.helper, \u0027_get_pool_listeners\u0027, return_value\u003d[]).start()","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61fc1ba312d254ffa1280f9ed79078339ef23338","unresolved":false,"context_lines":[{"line_number":415,"context_line":"        nbdb_api.db_list_rows.return_value.execute.return_value \u003d [ovn_lb]"},{"line_number":416,"context_line":"        self.helper._find_ovn_lb_with_pool_key \u003d mock.Mock()"},{"line_number":417,"context_line":"        self.helper._find_ovn_lb_with_pool_key.return_value \u003d ovn_lb"},{"line_number":418,"context_line":"        self.helper._get_pool_listeners \u003d mock.Mock()"},{"line_number":419,"context_line":"        self.helper._get_pool_listeners.return_value \u003d []"},{"line_number":420,"context_line":"        self.helper._update_lb_to_ls_association \u003d mock.Mock()"},{"line_number":421,"context_line":"        self.helper._update_lb_to_ls_association.return_value \u003d []"},{"line_number":422,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_5adb14ec","line":419,"range":{"start_line":418,"start_character":0,"end_line":419,"end_character":57},"in_reply_to":"3fce034c_b4cc92bc","updated":"2019-04-17 15:43:18.000000000","message":"Done","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"49e8afa8f50866e40b14b7b1960f36122927a990","unresolved":false,"context_lines":[{"line_number":417,"context_line":"        self.helper._find_ovn_lb_with_pool_key.return_value \u003d ovn_lb"},{"line_number":418,"context_line":"        self.helper._get_pool_listeners \u003d mock.Mock()"},{"line_number":419,"context_line":"        self.helper._get_pool_listeners.return_value \u003d []"},{"line_number":420,"context_line":"        self.helper._update_lb_to_ls_association \u003d mock.Mock()"},{"line_number":421,"context_line":"        self.helper._update_lb_to_ls_association.return_value \u003d []"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    @mock.patch(\u0027networking_ovn.octavia.ovn_driver.get_network_driver\u0027)"},{"line_number":424,"context_line":"    def test_lb_create(self, net_dr):"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_74c62a9d","line":421,"range":{"start_line":420,"start_character":0,"end_line":421,"end_character":66},"updated":"2019-04-17 11:00:43.000000000","message":"mock.patch.object(self.helper, \u0027_update_lb_to_ls_association\u0027, return_value\u003d[]).start()","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"61fc1ba312d254ffa1280f9ed79078339ef23338","unresolved":false,"context_lines":[{"line_number":417,"context_line":"        self.helper._find_ovn_lb_with_pool_key.return_value \u003d ovn_lb"},{"line_number":418,"context_line":"        self.helper._get_pool_listeners \u003d mock.Mock()"},{"line_number":419,"context_line":"        self.helper._get_pool_listeners.return_value \u003d []"},{"line_number":420,"context_line":"        self.helper._update_lb_to_ls_association \u003d mock.Mock()"},{"line_number":421,"context_line":"        self.helper._update_lb_to_ls_association.return_value \u003d []"},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"    @mock.patch(\u0027networking_ovn.octavia.ovn_driver.get_network_driver\u0027)"},{"line_number":424,"context_line":"    def test_lb_create(self, net_dr):"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fce034c_7ad610c6","line":421,"range":{"start_line":420,"start_character":0,"end_line":421,"end_character":66},"in_reply_to":"3fce034c_74c62a9d","updated":"2019-04-17 15:43:18.000000000","message":"Done","commit_id":"d41fe167bb785b65e2b4cea5b4a1e1ffec5ef6e3"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"e9d82f2cd847a1e5e855a7b7d53751faa2a4ae6a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        self.vip_subnet_id \u003d uuidutils.generate_uuid()"},{"line_number":40,"context_line":"        mock.patch(\"networking_ovn.common.utils.get_ovsdb_connection\").start()"},{"line_number":41,"context_line":"        self.member_address \u003d \"192.168.2.149\""},{"line_number":42,"context_line":"        self.vip_address \u003d \u0027192.148.210.109\u0027"},{"line_number":43,"context_line":"        self.member_port \u003d \"1010\""},{"line_number":44,"context_line":"        self.member_pool_id \u003d self.pool_id"},{"line_number":45,"context_line":"        self.member_subnet_id \u003d uuidutils.generate_uuid()"}],"source_content_type":"text/x-python","patch_set":54,"id":"3fce034c_49800dc0","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":8},"updated":"2019-04-19 06:05:22.000000000","message":"unrelated change, could have been avoided.Kindly ignore","commit_id":"8ab308699cb46f51606c989366c15f324f0244e6"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"af8571e105e780f8407d0b762d9244c3c2919955","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"class TestOvnProviderDriver(TestOvnOctaviaBase):"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def assert_called_with(self, *args, **kwargs):"},{"line_number":53,"context_line":"        return mock.Mock.assert_called_with(*args, **kwargs)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def setUp(self):"},{"line_number":56,"context_line":"        super(TestOvnProviderDriver, self).setUp()"}],"source_content_type":"text/x-python","patch_set":58,"id":"9fb8cfa7_4fc7b865","line":53,"range":{"start_line":52,"start_character":0,"end_line":53,"end_character":60},"updated":"2019-06-10 11:52:23.000000000","message":"Is this used?","commit_id":"620a8385818eb0eff53609ec31ea8f271c550894"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"acb440f9ca59ed145e6556774d91de33133cb2bc","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"class TestOvnProviderDriver(TestOvnOctaviaBase):"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def assert_called_with(self, *args, **kwargs):"},{"line_number":53,"context_line":"        return mock.Mock.assert_called_with(*args, **kwargs)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def setUp(self):"},{"line_number":56,"context_line":"        super(TestOvnProviderDriver, self).setUp()"}],"source_content_type":"text/x-python","patch_set":58,"id":"9fb8cfa7_447423cf","line":53,"range":{"start_line":52,"start_character":0,"end_line":53,"end_character":60},"in_reply_to":"9fb8cfa7_4fc7b865","updated":"2019-06-24 06:50:27.000000000","message":"L335","commit_id":"620a8385818eb0eff53609ec31ea8f271c550894"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"af8571e105e780f8407d0b762d9244c3c2919955","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            vip_address\u003dself.vip_address,"},{"line_number":176,"context_line":"            vip_network_id\u003dself.vip_network_id)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        mocked_func \u003d \u0027networking_ovn.octavia.ovn_driver.OvnProviderHelper\u0027"},{"line_number":179,"context_line":"        mocked_func_for_lb \u003d mocked_func + \u0027._find_ovn_lb\u0027"},{"line_number":180,"context_line":"        mocked_func_for_member \u003d mocked_func + \u0027.get_member_info\u0027"},{"line_number":181,"context_line":"        mocked_func_for_pool_key \u003d mocked_func + \"._find_ovn_lb_with_pool_key\""},{"line_number":182,"context_line":"        mock.patch(mocked_func_for_pool_key, return_value\u003dovn_lb).start()"},{"line_number":183,"context_line":"        mock.patch(mocked_func_for_lb, return_value\u003dovn_lb).start()"},{"line_number":184,"context_line":"        mock.patch("}],"source_content_type":"text/x-python","patch_set":58,"id":"9fb8cfa7_ef430c12","line":181,"range":{"start_line":178,"start_character":0,"end_line":181,"end_character":78},"updated":"2019-06-10 11:52:23.000000000","message":"better to use\n\n mock.patch.object(ovn_driver.OvnProviderHelper, \u0027_find_ovn_lb).start()\n etc...","commit_id":"620a8385818eb0eff53609ec31ea8f271c550894"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"acb440f9ca59ed145e6556774d91de33133cb2bc","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            vip_address\u003dself.vip_address,"},{"line_number":176,"context_line":"            vip_network_id\u003dself.vip_network_id)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        mocked_func \u003d \u0027networking_ovn.octavia.ovn_driver.OvnProviderHelper\u0027"},{"line_number":179,"context_line":"        mocked_func_for_lb \u003d mocked_func + \u0027._find_ovn_lb\u0027"},{"line_number":180,"context_line":"        mocked_func_for_member \u003d mocked_func + \u0027.get_member_info\u0027"},{"line_number":181,"context_line":"        mocked_func_for_pool_key \u003d mocked_func + \"._find_ovn_lb_with_pool_key\""},{"line_number":182,"context_line":"        mock.patch(mocked_func_for_pool_key, return_value\u003dovn_lb).start()"},{"line_number":183,"context_line":"        mock.patch(mocked_func_for_lb, return_value\u003dovn_lb).start()"},{"line_number":184,"context_line":"        mock.patch("}],"source_content_type":"text/x-python","patch_set":58,"id":"9fb8cfa7_440bc328","line":181,"range":{"start_line":178,"start_character":0,"end_line":181,"end_character":78},"in_reply_to":"9fb8cfa7_ef430c12","updated":"2019-06-24 06:50:27.000000000","message":"Done","commit_id":"620a8385818eb0eff53609ec31ea8f271c550894"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"af8571e105e780f8407d0b762d9244c3c2919955","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            port_dict \u003d self.driver.create_vip_port(self.loadbalancer_id,"},{"line_number":349,"context_line":"                                                    self.project_id,"},{"line_number":350,"context_line":"                                                    self.vip_dict)"},{"line_number":351,"context_line":"            for key, value in self.vip_output.items():"},{"line_number":352,"context_line":"                self.assertEqual(value, port_dict[key])"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"class TestOvnProviderHelper(TestOvnOctaviaBase):"}],"source_content_type":"text/x-python","patch_set":58,"id":"9fb8cfa7_efad4c9b","line":352,"range":{"start_line":351,"start_character":0,"end_line":352,"end_character":55},"updated":"2019-06-10 11:52:23.000000000","message":"self.assertDictEqual(port_dict, self.vip_output)","commit_id":"620a8385818eb0eff53609ec31ea8f271c550894"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"acb440f9ca59ed145e6556774d91de33133cb2bc","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            port_dict \u003d self.driver.create_vip_port(self.loadbalancer_id,"},{"line_number":349,"context_line":"                                                    self.project_id,"},{"line_number":350,"context_line":"                                                    self.vip_dict)"},{"line_number":351,"context_line":"            for key, value in self.vip_output.items():"},{"line_number":352,"context_line":"                self.assertEqual(value, port_dict[key])"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"class TestOvnProviderHelper(TestOvnOctaviaBase):"}],"source_content_type":"text/x-python","patch_set":58,"id":"9fb8cfa7_6444c774","line":352,"range":{"start_line":351,"start_character":0,"end_line":352,"end_character":55},"in_reply_to":"9fb8cfa7_efad4c9b","updated":"2019-06-24 06:50:27.000000000","message":"Thanks for teaching me something new today :)\nBut this is failing, so reverting back to the older version till a reason can be found","commit_id":"620a8385818eb0eff53609ec31ea8f271c550894"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"af8571e105e780f8407d0b762d9244c3c2919955","unresolved":false,"context_lines":[{"line_number":404,"context_line":""},{"line_number":405,"context_line":"    @mock.patch(\u0027networking_ovn.octavia.ovn_driver.get_network_driver\u0027)"},{"line_number":406,"context_line":"    def test_lb_create(self, net_dr):"},{"line_number":407,"context_line":"        ports \u003d self.ports"},{"line_number":408,"context_line":"        net_dr.return_value.neutron_client.list_ports.return_value \u003d ports"},{"line_number":409,"context_line":"        status \u003d self.helper.lb_create(self.lb)"},{"line_number":410,"context_line":"        self.assertEqual(status[\u0027loadbalancers\u0027][0][\u0027provisioning_status\u0027],"},{"line_number":411,"context_line":"                         \"ACTIVE\")"}],"source_content_type":"text/x-python","patch_set":58,"id":"9fb8cfa7_ef86ac13","line":408,"range":{"start_line":407,"start_character":0,"end_line":408,"end_character":74},"updated":"2019-06-10 11:52:23.000000000","message":"nit: You could have done\n\n net_dr.return_value.neutron_client.list_ports.return_value \u003d (\n     ports)\n\nbut not a big deal :)","commit_id":"620a8385818eb0eff53609ec31ea8f271c550894"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"acb440f9ca59ed145e6556774d91de33133cb2bc","unresolved":false,"context_lines":[{"line_number":404,"context_line":""},{"line_number":405,"context_line":"    @mock.patch(\u0027networking_ovn.octavia.ovn_driver.get_network_driver\u0027)"},{"line_number":406,"context_line":"    def test_lb_create(self, net_dr):"},{"line_number":407,"context_line":"        ports \u003d self.ports"},{"line_number":408,"context_line":"        net_dr.return_value.neutron_client.list_ports.return_value \u003d ports"},{"line_number":409,"context_line":"        status \u003d self.helper.lb_create(self.lb)"},{"line_number":410,"context_line":"        self.assertEqual(status[\u0027loadbalancers\u0027][0][\u0027provisioning_status\u0027],"},{"line_number":411,"context_line":"                         \"ACTIVE\")"}],"source_content_type":"text/x-python","patch_set":58,"id":"9fb8cfa7_e4051715","line":408,"range":{"start_line":407,"start_character":0,"end_line":408,"end_character":74},"in_reply_to":"9fb8cfa7_ef86ac13","updated":"2019-06-24 06:50:27.000000000","message":"Done","commit_id":"620a8385818eb0eff53609ec31ea8f271c550894"}],"src/glance":[{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"1677b5b4dfe9cbb038fb44e9238b4195e335025c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Subproject commit 437ba3ee9b361b33e8918b804bd35f25a722457c"}],"source_content_type":"x-git/gitlink","patch_set":30,"id":"9fdfeff1_179db365","line":1,"updated":"2019-02-06 08:38:56.000000000","message":"Apologies for my ignorance. What is this?","commit_id":"3c344d149d87b77692fad7fdf9325ceddfc1378c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5a1a2683df7d29fd7108baa88309afff5108a609","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Subproject commit 437ba3ee9b361b33e8918b804bd35f25a722457c"}],"source_content_type":"x-git/gitlink","patch_set":30,"id":"9fdfeff1_4a6872b9","line":1,"in_reply_to":"9fdfeff1_179db365","updated":"2019-02-06 09:40:36.000000000","message":"We have to remove this files... \n\nThis is a git thing, when u add a submodule to ur project I think","commit_id":"3c344d149d87b77692fad7fdf9325ceddfc1378c"}],"src/horizon":[{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"1677b5b4dfe9cbb038fb44e9238b4195e335025c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Subproject commit 48a60ad5246ed3cfec9f0c2c22018e85916e062a"}],"source_content_type":"x-git/gitlink","patch_set":30,"id":"9fdfeff1_379a376e","line":1,"updated":"2019-02-06 08:38:56.000000000","message":"ditto","commit_id":"3c344d149d87b77692fad7fdf9325ceddfc1378c"}],"tox.ini":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"20324ee23ae4a37937e92b339c9700079a902350","unresolved":false,"context_lines":[{"line_number":70,"context_line":"setenv \u003d"},{"line_number":71,"context_line":"  {[testenv]setenv}"},{"line_number":72,"context_line":"  OS_TEST_PATH\u003d./networking_ovn/tests/functional"},{"line_number":73,"context_line":"  OS_TEST_TIMEOUT\u003d120"},{"line_number":74,"context_line":"  PYTHON\u003dcoverage run --source networking_ovn --parallel-mode"},{"line_number":75,"context_line":"commands \u003d"},{"line_number":76,"context_line":"  stestr run --no-subunit-trace {posargs}"}],"source_content_type":"text/x-properties","patch_set":1,"id":"3f79a3b5_5edfb70b","line":73,"updated":"2018-09-12 09:15:37.000000000","message":"Doesn\u0027t seem to work: http://logs.openstack.org/48/601948/1/check/openstack-tox-cover/90c13c5/job-output.txt.gz#_2018-09-12_08_31_10_522117","commit_id":"edf89af1c03903640317ef4a733a3b48a8a3e566"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5a1a2683df7d29fd7108baa88309afff5108a609","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  {[testenv]setenv}"},{"line_number":73,"context_line":"  PYTHON\u003dcoverage run --source networking_ovn --parallel-mode"},{"line_number":74,"context_line":"commands \u003d"},{"line_number":75,"context_line":"  coverage erase"},{"line_number":76,"context_line":"  stestr run --no-subunit-trace {posargs}"},{"line_number":77,"context_line":"  coverage combine"},{"line_number":78,"context_line":"  coverage report --fail-under\u003d70 --skip-covered"}],"source_content_type":"text/x-properties","patch_set":30,"id":"9fdfeff1_8aa3ba00","line":75,"updated":"2019-02-06 09:40:36.000000000","message":"This change seems unrelated with the rest of the patch","commit_id":"3c344d149d87b77692fad7fdf9325ceddfc1378c"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"c1aa9b70856506996c6ca627d7e660ffaef22d60","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  {[testenv]setenv}"},{"line_number":73,"context_line":"  PYTHON\u003dcoverage run --source networking_ovn --parallel-mode"},{"line_number":74,"context_line":"commands \u003d"},{"line_number":75,"context_line":"  coverage erase"},{"line_number":76,"context_line":"  stestr run --no-subunit-trace {posargs}"},{"line_number":77,"context_line":"  coverage combine"},{"line_number":78,"context_line":"  coverage report --fail-under\u003d70 --skip-covered"}],"source_content_type":"text/x-properties","patch_set":30,"id":"9fdfeff1_8a9dfa0b","line":75,"in_reply_to":"9fdfeff1_8aa3ba00","updated":"2019-02-06 10:25:42.000000000","message":"This actually removes the previous coverage files, so that tox-cover provides the updated report. Just for sanity","commit_id":"3c344d149d87b77692fad7fdf9325ceddfc1378c"}],"zuul.d/project.yaml":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"af8571e105e780f8407d0b762d9244c3c2919955","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        - openstack-tox-cover:"},{"line_number":35,"context_line":"            required-projects:"},{"line_number":36,"context_line":"              - openstack/neutron"},{"line_number":37,"context_line":"            voting: false"},{"line_number":38,"context_line":"        - networking-ovn-tempest-slow:"},{"line_number":39,"context_line":"            voting: false"},{"line_number":40,"context_line":"    gate:"}],"source_content_type":"text/x-yaml","patch_set":58,"id":"9fb8cfa7_efb46cd3","side":"PARENT","line":37,"updated":"2019-06-10 11:52:23.000000000","message":"I don\u0027t think this is related to Octavia driver unittests","commit_id":"c0b2e0bc0071d183c79ad3196a7b54aae70e1719"}]}
