)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"31a077810d033f75a3bbac219ae855c87f5c3e60","unresolved":false,"context_lines":[{"line_number":10,"context_line":"E.g."},{"line_number":11,"context_line":"  $ rally verify install-plugin --url https://github.com/MBonell/hello-world-tempest-plugin"},{"line_number":12,"context_line":"  $ rally verify install_plugin --path ~/my-plugin"},{"line_number":13,"context_line":"Blueprint: https://blueprints.launchpad.net/rally/+spec/install-tempest-plugins"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I03ac6063b6b9d7f860379b99f3b524adedba6df9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa80f949_bdaa0f18","line":13,"updated":"2015-11-04 01:42:39.000000000","message":"Please use `Implements Blueprint: install-tempest-plugins","commit_id":"a00a13a10a22bd72cea2e10161697829f378ed77"},{"author":{"_account_id":15409,"name":"Marcela Bonell","email":"marcelabonell@gmail.com","username":"mbonell"},"change_message_id":"6405b6333222048d7b3932b61c6888d479fb75c4","unresolved":false,"context_lines":[{"line_number":10,"context_line":"E.g."},{"line_number":11,"context_line":"  $ rally verify install-plugin --url https://github.com/MBonell/hello-world-tempest-plugin"},{"line_number":12,"context_line":"  $ rally verify install_plugin --path ~/my-plugin"},{"line_number":13,"context_line":"Blueprint: https://blueprints.launchpad.net/rally/+spec/install-tempest-plugins"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I03ac6063b6b9d7f860379b99f3b524adedba6df9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa80f949_6064d348","line":13,"in_reply_to":"fa80f949_bdaa0f18","updated":"2015-12-05 03:40:01.000000000","message":"Done","commit_id":"a00a13a10a22bd72cea2e10161697829f378ed77"}],"etc/rally.bash_completion":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"7258ceb1118c334be7a6fdd484f7632294b9ce90","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    OPTS[\"verify_genconfig\"]\u003d\"--deployment --tempest-config --override\""},{"line_number":52,"context_line":"    OPTS[\"verify_import\"]\u003d\"--deployment --set --file --no-use\""},{"line_number":53,"context_line":"    OPTS[\"verify_install\"]\u003d\"--deployment --source\""},{"line_number":54,"context_line":"    OPTS[\"verify_install_plugin\"]\u003d\"--deployment --url --path\""},{"line_number":55,"context_line":"    OPTS[\"verify_list\"]\u003d\"\""},{"line_number":56,"context_line":"    OPTS[\"verify_reinstall\"]\u003d\"--deployment --tempest-config --source\""},{"line_number":57,"context_line":"    OPTS[\"verify_results\"]\u003d\"--uuid --html --json --output-file\""}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"9a8ffd7b_8687a9d6","line":54,"updated":"2015-12-01 10:49:48.000000000","message":"What about using --source instead of --url and --patch to keep consistency with `rally verify install`?","commit_id":"c4299c346e9fe904fbf62367abd4daec74cdeab2"},{"author":{"_account_id":15409,"name":"Marcela Bonell","email":"marcelabonell@gmail.com","username":"mbonell"},"change_message_id":"277de911281afac29e566651b3e9f08d895b70b4","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    OPTS[\"verify_genconfig\"]\u003d\"--deployment --tempest-config --override\""},{"line_number":52,"context_line":"    OPTS[\"verify_import\"]\u003d\"--deployment --set --file --no-use\""},{"line_number":53,"context_line":"    OPTS[\"verify_install\"]\u003d\"--deployment --source\""},{"line_number":54,"context_line":"    OPTS[\"verify_install_plugin\"]\u003d\"--deployment --url --path\""},{"line_number":55,"context_line":"    OPTS[\"verify_list\"]\u003d\"\""},{"line_number":56,"context_line":"    OPTS[\"verify_reinstall\"]\u003d\"--deployment --tempest-config --source\""},{"line_number":57,"context_line":"    OPTS[\"verify_results\"]\u003d\"--uuid --html --json --output-file\""}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"7a740942_5b73be15","line":54,"in_reply_to":"9a8ffd7b_8687a9d6","updated":"2015-12-05 03:45:11.000000000","message":"I prefer have it separate, because url is for git repositories and path for a local path in the computer","commit_id":"c4299c346e9fe904fbf62367abd4daec74cdeab2"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"347264a19a2912492c1586a45b4c21eb70fcb93b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    OPTS[\"verify_genconfig\"]\u003d\"--deployment --tempest-config --override\""},{"line_number":52,"context_line":"    OPTS[\"verify_import\"]\u003d\"--deployment --set --file --no-use\""},{"line_number":53,"context_line":"    OPTS[\"verify_install\"]\u003d\"--deployment --source --no-tempest-venv\""},{"line_number":54,"context_line":"    OPTS[\"verify_install_plugin\"]\u003d\"--deployment --url --path\""},{"line_number":55,"context_line":"    OPTS[\"verify_list\"]\u003d\"\""},{"line_number":56,"context_line":"    OPTS[\"verify_reinstall\"]\u003d\"--deployment --tempest-config --source --no-tempest-venv\""},{"line_number":57,"context_line":"    OPTS[\"verify_results\"]\u003d\"--uuid --html --json --output-file\""}],"source_content_type":"application/x-shellscript","patch_set":7,"id":"7a740942_ad8b24c2","line":54,"updated":"2015-12-08 09:58:07.000000000","message":"I think we should keep consistency and use \"--source\" instead of \"--url\" and \"--path\". Please, take a look at L53.","commit_id":"03c9420b73770a5a94cb47fbf19b4f234c119c25"},{"author":{"_account_id":15409,"name":"Marcela Bonell","email":"marcelabonell@gmail.com","username":"mbonell"},"change_message_id":"47bd1bbc1c70be61daf3eed75fa35957b3d86a2d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    OPTS[\"verify_genconfig\"]\u003d\"--deployment --tempest-config --override\""},{"line_number":52,"context_line":"    OPTS[\"verify_import\"]\u003d\"--deployment --set --file --no-use\""},{"line_number":53,"context_line":"    OPTS[\"verify_install\"]\u003d\"--deployment --source --no-tempest-venv\""},{"line_number":54,"context_line":"    OPTS[\"verify_install_plugin\"]\u003d\"--deployment --url --path\""},{"line_number":55,"context_line":"    OPTS[\"verify_list\"]\u003d\"\""},{"line_number":56,"context_line":"    OPTS[\"verify_reinstall\"]\u003d\"--deployment --tempest-config --source --no-tempest-venv\""},{"line_number":57,"context_line":"    OPTS[\"verify_results\"]\u003d\"--uuid --html --json --output-file\""}],"source_content_type":"application/x-shellscript","patch_set":7,"id":"fa69d971_363cb6e1","line":54,"in_reply_to":"7a740942_ad8b24c2","updated":"2016-01-04 18:14:18.000000000","message":"Ok, I\u0027ll work on that","commit_id":"03c9420b73770a5a94cb47fbf19b4f234c119c25"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"84abb10d407f6c8bc12b36e88e4c951d84886730","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    OPTS[\"verify_genconfig\"]\u003d\"--deployment --tempest-config --override\""},{"line_number":51,"context_line":"    OPTS[\"verify_import\"]\u003d\"--deployment --set --file --no-use\""},{"line_number":52,"context_line":"    OPTS[\"verify_install\"]\u003d\"--deployment --source --system-wide\""},{"line_number":53,"context_line":"    OPTS[\"verify_install_plugin\"]\u003d\"--deployment --url --path\""},{"line_number":54,"context_line":"    OPTS[\"verify_list\"]\u003d\"\""},{"line_number":55,"context_line":"    OPTS[\"verify_reinstall\"]\u003d\"--deployment --source --system-wide\""},{"line_number":56,"context_line":"    OPTS[\"verify_results\"]\u003d\"--uuid --html --json --output-file\""}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"1af94dfe_a906141e","line":53,"range":{"start_line":53,"start_character":48,"end_line":53,"end_character":60},"updated":"2016-03-15 15:32:45.000000000","message":"Could you please use one argument \"--source\" like in `rally verify install/reinstall`? I told you about this a few times already.","commit_id":"ebbe3e1ba5a85346fa183100fc7f06a785f9f695"}],"rally/api.py":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"31a077810d033f75a3bbac219ae855c87f5c3e60","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        if not from_url and not from_path:"},{"line_number":455,"context_line":"            LOG.error(\"There is no url or path specified. \""},{"line_number":456,"context_line":"                      \"Please pass the Tempest plugin source to \""},{"line_number":457,"context_line":"                      \"the --url or --path arguments of this command.\")"},{"line_number":458,"context_line":"        elif from_url and from_path:"},{"line_number":459,"context_line":"            LOG.error(\"Invalid use of the arguments. \""},{"line_number":460,"context_line":"                      \"Please pass only one Tempest plugin source to \""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa80f949_fd25f7c1","line":457,"updated":"2015-11-04 01:42:39.000000000","message":"For consistent with the following, `Please pass the Tempest plugin source (--url or --path) to this command.`","commit_id":"a00a13a10a22bd72cea2e10161697829f378ed77"},{"author":{"_account_id":15409,"name":"Marcela Bonell","email":"marcelabonell@gmail.com","username":"mbonell"},"change_message_id":"6405b6333222048d7b3932b61c6888d479fb75c4","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        if not from_url and not from_path:"},{"line_number":455,"context_line":"            LOG.error(\"There is no url or path specified. \""},{"line_number":456,"context_line":"                      \"Please pass the Tempest plugin source to \""},{"line_number":457,"context_line":"                      \"the --url or --path arguments of this command.\")"},{"line_number":458,"context_line":"        elif from_url and from_path:"},{"line_number":459,"context_line":"            LOG.error(\"Invalid use of the arguments. \""},{"line_number":460,"context_line":"                      \"Please pass only one Tempest plugin source to \""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa80f949_40c8af22","line":457,"in_reply_to":"fa80f949_fd25f7c1","updated":"2015-12-05 03:40:01.000000000","message":"Done","commit_id":"a00a13a10a22bd72cea2e10161697829f378ed77"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"588a3a6cd1ef4c971a840e4a9d29d7ea089509a4","unresolved":false,"context_lines":[{"line_number":501,"context_line":"        return verifier.discover_tests(pattern)"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"    @classmethod"},{"line_number":504,"context_line":"    def install_tempest_plugin(cls, deployment, source\u003dNone):"},{"line_number":505,"context_line":"        \"\"\"Install Tempest plugin."},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        :param deployment: UUID or name of the deployment"}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_bda15096","line":504,"updated":"2016-07-07 12:43:09.000000000","message":"Please, put this method before the discover_tests method.","commit_id":"91ee298a577f699b22765468bfc4117c3cbdf275"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"588a3a6cd1ef4c971a840e4a9d29d7ea089509a4","unresolved":false,"context_lines":[{"line_number":504,"context_line":"    def install_tempest_plugin(cls, deployment, source\u003dNone):"},{"line_number":505,"context_line":"        \"\"\"Install Tempest plugin."},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        :param deployment: UUID or name of the deployment"},{"line_number":508,"context_line":"        :param source: Path/URL to get Tempest plugin from"},{"line_number":509,"context_line":"        \"\"\""},{"line_number":510,"context_line":"        if not source:"}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_fda758a4","line":507,"range":{"start_line":507,"start_character":43,"end_line":507,"end_character":46},"updated":"2016-07-07 12:43:09.000000000","message":"the -\u003e a","commit_id":"91ee298a577f699b22765468bfc4117c3cbdf275"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"588a3a6cd1ef4c971a840e4a9d29d7ea089509a4","unresolved":false,"context_lines":[{"line_number":505,"context_line":"        \"\"\"Install Tempest plugin."},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        :param deployment: UUID or name of the deployment"},{"line_number":508,"context_line":"        :param source: Path/URL to get Tempest plugin from"},{"line_number":509,"context_line":"        \"\"\""},{"line_number":510,"context_line":"        if not source:"},{"line_number":511,"context_line":"            LOG.error(\"There is no url or path specified. \""}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_3d0a808a","line":508,"range":{"start_line":508,"start_character":23,"end_line":508,"end_character":58},"updated":"2016-07-07 12:43:09.000000000","message":"Path/URL to repo to clone Tempest plugin from","commit_id":"91ee298a577f699b22765468bfc4117c3cbdf275"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"588a3a6cd1ef4c971a840e4a9d29d7ea089509a4","unresolved":false,"context_lines":[{"line_number":507,"context_line":"        :param deployment: UUID or name of the deployment"},{"line_number":508,"context_line":"        :param source: Path/URL to get Tempest plugin from"},{"line_number":509,"context_line":"        \"\"\""},{"line_number":510,"context_line":"        if not source:"},{"line_number":511,"context_line":"            LOG.error(\"There is no url or path specified. \""},{"line_number":512,"context_line":"                      \"Please pass the Tempest plugin source \""},{"line_number":513,"context_line":"                      \"(--source) to this command.\")"},{"line_number":514,"context_line":"            return 1"},{"line_number":515,"context_line":"        else:"},{"line_number":516,"context_line":"            deployment_uuid \u003d objects.Deployment.get(deployment)[\"uuid\"]"},{"line_number":517,"context_line":"            verifier \u003d tempest.Tempest(deployment_uuid)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_9d34544a","line":514,"range":{"start_line":510,"start_character":8,"end_line":514,"end_character":20},"updated":"2016-07-07 12:43:09.000000000","message":"It looks like it should be moved to the verify.py file.","commit_id":"91ee298a577f699b22765468bfc4117c3cbdf275"}],"rally/cli/commands/verify.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"588a3a6cd1ef4c971a840e4a9d29d7ea089509a4","unresolved":false,"context_lines":[{"line_number":504,"context_line":"    @cliutils.args(\"--deployment\", type\u003dstr, dest\u003d\"deployment\","},{"line_number":505,"context_line":"                   required\u003dFalse, help\u003d\"UUID or name of a deployment\")"},{"line_number":506,"context_line":"    @cliutils.args(\"--source\", type\u003dstr, dest\u003d\"source\", required\u003dFalse,"},{"line_number":507,"context_line":"                   help\u003d\"Path/URL to get Tempest plugin from\")"},{"line_number":508,"context_line":"    @envutils.with_default_deployment(cli_arg_name\u003d\"deployment\")"},{"line_number":509,"context_line":"    def install_plugin(self, deployment\u003dNone, source\u003dNone):"},{"line_number":510,"context_line":"        \"\"\"Install Tempest plugin."}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_fd43d8ac","line":507,"range":{"start_line":507,"start_character":25,"end_line":507,"end_character":60},"updated":"2016-07-07 12:43:09.000000000","message":"Path/URL to repo to clone Tempest plugin from","commit_id":"91ee298a577f699b22765468bfc4117c3cbdf275"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"588a3a6cd1ef4c971a840e4a9d29d7ea089509a4","unresolved":false,"context_lines":[{"line_number":506,"context_line":"    @cliutils.args(\"--source\", type\u003dstr, dest\u003d\"source\", required\u003dFalse,"},{"line_number":507,"context_line":"                   help\u003d\"Path/URL to get Tempest plugin from\")"},{"line_number":508,"context_line":"    @envutils.with_default_deployment(cli_arg_name\u003d\"deployment\")"},{"line_number":509,"context_line":"    def install_plugin(self, deployment\u003dNone, source\u003dNone):"},{"line_number":510,"context_line":"        \"\"\"Install Tempest plugin."},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"        :param deployment: UUID or name of a deployment"}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_7db88875","line":509,"range":{"start_line":509,"start_character":8,"end_line":509,"end_character":22},"updated":"2016-07-07 12:43:09.000000000","message":"What about renaming it into \u0027installplugin\u0027 to keep consistency with genconfig, showconfig. Also, please put this method after the reinstall method.","commit_id":"91ee298a577f699b22765468bfc4117c3cbdf275"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"588a3a6cd1ef4c971a840e4a9d29d7ea089509a4","unresolved":false,"context_lines":[{"line_number":510,"context_line":"        \"\"\"Install Tempest plugin."},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"        :param deployment: UUID or name of a deployment"},{"line_number":513,"context_line":"        :param source: Path/URL to get Tempest plugin from"},{"line_number":514,"context_line":"        \"\"\""},{"line_number":515,"context_line":"        api.Verification.install_tempest_plugin(deployment, source)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_7d0ec88c","line":513,"updated":"2016-07-07 12:43:09.000000000","message":"ditto.","commit_id":"91ee298a577f699b22765468bfc4117c3cbdf275"}],"rally/verification/tempest/tempest.py":[{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"31a077810d033f75a3bbac219ae855c87f5c3e60","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                LOG.error(_(\"Error trying to clone \""},{"line_number":312,"context_line":"                            \"the plugin from \u0027%s\u0027\") % from_url)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"            cmd_install \u003d \"%(venv)s pip install -e %(from_path)s\" % {"},{"line_number":315,"context_line":"                \"venv\": self.venv_wrapper,"},{"line_number":316,"context_line":"                \"from_path\": repo_dir"},{"line_number":317,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa80f949_a8a08bf5","line":314,"updated":"2015-11-04 01:42:39.000000000","message":"Seems like line 314-324 is redundant","commit_id":"a00a13a10a22bd72cea2e10161697829f378ed77"},{"author":{"_account_id":15409,"name":"Marcela Bonell","email":"marcelabonell@gmail.com","username":"mbonell"},"change_message_id":"6405b6333222048d7b3932b61c6888d479fb75c4","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                LOG.error(_(\"Error trying to clone \""},{"line_number":312,"context_line":"                            \"the plugin from \u0027%s\u0027\") % from_url)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"            cmd_install \u003d \"%(venv)s pip install -e %(from_path)s\" % {"},{"line_number":315,"context_line":"                \"venv\": self.venv_wrapper,"},{"line_number":316,"context_line":"                \"from_path\": repo_dir"},{"line_number":317,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa80f949_00d2a7d2","line":314,"in_reply_to":"fa80f949_a8a08bf5","updated":"2015-12-05 03:40:01.000000000","message":"Done","commit_id":"a00a13a10a22bd72cea2e10161697829f378ed77"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"55c04549d660eed20f812b6d200c407ccad11066","unresolved":false,"context_lines":[{"line_number":317,"context_line":"                            \"the plugin from \u0027%s\u0027\") % from_url)"},{"line_number":318,"context_line":"                return 1"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"            installation_error \u003d (\"Tempest plugin installation from \u0027%s\u0027 in \""},{"line_number":321,"context_line":"                                  \"\u0027%s\u0027 has been finished with errors.\""},{"line_number":322,"context_line":"                                  % (from_url, plugin_dir))"},{"line_number":323,"context_line":"        elif from_path:"},{"line_number":324,"context_line":"            plugin_dir \u003d from_path"}],"source_content_type":"text/x-python","patch_set":8,"id":"1af94dfe_98c5645d","line":321,"range":{"start_line":320,"start_character":34,"end_line":321,"end_character":71},"updated":"2016-03-15 14:47:40.000000000","message":"Please add l10n macro (\"underscore\" function)","commit_id":"ebbe3e1ba5a85346fa183100fc7f06a785f9f695"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"55c04549d660eed20f812b6d200c407ccad11066","unresolved":false,"context_lines":[{"line_number":322,"context_line":"                                  % (from_url, plugin_dir))"},{"line_number":323,"context_line":"        elif from_path:"},{"line_number":324,"context_line":"            plugin_dir \u003d from_path"},{"line_number":325,"context_line":"            installation_error \u003d (\"Tempest plugin installation from \u0027%s\u0027 \""},{"line_number":326,"context_line":"                                  \"has been finished with errors.\""},{"line_number":327,"context_line":"                                  % (from_path))"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"        cmd_install \u003d \"%(venv)s pip install -e %(plugin_dir)s\" % {"}],"source_content_type":"text/x-python","patch_set":8,"id":"1af94dfe_18b034f4","line":326,"range":{"start_line":325,"start_character":34,"end_line":326,"end_character":66},"updated":"2016-03-15 14:47:40.000000000","message":"Ditto","commit_id":"ebbe3e1ba5a85346fa183100fc7f06a785f9f695"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"d19eb528cd7223c2175b90bd00c88854b10d1524","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        if os.path.isdir(source):"},{"line_number":309,"context_line":"            from_path \u003d True"},{"line_number":310,"context_line":"        else:"},{"line_number":311,"context_line":"            if \"//git\" in source:"},{"line_number":312,"context_line":"                from_url \u003d True"},{"line_number":313,"context_line":"            else:"},{"line_number":314,"context_line":"                LOG.error(_(\"The source \u0027%s\u0027 \""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a061dce_b2b5e432","line":311,"range":{"start_line":311,"start_character":22,"end_line":311,"end_character":23},"updated":"2016-04-08 12:45:14.000000000","message":"Looks like a hack. I believe we could install a plugin not only from github. Bitbucket? My own git repo available online? \nMaybe if it is not \u0027from_path\u0027 we just should try to git clone from whatever user provided.\nJust print a message like \u0027trying to git clone from ...\u0027","commit_id":"9d3cf7ae3ad5614317c01a3095b25aab679e8b6e"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"588a3a6cd1ef4c971a840e4a9d29d7ea089509a4","unresolved":false,"context_lines":[{"line_number":293,"context_line":"    def install_plugin(self, source):"},{"line_number":294,"context_line":"        \"\"\"Install Tempest plugin to run external custom test cases."},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        :param source: Path/URL to get Tempest plugin from"},{"line_number":297,"context_line":"        \"\"\""},{"line_number":298,"context_line":"        installation_error \u003d \"\""},{"line_number":299,"context_line":"        from_url \u003d False"}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_bd2310bc","line":296,"range":{"start_line":296,"start_character":23,"end_line":296,"end_character":58},"updated":"2016-07-07 12:43:09.000000000","message":"Path/URL to repo to clone Tempest plugin from","commit_id":"91ee298a577f699b22765468bfc4117c3cbdf275"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"588a3a6cd1ef4c971a840e4a9d29d7ea089509a4","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                                       plugin_dir])"},{"line_number":316,"context_line":"            except subprocess.CalledProcessError:"},{"line_number":317,"context_line":"                LOG.error(_(\"Error cloning plugin from \u0027%s\u0027.\") % source)"},{"line_number":318,"context_line":"                return 1"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"            installation_error \u003d (\"Tempest plugin installation from \u0027%s\u0027 in \""},{"line_number":321,"context_line":"                                  \"\u0027%s\u0027 has been finished with errors.\""}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_58079a81","line":318,"range":{"start_line":318,"start_character":16,"end_line":318,"end_character":24},"updated":"2016-07-07 12:43:09.000000000","message":"It is not needed.","commit_id":"91ee298a577f699b22765468bfc4117c3cbdf275"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"588a3a6cd1ef4c971a840e4a9d29d7ea089509a4","unresolved":false,"context_lines":[{"line_number":335,"context_line":"                                  env\u003dself.env, shell\u003dTrue)"},{"line_number":336,"context_line":"        except subprocess.CalledProcessError:"},{"line_number":337,"context_line":"            LOG.error(installation_error)"},{"line_number":338,"context_line":"            return 1"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    @logging.log_verification_wrapper(LOG.info, _(\"Run verification.\"))"},{"line_number":341,"context_line":"    def _prepare_and_run(self, set_name, regex, tests_file, concur, failing):"}],"source_content_type":"text/x-python","patch_set":14,"id":"1aa78d24_380a8e8a","line":338,"range":{"start_line":338,"start_character":12,"end_line":338,"end_character":20},"updated":"2016-07-07 12:43:09.000000000","message":"ditto","commit_id":"91ee298a577f699b22765468bfc4117c3cbdf275"}],"tests/unit/test_api.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"4c2e18fffd821b488a2c6a1805a3235ae20b1db5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012: Mirantis Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_179430e0","line":1,"updated":"2015-12-04 21:38:42.000000000","message":"Why do you change the year? :)","commit_id":"54c312853cdcab05bdc9612ef81aabbce25780b0"},{"author":{"_account_id":15409,"name":"Marcela Bonell","email":"marcelabonell@gmail.com","username":"mbonell"},"change_message_id":"7957470aeb6025bd72d4b3147fc2ecfdef81fe5c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012: Mirantis Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a740942_7bd23a02","line":1,"in_reply_to":"7a740942_179430e0","updated":"2015-12-05 03:39:35.000000000","message":"I don\u0027t remember that change D: I\u0027ll correct it","commit_id":"54c312853cdcab05bdc9612ef81aabbce25780b0"}]}
