)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"1d1ebd3ec987a10916d1805f433292e885669b80","unresolved":false,"context_lines":[{"line_number":30,"context_line":"BaseAgentExtension.execute is updated to not send this extra argument."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Change-Id: Iff0f495bc8d9c731892feb0f4759a7f10ee76328"},{"line_number":33,"context_line":"Closes-Bug: #1314148"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1abeadc6_29ef701f","line":33,"range":{"start_line":33,"start_character":13,"end_line":33,"end_character":20},"updated":"2014-08-28 16:16:07.000000000","message":"nit: proper syntax omits the #, i.e.: Closes-Bug: 1314148\n\nThis will make it link to the bug when viewed in gerrit.","commit_id":"0801f48f4b2bcf5b471b5c12117cf7501b8cbfee"}],"ironic_python_agent/extensions/base.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"be4423d240e8eb27aa5f171328c48ff60eaacb64","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    def execute(self, command_name, **kwargs):"},{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            cmd \u003d self.command_map[command_name]"},{"line_number":122,"context_line":"        except KeyError:"},{"line_number":123,"context_line":"            raise errors.InvalidCommandError("},{"line_number":124,"context_line":"                \u0027Unknown command: {0}\u0027.format(command_name))"},{"line_number":125,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_56177251","line":122,"updated":"2014-09-09 00:29:11.000000000","message":"I wish this was: `cmd \u003d self.command_map.get(command_name); if cmd is None: ...`","commit_id":"feaf948cbcf44fbe0677660bb235f3d14c187b3c"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7c29c2347da807a47f34285b68e7a20557938696","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    def execute(self, command_name, **kwargs):"},{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            cmd \u003d self.command_map[command_name]"},{"line_number":122,"context_line":"        except KeyError:"},{"line_number":123,"context_line":"            raise errors.InvalidCommandError("},{"line_number":124,"context_line":"                \u0027Unknown command: {0}\u0027.format(command_name))"},{"line_number":125,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_33d672f2","line":122,"in_reply_to":"fa98f980_56177251","updated":"2014-09-09 10:40:35.000000000","message":"Done","commit_id":"feaf948cbcf44fbe0677660bb235f3d14c187b3c"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"be4423d240e8eb27aa5f171328c48ff60eaacb64","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        except KeyError:"},{"line_number":123,"context_line":"            raise errors.InvalidCommandError("},{"line_number":124,"context_line":"                \u0027Unknown command: {0}\u0027.format(command_name))"},{"line_number":125,"context_line":"        else:"},{"line_number":126,"context_line":"            return cmd(**kwargs)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def check_cmd_presence(self, ext_obj, ext, cmd):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_760b962b","line":125,"updated":"2014-09-09 00:29:11.000000000","message":"This else isn\u0027t necessary here.","commit_id":"feaf948cbcf44fbe0677660bb235f3d14c187b3c"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"7c29c2347da807a47f34285b68e7a20557938696","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        except KeyError:"},{"line_number":123,"context_line":"            raise errors.InvalidCommandError("},{"line_number":124,"context_line":"                \u0027Unknown command: {0}\u0027.format(command_name))"},{"line_number":125,"context_line":"        else:"},{"line_number":126,"context_line":"            return cmd(**kwargs)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def check_cmd_presence(self, ext_obj, ext, cmd):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_5304d67d","line":125,"in_reply_to":"fa98f980_760b962b","updated":"2014-09-09 10:40:35.000000000","message":"Done","commit_id":"feaf948cbcf44fbe0677660bb235f3d14c187b3c"}],"ironic_python_agent/tests/extensions/base.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"c2fae0af0441ca04634f2205b134b58ee4117ad1","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        for k, v in self.extension.command_map.items():"},{"line_number":185,"context_line":"            self.assertIn(k, names)"},{"line_number":186,"context_line":"            self.assertEqual(v.command_name, k)"},{"line_number":187,"context_line":"            self.assertThat(v, IsBound(self.extension))"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_5d63d5dc","line":187,"updated":"2014-09-10 17:15:57.000000000","message":"Any reason we can\u0027t just do:\n\n    expected_map \u003d {\n        \u0027fake_async_command\u0027: self.extension.fake_async_command,\n        \u0027fake_sync_command\u0027: self.extension.fake_sync_command,\n    }\n    self.assertEqual(expected_map, self.extension.command_map)\n\nThe current code is kind of hard to understand. :/\n\nAlso... maybe the test should check that the command name doesn\u0027t need to be the same as the function name... like make a method called third_method and make the command name for it something else like \u0027method_three\u0027.","commit_id":"a1178b3ea5e304cf34acdfd30d234a8976dad3b6"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"bd4a6f42279c07d57c6d4bc8c8739ef7178f0d00","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        for k, v in self.extension.command_map.items():"},{"line_number":185,"context_line":"            self.assertIn(k, names)"},{"line_number":186,"context_line":"            self.assertEqual(v.command_name, k)"},{"line_number":187,"context_line":"            self.assertThat(v, IsBound(self.extension))"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_695c464c","line":187,"in_reply_to":"fa98f980_5d63d5dc","updated":"2014-09-11 08:49:14.000000000","message":"Done","commit_id":"a1178b3ea5e304cf34acdfd30d234a8976dad3b6"}]}
