)]}'
{"ovsdbapp/constants.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"01844df2597a3fbe2a99f61e1378b0fe8d7e6193","unresolved":false,"context_lines":[{"line_number":1,"context_line":"DEFAULT_OVSDB_CONNECTION \u003d \u0027tcp:127.0.0.1:6640\u0027"},{"line_number":2,"context_line":"DEFAULT_TIMEOUT \u003d 5"},{"line_number":3,"context_line":"DEVICE_NAME_MAX_LEN \u003d 14"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_1ca11b95","line":1,"updated":"2017-03-17 19:32:08.000000000","message":"add license header","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3f22c8f0f3b9bf85b552ea613c469373a2c1a4d9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"DEFAULT_OVSDB_CONNECTION \u003d \u0027tcp:127.0.0.1:6640\u0027"},{"line_number":2,"context_line":"DEFAULT_TIMEOUT \u003d 5"},{"line_number":3,"context_line":"DEVICE_NAME_MAX_LEN \u003d 14"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_3f56c9d2","line":1,"in_reply_to":"1a1ced50_1ca11b95","updated":"2017-03-17 20:06:23.000000000","message":"i wonder why pep8 didn\u0027t catch that when it caught it for other files?","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"}],"ovsdbapp/tests/functional/test_impl_idl.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"abd4562ec71cd0d1631f7823133cfc7fabd27e3c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Tests for `ovsdbapp` module."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from ovsdbapp import constants"},{"line_number":23,"context_line":"from ovsdbapp import impl_idl"},{"line_number":24,"context_line":"from ovsdbapp.tests import base"},{"line_number":25,"context_line":"from ovsdbapp.tests import utils"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a1ced50_72896fca","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":30},"updated":"2017-03-17 09:48:37.000000000","message":"I tried to run the functional tests locally and this module appears to be missing.","commit_id":"d82e0631edfaad949b4bf99b00d6a807286b3659"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"468e2dec6e82eb518c2a336d65675f77157f18f8","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Tests for `ovsdbapp` module."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from ovsdbapp import constants"},{"line_number":23,"context_line":"from ovsdbapp import impl_idl"},{"line_number":24,"context_line":"from ovsdbapp.tests import base"},{"line_number":25,"context_line":"from ovsdbapp.tests import utils"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a1ced50_d0adb632","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":30},"in_reply_to":"1a1ced50_72896fca","updated":"2017-03-17 13:02:37.000000000","message":"oops!","commit_id":"d82e0631edfaad949b4bf99b00d6a807286b3659"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"01844df2597a3fbe2a99f61e1378b0fe8d7e6193","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"\"\"\""},{"line_number":16,"context_line":"test_ovsdbapp"},{"line_number":17,"context_line":"----------------------------------"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Tests for `ovsdbapp` module."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from ovsdbapp import constants"},{"line_number":23,"context_line":"from ovsdbapp import impl_idl"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_dcb5c3cd","line":20,"range":{"start_line":15,"start_character":0,"end_line":20,"end_character":3},"updated":"2017-03-17 19:32:08.000000000","message":"what does it give us? seems all redundant.","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3f22c8f0f3b9bf85b552ea613c469373a2c1a4d9","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"\"\"\""},{"line_number":16,"context_line":"test_ovsdbapp"},{"line_number":17,"context_line":"----------------------------------"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Tests for `ovsdbapp` module."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from ovsdbapp import constants"},{"line_number":23,"context_line":"from ovsdbapp import impl_idl"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_7c184f85","line":20,"range":{"start_line":15,"start_character":0,"end_line":20,"end_character":3},"in_reply_to":"1a1ced50_dcb5c3cd","updated":"2017-03-17 20:06:23.000000000","message":"boilerplate from cookiecutter. I can remove it if it offends you. :D","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"01844df2597a3fbe2a99f61e1378b0fe8d7e6193","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        cleanup_cmd \u003d self.api.del_br(self.brname)"},{"line_number":41,"context_line":"        self.addCleanup(cleanup_cmd.execute)"},{"line_number":42,"context_line":"        # Ensure that the bridge doesn\u0027t exist before testing"},{"line_number":43,"context_line":"        cleanup_cmd.execute()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def test_br_exists_false(self):"},{"line_number":46,"context_line":"        exists \u003d self.api.br_exists(self.brname).execute(check_error\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_7c04cf7d","line":43,"updated":"2017-03-17 19:32:08.000000000","message":"how could a randomly named bridge exist? are you too paranoid?","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3f22c8f0f3b9bf85b552ea613c469373a2c1a4d9","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        cleanup_cmd \u003d self.api.del_br(self.brname)"},{"line_number":41,"context_line":"        self.addCleanup(cleanup_cmd.execute)"},{"line_number":42,"context_line":"        # Ensure that the bridge doesn\u0027t exist before testing"},{"line_number":43,"context_line":"        cleanup_cmd.execute()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def test_br_exists_false(self):"},{"line_number":46,"context_line":"        exists \u003d self.api.br_exists(self.brname).execute(check_error\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_df0e9533","line":43,"in_reply_to":"1a1ced50_7c04cf7d","updated":"2017-03-17 20:06:23.000000000","message":"It *could* happen. I like to be provably correct when possible. :p I suppose 1 in a trillion chance of it being incorrect is acceptable if you insist. :p\n\nI would like to find a way to use ovs-sandbox to create a separate OVS environment for at least each test process that just goes away after tests are run. That way we wouldn\u0027t have to worry about cleaning up anything at all. Unfortunately, I don\u0027t think ovs-sandbox is actually shipped in packaging.","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"01844df2597a3fbe2a99f61e1378b0fe8d7e6193","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    def test_add_br_may_not_exist(self):"},{"line_number":60,"context_line":"        self.api.add_br(self.brname).execute(check_error\u003dTrue)"},{"line_number":61,"context_line":"        cmd \u003d self.api.add_br(self.brname, may_exist\u003dFalse)"},{"line_number":62,"context_line":"        self.assertRaises(RuntimeError, cmd.execute, check_error\u003dTrue)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def test_del_br_if_exists_false(self):"},{"line_number":65,"context_line":"        cmd \u003d self.api.del_br(self.brname, if_exists\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_5c1e33bb","line":62,"range":{"start_line":62,"start_character":26,"end_line":62,"end_character":39},"updated":"2017-03-17 19:32:08.000000000","message":"(No action required) is that really the interface you want your library to have? don\u0027t you want to distinguish somehow between random RuntimeErrors and your specific exceptions?","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3f22c8f0f3b9bf85b552ea613c469373a2c1a4d9","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    def test_add_br_may_not_exist(self):"},{"line_number":60,"context_line":"        self.api.add_br(self.brname).execute(check_error\u003dTrue)"},{"line_number":61,"context_line":"        cmd \u003d self.api.add_br(self.brname, may_exist\u003dFalse)"},{"line_number":62,"context_line":"        self.assertRaises(RuntimeError, cmd.execute, check_error\u003dTrue)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def test_del_br_if_exists_false(self):"},{"line_number":65,"context_line":"        cmd \u003d self.api.del_br(self.brname, if_exists\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_7f4da171","line":62,"range":{"start_line":62,"start_character":26,"end_line":62,"end_character":39},"in_reply_to":"1a1ced50_5c1e33bb","updated":"2017-03-17 20:06:23.000000000","message":"It definitely isn\u0027t the interface I *want* to have, but it is the interface inherited from the CLI interface where there was only one possible error and so to be compatible, I kept it. If Neutron deprecates the CLI interface (which for now my plan is to leave in the Neutron tree), then I would *love* to change this.","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"01844df2597a3fbe2a99f61e1378b0fe8d7e6193","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        pname \u003d self._test_add_port()"},{"line_number":97,"context_line":"        self.api.del_port(pname).execute(check_error\u003dTrue)"},{"line_number":98,"context_line":"        plist_cmd \u003d self.api.list_ports(self.brname)"},{"line_number":99,"context_line":"        self.assertNotIn(pname, plist_cmd.execute(check_error\u003dTrue))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_del_port_if_exists_false(self):"},{"line_number":102,"context_line":"        cmd \u003d self.api.del_port(utils.get_rand_device_name(), if_exists\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_9ccc2b37","line":99,"updated":"2017-03-17 19:32:08.000000000","message":"for the sake of completeness, you should have checked that the port exists after line 96.","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3f22c8f0f3b9bf85b552ea613c469373a2c1a4d9","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        pname \u003d self._test_add_port()"},{"line_number":97,"context_line":"        self.api.del_port(pname).execute(check_error\u003dTrue)"},{"line_number":98,"context_line":"        plist_cmd \u003d self.api.list_ports(self.brname)"},{"line_number":99,"context_line":"        self.assertNotIn(pname, plist_cmd.execute(check_error\u003dTrue))"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_del_port_if_exists_false(self):"},{"line_number":102,"context_line":"        cmd \u003d self.api.del_port(utils.get_rand_device_name(), if_exists\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_3f4c0970","line":99,"in_reply_to":"1a1ced50_9ccc2b37","updated":"2017-03-17 20:06:23.000000000","message":"Ok, will do. I didn\u0027t just because that test is done in test_add_port, so should theoretically be unnecessary here.","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"}],"ovsdbapp/tests/utils.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"01844df2597a3fbe2a99f61e1378b0fe8d7e6193","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2017 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_5cfab343","line":1,"range":{"start_line":1,"start_character":21,"end_line":1,"end_character":41},"updated":"2017-03-17 19:32:08.000000000","message":"new employer? nice!","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3f22c8f0f3b9bf85b552ea613c469373a2c1a4d9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2017 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_3f6329de","line":1,"range":{"start_line":1,"start_character":21,"end_line":1,"end_character":41},"in_reply_to":"1a1ced50_5cfab343","updated":"2017-03-17 20:06:23.000000000","message":"The code was copied from Neutron directly, so since I didn\u0027t really write it--and in fact, different parts were probably written by different people, I wasn\u0027t sure what to do. I\u0027m still not. I guess I can just delete that line.","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"01844df2597a3fbe2a99f61e1378b0fe8d7e6193","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from ovsdbapp import constants"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def get_random_string(length):"},{"line_number":21,"context_line":"    \"\"\"Get a random hex string of the specified length."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    :param length: The length for the hex string."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_3c9417e1","line":20,"updated":"2017-03-17 19:32:08.000000000","message":"I bet you copy pasted them. I suggest you add a note here saying where you got it from, for archeologists of the future.","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3f22c8f0f3b9bf85b552ea613c469373a2c1a4d9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from ovsdbapp import constants"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def get_random_string(length):"},{"line_number":21,"context_line":"    \"\"\"Get a random hex string of the specified length."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    :param length: The length for the hex string."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_3fbfa9fc","line":20,"in_reply_to":"1a1ced50_3c9417e1","updated":"2017-03-17 20:06:23.000000000","message":"Yep. I didn\u0027t want to depend on neutron/neutron-lib and thus these were just copied. I\u0027ll add a note.","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"c51f9f7b3ef35080ea69b59681c098ee26699240","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from ovsdbapp import constants"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def get_random_string(length):"},{"line_number":21,"context_line":"    \"\"\"Get a random hex string of the specified length."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    :param length: The length for the hex string."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_c6631240","line":20,"in_reply_to":"1a1ced50_3fbfa9fc","updated":"2017-03-20 09:31:48.000000000","message":"Do you plan to not depend on neutron-lib in the future? I like neutron-lib so I won\u0027t be against having it as dependency :)","commit_id":"7c6ca656479e4d98d3638ae6db78ddc0b98135ab"}]}
