)]}'
{"rally/api.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"31f26488009f0ba86b621d4b4d4ab034e95e9643","unresolved":false,"context_lines":[{"line_number":784,"context_line":""},{"line_number":785,"context_line":"        :param verifier_id: Verifier name or UUID"},{"line_number":786,"context_line":"        :param deployment_id: Deployment name or UUID"},{"line_number":787,"context_line":"        :param tags: List with tags"},{"line_number":788,"context_line":"        :param run_args: Dictionary with run arguments"},{"line_number":789,"context_line":"        \"\"\""},{"line_number":790,"context_line":"        # TODO(ylobankov): Add an ability to skip tests by specifying only test"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_cb2b3a2f","line":787,"range":{"start_line":787,"start_character":21,"end_line":787,"end_character":35},"updated":"2017-01-19 21:44:49.000000000","message":"Please clarify it more. Something like:\n\n    list of tags for assigning to verification","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"28ace98f35dd501f43ec5569d4a51bc2ad5ca964","unresolved":false,"context_lines":[{"line_number":784,"context_line":""},{"line_number":785,"context_line":"        :param verifier_id: Verifier name or UUID"},{"line_number":786,"context_line":"        :param deployment_id: Deployment name or UUID"},{"line_number":787,"context_line":"        :param tags: List with tags"},{"line_number":788,"context_line":"        :param run_args: Dictionary with run arguments"},{"line_number":789,"context_line":"        \"\"\""},{"line_number":790,"context_line":"        # TODO(ylobankov): Add an ability to skip tests by specifying only test"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_1cc5738d","line":787,"range":{"start_line":787,"start_character":21,"end_line":787,"end_character":35},"in_reply_to":"5a3905b3_cb2b3a2f","updated":"2017-01-20 09:41:01.000000000","message":"Done","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"31f26488009f0ba86b621d4b4d4ab034e95e9643","unresolved":false,"context_lines":[{"line_number":882,"context_line":""},{"line_number":883,"context_line":"        :param verifier_id: Verifier name or UUID"},{"line_number":884,"context_line":"        :param deployment_id: Deployment name or UUID"},{"line_number":885,"context_line":"        :param status: Status to filter verifications by"},{"line_number":886,"context_line":"        \"\"\""},{"line_number":887,"context_line":"        return objects.Verification.list(verifier_id,"},{"line_number":888,"context_line":"                                         deployment_id\u003ddeployment_id,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_2bbf5efc","line":885,"updated":"2017-01-19 21:44:49.000000000","message":"please describe new argument","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"28ace98f35dd501f43ec5569d4a51bc2ad5ca964","unresolved":false,"context_lines":[{"line_number":882,"context_line":""},{"line_number":883,"context_line":"        :param verifier_id: Verifier name or UUID"},{"line_number":884,"context_line":"        :param deployment_id: Deployment name or UUID"},{"line_number":885,"context_line":"        :param status: Status to filter verifications by"},{"line_number":886,"context_line":"        \"\"\""},{"line_number":887,"context_line":"        return objects.Verification.list(verifier_id,"},{"line_number":888,"context_line":"                                         deployment_id\u003ddeployment_id,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_3cc06f7c","line":885,"in_reply_to":"5a3905b3_2bbf5efc","updated":"2017-01-20 09:41:01.000000000","message":"Done","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"}],"rally/cli/commands/verify.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"31f26488009f0ba86b621d4b4d4ab034e95e9643","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            }"},{"line_number":145,"context_line":"            cliutils.print_list(verifiers, fields, formatters\u003dformatters,"},{"line_number":146,"context_line":"                                normalize_field_names\u003dTrue, sortby_index\u003d4)"},{"line_number":147,"context_line":"        elif status:"},{"line_number":148,"context_line":"            print(_(\"No verifiers found.\"))"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(_(\"There are no verifiers. You can create verifier, using \""},{"line_number":151,"context_line":"                    \"command `rally verify create-verifier`.\"))"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_abb42ef2","line":148,"range":{"start_line":147,"start_character":8,"end_line":148,"end_character":43},"updated":"2017-01-19 21:44:49.000000000","message":"why we need separate message?","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"033c7492a5d0bfd70b949740441c1a2aa753a4e8","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            }"},{"line_number":145,"context_line":"            cliutils.print_list(verifiers, fields, formatters\u003dformatters,"},{"line_number":146,"context_line":"                                normalize_field_names\u003dTrue, sortby_index\u003d4)"},{"line_number":147,"context_line":"        elif status:"},{"line_number":148,"context_line":"            print(_(\"No verifiers found.\"))"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(_(\"There are no verifiers. You can create verifier, using \""},{"line_number":151,"context_line":"                    \"command `rally verify create-verifier`.\"))"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_e6271b10","line":148,"range":{"start_line":147,"start_character":8,"end_line":148,"end_character":43},"in_reply_to":"5a3905b3_4889de25","updated":"2017-01-20 17:16:35.000000000","message":"In the future, we will possibly want to filter verifiers by the source, type, namespace, system-wide flag, etc. In this case, we can filter verifiers by only one filter option or options combination. So it will be difficult to compose the right message with all filter options. Fairly, as for me \u0027No verifiers found.\u0027 msg is short and understandable because I immediately understand that no verifiers found by filters that I set.","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"01d4d1c0002cf6da32c6f60ae3d221d13b219bc2","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            }"},{"line_number":145,"context_line":"            cliutils.print_list(verifiers, fields, formatters\u003dformatters,"},{"line_number":146,"context_line":"                                normalize_field_names\u003dTrue, sortby_index\u003d4)"},{"line_number":147,"context_line":"        elif status:"},{"line_number":148,"context_line":"            print(_(\"No verifiers found.\"))"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(_(\"There are no verifiers. You can create verifier, using \""},{"line_number":151,"context_line":"                    \"command `rally verify create-verifier`.\"))"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_4889de25","line":148,"range":{"start_line":147,"start_character":8,"end_line":148,"end_character":43},"in_reply_to":"5a3905b3_9cba43e0","updated":"2017-01-20 16:35:56.000000000","message":"In this case, you are right, but in the case of there are no verifications at all, we should print a message like at L 150-151.\n\nI prefer to make it more like L150:\n\n   \"There are no verifiers with status \u0027%s\u0027. Try to create verifier, using command `rally verify create-verifier` or change filter options.\" % status","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"28ace98f35dd501f43ec5569d4a51bc2ad5ca964","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            }"},{"line_number":145,"context_line":"            cliutils.print_list(verifiers, fields, formatters\u003dformatters,"},{"line_number":146,"context_line":"                                normalize_field_names\u003dTrue, sortby_index\u003d4)"},{"line_number":147,"context_line":"        elif status:"},{"line_number":148,"context_line":"            print(_(\"No verifiers found.\"))"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(_(\"There are no verifiers. You can create verifier, using \""},{"line_number":151,"context_line":"                    \"command `rally verify create-verifier`.\"))"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_9cba43e0","line":148,"range":{"start_line":147,"start_character":8,"end_line":148,"end_character":43},"in_reply_to":"5a3905b3_abb42ef2","updated":"2017-01-20 09:41:01.000000000","message":"For example, we have 10 verifiers. All verifiers have \u0027installed\u0027 status, but we want to list verifiers with \u0027failed\u0027 status to delete them.\n\n\nrally verify list-verifiers --status failed\n\n\nThe command will return \"There are no verifiers. You can create verifier, using command `rally verify create-verifier`.\" message which is wrong. We have 10 verifiers. So we need a separate message for such cases.","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"31f26488009f0ba86b621d4b4d4ab034e95e9643","unresolved":false,"context_lines":[{"line_number":587,"context_line":"            }"},{"line_number":588,"context_line":"            cliutils.print_list(verifications, fields, formatters\u003dformatters,"},{"line_number":589,"context_line":"                                normalize_field_names\u003dTrue, sortby_index\u003d4)"},{"line_number":590,"context_line":"        elif verifier_id or deployment or status or tags:"},{"line_number":591,"context_line":"            print(_(\"No verifications found.\"))"},{"line_number":592,"context_line":"        else:"},{"line_number":593,"context_line":"            print(_(\"There are no verifications. You can start verification, \""},{"line_number":594,"context_line":"                    \"using command `rally verify start`.\"))"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_8b94d237","line":591,"range":{"start_line":590,"start_character":8,"end_line":591,"end_character":47},"updated":"2017-01-19 21:44:49.000000000","message":"same question here","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"28ace98f35dd501f43ec5569d4a51bc2ad5ca964","unresolved":false,"context_lines":[{"line_number":587,"context_line":"            }"},{"line_number":588,"context_line":"            cliutils.print_list(verifications, fields, formatters\u003dformatters,"},{"line_number":589,"context_line":"                                normalize_field_names\u003dTrue, sortby_index\u003d4)"},{"line_number":590,"context_line":"        elif verifier_id or deployment or status or tags:"},{"line_number":591,"context_line":"            print(_(\"No verifications found.\"))"},{"line_number":592,"context_line":"        else:"},{"line_number":593,"context_line":"            print(_(\"There are no verifications. You can start verification, \""},{"line_number":594,"context_line":"                    \"using command `rally verify start`.\"))"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_fc9c275f","line":591,"range":{"start_line":590,"start_character":8,"end_line":591,"end_character":47},"in_reply_to":"5a3905b3_8b94d237","updated":"2017-01-20 09:41:01.000000000","message":"ditto.","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e19847e5eb80d62fb4d80fc78e0b3e1e2dbc8d12","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            cliutils.print_list(verifiers, fields, formatters\u003dformatters,"},{"line_number":146,"context_line":"                                normalize_field_names\u003dTrue, sortby_index\u003d4)"},{"line_number":147,"context_line":"        elif status:"},{"line_number":148,"context_line":"            print(_(\"No verifiers found.\"))"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(_(\"There are no verifiers. You can create verifier, using \""},{"line_number":151,"context_line":"                    \"command `rally verify create-verifier`.\"))"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_c79666ef","line":148,"range":{"start_line":148,"start_character":21,"end_line":148,"end_character":39},"updated":"2017-01-23 08:02:30.000000000","message":"No verifiers with status %s found.","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"1fb13bf15d91071b12cd78128de5bb81ff1f6701","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            cliutils.print_list(verifiers, fields, formatters\u003dformatters,"},{"line_number":146,"context_line":"                                normalize_field_names\u003dTrue, sortby_index\u003d4)"},{"line_number":147,"context_line":"        elif status:"},{"line_number":148,"context_line":"            print(_(\"No verifiers found.\"))"},{"line_number":149,"context_line":"        else:"},{"line_number":150,"context_line":"            print(_(\"There are no verifiers. You can create verifier, using \""},{"line_number":151,"context_line":"                    \"command `rally verify create-verifier`.\"))"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_ad005402","line":148,"range":{"start_line":148,"start_character":21,"end_line":148,"end_character":39},"in_reply_to":"5a3905b3_c79666ef","updated":"2017-01-23 10:24:12.000000000","message":"Done","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e19847e5eb80d62fb4d80fc78e0b3e1e2dbc8d12","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    @cliutils.args(\"--deployment-id\", dest\u003d\"deployment\", type\u003dstr,"},{"line_number":369,"context_line":"                   metavar\u003d\"\u003cid\u003e\","},{"line_number":370,"context_line":"                   help\u003d\"Deployment name or UUID. \" + LIST_DEPLOYMENTS_HINT)"},{"line_number":371,"context_line":"    @cliutils.args(\"--tag\", nargs\u003d\"+\", dest\u003d\"tags\", type\u003dstr,"},{"line_number":372,"context_line":"                   help\u003d\"Mark verification with a tag or a few tags.\")"},{"line_number":373,"context_line":"    @cliutils.args(\"--pattern\", dest\u003d\"pattern\", type\u003dstr, required\u003dFalse,"},{"line_number":374,"context_line":"                   help\u003d\"Pattern which will be used for running tests. Can be \""}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_a78ebacd","line":371,"updated":"2017-01-23 08:02:30.000000000","message":"required\u003dFalse","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"1fb13bf15d91071b12cd78128de5bb81ff1f6701","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    @cliutils.args(\"--deployment-id\", dest\u003d\"deployment\", type\u003dstr,"},{"line_number":369,"context_line":"                   metavar\u003d\"\u003cid\u003e\","},{"line_number":370,"context_line":"                   help\u003d\"Deployment name or UUID. \" + LIST_DEPLOYMENTS_HINT)"},{"line_number":371,"context_line":"    @cliutils.args(\"--tag\", nargs\u003d\"+\", dest\u003d\"tags\", type\u003dstr,"},{"line_number":372,"context_line":"                   help\u003d\"Mark verification with a tag or a few tags.\")"},{"line_number":373,"context_line":"    @cliutils.args(\"--pattern\", dest\u003d\"pattern\", type\u003dstr, required\u003dFalse,"},{"line_number":374,"context_line":"                   help\u003d\"Pattern which will be used for running tests. Can be \""}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_0d7168a8","line":371,"in_reply_to":"5a3905b3_a78ebacd","updated":"2017-01-23 10:24:12.000000000","message":"Done","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e19847e5eb80d62fb4d80fc78e0b3e1e2dbc8d12","unresolved":false,"context_lines":[{"line_number":562,"context_line":"    @cliutils.args(\"--deployment-id\", dest\u003d\"deployment\", type\u003dstr,"},{"line_number":563,"context_line":"                   metavar\u003d\"\u003cid\u003e\", required\u003dFalse,"},{"line_number":564,"context_line":"                   help\u003d\"Deployment name or UUID. \" + LIST_DEPLOYMENTS_HINT)"},{"line_number":565,"context_line":"    @cliutils.args(\"--tag\", nargs\u003d\"+\", dest\u003d\"tags\", type\u003dstr,"},{"line_number":566,"context_line":"                   help\u003d\"Tags to filter verifications by.\")"},{"line_number":567,"context_line":"    @cliutils.args(\"--status\", dest\u003d\"status\", type\u003dstr, required\u003dFalse,"},{"line_number":568,"context_line":"                   help\u003d\"Status to filter verifications by.\")"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_478b56c3","line":565,"updated":"2017-01-23 08:02:30.000000000","message":"required\u003dFalse","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"1fb13bf15d91071b12cd78128de5bb81ff1f6701","unresolved":false,"context_lines":[{"line_number":562,"context_line":"    @cliutils.args(\"--deployment-id\", dest\u003d\"deployment\", type\u003dstr,"},{"line_number":563,"context_line":"                   metavar\u003d\"\u003cid\u003e\", required\u003dFalse,"},{"line_number":564,"context_line":"                   help\u003d\"Deployment name or UUID. \" + LIST_DEPLOYMENTS_HINT)"},{"line_number":565,"context_line":"    @cliutils.args(\"--tag\", nargs\u003d\"+\", dest\u003d\"tags\", type\u003dstr,"},{"line_number":566,"context_line":"                   help\u003d\"Tags to filter verifications by.\")"},{"line_number":567,"context_line":"    @cliutils.args(\"--status\", dest\u003d\"status\", type\u003dstr, required\u003dFalse,"},{"line_number":568,"context_line":"                   help\u003d\"Status to filter verifications by.\")"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_4d40d034","line":565,"in_reply_to":"5a3905b3_478b56c3","updated":"2017-01-23 10:24:12.000000000","message":"Done","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e19847e5eb80d62fb4d80fc78e0b3e1e2dbc8d12","unresolved":false,"context_lines":[{"line_number":588,"context_line":"            cliutils.print_list(verifications, fields, formatters\u003dformatters,"},{"line_number":589,"context_line":"                                normalize_field_names\u003dTrue, sortby_index\u003d4)"},{"line_number":590,"context_line":"        elif verifier_id or deployment or status or tags:"},{"line_number":591,"context_line":"            print(_(\"No verifications found.\"))"},{"line_number":592,"context_line":"        else:"},{"line_number":593,"context_line":"            print(_(\"There are no verifications. You can start verification, \""},{"line_number":594,"context_line":"                    \"using command `rally verify start`.\"))"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_c764a623","line":591,"range":{"start_line":591,"start_character":21,"end_line":591,"end_character":44},"updated":"2017-01-23 08:02:30.000000000","message":"It\u0027s better to add more details in this message.","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"1fb13bf15d91071b12cd78128de5bb81ff1f6701","unresolved":false,"context_lines":[{"line_number":588,"context_line":"            cliutils.print_list(verifications, fields, formatters\u003dformatters,"},{"line_number":589,"context_line":"                                normalize_field_names\u003dTrue, sortby_index\u003d4)"},{"line_number":590,"context_line":"        elif verifier_id or deployment or status or tags:"},{"line_number":591,"context_line":"            print(_(\"No verifications found.\"))"},{"line_number":592,"context_line":"        else:"},{"line_number":593,"context_line":"            print(_(\"There are no verifications. You can start verification, \""},{"line_number":594,"context_line":"                    \"using command `rally verify start`.\"))"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_8d46384d","line":591,"range":{"start_line":591,"start_character":21,"end_line":591,"end_character":44},"in_reply_to":"5a3905b3_c764a623","updated":"2017-01-23 10:24:12.000000000","message":"Done","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"}],"rally/common/db/api.py":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e19847e5eb80d62fb4d80fc78e0b3e1e2dbc8d12","unresolved":false,"context_lines":[{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    :param verifier_uuid: verification UUID"},{"line_number":430,"context_line":"    :param deployment_uuid: deployment UUID"},{"line_number":431,"context_line":"    :param tags: a list with tags for verification"},{"line_number":432,"context_line":"    :param run_args: a dict with run arguments for verification"},{"line_number":433,"context_line":"    :returns: a dict with verification data"},{"line_number":434,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_a77cfab5","line":431,"range":{"start_line":431,"start_character":24,"end_line":431,"end_character":28},"updated":"2017-01-23 08:02:30.000000000","message":"s/with/of","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"1fb13bf15d91071b12cd78128de5bb81ff1f6701","unresolved":false,"context_lines":[{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    :param verifier_uuid: verification UUID"},{"line_number":430,"context_line":"    :param deployment_uuid: deployment UUID"},{"line_number":431,"context_line":"    :param tags: a list with tags for verification"},{"line_number":432,"context_line":"    :param run_args: a dict with run arguments for verification"},{"line_number":433,"context_line":"    :returns: a dict with verification data"},{"line_number":434,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_2d746466","line":431,"range":{"start_line":431,"start_character":24,"end_line":431,"end_character":28},"in_reply_to":"5a3905b3_a77cfab5","updated":"2017-01-23 10:24:12.000000000","message":"Done","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"}],"rally/common/db/sqlalchemy/api.py":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"be4d4ae2fdd6e0c684b8a09a42780df71d68adf2","unresolved":false,"context_lines":[{"line_number":769,"context_line":"                # query.filter_by(**filter_by). We can filter verifications"},{"line_number":770,"context_line":"                # only by the whole list of the tags. So we need to filter"},{"line_number":771,"context_line":"                # verifications manually."},{"line_number":772,"context_line":"                return [q for q in query.all()"},{"line_number":773,"context_line":"                        if set(tags).intersection(q.tags)]"},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"        return query.all()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_b15f640d","line":772,"range":{"start_line":772,"start_character":30,"end_line":772,"end_character":31},"updated":"2017-01-13 10:03:13.000000000","message":"for verification in query.all()","commit_id":"0f8ee3cb6ea1c2e44385a8560874c33dd0523de5"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"be4d4ae2fdd6e0c684b8a09a42780df71d68adf2","unresolved":false,"context_lines":[{"line_number":770,"context_line":"                # only by the whole list of the tags. So we need to filter"},{"line_number":771,"context_line":"                # verifications manually."},{"line_number":772,"context_line":"                return [q for q in query.all()"},{"line_number":773,"context_line":"                        if set(tags).intersection(q.tags)]"},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"        return query.all()"},{"line_number":776,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_31461424","line":773,"range":{"start_line":773,"start_character":52,"end_line":773,"end_character":56},"updated":"2017-01-13 10:03:13.000000000","message":"Old verifications will have tags\u003dNone after migration.\nI think this will fail with TypeError: \u0027NoneType\u0027 object is not iterable","commit_id":"0f8ee3cb6ea1c2e44385a8560874c33dd0523de5"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"ffd412306176b06a965f22d7ee35dcc8a891f51e","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        return query"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def _tags_get(self, uuid, tag_type):"},{"line_number":215,"context_line":"        tags \u003d (self.model_query(models.Tag)."},{"line_number":216,"context_line":"                filter_by(uuid\u003duuid, type\u003dtag_type).all())"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        return sorted(set(t.tag for t in tags))"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def _task_get(self, uuid, load_only\u003dNone, session\u003dNone):"},{"line_number":221,"context_line":"        pre_query \u003d self.model_query(models.Task, session\u003dsession)"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a3c09a3_4e1faf5a","line":218,"range":{"start_line":214,"start_character":4,"end_line":218,"end_character":47},"updated":"2017-01-18 11:32:52.000000000","message":"Looks like we need to add something like this:\n\n  def _get_uuids_by_tags(self, tag_type, tags):\n      records \u003d (self.model_query(models.Tag).\n                 filter(models.Tag.type\u003dtag_type,\n                        models.Tag.tag.in_(tags)).all())\n      return list(set(tag.uuid for tag in entries))\n\nand use it when we filter by tags","commit_id":"12f940357893fcb0f2bb35d2c058dc21a7f1d436"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"31f26488009f0ba86b621d4b4d4ab034e95e9643","unresolved":false,"context_lines":[{"line_number":782,"context_line":"            if filter_by:"},{"line_number":783,"context_line":"                query \u003d query.filter_by(**filter_by)"},{"line_number":784,"context_line":""},{"line_number":785,"context_line":"            def add_tags_to_verifications(verifications):"},{"line_number":786,"context_line":"                for verification in verifications:"},{"line_number":787,"context_line":"                    verification.tags \u003d self._tags_get("},{"line_number":788,"context_line":"                        verification.uuid, consts.TagType.VERIFICATION)"},{"line_number":789,"context_line":"                return verifications"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"            if tags:"},{"line_number":792,"context_line":"                uuids \u003d self._uuids_by_tags_get("}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_0bf6228f","line":789,"range":{"start_line":785,"start_character":12,"end_line":789,"end_character":36},"updated":"2017-01-19 21:44:49.000000000","message":"why we need this separate inner method? it is called only in one place...","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"28ace98f35dd501f43ec5569d4a51bc2ad5ca964","unresolved":false,"context_lines":[{"line_number":782,"context_line":"            if filter_by:"},{"line_number":783,"context_line":"                query \u003d query.filter_by(**filter_by)"},{"line_number":784,"context_line":""},{"line_number":785,"context_line":"            def add_tags_to_verifications(verifications):"},{"line_number":786,"context_line":"                for verification in verifications:"},{"line_number":787,"context_line":"                    verification.tags \u003d self._tags_get("},{"line_number":788,"context_line":"                        verification.uuid, consts.TagType.VERIFICATION)"},{"line_number":789,"context_line":"                return verifications"},{"line_number":790,"context_line":""},{"line_number":791,"context_line":"            if tags:"},{"line_number":792,"context_line":"                uuids \u003d self._uuids_by_tags_get("}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_1c273313","line":789,"range":{"start_line":785,"start_character":12,"end_line":789,"end_character":36},"in_reply_to":"5a3905b3_0bf6228f","updated":"2017-01-20 09:41:01.000000000","message":"I think it will be more readable. If you don\u0027t think so, I will change it.","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e19847e5eb80d62fb4d80fc78e0b3e1e2dbc8d12","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        tags \u003d (self.model_query(models.Tag)."},{"line_number":216,"context_line":"                filter_by(uuid\u003duuid, type\u003dtag_type).all())"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        return list(set(t.tag for t in tags))"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def _uuids_by_tags_get(self, tag_type, tags):"},{"line_number":221,"context_line":"        tags \u003d (self.model_query(models.Tag)."}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_ead96758","line":218,"range":{"start_line":218,"start_character":15,"end_line":218,"end_character":45},"updated":"2017-01-23 08:02:30.000000000","message":"[t.tag for tag in tags]","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"35001fd2ce40ec110c22cecc5a3a76071c9a2017","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        tags \u003d (self.model_query(models.Tag)."},{"line_number":216,"context_line":"                filter_by(uuid\u003duuid, type\u003dtag_type).all())"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        return list(set(t.tag for t in tags))"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def _uuids_by_tags_get(self, tag_type, tags):"},{"line_number":221,"context_line":"        tags \u003d (self.model_query(models.Tag)."}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_834449b7","line":218,"range":{"start_line":218,"start_character":15,"end_line":218,"end_character":45},"in_reply_to":"5a3905b3_23971549","updated":"2017-01-23 10:39:52.000000000","message":"I do it. Look at L741.","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ec725517dc2cdaf70b5082ba41a475791b4adab5","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        tags \u003d (self.model_query(models.Tag)."},{"line_number":216,"context_line":"                filter_by(uuid\u003duuid, type\u003dtag_type).all())"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        return list(set(t.tag for t in tags))"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def _uuids_by_tags_get(self, tag_type, tags):"},{"line_number":221,"context_line":"        tags \u003d (self.model_query(models.Tag)."}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_23971549","line":218,"range":{"start_line":218,"start_character":15,"end_line":218,"end_character":45},"in_reply_to":"5a3905b3_4d1ff007","updated":"2017-01-23 10:35:05.000000000","message":"it is better to filter duplication on saving step","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"1fb13bf15d91071b12cd78128de5bb81ff1f6701","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        tags \u003d (self.model_query(models.Tag)."},{"line_number":216,"context_line":"                filter_by(uuid\u003duuid, type\u003dtag_type).all())"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        return list(set(t.tag for t in tags))"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def _uuids_by_tags_get(self, tag_type, tags):"},{"line_number":221,"context_line":"        tags \u003d (self.model_query(models.Tag)."}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_4d1ff007","line":218,"range":{"start_line":218,"start_character":15,"end_line":218,"end_character":45},"in_reply_to":"5a3905b3_ead96758","updated":"2017-01-23 10:24:12.000000000","message":"It is done intentionally to remove duplicated items from the list.","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e19847e5eb80d62fb4d80fc78e0b3e1e2dbc8d12","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        tags \u003d (self.model_query(models.Tag)."},{"line_number":222,"context_line":"                filter(models.Tag.type \u003d\u003d tag_type,"},{"line_number":223,"context_line":"                       models.Tag.tag.in_(tags)).all())"},{"line_number":224,"context_line":"        return list(set(tag.uuid for tag in tags))"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def _task_get(self, uuid, load_only\u003dNone, session\u003dNone):"},{"line_number":227,"context_line":"        pre_query \u003d self.model_query(models.Task, session\u003dsession)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_2a29af37","line":224,"range":{"start_line":224,"start_character":15,"end_line":224,"end_character":50},"updated":"2017-01-23 08:02:30.000000000","message":"[tag.uuid for tag in tags]","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"1fb13bf15d91071b12cd78128de5bb81ff1f6701","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        tags \u003d (self.model_query(models.Tag)."},{"line_number":222,"context_line":"                filter(models.Tag.type \u003d\u003d tag_type,"},{"line_number":223,"context_line":"                       models.Tag.tag.in_(tags)).all())"},{"line_number":224,"context_line":"        return list(set(tag.uuid for tag in tags))"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def _task_get(self, uuid, load_only\u003dNone, session\u003dNone):"},{"line_number":227,"context_line":"        pre_query \u003d self.model_query(models.Task, session\u003dsession)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_add4d41f","line":224,"range":{"start_line":224,"start_character":15,"end_line":224,"end_character":50},"in_reply_to":"5a3905b3_2a29af37","updated":"2017-01-23 10:24:12.000000000","message":"ditto.","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e19847e5eb80d62fb4d80fc78e0b3e1e2dbc8d12","unresolved":false,"context_lines":[{"line_number":728,"context_line":"        return verifier"},{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    @db_api.serialize"},{"line_number":731,"context_line":"    def verification_create(self, verifier_id, deployment_id, tags, run_args):"},{"line_number":732,"context_line":"        verifier \u003d self._verifier_get(verifier_id)"},{"line_number":733,"context_line":"        deployment \u003d self._deployment_get(deployment_id)"},{"line_number":734,"context_line":"        verification \u003d models.Verification()"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_0a0a3379","line":731,"range":{"start_line":731,"start_character":62,"end_line":731,"end_character":66},"updated":"2017-01-23 08:02:30.000000000","message":"def verification_create(self, verifier_id, deployment_id, tags, run_args, tags\u003dNone)","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"1fb13bf15d91071b12cd78128de5bb81ff1f6701","unresolved":false,"context_lines":[{"line_number":728,"context_line":"        return verifier"},{"line_number":729,"context_line":""},{"line_number":730,"context_line":"    @db_api.serialize"},{"line_number":731,"context_line":"    def verification_create(self, verifier_id, deployment_id, tags, run_args):"},{"line_number":732,"context_line":"        verifier \u003d self._verifier_get(verifier_id)"},{"line_number":733,"context_line":"        deployment \u003d self._deployment_get(deployment_id)"},{"line_number":734,"context_line":"        verification \u003d models.Verification()"}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_ada214ac","line":731,"range":{"start_line":731,"start_character":62,"end_line":731,"end_character":66},"in_reply_to":"5a3905b3_0a0a3379","updated":"2017-01-23 10:24:12.000000000","message":"Done","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"}],"rally/common/db/sqlalchemy/migrations/versions/90a663612cef_add_tags_to_verifications.py":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"be4d4ae2fdd6e0c684b8a09a42780df71d68adf2","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def upgrade():"},{"line_number":38,"context_line":"    with op.batch_alter_table(\"verifications\", schema\u003dNone) as batch_op:"},{"line_number":39,"context_line":"        batch_op.add_column("},{"line_number":40,"context_line":"            sa.Column(\"tags\", sa_types.MutableJSONEncodedList))"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_6b48ab2e","line":38,"range":{"start_line":38,"start_character":47,"end_line":38,"end_character":58},"updated":"2017-01-13 10:03:13.000000000","message":"schema is None by default","commit_id":"0f8ee3cb6ea1c2e44385a8560874c33dd0523de5"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"611fa1d480599f1a6eda67e86c4017dcaaca365b","unresolved":false,"context_lines":[{"line_number":45,"context_line":"def upgrade():"},{"line_number":46,"context_line":"    with op.batch_alter_table(\"verifications\") as batch_op:"},{"line_number":47,"context_line":"        batch_op.add_column("},{"line_number":48,"context_line":"            sa.Column(\"tags\", sa_types.MutableJSONEncodedList))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    connection \u003d op.get_bind()"},{"line_number":51,"context_line":"    for verification in connection.execute(verification_helper.select()):"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_328fec24","line":48,"range":{"start_line":48,"start_character":12,"end_line":48,"end_character":62},"updated":"2017-01-13 12:57:42.000000000","message":"sa.Column(sa_types.MutableJSONEncodedList, default\u003d[])\n\nAdding default is not enough here?","commit_id":"355daf3299fcda448a53dfc93da438f10fd4bc03"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"fcef8b39ad86b5966700c7f780cf661edfbef9a8","unresolved":false,"context_lines":[{"line_number":45,"context_line":"def upgrade():"},{"line_number":46,"context_line":"    with op.batch_alter_table(\"verifications\") as batch_op:"},{"line_number":47,"context_line":"        batch_op.add_column("},{"line_number":48,"context_line":"            sa.Column(\"tags\", sa_types.MutableJSONEncodedList))"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    connection \u003d op.get_bind()"},{"line_number":51,"context_line":"    for verification in connection.execute(verification_helper.select()):"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a3c09a3_fb77ffff","line":48,"range":{"start_line":48,"start_character":12,"end_line":48,"end_character":62},"in_reply_to":"7a3c09a3_328fec24","updated":"2017-01-13 14:03:33.000000000","message":"Unfortunately, no :(","commit_id":"355daf3299fcda448a53dfc93da438f10fd4bc03"}],"rally/common/db/sqlalchemy/migrations/versions/a6f364988fc2_change_tag_type_enum.py":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"64814f0a52f6e89ad6de0827b150542f05db5948","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    op.execute(tag_helper.update().values(new_type\u003dtag_helper.c.type))"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    with op.batch_alter_table(\"tags\") as batch_op:"},{"line_number":58,"context_line":"        batch_op.drop_column(\"type\")"},{"line_number":59,"context_line":"        batch_op.alter_column(\"new_type\", new_column_name\u003d\"type\","},{"line_number":60,"context_line":"                              existing_type\u003dsa.String(36), nullable\u003dFalse)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"def downgrade():"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a3c09a3_9fa1ce48","line":60,"range":{"start_line":57,"start_character":4,"end_line":60,"end_character":74},"updated":"2017-01-18 09:36:16.000000000","message":"Looks like we need to recreate index \"d_type_tag\" in order to fix migration for postrges and mysql.\n\n\ntry this:\n\n  op.drop_index(\"d_type_tag\", \"tags\")\n\n  # the code with alter_column goes here\n\n  op.create_index(\"d_type_tag\", \"tags\", [\"uuid\", \"type\", \"tag\"], unique\u003dTrue)","commit_id":"8747899c3d6ad16a11729c7db26a7a8ec5433c1f"}],"rally/common/db/sqlalchemy/models.py":[{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"be4d4ae2fdd6e0c684b8a09a42780df71d68adf2","unresolved":false,"context_lines":[{"line_number":410,"context_line":"                                sa.ForeignKey(Deployment.uuid),"},{"line_number":411,"context_line":"                                nullable\u003dFalse)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    tags \u003d sa.Column(sa_types.MutableJSONEncodedList)"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"    run_args \u003d sa.Column(sa_types.MutableJSONEncodedDict)"},{"line_number":416,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3c09a3_163bceec","line":413,"range":{"start_line":413,"start_character":4,"end_line":413,"end_character":53},"updated":"2017-01-13 10:03:13.000000000","message":"lets add default\u003d[]","commit_id":"0f8ee3cb6ea1c2e44385a8560874c33dd0523de5"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"2fc1c28ef524e57c0e9ad909cfd7497d5c8519da","unresolved":false,"context_lines":[{"line_number":410,"context_line":"                                sa.ForeignKey(Deployment.uuid),"},{"line_number":411,"context_line":"                                nullable\u003dFalse)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"    tags \u003d sa.Column(sa_types.MutableJSONEncodedList, default\u003d[])"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"    run_args \u003d sa.Column(sa_types.MutableJSONEncodedDict, default\u003d{})"},{"line_number":416,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7a3c09a3_60614f39","line":413,"range":{"start_line":413,"start_character":4,"end_line":413,"end_character":8},"updated":"2017-01-16 13:57:47.000000000","message":"We need to decide whether to use Tag table here?\n\nhttps://github.com/openstack/rally/blob/9678553640a7a7f840618006cd2508588e9e6caf/rally/common/db/sqlalchemy/models.py#L352-L365","commit_id":"51141e6a6516ed7f8a0a994586016326644744ef"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"5f8a649acbda16cc41d90dc6f2130b5deb1e3d32","unresolved":false,"context_lines":[{"line_number":358,"context_line":"    id \u003d sa.Column(sa.Integer, primary_key\u003dTrue, autoincrement\u003dTrue)"},{"line_number":359,"context_line":"    uuid \u003d sa.Column(sa.String(36), default\u003dUUID, nullable\u003dFalse)"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    type \u003d sa.Column(sa.String(36), default\u003dconsts.TagType.TASK,"},{"line_number":362,"context_line":"                     nullable\u003dFalse)"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    tag \u003d sa.Column(sa.String(255), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":14,"id":"7a3c09a3_0e6127a9","line":361,"range":{"start_line":361,"start_character":36,"end_line":361,"end_character":63},"updated":"2017-01-18 11:35:53.000000000","message":"I would prefer to remove default. type must be specified explicitly.","commit_id":"12f940357893fcb0f2bb35d2c058dc21a7f1d436"}],"rally/common/objects/verification.py":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e19847e5eb80d62fb4d80fc78e0b3e1e2dbc8d12","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return self._db_entry[item]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @classmethod"},{"line_number":38,"context_line":"    def create(cls, verifier_id, deployment_id, tags, run_args):"},{"line_number":39,"context_line":"        return cls(db.verification_create("},{"line_number":40,"context_line":"            verifier_id, deployment_id, tags, run_args))"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_6a6c9735","line":38,"range":{"start_line":38,"start_character":4,"end_line":38,"end_character":63},"updated":"2017-01-23 08:02:30.000000000","message":"def create(cls, verifier_id, deployment_id, run_args, tags\u003dNone)","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"1fb13bf15d91071b12cd78128de5bb81ff1f6701","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return self._db_entry[item]"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @classmethod"},{"line_number":38,"context_line":"    def create(cls, verifier_id, deployment_id, tags, run_args):"},{"line_number":39,"context_line":"        return cls(db.verification_create("},{"line_number":40,"context_line":"            verifier_id, deployment_id, tags, run_args))"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"5a3905b3_2dcc6469","line":38,"range":{"start_line":38,"start_character":4,"end_line":38,"end_character":63},"in_reply_to":"5a3905b3_6a6c9735","updated":"2017-01-23 10:24:12.000000000","message":"Done","commit_id":"d421cb6607dbdafe1af07e243bbef4586a28c2a3"}],"rally/consts.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"31f26488009f0ba86b621d4b4d4ab034e95e9643","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    VALIDATION_FAILED \u003d \"validation_failed\""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"class _TagType(utils.ImmutableMixin, utils.EnumMixin):"},{"line_number":190,"context_line":"    TASK \u003d \"task\""},{"line_number":191,"context_line":"    SUBTASK \u003d \"subtask\""},{"line_number":192,"context_line":"    VERIFICATION \u003d \"verification\""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"class _VerifierStatus(utils.ImmutableMixin, utils.EnumMixin):"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_abb6ee87","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":33},"updated":"2017-01-19 21:44:49.000000000","message":"It looks like after removing enum from db layer, this class become redundant","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"28ace98f35dd501f43ec5569d4a51bc2ad5ca964","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    VALIDATION_FAILED \u003d \"validation_failed\""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"class _TagType(utils.ImmutableMixin, utils.EnumMixin):"},{"line_number":190,"context_line":"    TASK \u003d \"task\""},{"line_number":191,"context_line":"    SUBTASK \u003d \"subtask\""},{"line_number":192,"context_line":"    VERIFICATION \u003d \"verification\""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"class _VerifierStatus(utils.ImmutableMixin, utils.EnumMixin):"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a3905b3_5c945be1","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":33},"in_reply_to":"5a3905b3_abb6ee87","updated":"2017-01-20 09:41:01.000000000","message":"We have the same classes for verifiers and verifications. Yes, we removed enum from DB layer, but we should store tag types somewhere.","commit_id":"0f0b98b18669be4ca144934250b2cb419fc1e796"}]}
