)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"47b88e8a3d26088fddd16aa449a5e5b528b6519b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dan Moravec \u003cmoravec@us.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-09-15 10:26:29 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds error handling for queries returning no data"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I1e6dbf7c0d9adf9e4811ae5ecf35f8106642325e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba15a1d1_3eab341f","line":7,"updated":"2015-09-15 16:31:29.000000000","message":"I really like to have a commit message that is more than just a summary, but I won\u0027t -1 on this.  If you respin the commit message, i\u0027ll follow up with a fast +2","commit_id":"28884399308d3d2a17bb7bb4dcfe2dbd2f167640"}],"subunit2sql/analysis/failures.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"fc57c9ecb265beb5595c6b864c0913a36a00092e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    run_count \u003d len(ts)"},{"line_number":43,"context_line":"    if run_count \u003d\u003d 0:"},{"line_number":44,"context_line":"        print(\"Query returned no data.\")"},{"line_number":45,"context_line":"        return ts"},{"line_number":46,"context_line":"    failures \u003d ts[ts.isin([\u0027fail\u0027, \u0027unxsuccess\u0027])]"},{"line_number":47,"context_line":"    successes \u003d ts[ts.isin([\u0027success\u0027, \u0027xfail\u0027])]"},{"line_number":48,"context_line":"    skips \u003d ts[ts.isin([\u0027skip\u0027])]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_08bb9ae6","line":45,"updated":"2015-09-15 15:48:36.000000000","message":"Why not just exit here, so:\n\ns/return ts/exit(2)\n\nor whatever random exit code you prefer","commit_id":"95126b9ea9b0e21690b284f1baa2f90615625724"},{"author":{"_account_id":12456,"name":"Dan Moravec","email":"moravec@us.ibm.com","username":"moravec"},"change_message_id":"a93d44afbebf6c02691bb024808b5012996664ed","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    run_count \u003d len(ts)"},{"line_number":43,"context_line":"    if run_count \u003d\u003d 0:"},{"line_number":44,"context_line":"        print(\"Query returned no data.\")"},{"line_number":45,"context_line":"        return ts"},{"line_number":46,"context_line":"    failures \u003d ts[ts.isin([\u0027fail\u0027, \u0027unxsuccess\u0027])]"},{"line_number":47,"context_line":"    successes \u003d ts[ts.isin([\u0027success\u0027, \u0027xfail\u0027])]"},{"line_number":48,"context_line":"    skips \u003d ts[ts.isin([\u0027skip\u0027])]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_de0f9886","line":45,"in_reply_to":"ba15a1d1_08bb9ae6","updated":"2015-09-15 16:37:15.000000000","message":"Done","commit_id":"95126b9ea9b0e21690b284f1baa2f90615625724"}],"subunit2sql/analysis/graph.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"fc57c9ecb265beb5595c6b864c0913a36a00092e","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    cli_opts()"},{"line_number":91,"context_line":"    shell.parse_args(sys.argv)"},{"line_number":92,"context_line":"    ts \u003d CONF.command.func()"},{"line_number":93,"context_line":"    if len(ts) \u003e 0:"},{"line_number":94,"context_line":"        print(\u0027Graph saved at: %s\u0027 % CONF.output)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_48ae7286","line":93,"updated":"2015-09-15 15:48:36.000000000","message":"I don\u0027t think we need to do this if we just exit from the plugin when there is an issue. I also expect this will break other commands and plugins since they\u0027re not returning anything.","commit_id":"95126b9ea9b0e21690b284f1baa2f90615625724"},{"author":{"_account_id":12456,"name":"Dan Moravec","email":"moravec@us.ibm.com","username":"moravec"},"change_message_id":"a93d44afbebf6c02691bb024808b5012996664ed","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    cli_opts()"},{"line_number":91,"context_line":"    shell.parse_args(sys.argv)"},{"line_number":92,"context_line":"    ts \u003d CONF.command.func()"},{"line_number":93,"context_line":"    if len(ts) \u003e 0:"},{"line_number":94,"context_line":"        print(\u0027Graph saved at: %s\u0027 % CONF.output)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_3e4fb4be","line":93,"in_reply_to":"ba15a1d1_48ae7286","updated":"2015-09-15 16:37:15.000000000","message":"Done","commit_id":"95126b9ea9b0e21690b284f1baa2f90615625724"}]}
