)]}'
{"networking_odl/common/client.py":[{"author":{"_account_id":18955,"name":"dharmendra","email":"dharmendra.kushwaha@gmail.com","username":"dharmendra"},"change_message_id":"98dae9d82afd63c7a6c95521f00d8294e10abd86","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            response \u003d self.get("},{"line_number":69,"context_line":"                utils.make_url_object(resource_type) + \u0027/\u0027 + resource_id"},{"line_number":70,"context_line":"            )"},{"line_number":71,"context_line":"        except requests.HTTPError as error:"},{"line_number":72,"context_line":"            if error.response.status_code \u003d\u003d requests.codes.not_found:"},{"line_number":73,"context_line":"                return None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return response.json()"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def get(self, urlpath\u003d\u0027\u0027):"},{"line_number":78,"context_line":"        return self.send_request(\u0027get\u0027, urlpath)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_5b117750","line":75,"range":{"start_line":71,"start_character":8,"end_line":75,"end_character":30},"updated":"2018-12-21 06:15:58.000000000","message":"Are we sure that error code always will be not_found?\nIf no, in case of error,code will be break again on #75.\nIf yes, no needs to check status on #72","commit_id":"6d84130a538f74fc41a3729c6a0e517e28bdaa10"}],"networking_odl/ml2/port_status_update.py":[{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"95f46e27029117124b67ea51ccbf7580f1d1cab1","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            try:"},{"line_number":126,"context_line":"                response \u003d client.get(port_id)"},{"line_number":127,"context_line":"            except requests_exceptions.HTTPError as e:"},{"line_number":128,"context_line":"                if e.response.status_code !\u003d 200:"},{"line_number":129,"context_line":"                    LOG.warning(\"Non-200 response code %s\", str(response))"},{"line_number":130,"context_line":"                    continue"},{"line_number":131,"context_line":"            odl_status \u003d response.json()[\u0027port\u0027][0][\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_fdc28284","line":128,"range":{"start_line":128,"start_character":0,"end_line":128,"end_character":49},"updated":"2018-08-16 12:26:58.000000000","message":"This is redundant here, don\u0027t you think?","commit_id":"06783748379cf065c925663f505d92519f33a877"},{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"6a81f4a0c186575eda2c8bb994d7c52b7fe6f4c3","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            try:"},{"line_number":126,"context_line":"                response \u003d client.get(port_id)"},{"line_number":127,"context_line":"            except requests_exceptions.HTTPError as e:"},{"line_number":128,"context_line":"                if e.response.status_code !\u003d 200:"},{"line_number":129,"context_line":"                    LOG.warning(\"Non-200 response code %s\", str(response))"},{"line_number":130,"context_line":"                    continue"},{"line_number":131,"context_line":"            odl_status \u003d response.json()[\u0027port\u0027][0][\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_7d1f526b","line":128,"range":{"start_line":128,"start_character":0,"end_line":128,"end_character":49},"in_reply_to":"3f79a3b5_fdc28284","updated":"2018-08-28 14:10:44.000000000","message":"Done","commit_id":"06783748379cf065c925663f505d92519f33a877"},{"author":{"_account_id":17120,"name":"Manjeet Singh Bhatia","email":"manjeet.s.bhatia@intel.com","username":"manjeets"},"change_message_id":"71bd71bcdb94c55a05007928e6c364f194b37db5","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            port_id \u003d port[\"id\"]"},{"line_number":125,"context_line":"            try:"},{"line_number":126,"context_line":"                response \u003d client.get(port_id)"},{"line_number":127,"context_line":"            except requests_exceptions.HTTPError:"},{"line_number":128,"context_line":"                continue"},{"line_number":129,"context_line":"            odl_status \u003d response.json()[\u0027port\u0027][0][\u0027status\u0027]"},{"line_number":130,"context_line":"            if odl_status \u003d\u003d n_const.PORT_STATUS_ACTIVE:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f79a3b5_6debd2ed","line":127,"range":{"start_line":127,"start_character":12,"end_line":127,"end_character":49},"updated":"2018-12-03 19:39:24.000000000","message":"keep the warning log ?","commit_id":"6d84130a538f74fc41a3729c6a0e517e28bdaa10"}],"networking_odl/tests/unit/common/test_odl_features.py":[{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"b7206fdfb77f25bd623ce3116d82ee27a4b9fb4f","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @mock.patch.object(OpenDaylightRestClient, \u0027get\u0027)"},{"line_number":68,"context_line":"    def test_fetch_500(self, mocked_client):"},{"line_number":69,"context_line":"        mocked_client.side_effect \u003d exceptions.HTTPError("},{"line_number":70,"context_line":"            response\u003dmock.MagicMock(status_code\u003d500)"},{"line_number":71,"context_line":"        )"},{"line_number":72,"context_line":"        self.assertIsNone(odl_features._fetch_features())"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @mock.patch.object(OpenDaylightRestClient, \u0027get\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_9f1a666c","line":71,"range":{"start_line":69,"start_character":8,"end_line":71,"end_character":9},"updated":"2018-08-16 10:45:57.000000000","message":"nit: This seems repetitive, could be extracted to\n\n  def _mock_client_error(client_mock, status_code):\n      client_mock.side_effect \u003d exceptions.HTTPError(\n          response\u003dmock.MagicMock(status_code\u003dstatus_code\n      )\n\nFurther it can be even turned into a decorator that accepts the method name and saves you the repetitiveness of the decorator line\n\n  @mock.patch.object(OpenDaylightRestClient, \u0027get\u0027)","commit_id":"e61957c2a35ae8bce72e1dce6dcbdd6eea8e22c8"},{"author":{"_account_id":26507,"name":"Michel Peterson","email":"michel@redhat.com","username":"mpeterson"},"change_message_id":"edb7a5ae232e216445d87c4086ff13046259f0bd","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @mock.patch.object(OpenDaylightRestClient, \u0027get\u0027)"},{"line_number":68,"context_line":"    def test_fetch_500(self, mocked_client):"},{"line_number":69,"context_line":"        mocked_client.side_effect \u003d exceptions.HTTPError("},{"line_number":70,"context_line":"            response\u003dmock.MagicMock(status_code\u003d500)"},{"line_number":71,"context_line":"        )"},{"line_number":72,"context_line":"        self.assertIsNone(odl_features._fetch_features())"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @mock.patch.object(OpenDaylightRestClient, \u0027get\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_62f25172","line":71,"range":{"start_line":69,"start_character":8,"end_line":71,"end_character":9},"in_reply_to":"3f79a3b5_9f1a666c","updated":"2018-08-16 12:04:41.000000000","message":"Done","commit_id":"e61957c2a35ae8bce72e1dce6dcbdd6eea8e22c8"}]}
