)]}'
{"dragonflow/db/drivers/ovsdb_vswitch_impl.py":[{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"bd3d9e89a971e7dbc648792a385a20d766e3918b","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        is_controller_set \u003d False"},{"line_number":174,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":175,"context_line":"        if br_int is not None and\\"},{"line_number":176,"context_line":"           len(br_int.controller) is not 0 and\\"},{"line_number":177,"context_line":"           br_int.controller[0].target \u003d\u003d target:"},{"line_number":178,"context_line":"            is_controller_set \u003d True"},{"line_number":179,"context_line":"        return is_controller_set"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_11bb32c5","line":176,"range":{"start_line":176,"start_character":11,"end_line":176,"end_character":42},"updated":"2016-04-28 16:11:59.000000000","message":"len(...) \u003e 0","commit_id":"e1f123f4748e9ef6bd8f5b7686b44f65556b4e7e"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"924b063cd4588759f2eae9c43ef37f9b04d06d79","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        is_controller_set \u003d False"},{"line_number":174,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":175,"context_line":"        if br_int is not None and\\"},{"line_number":176,"context_line":"           len(br_int.controller) is not 0 and\\"},{"line_number":177,"context_line":"           br_int.controller[0].target \u003d\u003d target:"},{"line_number":178,"context_line":"            is_controller_set \u003d True"},{"line_number":179,"context_line":"        return is_controller_set"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_75c1a47f","line":176,"range":{"start_line":176,"start_character":11,"end_line":176,"end_character":42},"in_reply_to":"1a122d0e_11bb32c5","updated":"2016-04-29 01:33:11.000000000","message":"Done","commit_id":"e1f123f4748e9ef6bd8f5b7686b44f65556b4e7e"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"bd3d9e89a971e7dbc648792a385a20d766e3918b","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":175,"context_line":"        if br_int is not None and\\"},{"line_number":176,"context_line":"           len(br_int.controller) is not 0 and\\"},{"line_number":177,"context_line":"           br_int.controller[0].target \u003d\u003d target:"},{"line_number":178,"context_line":"            is_controller_set \u003d True"},{"line_number":179,"context_line":"        return is_controller_set"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_11097295","line":177,"range":{"start_line":177,"start_character":11,"end_line":177,"end_character":38},"updated":"2016-04-28 16:11:59.000000000","message":"it seems we don\u0027t support multi-controller here. please add a note on this line to highlight the problem.","commit_id":"e1f123f4748e9ef6bd8f5b7686b44f65556b4e7e"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"924b063cd4588759f2eae9c43ef37f9b04d06d79","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":175,"context_line":"        if br_int is not None and\\"},{"line_number":176,"context_line":"           len(br_int.controller) is not 0 and\\"},{"line_number":177,"context_line":"           br_int.controller[0].target \u003d\u003d target:"},{"line_number":178,"context_line":"            is_controller_set \u003d True"},{"line_number":179,"context_line":"        return is_controller_set"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_b5b7bc1f","line":177,"range":{"start_line":177,"start_character":11,"end_line":177,"end_character":38},"in_reply_to":"1a122d0e_11097295","updated":"2016-04-29 01:33:11.000000000","message":"ok","commit_id":"e1f123f4748e9ef6bd8f5b7686b44f65556b4e7e"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"bd3d9e89a971e7dbc648792a385a20d766e3918b","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        is_fail_mode_set \u003d False"},{"line_number":183,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":184,"context_line":"        if br_int is not None and\\"},{"line_number":185,"context_line":"           len(br_int.fail_mode) is not 0 and\\"},{"line_number":186,"context_line":"           br_int.fail_mode[0] \u003d\u003d fail_mode:"},{"line_number":187,"context_line":"            is_fail_mode_set \u003d True"},{"line_number":188,"context_line":"        return is_fail_mode_set"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_91f58284","line":185,"range":{"start_line":185,"start_character":11,"end_line":185,"end_character":41},"updated":"2016-04-28 16:11:59.000000000","message":"ditto","commit_id":"e1f123f4748e9ef6bd8f5b7686b44f65556b4e7e"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"924b063cd4588759f2eae9c43ef37f9b04d06d79","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        is_fail_mode_set \u003d False"},{"line_number":183,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":184,"context_line":"        if br_int is not None and\\"},{"line_number":185,"context_line":"           len(br_int.fail_mode) is not 0 and\\"},{"line_number":186,"context_line":"           br_int.fail_mode[0] \u003d\u003d fail_mode:"},{"line_number":187,"context_line":"            is_fail_mode_set \u003d True"},{"line_number":188,"context_line":"        return is_fail_mode_set"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_f53bf499","line":185,"range":{"start_line":185,"start_character":11,"end_line":185,"end_character":41},"in_reply_to":"1a122d0e_91f58284","updated":"2016-04-29 01:33:11.000000000","message":"Done","commit_id":"e1f123f4748e9ef6bd8f5b7686b44f65556b4e7e"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"87cebc84cd79071aded551c18c45410291ccef02","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    def check_controller(self, target):"},{"line_number":173,"context_line":"        is_controller_set \u003d False"},{"line_number":174,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":175,"context_line":"        # if controller is not set, len(controller) is 0"},{"line_number":176,"context_line":"        if br_int is not None and\\"},{"line_number":177,"context_line":"           len(br_int.controller) \u003e 0 and\\"},{"line_number":178,"context_line":"           br_int.controller[0].target \u003d\u003d target:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_d2eb1c77","line":175,"range":{"start_line":175,"start_character":36,"end_line":175,"end_character":51},"updated":"2016-05-03 08:06:02.000000000","message":"did you mean len(br_int.controller) is 0?","commit_id":"f4832647929e5eac26bed815c8fc85fe21841001"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"583ee4b187d398984105c3281309ff2b801b0547","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    def check_controller(self, target):"},{"line_number":173,"context_line":"        is_controller_set \u003d False"},{"line_number":174,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":175,"context_line":"        # if controller is not set, len(controller) is 0"},{"line_number":176,"context_line":"        if br_int is not None and\\"},{"line_number":177,"context_line":"           len(br_int.controller) \u003e 0 and\\"},{"line_number":178,"context_line":"           br_int.controller[0].target \u003d\u003d target:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_b2166056","line":175,"range":{"start_line":175,"start_character":36,"end_line":175,"end_character":51},"in_reply_to":"1a122d0e_d2eb1c77","updated":"2016-05-03 08:08:20.000000000","message":"yes, is that confuse you?","commit_id":"f4832647929e5eac26bed815c8fc85fe21841001"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"b78ff6e476ee6517c3b5dd4b5736ab7fe1adb6bd","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        is_controller_set \u003d False"},{"line_number":174,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":175,"context_line":"        # if controller is not set, len(controller) is 0"},{"line_number":176,"context_line":"        if br_int is not None and\\"},{"line_number":177,"context_line":"           len(br_int.controller) \u003e 0 and\\"},{"line_number":178,"context_line":"           br_int.controller[0].target \u003d\u003d target:"},{"line_number":179,"context_line":"            is_controller_set \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_ec4bb85d","line":176,"updated":"2016-05-04 05:55:54.000000000","message":"please dont use \u0027\\\u0027 , use \"()\u0027 instead\n\nI also think that if br-int is None we should probably raise an exception, this is not suppose to be None..","commit_id":"f4832647929e5eac26bed815c8fc85fe21841001"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"a67bfc42785fe0e55c41ac77980b7ed890d9c4a6","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        is_controller_set \u003d False"},{"line_number":174,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":175,"context_line":"        # if controller is not set, len(controller) is 0"},{"line_number":176,"context_line":"        if br_int is not None and\\"},{"line_number":177,"context_line":"           len(br_int.controller) \u003e 0 and\\"},{"line_number":178,"context_line":"           br_int.controller[0].target \u003d\u003d target:"},{"line_number":179,"context_line":"            is_controller_set \u003d True"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_4f71fedd","line":176,"in_reply_to":"1a122d0e_ec4bb85d","updated":"2016-05-04 07:17:45.000000000","message":"I\u0027ll change from \u0027\\\u0027 to \u0027()\u0027\n\nthere are several methods use idlutils.row_by_value() to get br_int too, and not all of them check if br_int is None, if needed, I think we could modify it in another patch.","commit_id":"f4832647929e5eac26bed815c8fc85fe21841001"},{"author":{"_account_id":18811,"name":"Shlomo","email":"shlominar@gmail.com","username":"shlominar"},"change_message_id":"87cebc84cd79071aded551c18c45410291ccef02","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    def check_controller_fail_mode(self, fail_mode):"},{"line_number":183,"context_line":"        is_fail_mode_set \u003d False"},{"line_number":184,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":185,"context_line":"        # if fail_mode is not set, len(fail_mode) is 0"},{"line_number":186,"context_line":"        if br_int is not None and\\"},{"line_number":187,"context_line":"           len(br_int.fail_mode) \u003e 0 and\\"},{"line_number":188,"context_line":"           br_int.fail_mode[0] \u003d\u003d fail_mode:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_3276d0d8","line":185,"range":{"start_line":185,"start_character":35,"end_line":185,"end_character":49},"updated":"2016-05-03 08:06:02.000000000","message":"same comment here","commit_id":"f4832647929e5eac26bed815c8fc85fe21841001"},{"author":{"_account_id":20336,"name":"heshan","email":"shan.he@huawei.com","username":"shanhe"},"change_message_id":"583ee4b187d398984105c3281309ff2b801b0547","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    def check_controller_fail_mode(self, fail_mode):"},{"line_number":183,"context_line":"        is_fail_mode_set \u003d False"},{"line_number":184,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":185,"context_line":"        # if fail_mode is not set, len(fail_mode) is 0"},{"line_number":186,"context_line":"        if br_int is not None and\\"},{"line_number":187,"context_line":"           len(br_int.fail_mode) \u003e 0 and\\"},{"line_number":188,"context_line":"           br_int.fail_mode[0] \u003d\u003d fail_mode:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_320b702d","line":185,"range":{"start_line":185,"start_character":35,"end_line":185,"end_character":49},"in_reply_to":"1a122d0e_3276d0d8","updated":"2016-05-03 08:08:20.000000000","message":"ditto","commit_id":"f4832647929e5eac26bed815c8fc85fe21841001"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"b78ff6e476ee6517c3b5dd4b5736ab7fe1adb6bd","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        br_int \u003d idlutils.row_by_value(self.idl, \u0027Bridge\u0027, \u0027name\u0027, \u0027br-int\u0027)"},{"line_number":185,"context_line":"        # if fail_mode is not set, len(fail_mode) is 0"},{"line_number":186,"context_line":"        if br_int is not None and\\"},{"line_number":187,"context_line":"           len(br_int.fail_mode) \u003e 0 and\\"},{"line_number":188,"context_line":"           br_int.fail_mode[0] \u003d\u003d fail_mode:"},{"line_number":189,"context_line":"            is_fail_mode_set \u003d True"},{"line_number":190,"context_line":"        return is_fail_mode_set"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_cc751c98","line":187,"updated":"2016-05-04 05:55:54.000000000","message":"Same","commit_id":"f4832647929e5eac26bed815c8fc85fe21841001"}]}
