)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"209e798bbaafa8e30fd57c06e59590a85d857131","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Implement `verify import` command.  This implementation partially"},{"line_number":10,"context_line":"follows the Rally blueprint[1] related."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[1] https://blueprints.launchpad.net/rally/+spec/verification-import"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I65194a2f456106fa5731a13f53d5985971aad43a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba15a1d1_40b0548a","line":12,"updated":"2015-09-16 16:26:59.000000000","message":"Please use the \u0027Implements: blueprint verification-import\u0027 keyword.","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"886e3b4fc0b5672830c9cbe698d3aea6dbd749f6","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Implements: blueprint verification-import"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"`verify import` will read a tempest log in subunit format, and"},{"line_number":14,"context_line":"import it into the curred deployment (or the one specified in"},{"line_number":15,"context_line":"the command line)"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I65194a2f456106fa5731a13f53d5985971aad43a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba15a1d1_ebada784","line":14,"updated":"2015-09-17 11:45:10.000000000","message":"s/curred/current ?","commit_id":"e167b75634f806b4ae452a3cb58d25689fd84ca2"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"f5ac1762af9db3055fb8d2375e66a88013e188a8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Implements: blueprint verification-import"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"`verify import` will read a tempest log in subunit format, and"},{"line_number":14,"context_line":"import it into the curred deployment (or the one specified in"},{"line_number":15,"context_line":"the command line)"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I65194a2f456106fa5731a13f53d5985971aad43a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba15a1d1_ab27afc8","line":14,"in_reply_to":"ba15a1d1_ebada784","updated":"2015-09-17 11:50:15.000000000","message":"Done","commit_id":"e167b75634f806b4ae452a3cb58d25689fd84ca2"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"ec51c538f8ba6f87565ad9222af864bde0a5407c","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"`verify import` will read a tempest log in subunit format, and"},{"line_number":14,"context_line":"import it into the current deployment (or the one specified in"},{"line_number":15,"context_line":"the command line)"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I65194a2f456106fa5731a13f53d5985971aad43a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"ba15a1d1_863a4433","line":15,"updated":"2015-09-22 09:04:49.000000000","message":"I\u0027m sorry for put -1 on non-technical things, but I really hope you could write a more detailed commit message here. Since no spec and the bp is not detailed either, the commit message is the only document to describe what you\u0027re trying to finish.\n\nThere\u0027s an example for you: https://review.openstack.org/#/c/102853/","commit_id":"c77d4e46a5fa6fc2f0e47566528ea0ea3100cba8"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"720c635ae5c9ae538c7c53912210c507083286f4","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"`--set-name` can be used to attach a name or a small description"},{"line_number":29,"context_line":"to the tempest result, and `--no-use` will mark the new verification"},{"line_number":30,"context_line":"object as a no-current."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Change-Id: I65194a2f456106fa5731a13f53d5985971aad43a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba15a1d1_cc005d69","line":30,"updated":"2015-09-22 09:44:45.000000000","message":"please don\u0027t copy \u0026 paste\n\n- L7\u0026L9 please use a clear commit title there\n- L13 it is not READ there, your patch is to WRITE into that file\n- which parameter are necessary and why\n- it\u0027s better:\n\n[clear and concise commit title]\n\n[one blank line]\n\n[basic description of your new command]\n\n[one blank line]]\n\n[two or more examples with new command with main parameters, with its output or backend changes also]","commit_id":"144a74f5d16ea2669d00a4f215d30dbad82a0ed0"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"d0089c72b27b0115aed8e0da2688ab8f47eb4dfe","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"`--set-name` can be used to attach a name or a small description"},{"line_number":29,"context_line":"to the tempest result, and `--no-use` will mark the new verification"},{"line_number":30,"context_line":"object as a no-current."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Change-Id: I65194a2f456106fa5731a13f53d5985971aad43a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba15a1d1_e7b53ad0","line":30,"in_reply_to":"ba15a1d1_cc005d69","updated":"2015-09-22 10:02:26.000000000","message":"I didn\u0027t copy \u0026 paste from no-where, where do you see that?\n\nL13 is correct IMHO.  This patch READ from the tempest log and move the content into the Rally database.  Is basically an `import` command, not an `export`.\n\nI hope that this new version improve the situation:\n\n---\nImport tempest results into Rally database\n\nAdd a new subcommand to the `verify` command to import tempest results\ninto an existing deployment in the Rally database. `verify import`\nwill read a tempest log in subunit format, and import it into the\ncurrent deployment (or the one specified in the command line)\n\nThe command should be called as\n\n  $ rally verify import --file [log_file] --deployment [uuid]\n\nThis version of the patch will require a normal deployment to be\ncreated beforehand.  Also, the log_file needs to be a tempest log in\nsubunit format. Both parameters are required.\n\nApart from `--file` and `--deployment` parameters, this command\nunderstand `--set-name` and `--no-use` from the `start`\ncommand. `--set-name` can be used to attach a name or a small\ndescription to the tempest result, and `--no-use` will mark the new\nverification object as a no-current. So, for example, if we want to\nassign a name to the tempest result we can use:\n\n  $ rally verify import --file [log_file] --set-name [name] \\\n          --deployment [uuid]\n\nImplements: blueprint verification-import\n---","commit_id":"144a74f5d16ea2669d00a4f215d30dbad82a0ed0"}],"rally/api.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"589d96e1afa7e91b8dee7616eaada80dc786a7f5","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        return verification"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    @classmethod"},{"line_number":281,"context_line":"    def import_file(cls, deployment, set_name, log_file):"},{"line_number":282,"context_line":"        \"\"\"Import tempest log."},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        :param deployment: UUID or name of a deployment."}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_a1b6fdf6","line":281,"updated":"2015-09-17 06:38:57.000000000","message":"As this is a part of api please set log_file\u003dNone","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"d2d372d4bc000b38c8fc383bd8b4004755274b88","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        return verification"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    @classmethod"},{"line_number":281,"context_line":"    def import_file(cls, deployment, set_name, log_file):"},{"line_number":282,"context_line":"        \"\"\"Import tempest log."},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        :param deployment: UUID or name of a deployment."}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_15183f1d","line":281,"in_reply_to":"ba15a1d1_a1b6fdf6","updated":"2015-09-17 10:01:24.000000000","message":"Sure. Will do.\n\nWhat is the rationale behind setting this to None as a default in the API?","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"886e3b4fc0b5672830c9cbe698d3aea6dbd749f6","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        \"\"\"Import tempest log."},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        :param deployment: UUID or name of a deployment."},{"line_number":285,"context_line":"        :param log_file: User specified Tempest log file"},{"line_number":286,"context_line":"        :returns: Deployment and verification objects"},{"line_number":287,"context_line":"        \"\"\""},{"line_number":288,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_6bd99721","line":285,"updated":"2015-09-17 11:45:10.000000000","message":"please note that it should be file name not file object.","commit_id":"e167b75634f806b4ae452a3cb58d25689fd84ca2"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"f5ac1762af9db3055fb8d2375e66a88013e188a8","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        \"\"\"Import tempest log."},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        :param deployment: UUID or name of a deployment."},{"line_number":285,"context_line":"        :param log_file: User specified Tempest log file"},{"line_number":286,"context_line":"        :returns: Deployment and verification objects"},{"line_number":287,"context_line":"        \"\"\""},{"line_number":288,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba15a1d1_eb0fe736","line":285,"in_reply_to":"ba15a1d1_6bd99721","updated":"2015-09-17 11:50:15.000000000","message":"Done","commit_id":"e167b75634f806b4ae452a3cb58d25689fd84ca2"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"7a4c6a891e16ca8eec22d18b244854bb4470d070","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        \"\"\""},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        # TODO(aplanas): Create an external deployment if this is"},{"line_number":343,"context_line":"        # missing, as required in the blueprint."},{"line_number":344,"context_line":"        deployment_uuid \u003d objects.Deployment.get(deployment)[\"uuid\"]"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        verification \u003d objects.Verification(deployment_uuid\u003ddeployment_uuid)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a1a9d01_00d50c42","line":343,"updated":"2015-09-24 16:07:30.000000000","message":"Instead of \"the blueprint,\" it\u0027d be nice to name and link the blueprint.","commit_id":"4ee250a0072e1fb2da776993862928faf7fb9f65"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"8dde063c0e361c948a84cf78a44512e14e52d706","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        \"\"\""},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        # TODO(aplanas): Create an external deployment if this is"},{"line_number":343,"context_line":"        # missing, as required in the blueprint."},{"line_number":344,"context_line":"        deployment_uuid \u003d objects.Deployment.get(deployment)[\"uuid\"]"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        verification \u003d objects.Verification(deployment_uuid\u003ddeployment_uuid)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a1a9d01_1f41c20b","line":343,"in_reply_to":"9a1a9d01_00d50c42","updated":"2015-09-25 11:22:00.000000000","message":"Done","commit_id":"4ee250a0072e1fb2da776993862928faf7fb9f65"}],"rally/cli/commands/verify.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"589d96e1afa7e91b8dee7616eaada80dc786a7f5","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @cliutils.args(\"--deployment\", dest\u003d\"deployment\", type\u003dstr,"},{"line_number":85,"context_line":"                   required\u003dFalse, help\u003d\"UUID or name of a deployment.\")"},{"line_number":86,"context_line":"    @cliutils.args(\"--set\", dest\u003d\"set_name\", type\u003dstr, required\u003dFalse,"},{"line_number":87,"context_line":"                   help\u003d\"Name of tempest test set. Available sets: %s\" % \", \"."},{"line_number":88,"context_line":"                   join(list(consts.TempestTestsSets) +"},{"line_number":89,"context_line":"                        list(consts.TempestTestsAPI)))"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_44560f5d","line":86,"updated":"2015-09-17 06:38:57.000000000","message":"I think its better rename to something like \"set-name\". Because its unclear what is it set.","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"d2d372d4bc000b38c8fc383bd8b4004755274b88","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @cliutils.args(\"--deployment\", dest\u003d\"deployment\", type\u003dstr,"},{"line_number":85,"context_line":"                   required\u003dFalse, help\u003d\"UUID or name of a deployment.\")"},{"line_number":86,"context_line":"    @cliutils.args(\"--set\", dest\u003d\"set_name\", type\u003dstr, required\u003dFalse,"},{"line_number":87,"context_line":"                   help\u003d\"Name of tempest test set. Available sets: %s\" % \", \"."},{"line_number":88,"context_line":"                   join(list(consts.TempestTestsSets) +"},{"line_number":89,"context_line":"                        list(consts.TempestTestsAPI)))"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_15759ff8","line":86,"in_reply_to":"ba15a1d1_44560f5d","updated":"2015-09-17 10:01:24.000000000","message":"Done, but I find some different UI in the `start` method, that capture this same concept with the `--set` parameter.\n\nBut I agree that this is only a way to tag a name to this tempest result, and `set-name` is more clear.","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"589d96e1afa7e91b8dee7616eaada80dc786a7f5","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                   required\u003dFalse,"},{"line_number":92,"context_line":"                   help\u003d\"User specified Tempest log file location\")"},{"line_number":93,"context_line":"    @cliutils.args(\"--no-use\", action\u003d\"store_false\", dest\u003d\"do_use\","},{"line_number":94,"context_line":"                   help\u003d\"Don\u0027t set new task as default for future operations\")"},{"line_number":95,"context_line":"    @cliutils.alias(\"import\")"},{"line_number":96,"context_line":"    def import_file(self, deployment\u003dNone, set_name\u003dNone, log_file\u003dNone,"},{"line_number":97,"context_line":"                    do_use\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_c42d3f47","line":94,"updated":"2015-09-17 06:38:57.000000000","message":"required\u003dFalse?","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"d2d372d4bc000b38c8fc383bd8b4004755274b88","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                   required\u003dFalse,"},{"line_number":92,"context_line":"                   help\u003d\"User specified Tempest log file location\")"},{"line_number":93,"context_line":"    @cliutils.args(\"--no-use\", action\u003d\"store_false\", dest\u003d\"do_use\","},{"line_number":94,"context_line":"                   help\u003d\"Don\u0027t set new task as default for future operations\")"},{"line_number":95,"context_line":"    @cliutils.alias(\"import\")"},{"line_number":96,"context_line":"    def import_file(self, deployment\u003dNone, set_name\u003dNone, log_file\u003dNone,"},{"line_number":97,"context_line":"                    do_use\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_154cbfc6","line":94,"in_reply_to":"ba15a1d1_c42d3f47","updated":"2015-09-17 10:01:24.000000000","message":"Also this is missing in `--no-use` in the `start()` method.  I wonder why is not optional too there.","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":13340,"name":"Konstantin Baikov","email":"konstantin.baikov@gmail.com","username":"kbaikov"},"change_message_id":"eeb5be886ec5d4b256e0450460a3d93eb9ffd170","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                   help\u003d\"Don\u0027t set new task as default for future operations\")"},{"line_number":96,"context_line":"    @cliutils.alias(\"import\")"},{"line_number":97,"context_line":"    def import_file(self, deployment\u003dNone, set_name\u003dNone, log_file\u003dNone,"},{"line_number":98,"context_line":"                    do_use\u003dFalse):"},{"line_number":99,"context_line":"        \"\"\"Import a tempest result into rally."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        :param deployment: UUID or name of a deployment"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_73fe69af","line":98,"updated":"2015-09-17 12:35:56.000000000","message":"do_use is never True.\nhere it is default to False\nand in args.parse it is set to False if the argument is used.\nSo there is no case when do_use is True.","commit_id":"336062e9e895645c06e87903639139ae7af3a98b"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"b6eed655a23f9c97bc9fef29b4b544479c222854","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                   help\u003d\"Don\u0027t set new task as default for future operations\")"},{"line_number":96,"context_line":"    @cliutils.alias(\"import\")"},{"line_number":97,"context_line":"    def import_file(self, deployment\u003dNone, set_name\u003dNone, log_file\u003dNone,"},{"line_number":98,"context_line":"                    do_use\u003dFalse):"},{"line_number":99,"context_line":"        \"\"\"Import a tempest result into rally."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        :param deployment: UUID or name of a deployment"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba15a1d1_7372e912","line":98,"in_reply_to":"ba15a1d1_73fe69af","updated":"2015-09-17 12:37:12.000000000","message":"Done","commit_id":"336062e9e895645c06e87903639139ae7af3a98b"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"cb937e5156ca74743ebd150f0b4fe2deb7598c0f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            self.use(verification[\"uuid\"])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @cliutils.args(\"--deployment\", dest\u003d\"deployment\", type\u003dstr,"},{"line_number":93,"context_line":"                   required\u003dFalse, help\u003d\"UUID or name of a deployment.\")"},{"line_number":94,"context_line":"    @cliutils.args(\"--set-name\", dest\u003d\"set_name\", type\u003dstr, required\u003dFalse,"},{"line_number":95,"context_line":"                   help\u003d\"Name of tempest test set. Available sets: %s\" % \", \"."},{"line_number":96,"context_line":"                   join(list(consts.TempestTestsSets) +"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba15a1d1_e2851e59","line":93,"updated":"2015-09-22 13:26:20.000000000","message":"you mentioned this parameter and --file as L98 is required in your commit message","commit_id":"6cf49e9cd5ecc092f0c9cac2643f7f83f8539e79"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"f220f00db2257bac3a19fbe617edc608bdaa0311","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            self.use(verification[\"uuid\"])"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @cliutils.args(\"--deployment\", dest\u003d\"deployment\", type\u003dstr,"},{"line_number":93,"context_line":"                   required\u003dFalse, help\u003d\"UUID or name of a deployment.\")"},{"line_number":94,"context_line":"    @cliutils.args(\"--set-name\", dest\u003d\"set_name\", type\u003dstr, required\u003dFalse,"},{"line_number":95,"context_line":"                   help\u003d\"Name of tempest test set. Available sets: %s\" % \", \"."},{"line_number":96,"context_line":"                   join(list(consts.TempestTestsSets) +"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba15a1d1_7fa06342","line":93,"in_reply_to":"ba15a1d1_e2851e59","updated":"2015-09-24 11:45:58.000000000","message":"Good catch!\n\nI make `--file` as required and `--deployment` as optional.  I reflected this in the code and in the commit message.","commit_id":"6cf49e9cd5ecc092f0c9cac2643f7f83f8539e79"}],"rally/verification/tempest/tempest.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"589d96e1afa7e91b8dee7616eaada80dc786a7f5","unresolved":false,"context_lines":[{"line_number":380,"context_line":"        self._prepare_and_run(set_name, regex)"},{"line_number":381,"context_line":"        self._save_results()"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    def import_file(self, set_name, log_file):"},{"line_number":384,"context_line":"        if log_file:"},{"line_number":385,"context_line":"            self.verification.start_verifying(set_name)"},{"line_number":386,"context_line":"            self._save_results(log_file)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_41dfe168","line":383,"updated":"2015-09-17 06:38:57.000000000","message":"It might be log_file\u003dNone","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"589d96e1afa7e91b8dee7616eaada80dc786a7f5","unresolved":false,"context_lines":[{"line_number":385,"context_line":"            self.verification.start_verifying(set_name)"},{"line_number":386,"context_line":"            self._save_results(log_file)"},{"line_number":387,"context_line":"        else:"},{"line_number":388,"context_line":"            LOG.error(\"Not import file specified\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_81797984","line":388,"updated":"2015-09-17 06:38:57.000000000","message":"And the dot in the end of the sentence\u003d)","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"209e798bbaafa8e30fd57c06e59590a85d857131","unresolved":false,"context_lines":[{"line_number":385,"context_line":"            self.verification.start_verifying(set_name)"},{"line_number":386,"context_line":"            self._save_results(log_file)"},{"line_number":387,"context_line":"        else:"},{"line_number":388,"context_line":"            LOG.error(\"Not import file specified\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_e0040819","line":388,"updated":"2015-09-16 16:26:59.000000000","message":"Typo: s/Not/No/","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"7b93c7d536fbfb030527b2eb1e51fd58806661bb","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        self._prepare_and_run(set_name, regex)"},{"line_number":389,"context_line":"        self._save_results()"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    def import_file(self, set_name, log_file\u003dNone):"},{"line_number":392,"context_line":"        if log_file:"},{"line_number":393,"context_line":"            self.verification.start_verifying(set_name)"},{"line_number":394,"context_line":"            self._save_results(log_file)"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_2a3fb6d7","line":391,"updated":"2015-09-21 07:26:23.000000000","message":"why does log_file have a default value? remove it and L395 is no longer needed","commit_id":"a4a8c4ad0ce29ac3ea448e1756931af3818b1143"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"27bc6ce6d1b20b4f44fab867d25176392c15577f","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        self._prepare_and_run(set_name, regex)"},{"line_number":389,"context_line":"        self._save_results()"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    def import_file(self, set_name, log_file\u003dNone):"},{"line_number":392,"context_line":"        if log_file:"},{"line_number":393,"context_line":"            self.verification.start_verifying(set_name)"},{"line_number":394,"context_line":"            self._save_results(log_file)"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba15a1d1_887843fa","line":391,"in_reply_to":"ba15a1d1_2a3fb6d7","updated":"2015-09-21 12:08:11.000000000","message":"Removed the default value, but L395 is still needed because the API provide this as a default None","commit_id":"a4a8c4ad0ce29ac3ea448e1756931af3818b1143"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"cb937e5156ca74743ebd150f0b4fe2deb7598c0f","unresolved":false,"context_lines":[{"line_number":398,"context_line":"            self.verification.start_verifying(set_name)"},{"line_number":399,"context_line":"            self._save_results(log_file)"},{"line_number":400,"context_line":"        else:"},{"line_number":401,"context_line":"            LOG.error(\"No import file specified.\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba15a1d1_6264aee4","line":401,"updated":"2015-09-22 13:26:20.000000000","message":"what happen if log_file is None here? I think here need a raise statement","commit_id":"6cf49e9cd5ecc092f0c9cac2643f7f83f8539e79"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"f220f00db2257bac3a19fbe617edc608bdaa0311","unresolved":false,"context_lines":[{"line_number":398,"context_line":"            self.verification.start_verifying(set_name)"},{"line_number":399,"context_line":"            self._save_results(log_file)"},{"line_number":400,"context_line":"        else:"},{"line_number":401,"context_line":"            LOG.error(\"No import file specified.\")"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba15a1d1_dfa88f22","line":401,"in_reply_to":"ba15a1d1_6264aee4","updated":"2015-09-24 11:45:58.000000000","message":"I hope that making this parameter as required in the CLI will make the `raise` a bit less required.","commit_id":"6cf49e9cd5ecc092f0c9cac2643f7f83f8539e79"}],"tests/unit/cli/commands/test_verify.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"589d96e1afa7e91b8dee7616eaada80dc786a7f5","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    @mock.patch(\"rally.api.Verification.verify\")"},{"line_number":98,"context_line":"    def test_import_file(self, mock_verification_verify):"},{"line_number":99,"context_line":"        deployment_id \u003d \"0fba91c6-82d5-4ce1-bd00-5d7c989552d9\""},{"line_number":100,"context_line":"        self.verify.import_file(deployment\u003ddeployment_id)"},{"line_number":101,"context_line":"        default_set_name \u003d None"},{"line_number":102,"context_line":"        default_log_file \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_01048915","line":99,"updated":"2015-09-17 06:38:57.000000000","message":"Where you get this uuid? If you want fake uuid use \"fake_uuid\" or similar.","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"d2d372d4bc000b38c8fc383bd8b4004755274b88","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    @mock.patch(\"rally.api.Verification.verify\")"},{"line_number":98,"context_line":"    def test_import_file(self, mock_verification_verify):"},{"line_number":99,"context_line":"        deployment_id \u003d \"0fba91c6-82d5-4ce1-bd00-5d7c989552d9\""},{"line_number":100,"context_line":"        self.verify.import_file(deployment\u003ddeployment_id)"},{"line_number":101,"context_line":"        default_set_name \u003d None"},{"line_number":102,"context_line":"        default_log_file \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_fc79f382","line":99,"in_reply_to":"ba15a1d1_01048915","updated":"2015-09-17 10:01:24.000000000","message":"Done","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"589d96e1afa7e91b8dee7616eaada80dc786a7f5","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    @mock.patch(\"rally.api.Verification.verify\")"},{"line_number":98,"context_line":"    def test_import_file(self, mock_verification_verify):"},{"line_number":99,"context_line":"        deployment_id \u003d \"0fba91c6-82d5-4ce1-bd00-5d7c989552d9\""},{"line_number":100,"context_line":"        self.verify.import_file(deployment\u003ddeployment_id)"},{"line_number":101,"context_line":"        default_set_name \u003d None"},{"line_number":102,"context_line":"        default_log_file \u003d None"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_e13715fd","line":100,"updated":"2015-09-17 06:38:57.000000000","message":"Something mock wrong because in unit tests you don\u0027t need access to db. Also 101-102 lines variables is redundant. Boris don\u0027t like this.","commit_id":"43a9c69421ce04419f36052b11065f89b30ef3b6"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"3115538a6f067c90a3d13834d72c97937823f464","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    @mock.patch(\"rally.api.Verification.import_file\")"},{"line_number":98,"context_line":"    def test_import_file(self, mock_verification_import_file):"},{"line_number":99,"context_line":"        deployment_id \u003d \"fake_uuid\""},{"line_number":100,"context_line":"        mock_verification_import_file.return_value \u003d (None, None)"},{"line_number":101,"context_line":"        self.verify.import_file(deployment\u003ddeployment_id, do_use\u003dFalse)"},{"line_number":102,"context_line":"        default_set_name \u003d None"},{"line_number":103,"context_line":"        default_log_file \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba15a1d1_f6e8f9b4","line":100,"updated":"2015-09-18 10:58:03.000000000","message":"^ that line is not needed since we don\u0027t use the return value anyway","commit_id":"e00c83917ee9e37248f6929e7d1bd95d8f515e41"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"76cfa44cb41422395872b4fcb63b6c2744ee91af","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    @mock.patch(\"rally.api.Verification.import_file\")"},{"line_number":98,"context_line":"    def test_import_file(self, mock_verification_import_file):"},{"line_number":99,"context_line":"        deployment_id \u003d \"fake_uuid\""},{"line_number":100,"context_line":"        mock_verification_import_file.return_value \u003d (None, None)"},{"line_number":101,"context_line":"        self.verify.import_file(deployment\u003ddeployment_id, do_use\u003dFalse)"},{"line_number":102,"context_line":"        default_set_name \u003d None"},{"line_number":103,"context_line":"        default_log_file \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba15a1d1_c97afa76","line":100,"in_reply_to":"ba15a1d1_692e4e8d","updated":"2015-09-18 11:13:50.000000000","message":"Sure, my bad, I forgot about unpacking","commit_id":"e00c83917ee9e37248f6929e7d1bd95d8f515e41"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"9ca83d32a95fb182e5a1b6da31c1fca09f881b79","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    @mock.patch(\"rally.api.Verification.import_file\")"},{"line_number":98,"context_line":"    def test_import_file(self, mock_verification_import_file):"},{"line_number":99,"context_line":"        deployment_id \u003d \"fake_uuid\""},{"line_number":100,"context_line":"        mock_verification_import_file.return_value \u003d (None, None)"},{"line_number":101,"context_line":"        self.verify.import_file(deployment\u003ddeployment_id, do_use\u003dFalse)"},{"line_number":102,"context_line":"        default_set_name \u003d None"},{"line_number":103,"context_line":"        default_log_file \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba15a1d1_692e4e8d","line":100,"in_reply_to":"ba15a1d1_f6e8f9b4","updated":"2015-09-18 11:11:38.000000000","message":"This line is really needed, in other case this test will throw an exception in \u0027rally/cli/commands/verify.py\u0027 (L116):\n\n`ValueError: need more than 0 values to unpack`\n\nNote that this line try to unpack the tuple returned but this mock","commit_id":"e00c83917ee9e37248f6929e7d1bd95d8f515e41"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"3115538a6f067c90a3d13834d72c97937823f464","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        mock_verification_import_file.return_value \u003d (None, None)"},{"line_number":101,"context_line":"        self.verify.import_file(deployment\u003ddeployment_id, do_use\u003dFalse)"},{"line_number":102,"context_line":"        default_set_name \u003d None"},{"line_number":103,"context_line":"        default_log_file \u003d None"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        mock_verification_import_file.assert_called_once_with("},{"line_number":106,"context_line":"            deployment_id, default_set_name, default_log_file)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba15a1d1_16632d43","line":103,"updated":"2015-09-18 10:58:03.000000000","message":"calling self.verify.import_file with full set of parameters and using mocks rather than None will give just a bit more confidence that underlaying method is called properly","commit_id":"e00c83917ee9e37248f6929e7d1bd95d8f515e41"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"9ca83d32a95fb182e5a1b6da31c1fca09f881b79","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        mock_verification_import_file.return_value \u003d (None, None)"},{"line_number":101,"context_line":"        self.verify.import_file(deployment\u003ddeployment_id, do_use\u003dFalse)"},{"line_number":102,"context_line":"        default_set_name \u003d None"},{"line_number":103,"context_line":"        default_log_file \u003d None"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        mock_verification_import_file.assert_called_once_with("},{"line_number":106,"context_line":"            deployment_id, default_set_name, default_log_file)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba15a1d1_297a9688","line":103,"in_reply_to":"ba15a1d1_16632d43","updated":"2015-09-18 11:11:38.000000000","message":"I have the feeling that this test is also to make sure that there are default values in the API.\n\nI will add a different test without default values to cover your case, that is valid.","commit_id":"e00c83917ee9e37248f6929e7d1bd95d8f515e41"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"76cfa44cb41422395872b4fcb63b6c2744ee91af","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        mock_verification_import_file.return_value \u003d (None, None)"},{"line_number":101,"context_line":"        self.verify.import_file(deployment\u003ddeployment_id, do_use\u003dFalse)"},{"line_number":102,"context_line":"        default_set_name \u003d None"},{"line_number":103,"context_line":"        default_log_file \u003d None"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        mock_verification_import_file.assert_called_once_with("},{"line_number":106,"context_line":"            deployment_id, default_set_name, default_log_file)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba15a1d1_e97d7e6d","line":103,"in_reply_to":"ba15a1d1_297a9688","updated":"2015-09-18 11:13:50.000000000","message":"Thanks","commit_id":"e00c83917ee9e37248f6929e7d1bd95d8f515e41"}],"tests/unit/verification/test_tempest.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"7a4c6a891e16ca8eec22d18b244854bb4470d070","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        log_file \u003d \"log_file\""},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        with mock.patch.object("},{"line_number":426,"context_line":"                self.verifier, \"_save_results\") as mock__save_results:"},{"line_number":427,"context_line":"            self.verifier.import_file(set_name, log_file)"},{"line_number":428,"context_line":"            mock_start_verifying \u003d self.verifier.verification.start_verifying"},{"line_number":429,"context_line":"            mock_start_verifying.assert_called_once_with(set_name)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a1a9d01_c0438f6b","line":426,"updated":"2015-09-24 16:07:30.000000000","message":"You can also do this without mock:\n\n    self.verifier._save_results \u003d mock.Mock()\n\nThat pattern is probably more common in the Rally codebase.","commit_id":"4ee250a0072e1fb2da776993862928faf7fb9f65"},{"author":{"_account_id":13404,"name":"Alberto Planas","email":"aplanas@gmail.com","username":"aplanas"},"change_message_id":"8dde063c0e361c948a84cf78a44512e14e52d706","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        log_file \u003d \"log_file\""},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        with mock.patch.object("},{"line_number":426,"context_line":"                self.verifier, \"_save_results\") as mock__save_results:"},{"line_number":427,"context_line":"            self.verifier.import_file(set_name, log_file)"},{"line_number":428,"context_line":"            mock_start_verifying \u003d self.verifier.verification.start_verifying"},{"line_number":429,"context_line":"            mock_start_verifying.assert_called_once_with(set_name)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9a1a9d01_3f5da6e9","line":426,"in_reply_to":"9a1a9d01_c0438f6b","updated":"2015-09-25 11:22:00.000000000","message":"Done","commit_id":"4ee250a0072e1fb2da776993862928faf7fb9f65"}]}
