)]}'
{"rally/api.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":864,"context_line":"        LOG.info(\"Verification has been successfully deleted!\")"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"    @classmethod"},{"line_number":867,"context_line":"    def report(cls, uuids, output_type, output_dest\u003dNone):"},{"line_number":868,"context_line":"        \"\"\"Generate a report for a verification or a few verifications."},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"        :param uuids: List of verifications UUIDs"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_d94a2e27","line":867,"range":{"start_line":867,"start_character":27,"end_line":867,"end_character":56},"updated":"2017-01-10 12:54:21.000000000","message":"I suggest we use \u0027rtype\u0027 and \u0027dest\u0027 params everywhere. They are shorter and more convenient.","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":868,"context_line":"        \"\"\"Generate a report for a verification or a few verifications."},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"        :param uuids: List of verifications UUIDs"},{"line_number":871,"context_line":"        :param output_type: plugin name of verification exporter"},{"line_number":872,"context_line":"        :param output_dest: Arguments for selected verification exporter"},{"line_number":873,"context_line":"        \"\"\""},{"line_number":874,"context_line":"        verifications \u003d [cls.get(uuid) for uuid in uuids]"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_f8ae13e6","line":871,"range":{"start_line":871,"start_character":28,"end_line":871,"end_character":29},"updated":"2017-01-10 12:54:21.000000000","message":"Plugin","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":868,"context_line":"        \"\"\"Generate a report for a verification or a few verifications."},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"        :param uuids: List of verifications UUIDs"},{"line_number":871,"context_line":"        :param output_type: plugin name of verification exporter"},{"line_number":872,"context_line":"        :param output_dest: Arguments for selected verification exporter"},{"line_number":873,"context_line":"        \"\"\""},{"line_number":874,"context_line":"        verifications \u003d [cls.get(uuid) for uuid in uuids]"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_38b97b2f","line":871,"range":{"start_line":871,"start_character":56,"end_line":871,"end_character":64},"updated":"2017-01-10 12:54:21.000000000","message":"reporter","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":868,"context_line":"        \"\"\"Generate a report for a verification or a few verifications."},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"        :param uuids: List of verifications UUIDs"},{"line_number":871,"context_line":"        :param output_type: plugin name of verification exporter"},{"line_number":872,"context_line":"        :param output_dest: Arguments for selected verification exporter"},{"line_number":873,"context_line":"        \"\"\""},{"line_number":874,"context_line":"        verifications \u003d [cls.get(uuid) for uuid in uuids]"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_cbdc111b","line":871,"range":{"start_line":871,"start_character":56,"end_line":871,"end_character":64},"in_reply_to":"ba5201f7_38b97b2f","updated":"2017-01-10 13:07:23.000000000","message":"Done","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":868,"context_line":"        \"\"\"Generate a report for a verification or a few verifications."},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"        :param uuids: List of verifications UUIDs"},{"line_number":871,"context_line":"        :param output_type: plugin name of verification exporter"},{"line_number":872,"context_line":"        :param output_dest: Arguments for selected verification exporter"},{"line_number":873,"context_line":"        \"\"\""},{"line_number":874,"context_line":"        verifications \u003d [cls.get(uuid) for uuid in uuids]"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_ebdf150a","line":871,"range":{"start_line":871,"start_character":28,"end_line":871,"end_character":29},"in_reply_to":"ba5201f7_f8ae13e6","updated":"2017-01-10 13:07:23.000000000","message":"Done","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":869,"context_line":""},{"line_number":870,"context_line":"        :param uuids: List of verifications UUIDs"},{"line_number":871,"context_line":"        :param output_type: plugin name of verification exporter"},{"line_number":872,"context_line":"        :param output_dest: Arguments for selected verification exporter"},{"line_number":873,"context_line":"        \"\"\""},{"line_number":874,"context_line":"        verifications \u003d [cls.get(uuid) for uuid in uuids]"},{"line_number":875,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_252f93a2","line":872,"range":{"start_line":872,"start_character":28,"end_line":872,"end_character":72},"updated":"2017-01-10 12:54:21.000000000","message":"Destination for verification report","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":869,"context_line":""},{"line_number":870,"context_line":"        :param uuids: List of verifications UUIDs"},{"line_number":871,"context_line":"        :param output_type: plugin name of verification exporter"},{"line_number":872,"context_line":"        :param output_dest: Arguments for selected verification exporter"},{"line_number":873,"context_line":"        \"\"\""},{"line_number":874,"context_line":"        verifications \u003d [cls.get(uuid) for uuid in uuids]"},{"line_number":875,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_2beafdac","line":872,"range":{"start_line":872,"start_character":28,"end_line":872,"end_character":72},"in_reply_to":"ba5201f7_252f93a2","updated":"2017-01-10 13:07:23.000000000","message":"Done","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":873,"context_line":"        \"\"\""},{"line_number":874,"context_line":"        verifications \u003d [cls.get(uuid) for uuid in uuids]"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        reporter_cls \u003d vreporter.VerificationReporter.get(output_type)"},{"line_number":877,"context_line":"        reporter_cls.validate(output_dest)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"        result \u003d vreporter.VerificationReporter.make(reporter_cls,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_344b3fb2","line":876,"range":{"start_line":876,"start_character":33,"end_line":876,"end_character":53},"updated":"2017-01-10 12:54:21.000000000","message":"Actually, I like last name better. IMHO, VerificationReport is good.","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        reporter_cls \u003d vreporter.VerificationReporter.get(output_type)"},{"line_number":877,"context_line":"        reporter_cls.validate(output_dest)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"        result \u003d vreporter.VerificationReporter.make(reporter_cls,"},{"line_number":880,"context_line":"                                                     verifications,"},{"line_number":881,"context_line":"                                                     output_dest)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_4f2590ac","line":878,"updated":"2017-01-10 12:54:21.000000000","message":"Let\u0027s add something like this here:\n\n\nLOG.info(\"Building \u0027%s\u0027 report for the following verifications: \u0027%s\u0027.\", output_type, \"\u0027, \u0027\".join(uuids))","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":875,"context_line":""},{"line_number":876,"context_line":"        reporter_cls \u003d vreporter.VerificationReporter.get(output_type)"},{"line_number":877,"context_line":"        reporter_cls.validate(output_dest)"},{"line_number":878,"context_line":""},{"line_number":879,"context_line":"        result \u003d vreporter.VerificationReporter.make(reporter_cls,"},{"line_number":880,"context_line":"                                                     verifications,"},{"line_number":881,"context_line":"                                                     output_dest)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_eb1475a0","line":878,"in_reply_to":"ba5201f7_4f2590ac","updated":"2017-01-10 13:07:23.000000000","message":"Done","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":879,"context_line":"        result \u003d vreporter.VerificationReporter.make(reporter_cls,"},{"line_number":880,"context_line":"                                                     verifications,"},{"line_number":881,"context_line":"                                                     output_dest)"},{"line_number":882,"context_line":"        LOG.info(_LI(\"\u0027%s\u0027 report for \u0027%s\u0027 is successfully generated.\") %"},{"line_number":883,"context_line":"                 (output_type, \"\u0027, \u0027\".join(uuids)))"},{"line_number":884,"context_line":"        return result"},{"line_number":885,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_6f51740e","line":882,"range":{"start_line":882,"start_character":21,"end_line":882,"end_character":70},"updated":"2017-01-10 12:54:21.000000000","message":"The report has been successfully built.","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":879,"context_line":"        result \u003d vreporter.VerificationReporter.make(reporter_cls,"},{"line_number":880,"context_line":"                                                     verifications,"},{"line_number":881,"context_line":"                                                     output_dest)"},{"line_number":882,"context_line":"        LOG.info(_LI(\"\u0027%s\u0027 report for \u0027%s\u0027 is successfully generated.\") %"},{"line_number":883,"context_line":"                 (output_type, \"\u0027, \u0027\".join(uuids)))"},{"line_number":884,"context_line":"        return result"},{"line_number":885,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_0b0c5993","line":882,"range":{"start_line":882,"start_character":21,"end_line":882,"end_character":70},"in_reply_to":"ba5201f7_6f51740e","updated":"2017-01-10 13:07:23.000000000","message":"Done","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"}],"rally/cli/commands/verify.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"LIST_VERIFICATIONS_HINT \u003d (\"HINT: You can list all verifications, executing \""},{"line_number":40,"context_line":"                           \"command `rally verify list`.\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"DEFAULTS_REPORTERS \u003d (\"HTML\", \"JSON\")"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class VerifyCommands(object):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_281daa66","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":18},"updated":"2017-01-10 12:54:21.000000000","message":"DEFAULT_REPORT_TYPES","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":586,"context_line":"                   help\u003d\"UUIDs of verifications. \" + LIST_VERIFICATIONS_HINT)"},{"line_number":587,"context_line":"    @cliutils.args(\"--type\", dest\u003d\"output_type\", type\u003dstr,"},{"line_number":588,"context_line":"                   required\u003dFalse, default\u003d\"json\","},{"line_number":589,"context_line":"                   help\u003d\"Type (format) of report to generate. Out of the bot \""},{"line_number":590,"context_line":"                        \"types: %s. HINT: You can list all types by executing \""},{"line_number":591,"context_line":"                        \"`rally plugins list` command.\""},{"line_number":592,"context_line":"                        % \", \".join(DEFAULTS_REPORTERS))"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_8fe698e6","line":589,"range":{"start_line":589,"start_character":25,"end_line":589,"end_character":60},"updated":"2017-01-10 12:54:21.000000000","message":"I suggest just \"Report type\".","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":586,"context_line":"                   help\u003d\"UUIDs of verifications. \" + LIST_VERIFICATIONS_HINT)"},{"line_number":587,"context_line":"    @cliutils.args(\"--type\", dest\u003d\"output_type\", type\u003dstr,"},{"line_number":588,"context_line":"                   required\u003dFalse, default\u003d\"json\","},{"line_number":589,"context_line":"                   help\u003d\"Type (format) of report to generate. Out of the bot \""},{"line_number":590,"context_line":"                        \"types: %s. HINT: You can list all types by executing \""},{"line_number":591,"context_line":"                        \"`rally plugins list` command.\""},{"line_number":592,"context_line":"                        % \", \".join(DEFAULTS_REPORTERS))"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_4b54a153","line":589,"range":{"start_line":589,"start_character":25,"end_line":589,"end_character":60},"in_reply_to":"ba5201f7_8fe698e6","updated":"2017-01-10 13:07:23.000000000","message":"Done","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":586,"context_line":"                   help\u003d\"UUIDs of verifications. \" + LIST_VERIFICATIONS_HINT)"},{"line_number":587,"context_line":"    @cliutils.args(\"--type\", dest\u003d\"output_type\", type\u003dstr,"},{"line_number":588,"context_line":"                   required\u003dFalse, default\u003d\"json\","},{"line_number":589,"context_line":"                   help\u003d\"Type (format) of report to generate. Out of the bot \""},{"line_number":590,"context_line":"                        \"types: %s. HINT: You can list all types by executing \""},{"line_number":591,"context_line":"                        \"`rally plugins list` command.\""},{"line_number":592,"context_line":"                        % \", \".join(DEFAULTS_REPORTERS))"},{"line_number":593,"context_line":"    @cliutils.args(\"--to\", dest\u003d\"output_dest\", type\u003dstr,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_88785691","line":590,"range":{"start_line":589,"start_character":62,"end_line":590,"end_character":34},"updated":"2017-01-10 12:54:21.000000000","message":"Types supported by default: %s","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":586,"context_line":"                   help\u003d\"UUIDs of verifications. \" + LIST_VERIFICATIONS_HINT)"},{"line_number":587,"context_line":"    @cliutils.args(\"--type\", dest\u003d\"output_type\", type\u003dstr,"},{"line_number":588,"context_line":"                   required\u003dFalse, default\u003d\"json\","},{"line_number":589,"context_line":"                   help\u003d\"Type (format) of report to generate. Out of the bot \""},{"line_number":590,"context_line":"                        \"types: %s. HINT: You can list all types by executing \""},{"line_number":591,"context_line":"                        \"`rally plugins list` command.\""},{"line_number":592,"context_line":"                        % \", \".join(DEFAULTS_REPORTERS))"},{"line_number":593,"context_line":"    @cliutils.args(\"--to\", dest\u003d\"output_dest\", type\u003dstr,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_4bdbc1ed","line":590,"range":{"start_line":589,"start_character":62,"end_line":590,"end_character":34},"in_reply_to":"ba5201f7_88785691","updated":"2017-01-10 13:07:23.000000000","message":"I used \"Out of the box types\" phrase to be able to use another phrase without duplication of word default - \"Defaults to JSON\"","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":592,"context_line":"                        % \", \".join(DEFAULTS_REPORTERS))"},{"line_number":593,"context_line":"    @cliutils.args(\"--to\", dest\u003d\"output_dest\", type\u003dstr,"},{"line_number":594,"context_line":"                   metavar\u003d\"\u003cdest\u003e\", required\u003dFalse,"},{"line_number":595,"context_line":"                   help\u003d\"Destination of output. Can be path to a file (in case\""},{"line_number":596,"context_line":"                        \" of HTML, JSON types) or connection string. It \""},{"line_number":597,"context_line":"                        \"depends on type of exporter.\")"},{"line_number":598,"context_line":"    @cliutils.args(\"--open\", dest\u003d\"open_it\", action\u003d\"store_true\","}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_0fdb881c","line":595,"range":{"start_line":595,"start_character":25,"end_line":595,"end_character":46},"updated":"2017-01-10 12:54:21.000000000","message":"Report destination","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":592,"context_line":"                        % \", \".join(DEFAULTS_REPORTERS))"},{"line_number":593,"context_line":"    @cliutils.args(\"--to\", dest\u003d\"output_dest\", type\u003dstr,"},{"line_number":594,"context_line":"                   metavar\u003d\"\u003cdest\u003e\", required\u003dFalse,"},{"line_number":595,"context_line":"                   help\u003d\"Destination of output. Can be path to a file (in case\""},{"line_number":596,"context_line":"                        \" of HTML, JSON types) or connection string. It \""},{"line_number":597,"context_line":"                        \"depends on type of exporter.\")"},{"line_number":598,"context_line":"    @cliutils.args(\"--open\", dest\u003d\"open_it\", action\u003d\"store_true\","}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_8be5a9a9","line":595,"range":{"start_line":595,"start_character":25,"end_line":595,"end_character":46},"in_reply_to":"ba5201f7_0fdb881c","updated":"2017-01-10 13:07:23.000000000","message":"Done","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":593,"context_line":"    @cliutils.args(\"--to\", dest\u003d\"output_dest\", type\u003dstr,"},{"line_number":594,"context_line":"                   metavar\u003d\"\u003cdest\u003e\", required\u003dFalse,"},{"line_number":595,"context_line":"                   help\u003d\"Destination of output. Can be path to a file (in case\""},{"line_number":596,"context_line":"                        \" of HTML, JSON types) or connection string. It \""},{"line_number":597,"context_line":"                        \"depends on type of exporter.\")"},{"line_number":598,"context_line":"    @cliutils.args(\"--open\", dest\u003d\"open_it\", action\u003d\"store_true\","},{"line_number":599,"context_line":"                   required\u003dFalse, help\u003d\"Open the output file in a browser.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_af399c43","line":596,"range":{"start_line":596,"start_character":50,"end_line":596,"end_character":60},"updated":"2017-01-10 12:54:21.000000000","message":"a connection","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":593,"context_line":"    @cliutils.args(\"--to\", dest\u003d\"output_dest\", type\u003dstr,"},{"line_number":594,"context_line":"                   metavar\u003d\"\u003cdest\u003e\", required\u003dFalse,"},{"line_number":595,"context_line":"                   help\u003d\"Destination of output. Can be path to a file (in case\""},{"line_number":596,"context_line":"                        \" of HTML, JSON types) or connection string. It \""},{"line_number":597,"context_line":"                        \"depends on type of exporter.\")"},{"line_number":598,"context_line":"    @cliutils.args(\"--open\", dest\u003d\"open_it\", action\u003d\"store_true\","},{"line_number":599,"context_line":"                   required\u003dFalse, help\u003d\"Open the output file in a browser.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_cbedf18f","line":596,"range":{"start_line":596,"start_character":50,"end_line":596,"end_character":60},"in_reply_to":"ba5201f7_af399c43","updated":"2017-01-10 13:07:23.000000000","message":"Done","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                   metavar\u003d\"\u003cdest\u003e\", required\u003dFalse,"},{"line_number":595,"context_line":"                   help\u003d\"Destination of output. Can be path to a file (in case\""},{"line_number":596,"context_line":"                        \" of HTML, JSON types) or connection string. It \""},{"line_number":597,"context_line":"                        \"depends on type of exporter.\")"},{"line_number":598,"context_line":"    @cliutils.args(\"--open\", dest\u003d\"open_it\", action\u003d\"store_true\","},{"line_number":599,"context_line":"                   required\u003dFalse, help\u003d\"Open the output file in a browser.\")"},{"line_number":600,"context_line":"    @envutils.with_default_verification_uuid"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_0f4e28c1","line":597,"range":{"start_line":597,"start_character":36,"end_line":597,"end_character":52},"updated":"2017-01-10 12:54:21.000000000","message":"report type","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                   metavar\u003d\"\u003cdest\u003e\", required\u003dFalse,"},{"line_number":595,"context_line":"                   help\u003d\"Destination of output. Can be path to a file (in case\""},{"line_number":596,"context_line":"                        \" of HTML, JSON types) or connection string. It \""},{"line_number":597,"context_line":"                        \"depends on type of exporter.\")"},{"line_number":598,"context_line":"    @cliutils.args(\"--open\", dest\u003d\"open_it\", action\u003d\"store_true\","},{"line_number":599,"context_line":"                   required\u003dFalse, help\u003d\"Open the output file in a browser.\")"},{"line_number":600,"context_line":"    @envutils.with_default_verification_uuid"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_2bebdd79","line":597,"range":{"start_line":597,"start_character":36,"end_line":597,"end_character":52},"in_reply_to":"ba5201f7_0f4e28c1","updated":"2017-01-10 13:07:23.000000000","message":"Done","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":599,"context_line":"                   required\u003dFalse, help\u003d\"Open the output file in a browser.\")"},{"line_number":600,"context_line":"    @envutils.with_default_verification_uuid"},{"line_number":601,"context_line":"    @plugins.ensure_plugins_are_loaded"},{"line_number":602,"context_line":"    def report(self, api, verification_uuid\u003dNone, output_type\u003dFalse,"},{"line_number":603,"context_line":"               output_dest\u003dNone, open_it\u003dNone):"},{"line_number":604,"context_line":"        \"\"\"Generate a report for a verification or a few verifications.\"\"\""},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"        if not isinstance(verification_uuid, list):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_efd724bd","line":603,"range":{"start_line":602,"start_character":50,"end_line":603,"end_character":31},"updated":"2017-01-10 12:54:21.000000000","message":"ditto","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":617,"context_line":"                    f.write(result[\"files\"][path])"},{"line_number":618,"context_line":"            if open_it:"},{"line_number":619,"context_line":"                if \"open\" not in result:"},{"line_number":620,"context_line":"                    print(\"\u0027%s\u0027 type of report doesn\u0027t support opening in the \""},{"line_number":621,"context_line":"                          \"browser feature.\")"},{"line_number":622,"context_line":"                    return 1"},{"line_number":623,"context_line":"                webbrowser.open_new_tab("},{"line_number":624,"context_line":"                    \"file://\" + os.path.abspath(result[\"open\"]))"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_2ad83a1d","line":621,"range":{"start_line":620,"start_character":27,"end_line":621,"end_character":42},"updated":"2017-01-10 12:54:21.000000000","message":"Cannot open \u0027%s\u0027 report in the browser because report type doesn\u0027t support it","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":617,"context_line":"                    f.write(result[\"files\"][path])"},{"line_number":618,"context_line":"            if open_it:"},{"line_number":619,"context_line":"                if \"open\" not in result:"},{"line_number":620,"context_line":"                    print(\"\u0027%s\u0027 type of report doesn\u0027t support opening in the \""},{"line_number":621,"context_line":"                          \"browser feature.\")"},{"line_number":622,"context_line":"                    return 1"},{"line_number":623,"context_line":"                webbrowser.open_new_tab("},{"line_number":624,"context_line":"                    \"file://\" + os.path.abspath(result[\"open\"]))"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_cb9411ea","line":621,"range":{"start_line":620,"start_character":27,"end_line":621,"end_character":42},"in_reply_to":"ba5201f7_2ad83a1d","updated":"2017-01-10 13:07:23.000000000","message":"Done","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"957562884097555260af06525cef14f84a4701fe","unresolved":false,"context_lines":[{"line_number":596,"context_line":"                   help\u003d\"UUIDs of verifications. \" + LIST_VERIFICATIONS_HINT)"},{"line_number":597,"context_line":"    @cliutils.args(\"--type\", dest\u003d\"output_type\", type\u003dstr,"},{"line_number":598,"context_line":"                   required\u003dFalse, default\u003d\"json\","},{"line_number":599,"context_line":"                   help\u003d\"Report type (Defaults to JSON). Out of the box types:\""},{"line_number":600,"context_line":"                        \" %s. HINT: You can list all types by executing \""},{"line_number":601,"context_line":"                        \"`rally plugins list` command.\""},{"line_number":602,"context_line":"                        % \", \".join(DEFAULTS_REPORTERS))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_dd03ef74","line":599,"range":{"start_line":599,"start_character":57,"end_line":599,"end_character":71},"updated":"2017-01-10 15:20:36.000000000","message":"Out-of-the-box","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"957562884097555260af06525cef14f84a4701fe","unresolved":false,"context_lines":[{"line_number":596,"context_line":"                   help\u003d\"UUIDs of verifications. \" + LIST_VERIFICATIONS_HINT)"},{"line_number":597,"context_line":"    @cliutils.args(\"--type\", dest\u003d\"output_type\", type\u003dstr,"},{"line_number":598,"context_line":"                   required\u003dFalse, default\u003d\"json\","},{"line_number":599,"context_line":"                   help\u003d\"Report type (Defaults to JSON). Out of the box types:\""},{"line_number":600,"context_line":"                        \" %s. HINT: You can list all types by executing \""},{"line_number":601,"context_line":"                        \"`rally plugins list` command.\""},{"line_number":602,"context_line":"                        % \", \".join(DEFAULTS_REPORTERS))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_1d9f3704","line":599,"range":{"start_line":599,"start_character":38,"end_line":599,"end_character":39},"updated":"2017-01-10 15:20:36.000000000","message":"d","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"72479a711c56a8eafb30a146e0c7cd659dd066e7","unresolved":false,"context_lines":[{"line_number":596,"context_line":"                   help\u003d\"UUIDs of verifications. \" + LIST_VERIFICATIONS_HINT)"},{"line_number":597,"context_line":"    @cliutils.args(\"--type\", dest\u003d\"output_type\", type\u003dstr,"},{"line_number":598,"context_line":"                   required\u003dFalse, default\u003d\"json\","},{"line_number":599,"context_line":"                   help\u003d\"Report type (Defaults to JSON). Out of the box types:\""},{"line_number":600,"context_line":"                        \" %s. HINT: You can list all types by executing \""},{"line_number":601,"context_line":"                        \"`rally plugins list` command.\""},{"line_number":602,"context_line":"                        % \", \".join(DEFAULTS_REPORTERS))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_346ecdc9","line":599,"range":{"start_line":599,"start_character":38,"end_line":599,"end_character":39},"in_reply_to":"ba5201f7_1d9f3704","updated":"2017-01-10 17:02:24.000000000","message":"using capital D is a standard which is used in most of OS projects:)","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"957562884097555260af06525cef14f84a4701fe","unresolved":false,"context_lines":[{"line_number":602,"context_line":"                        % \", \".join(DEFAULTS_REPORTERS))"},{"line_number":603,"context_line":"    @cliutils.args(\"--to\", dest\u003d\"output_dest\", type\u003dstr,"},{"line_number":604,"context_line":"                   metavar\u003d\"\u003cdest\u003e\", required\u003dFalse,"},{"line_number":605,"context_line":"                   help\u003d\"Report destination. Can be path to a file (in case\""},{"line_number":606,"context_line":"                        \" of HTML, JSON types) or a connection string. It \""},{"line_number":607,"context_line":"                        \"depends on report type.\")"},{"line_number":608,"context_line":"    @cliutils.args(\"--open\", dest\u003d\"open_it\", action\u003d\"store_true\","}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_3d387b3d","line":605,"range":{"start_line":605,"start_character":52,"end_line":605,"end_character":56},"updated":"2017-01-10 15:20:36.000000000","message":"a path","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"8aed778a90e41ec22a2c60416b81639c2c749d02","unresolved":false,"context_lines":[{"line_number":602,"context_line":"                        % \", \".join(DEFAULTS_REPORTERS))"},{"line_number":603,"context_line":"    @cliutils.args(\"--to\", dest\u003d\"output_dest\", type\u003dstr,"},{"line_number":604,"context_line":"                   metavar\u003d\"\u003cdest\u003e\", required\u003dFalse,"},{"line_number":605,"context_line":"                   help\u003d\"Report destination. Can be path to a file (in case\""},{"line_number":606,"context_line":"                        \" of HTML, JSON types) or a connection string. It \""},{"line_number":607,"context_line":"                        \"depends on report type.\")"},{"line_number":608,"context_line":"    @cliutils.args(\"--open\", dest\u003d\"open_it\", action\u003d\"store_true\","}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_fedc261a","line":605,"range":{"start_line":605,"start_character":52,"end_line":605,"end_character":56},"in_reply_to":"ba5201f7_3d387b3d","updated":"2017-01-10 17:01:17.000000000","message":"Done","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"957562884097555260af06525cef14f84a4701fe","unresolved":false,"context_lines":[{"line_number":603,"context_line":"    @cliutils.args(\"--to\", dest\u003d\"output_dest\", type\u003dstr,"},{"line_number":604,"context_line":"                   metavar\u003d\"\u003cdest\u003e\", required\u003dFalse,"},{"line_number":605,"context_line":"                   help\u003d\"Report destination. Can be path to a file (in case\""},{"line_number":606,"context_line":"                        \" of HTML, JSON types) or a connection string. It \""},{"line_number":607,"context_line":"                        \"depends on report type.\")"},{"line_number":608,"context_line":"    @cliutils.args(\"--open\", dest\u003d\"open_it\", action\u003d\"store_true\","},{"line_number":609,"context_line":"                   required\u003dFalse, help\u003d\"Open the output file in a browser.\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_fdbef362","line":606,"updated":"2017-01-10 15:20:36.000000000","message":"to save the report to, or ...","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"8aed778a90e41ec22a2c60416b81639c2c749d02","unresolved":false,"context_lines":[{"line_number":603,"context_line":"    @cliutils.args(\"--to\", dest\u003d\"output_dest\", type\u003dstr,"},{"line_number":604,"context_line":"                   metavar\u003d\"\u003cdest\u003e\", required\u003dFalse,"},{"line_number":605,"context_line":"                   help\u003d\"Report destination. Can be path to a file (in case\""},{"line_number":606,"context_line":"                        \" of HTML, JSON types) or a connection string. It \""},{"line_number":607,"context_line":"                        \"depends on report type.\")"},{"line_number":608,"context_line":"    @cliutils.args(\"--open\", dest\u003d\"open_it\", action\u003d\"store_true\","},{"line_number":609,"context_line":"                   required\u003dFalse, help\u003d\"Open the output file in a browser.\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_de53e237","line":606,"in_reply_to":"ba5201f7_fdbef362","updated":"2017-01-10 17:01:17.000000000","message":"Done","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"957562884097555260af06525cef14f84a4701fe","unresolved":false,"context_lines":[{"line_number":619,"context_line":"        result \u003d api.verification.report(verification_uuid, output_type,"},{"line_number":620,"context_line":"                                         output_dest)"},{"line_number":621,"context_line":"        if \"files\" in result:"},{"line_number":622,"context_line":"            print(\"Saving report to disk. It can take a moment.\")"},{"line_number":623,"context_line":"            for path in result[\"files\"]:"},{"line_number":624,"context_line":"                if not os.path.exists(os.path.dirname(path)):"},{"line_number":625,"context_line":"                    os.makedirs(os.path.dirname(path))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_42155e47","line":622,"range":{"start_line":622,"start_character":36,"end_line":622,"end_character":40},"updated":"2017-01-10 15:20:36.000000000","message":"Let\u0027s use \"a file\" here. I see that we run over the loop, but user can specify only one path and that is why \"a file\" will be ok.","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"957562884097555260af06525cef14f84a4701fe","unresolved":false,"context_lines":[{"line_number":619,"context_line":"        result \u003d api.verification.report(verification_uuid, output_type,"},{"line_number":620,"context_line":"                                         output_dest)"},{"line_number":621,"context_line":"        if \"files\" in result:"},{"line_number":622,"context_line":"            print(\"Saving report to disk. It can take a moment.\")"},{"line_number":623,"context_line":"            for path in result[\"files\"]:"},{"line_number":624,"context_line":"                if not os.path.exists(os.path.dirname(path)):"},{"line_number":625,"context_line":"                    os.makedirs(os.path.dirname(path))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_9d6247d7","line":622,"range":{"start_line":622,"start_character":12,"end_line":622,"end_character":65},"updated":"2017-01-10 15:20:36.000000000","message":"print(_(\"Saving the report to \u0027%s\u0027 file.\") % output_dest)","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"3aee58ed65c4d97ab1976ef85de50beb82089427","unresolved":false,"context_lines":[{"line_number":619,"context_line":"        result \u003d api.verification.report(verification_uuid, output_type,"},{"line_number":620,"context_line":"                                         output_dest)"},{"line_number":621,"context_line":"        if \"files\" in result:"},{"line_number":622,"context_line":"            print(\"Saving report to disk. It can take a moment.\")"},{"line_number":623,"context_line":"            for path in result[\"files\"]:"},{"line_number":624,"context_line":"                if not os.path.exists(os.path.dirname(path)):"},{"line_number":625,"context_line":"                    os.makedirs(os.path.dirname(path))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_346ded04","line":622,"range":{"start_line":622,"start_character":36,"end_line":622,"end_character":40},"in_reply_to":"ba5201f7_191bc481","updated":"2017-01-10 17:17:41.000000000","message":"Yes, but for user it is ONE file (file with report). User doesn\u0027t care about others.","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"8aed778a90e41ec22a2c60416b81639c2c749d02","unresolved":false,"context_lines":[{"line_number":619,"context_line":"        result \u003d api.verification.report(verification_uuid, output_type,"},{"line_number":620,"context_line":"                                         output_dest)"},{"line_number":621,"context_line":"        if \"files\" in result:"},{"line_number":622,"context_line":"            print(\"Saving report to disk. It can take a moment.\")"},{"line_number":623,"context_line":"            for path in result[\"files\"]:"},{"line_number":624,"context_line":"                if not os.path.exists(os.path.dirname(path)):"},{"line_number":625,"context_line":"                    os.makedirs(os.path.dirname(path))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_191bc481","line":622,"range":{"start_line":622,"start_character":36,"end_line":622,"end_character":40},"in_reply_to":"ba5201f7_42155e47","updated":"2017-01-10 17:01:17.000000000","message":"\"a file\" matches current behaviour, but in case of \"html-static\" report, there will be more than 1 file (we will need to save js libraries).","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"957562884097555260af06525cef14f84a4701fe","unresolved":false,"context_lines":[{"line_number":621,"context_line":"        if \"files\" in result:"},{"line_number":622,"context_line":"            print(\"Saving report to disk. It can take a moment.\")"},{"line_number":623,"context_line":"            for path in result[\"files\"]:"},{"line_number":624,"context_line":"                if not os.path.exists(os.path.dirname(path)):"},{"line_number":625,"context_line":"                    os.makedirs(os.path.dirname(path))"},{"line_number":626,"context_line":"                with open(path, \"w\") as f:"},{"line_number":627,"context_line":"                    f.write(result[\"files\"][path])"},{"line_number":628,"context_line":"            if open_it:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_229f7a04","line":625,"range":{"start_line":624,"start_character":0,"end_line":625,"end_character":54},"updated":"2017-01-10 15:20:36.000000000","message":"In some cases it will not work, for example, like this:\n\n\nrally verify report --type json --to qwe\n\n\nTo made it work we need to write ./qwe. It is not convenient. \n\n\nif not os.path.exists(os.path.dirname(os.path.abspath(path))):\n    os.makedirs(os.path.dirname(os.path.abspath(path)))","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"8aed778a90e41ec22a2c60416b81639c2c749d02","unresolved":false,"context_lines":[{"line_number":621,"context_line":"        if \"files\" in result:"},{"line_number":622,"context_line":"            print(\"Saving report to disk. It can take a moment.\")"},{"line_number":623,"context_line":"            for path in result[\"files\"]:"},{"line_number":624,"context_line":"                if not os.path.exists(os.path.dirname(path)):"},{"line_number":625,"context_line":"                    os.makedirs(os.path.dirname(path))"},{"line_number":626,"context_line":"                with open(path, \"w\") as f:"},{"line_number":627,"context_line":"                    f.write(result[\"files\"][path])"},{"line_number":628,"context_line":"            if open_it:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_396de804","line":625,"range":{"start_line":624,"start_character":0,"end_line":625,"end_character":54},"in_reply_to":"ba5201f7_229f7a04","updated":"2017-01-10 17:01:17.000000000","message":"Done","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"957562884097555260af06525cef14f84a4701fe","unresolved":false,"context_lines":[{"line_number":624,"context_line":"                if not os.path.exists(os.path.dirname(path)):"},{"line_number":625,"context_line":"                    os.makedirs(os.path.dirname(path))"},{"line_number":626,"context_line":"                with open(path, \"w\") as f:"},{"line_number":627,"context_line":"                    f.write(result[\"files\"][path])"},{"line_number":628,"context_line":"            if open_it:"},{"line_number":629,"context_line":"                if \"open\" not in result:"},{"line_number":630,"context_line":"                    print(\"Cannot open \u0027%s\u0027 report in the browser because \""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_9d3407df","line":627,"updated":"2017-01-10 15:20:36.000000000","message":"Let\u0027s add here that the report has been successfully saved.\n\n\nprint(_(\"The report has been successfully saved.\"))","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"8aed778a90e41ec22a2c60416b81639c2c749d02","unresolved":false,"context_lines":[{"line_number":624,"context_line":"                if not os.path.exists(os.path.dirname(path)):"},{"line_number":625,"context_line":"                    os.makedirs(os.path.dirname(path))"},{"line_number":626,"context_line":"                with open(path, \"w\") as f:"},{"line_number":627,"context_line":"                    f.write(result[\"files\"][path])"},{"line_number":628,"context_line":"            if open_it:"},{"line_number":629,"context_line":"                if \"open\" not in result:"},{"line_number":630,"context_line":"                    print(\"Cannot open \u0027%s\u0027 report in the browser because \""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_f9b520d0","line":627,"in_reply_to":"ba5201f7_9d3407df","updated":"2017-01-10 17:01:17.000000000","message":"Done","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"957562884097555260af06525cef14f84a4701fe","unresolved":false,"context_lines":[{"line_number":627,"context_line":"                    f.write(result[\"files\"][path])"},{"line_number":628,"context_line":"            if open_it:"},{"line_number":629,"context_line":"                if \"open\" not in result:"},{"line_number":630,"context_line":"                    print(\"Cannot open \u0027%s\u0027 report in the browser because \""},{"line_number":631,"context_line":"                          \"report type doesn\u0027t support it.\" % output_type)"},{"line_number":632,"context_line":"                    return 1"},{"line_number":633,"context_line":"                webbrowser.open_new_tab("},{"line_number":634,"context_line":"                    \"file://\" + os.path.abspath(result[\"open\"]))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_dd5dafed","line":631,"range":{"start_line":630,"start_character":26,"end_line":631,"end_character":59},"updated":"2017-01-10 15:20:36.000000000","message":"We need to wrap it in _().","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"8aed778a90e41ec22a2c60416b81639c2c749d02","unresolved":false,"context_lines":[{"line_number":627,"context_line":"                    f.write(result[\"files\"][path])"},{"line_number":628,"context_line":"            if open_it:"},{"line_number":629,"context_line":"                if \"open\" not in result:"},{"line_number":630,"context_line":"                    print(\"Cannot open \u0027%s\u0027 report in the browser because \""},{"line_number":631,"context_line":"                          \"report type doesn\u0027t support it.\" % output_type)"},{"line_number":632,"context_line":"                    return 1"},{"line_number":633,"context_line":"                webbrowser.open_new_tab("},{"line_number":634,"context_line":"                    \"file://\" + os.path.abspath(result[\"open\"]))"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_b976383c","line":631,"range":{"start_line":630,"start_character":26,"end_line":631,"end_character":59},"in_reply_to":"ba5201f7_dd5dafed","updated":"2017-01-10 17:01:17.000000000","message":"Done","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"957562884097555260af06525cef14f84a4701fe","unresolved":false,"context_lines":[{"line_number":636,"context_line":"        if \"print\" in result:"},{"line_number":637,"context_line":"            # NOTE(andreykurilin): we need a separation between logs and"},{"line_number":638,"context_line":"            #   printed information to be able parsing output"},{"line_number":639,"context_line":"            print(cliutils.make_header(\"Verification Report\"))"},{"line_number":640,"context_line":"            print(result[\"print\"])"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"    @cliutils.help_group(\"verification\")"},{"line_number":643,"context_line":"    @cliutils.args(\"--verifier-id\", dest\u003d\"verifier_id\", type\u003dstr,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_3d295b38","line":640,"range":{"start_line":639,"start_character":12,"end_line":640,"end_character":34},"updated":"2017-01-10 15:20:36.000000000","message":"Let\u0027s print it in one \u0027print\u0027 function to avoid redundant empty lines.\n\n\nprint(cliutils.make_header(\"Verification Report\") + result[\"print\"])","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"3aee58ed65c4d97ab1976ef85de50beb82089427","unresolved":false,"context_lines":[{"line_number":636,"context_line":"        if \"print\" in result:"},{"line_number":637,"context_line":"            # NOTE(andreykurilin): we need a separation between logs and"},{"line_number":638,"context_line":"            #   printed information to be able parsing output"},{"line_number":639,"context_line":"            print(cliutils.make_header(\"Verification Report\"))"},{"line_number":640,"context_line":"            print(result[\"print\"])"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"    @cliutils.help_group(\"verification\")"},{"line_number":643,"context_line":"    @cliutils.args(\"--verifier-id\", dest\u003d\"verifier_id\", type\u003dstr,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_f4a0c5a7","line":640,"range":{"start_line":639,"start_character":12,"end_line":640,"end_character":34},"in_reply_to":"ba5201f7_19a4a4b7","updated":"2017-01-10 17:17:41.000000000","message":"You already added separation by print(cliutils.make_header(\"Verification Report\")). Why do we need one more? :)","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"8aed778a90e41ec22a2c60416b81639c2c749d02","unresolved":false,"context_lines":[{"line_number":636,"context_line":"        if \"print\" in result:"},{"line_number":637,"context_line":"            # NOTE(andreykurilin): we need a separation between logs and"},{"line_number":638,"context_line":"            #   printed information to be able parsing output"},{"line_number":639,"context_line":"            print(cliutils.make_header(\"Verification Report\"))"},{"line_number":640,"context_line":"            print(result[\"print\"])"},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"    @cliutils.help_group(\"verification\")"},{"line_number":643,"context_line":"    @cliutils.args(\"--verifier-id\", dest\u003d\"verifier_id\", type\u003dstr,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_19a4a4b7","line":640,"range":{"start_line":639,"start_character":12,"end_line":640,"end_character":34},"in_reply_to":"ba5201f7_3d295b38","updated":"2017-01-10 17:01:17.000000000","message":"I do not think that this line is redundant. It is a visual separator:)","commit_id":"abb882dcd931819f3e13252af2abd2f4d3dad176"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"741535527a2b93578cc4fc3d95faeaa41611022f","unresolved":false,"context_lines":[{"line_number":619,"context_line":"        result \u003d api.verification.report(verification_uuid, output_type,"},{"line_number":620,"context_line":"                                         output_dest)"},{"line_number":621,"context_line":"        if \"files\" in result:"},{"line_number":622,"context_line":"            print(\"Saving the report to disk. It can take a moment.\")"},{"line_number":623,"context_line":"            for path in result[\"files\"]:"},{"line_number":624,"context_line":"                full_path \u003d os.path.abspath(os.path.expanduser(path))"},{"line_number":625,"context_line":"                if not os.path.exists(os.path.dirname(full_path)):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_9a9a43c4","line":622,"range":{"start_line":622,"start_character":18,"end_line":622,"end_character":68},"updated":"2017-01-10 17:17:34.000000000","message":"We need to wrap it in _()","commit_id":"73e9d68507c4aea12e93f3a34c0ffb94c5d27382"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"01f7c7913362cc5b91436a9161ce0cec34f29799","unresolved":false,"context_lines":[{"line_number":619,"context_line":"        result \u003d api.verification.report(verification_uuid, output_type,"},{"line_number":620,"context_line":"                                         output_dest)"},{"line_number":621,"context_line":"        if \"files\" in result:"},{"line_number":622,"context_line":"            print(\"Saving the report to disk. It can take a moment.\")"},{"line_number":623,"context_line":"            for path in result[\"files\"]:"},{"line_number":624,"context_line":"                full_path \u003d os.path.abspath(os.path.expanduser(path))"},{"line_number":625,"context_line":"                if not os.path.exists(os.path.dirname(full_path)):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_3a1b171e","line":622,"range":{"start_line":622,"start_character":18,"end_line":622,"end_character":68},"in_reply_to":"ba5201f7_9a9a43c4","updated":"2017-01-10 19:34:25.000000000","message":"actually, no :P\nwe use all this _, _LI, LE...but we do not enable i18n, so it is redundant in general;)","commit_id":"73e9d68507c4aea12e93f3a34c0ffb94c5d27382"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"741535527a2b93578cc4fc3d95faeaa41611022f","unresolved":false,"context_lines":[{"line_number":626,"context_line":"                    os.makedirs(os.path.dirname(full_path))"},{"line_number":627,"context_line":"                with open(full_path, \"w\") as f:"},{"line_number":628,"context_line":"                    f.write(result[\"files\"][path])"},{"line_number":629,"context_line":"                print(_(\"The report has been successfully saved.\"))"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"            if open_it:"},{"line_number":632,"context_line":"                if \"open\" not in result:"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba5201f7_1a41f339","line":629,"updated":"2017-01-10 17:17:34.000000000","message":"It looks like it should be on one level with the loop, not inside :)","commit_id":"73e9d68507c4aea12e93f3a34c0ffb94c5d27382"}],"rally/plugins/common/verification/reporters.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"@reporter.configure(\"json\")"},{"line_number":28,"context_line":"class JSONReporter(reporter.VerificationReporter):"},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def validate(cls, output_destination):"},{"line_number":31,"context_line":"        \"\"\"Validate destination of report."}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_6835ebd9","line":28,"range":{"start_line":28,"start_character":6,"end_line":28,"end_character":18},"updated":"2017-01-10 12:54:21.000000000","message":"IMHO, JSONReport is better.","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":27,"context_line":"@reporter.configure(\"json\")"},{"line_number":28,"context_line":"class JSONReporter(reporter.VerificationReporter):"},{"line_number":29,"context_line":"    @classmethod"},{"line_number":30,"context_line":"    def validate(cls, output_destination):"},{"line_number":31,"context_line":"        \"\"\"Validate destination of report."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        :param output_destination: Destination of report"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_e8eb9b10","line":30,"range":{"start_line":30,"start_character":22,"end_line":30,"end_character":40},"updated":"2017-01-10 12:54:21.000000000","message":"Why you use \u0027output\u0027 everywhere instead of \u0027report\u0027. I think report_dest is better.","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"@reporter.configure(\"html\")"},{"line_number":100,"context_line":"class HTMLReporter(JSONReporter):"},{"line_number":101,"context_line":"    def generate(self):"},{"line_number":102,"context_line":"        report \u003d self._generate()"},{"line_number":103,"context_line":"        uuids \u003d report[\"verifications\"].keys()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_0858dff9","line":100,"range":{"start_line":100,"start_character":6,"end_line":100,"end_character":18},"updated":"2017-01-10 12:54:21.000000000","message":"ditto","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"}],"rally/verification/reporter.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":"Exporter - its the mechanism for exporting rally tasks into some specified"},{"line_number":19,"context_line":"system by connection string."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import abc"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_28b763f6","line":19,"range":{"start_line":17,"start_character":0,"end_line":19,"end_character":7},"updated":"2017-01-10 12:54:21.000000000","message":"Looks like doc string is incorrect.","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b7d1f29b283140531bc6a1bb82d2a02351a9a414","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":"Exporter - its the mechanism for exporting rally tasks into some specified"},{"line_number":19,"context_line":"system by connection string."},{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import abc"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_0b6d3904","line":19,"range":{"start_line":17,"start_character":0,"end_line":19,"end_character":7},"in_reply_to":"ba5201f7_28b763f6","updated":"2017-01-10 13:07:23.000000000","message":"Done","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"@plugin.base()"},{"line_number":56,"context_line":"@six.add_metaclass(abc.ABCMeta)"},{"line_number":57,"context_line":"class VerificationReporter(plugin.Plugin):"},{"line_number":58,"context_line":"    def __init__(self, verifications, output_destination):"},{"line_number":59,"context_line":"        \"\"\"Init reporter"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        :param verifications: list of results to generate report for"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_e8df1b0a","line":58,"range":{"start_line":58,"start_character":38,"end_line":58,"end_character":56},"updated":"2017-01-10 12:54:21.000000000","message":"Again, why \u0027output\u0027?\n\nJust \u0027destination\u0027 or \u0027report_destination\u0027.","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"}],"tests/ci/rally_verify.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"cc5f1f10445dac8f19ff6931a2aaf399d9dc812d","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    if output_type:"},{"line_number":74,"context_line":"        data[\"output_file\"] \u003d data[\"stdout_file\"].replace("},{"line_number":75,"context_line":"            \".txt.\", \".%s.\" % output_type)"},{"line_number":76,"context_line":"        data[\"cmd\"] +\u003d \" --to %s\" % data[\"output_file\"]"},{"line_number":77,"context_line":"        data[\"cmd\"] +\u003d \" --type %s\" % output_type"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    try:"},{"line_number":80,"context_line":"        LOG.info(\"Try to execute `%s`.\" % data[\"cmd\"])"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba5201f7_0bca99a1","line":77,"range":{"start_line":76,"start_character":0,"end_line":77,"end_character":49},"updated":"2017-01-10 12:54:21.000000000","message":"data[\"cmd\"] +\u003d \" --to %s --type %s\" % (data[\"output_file\"], output_type)","commit_id":"eb6e1f9fea4bebd00bb4a76bc71a26de7520cff8"}]}
