)]}'
{"rally/cli/commands/env.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"cc7f0896ec763ae505f786b7c8b5dad25acbcc20","unresolved":false,"context_lines":[{"line_number":47,"context_line":"                spec \u003d yaml.safe_load(env_file.read())"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        try:"},{"line_number":50,"context_line":"            env \u003d env_mgr.EnvManager.create(name, description, {}, spec)"},{"line_number":51,"context_line":"        except exceptions.ManagerInvalidSpec as e:"},{"line_number":52,"context_line":"            print(\"Env spec has wrong format:\\n %s\" % e)"},{"line_number":53,"context_line":"            return 1"}],"source_content_type":"text/x-python","patch_set":39,"id":"7f96bb07_1e1509e5","line":50,"range":{"start_line":50,"start_character":12,"end_line":50,"end_character":72},"updated":"2018-01-18 13:25:23.000000000","message":"we forgot about \"extras\". In original design of envs, the spec itself included extras field as \"@extras\". I wonder - do we need extras separately at all?","commit_id":"da99f479803e40dae538277f02a9c1c9ec28ffae"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"cc7f0896ec763ae505f786b7c8b5dad25acbcc20","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def _list_helper(self, envs):"},{"line_number":80,"context_line":"        for env in envs:"},{"line_number":81,"context_line":"            print(env.serialize())"},{"line_number":82,"context_line":"        if not envs:"},{"line_number":83,"context_line":"            print(\"There are no environments. To create a new environment, \""},{"line_number":84,"context_line":"                  \"use next command:\\nrally env create\")"}],"source_content_type":"text/x-python","patch_set":39,"id":"7f96bb07_9ef4b9f2","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":34},"updated":"2018-01-18 13:25:23.000000000","message":"you need to call json.dump at least.","commit_id":"da99f479803e40dae538277f02a9c1c9ec28ffae"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"cc7f0896ec763ae505f786b7c8b5dad25acbcc20","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            print(\"There are no environments. To create a new environment, \""},{"line_number":84,"context_line":"                  \"use next command:\\nrally env create\")"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def list(self, api, env_list\u003dNone):"},{"line_number":87,"context_line":"        \"\"\"List existing environments.\"\"\""},{"line_number":88,"context_line":"        self._list_helper(env_mgr.EnvManager.list())"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"7f96bb07_ded7a14a","line":86,"range":{"start_line":86,"start_character":22,"end_line":86,"end_character":37},"updated":"2018-01-18 13:25:23.000000000","message":"1) it is not used.\n2) the status filter should be added","commit_id":"da99f479803e40dae538277f02a9c1c9ec28ffae"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"cc7f0896ec763ae505f786b7c8b5dad25acbcc20","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                   help\u003d\"UUID or name of the environment.\")"},{"line_number":93,"context_line":"    @cliutils.suppress_warnings"},{"line_number":94,"context_line":"    @envutils.with_default_env()"},{"line_number":95,"context_line":"    def show(self, api, env\u003dNone):"},{"line_number":96,"context_line":"        print(env_mgr.EnvManager.get(env).serialize())"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @cliutils.args(\"--env\", dest\u003d\"env\", type\u003dstr,"},{"line_number":99,"context_line":"                   metavar\u003d\"\u003cuuid\u003e\", required\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":39,"id":"7f96bb07_fe6b7d81","line":96,"range":{"start_line":95,"start_character":5,"end_line":96,"end_character":54},"updated":"2018-01-18 13:25:23.000000000","message":"I do not know why, but it doesn\u0027t work.\n\n`rally env list` returned an env with name \"devstack\"[1], but show command says that there no record with such name [2].\n\n[1] - http://logs.openstack.org/54/530254/39/check/rally-dsvm-manila-multibackend/ab46aae/job-output.txt.gz#_2018-01-18_13_04_17_483710\n[2] - http://logs.openstack.org/54/530254/39/check/rally-dsvm-manila-multibackend/ab46aae/job-output.txt.gz#_2018-01-18_13_04_17_489601","commit_id":"da99f479803e40dae538277f02a9c1c9ec28ffae"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"f32c243a46dd6802a6b8c05f98e96c8aa6d36dba","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                   help\u003d\"UUID or name of the environment.\")"},{"line_number":93,"context_line":"    @cliutils.suppress_warnings"},{"line_number":94,"context_line":"    @envutils.with_default_env()"},{"line_number":95,"context_line":"    def show(self, api, env\u003dNone):"},{"line_number":96,"context_line":"        print(env_mgr.EnvManager.get(env).serialize())"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @cliutils.args(\"--env\", dest\u003d\"env\", type\u003dstr,"},{"line_number":99,"context_line":"                   metavar\u003d\"\u003cuuid\u003e\", required\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":39,"id":"7f96bb07_1ea669ac","line":96,"range":{"start_line":95,"start_character":5,"end_line":96,"end_character":54},"in_reply_to":"7f96bb07_fe6b7d81","updated":"2018-01-18 13:29:48.000000000","message":"ignore this. it was a typo in name of env","commit_id":"da99f479803e40dae538277f02a9c1c9ec28ffae"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"cc7f0896ec763ae505f786b7c8b5dad25acbcc20","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    @envutils.with_default_env()"},{"line_number":95,"context_line":"    def show(self, api, env\u003dNone):"},{"line_number":96,"context_line":"        print(env_mgr.EnvManager.get(env).serialize())"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @cliutils.args(\"--env\", dest\u003d\"env\", type\u003dstr,"},{"line_number":99,"context_line":"                   metavar\u003d\"\u003cuuid\u003e\", required\u003dFalse,"},{"line_number":100,"context_line":"                   help\u003d\"UUID or name of the environment.\")"}],"source_content_type":"text/x-python","patch_set":39,"id":"7f96bb07_be0735ca","line":97,"updated":"2018-01-18 13:25:23.000000000","message":"we need a separate command which returns only spec of env.","commit_id":"da99f479803e40dae538277f02a9c1c9ec28ffae"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"cc7f0896ec763ae505f786b7c8b5dad25acbcc20","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    @envutils.with_default_env()"},{"line_number":110,"context_line":"    def check(self, api, env\u003dNone):"},{"line_number":111,"context_line":"        \"\"\"Check availability of all platforms in environment.\"\"\""},{"line_number":112,"context_line":"        print(json.dumps(env_mgr.EnvManager.get(env).check_health()))"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    @cliutils.args(\"--env\", dest\u003d\"env\", type\u003dstr,"},{"line_number":115,"context_line":"                   metavar\u003d\"\u003cuuid\u003e\", required\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":39,"id":"7f96bb07_3ec805a4","line":112,"range":{"start_line":112,"start_character":8,"end_line":112,"end_character":69},"updated":"2018-01-18 13:25:23.000000000","message":"the proper return code should be used","commit_id":"da99f479803e40dae538277f02a9c1c9ec28ffae"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"4a1f282fb7d126d7bee8d4e63ce2a43da9ac48f8","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                ])"},{"line_number":169,"context_line":"            else:"},{"line_number":170,"context_line":"                table.field_names \u003d [\"Name (UUID)\", \"Platform\", \"Info\"]"},{"line_number":171,"context_line":"                for plat, data in env_info[\"info\"].items():"},{"line_number":172,"context_line":"                    table.add_row([name, plat, json.dumps(data, indent\u003d2)])"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"            print(table)"}],"source_content_type":"text/x-python","patch_set":47,"id":"3fa0c359_bbd1ce25","line":171,"range":{"start_line":171,"start_character":42,"end_line":171,"end_character":50},"updated":"2018-02-09 15:15:37.000000000","message":"it is redundant, see http://logs.openstack.org/16/542216/3/check/legacy-rally-dsvm-rally/05e8210/job-output.txt.gz#_2018-02-09_14_12_34_948501 (the next path in the chain)","commit_id":"c90fefcb6b6d68c5ff61335e4961f9660ac9a370"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"1c93ca373c5eddf480b543c33592c845144a66bc","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from __future__ import print_function"},{"line_number":16,"context_line":"from __future__ import unicode_literals"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fa0c359_6ea12246","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":39},"updated":"2018-02-12 13:53:45.000000000","message":"do we still need it?","commit_id":"e65e1959b778cc71bad20d0744cafc0443ce782d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"52934f7a0d6d1ef3d1463ca025adf8132578421b","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from __future__ import print_function"},{"line_number":16,"context_line":"from __future__ import unicode_literals"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fa0c359_b97beb25","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":39},"in_reply_to":"3fa0c359_6ea12246","updated":"2018-02-12 17:52:38.000000000","message":"removed","commit_id":"e65e1959b778cc71bad20d0744cafc0443ce782d"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"1c93ca373c5eddf480b543c33592c845144a66bc","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            print(json.dumps(env_data, indent\u003d2))"},{"line_number":152,"context_line":"        else:"},{"line_number":153,"context_line":"            table \u003d prettytable.PrettyTable()"},{"line_number":154,"context_line":"            table.align \u003d \"l\""},{"line_number":155,"context_line":"            table.header \u003d False"},{"line_number":156,"context_line":"            for k in [\"uuid\", \"name\", \"status\","},{"line_number":157,"context_line":"                      \"created_at\", \"updated_at\", \"description\"]:"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fa0c359_aec40af6","line":154,"range":{"start_line":154,"start_character":12,"end_line":154,"end_character":29},"updated":"2018-02-12 13:53:45.000000000","message":"it doesn\u0027t work\n\nhttp://logs.openstack.org/16/542216/7/check/legacy-rally-dsvm-rally/02ee34a/job-output.txt.gz#_2018-02-12_12_53_55_621939","commit_id":"e65e1959b778cc71bad20d0744cafc0443ce782d"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"52934f7a0d6d1ef3d1463ca025adf8132578421b","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            print(json.dumps(env_data, indent\u003d2))"},{"line_number":152,"context_line":"        else:"},{"line_number":153,"context_line":"            table \u003d prettytable.PrettyTable()"},{"line_number":154,"context_line":"            table.align \u003d \"l\""},{"line_number":155,"context_line":"            table.header \u003d False"},{"line_number":156,"context_line":"            for k in [\"uuid\", \"name\", \"status\","},{"line_number":157,"context_line":"                      \"created_at\", \"updated_at\", \"description\"]:"}],"source_content_type":"text/x-python","patch_set":52,"id":"3fa0c359_99806ff7","line":154,"range":{"start_line":154,"start_character":12,"end_line":154,"end_character":29},"in_reply_to":"3fa0c359_aec40af6","updated":"2018-02-12 17:52:38.000000000","message":"yep it should be at the end (after we add all rows)...","commit_id":"e65e1959b778cc71bad20d0744cafc0443ce782d"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b32d2acc6296692123af88796933c801da5c158d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    @cliutils.args(\"--name\", \"-n\", type\u003dstr, required\u003dTrue,"},{"line_number":44,"context_line":"                   help\u003d\"Name of the environment.\")"},{"line_number":45,"context_line":"    @cliutils.args(\"--description\", \"-d\", type\u003dstr, required\u003dFalse,"},{"line_number":46,"context_line":"                   help\u003d\"Name of the environment.\")"},{"line_number":47,"context_line":"    @cliutils.args(\"--extras\", \"-e\", type\u003dstr, required\u003dFalse,"},{"line_number":48,"context_line":"                   help\u003d\"Name of the environment.\")"},{"line_number":49,"context_line":"    @cliutils.args(\"--spec\", \"-s\", type\u003dstr, required\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa0c359_2c6226d9","line":46,"range":{"start_line":46,"start_character":25,"end_line":46,"end_character":29},"updated":"2018-02-13 12:06:31.000000000","message":"description","commit_id":"eedee7fcf19379f92bf88f926795f3792a3d7819"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b32d2acc6296692123af88796933c801da5c158d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    @cliutils.args(\"--description\", \"-d\", type\u003dstr, required\u003dFalse,"},{"line_number":46,"context_line":"                   help\u003d\"Name of the environment.\")"},{"line_number":47,"context_line":"    @cliutils.args(\"--extras\", \"-e\", type\u003dstr, required\u003dFalse,"},{"line_number":48,"context_line":"                   help\u003d\"Name of the environment.\")"},{"line_number":49,"context_line":"    @cliutils.args(\"--spec\", \"-s\", type\u003dstr, required\u003dFalse,"},{"line_number":50,"context_line":"                   metavar\u003d\"\u003cpath\u003e or json\", help\u003d\"Path or JSON to env spec.\")"},{"line_number":51,"context_line":"    @cliutils.args(\"--json\", action\u003d\"store_true\", dest\u003d\"to_json\","}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa0c359_cca62210","line":48,"range":{"start_line":48,"start_character":25,"end_line":48,"end_character":29},"updated":"2018-02-13 12:06:31.000000000","message":"extras options for the environment. Can be used for any notes or other not-validated data.","commit_id":"eedee7fcf19379f92bf88f926795f3792a3d7819"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b32d2acc6296692123af88796933c801da5c158d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        \"\"\"Create new environment.\"\"\""},{"line_number":59,"context_line":"        spec \u003d spec or {}"},{"line_number":60,"context_line":"        if spec:"},{"line_number":61,"context_line":"            with open(os.path.expanduser(spec), \"rb\") as f:"},{"line_number":62,"context_line":"                spec \u003d yaml.safe_load(f.read())"},{"line_number":63,"context_line":"        if extras:"},{"line_number":64,"context_line":"            extras \u003d yaml.safe_load(extras)"}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa0c359_ec30bea1","line":61,"range":{"start_line":61,"start_character":11,"end_line":61,"end_character":59},"updated":"2018-02-13 12:06:31.000000000","message":"Help message for spec argument says that it can be a string with json. Please cover this case or modify the message to prevent IOError here.","commit_id":"eedee7fcf19379f92bf88f926795f3792a3d7819"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"b32d2acc6296692123af88796933c801da5c158d","unresolved":false,"context_lines":[{"line_number":247,"context_line":"                print(\"Plugin %s raised exception:\" % name)"},{"line_number":248,"context_line":"                print(\"\".join(data[name][\"traceback\"]))"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        return not available"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    @cliutils.args(\"--env\", dest\u003d\"env\", type\u003dstr,"},{"line_number":253,"context_line":"                   metavar\u003d\"\u003cuuid\u003e\", required\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa0c359_8c7b3a26","line":250,"range":{"start_line":250,"start_character":15,"end_line":250,"end_character":28},"updated":"2018-02-13 12:06:31.000000000","message":"should it be `int(not available)`?","commit_id":"eedee7fcf19379f92bf88f926795f3792a3d7819"}],"rally/cli/envutils.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"109114f6772770a90c10eb3017bf6881c91e80da","unresolved":false,"context_lines":[{"line_number":27,"context_line":"ENV_TASK \u003d \"RALLY_TASK\""},{"line_number":28,"context_line":"ENV_VERIFIER \u003d \"RALLY_VERIFIER\""},{"line_number":29,"context_line":"ENV_VERIFICATION \u003d \"RALLY_VERIFICATION\""},{"line_number":30,"context_line":"ENVVARS \u003d [ENV_ENV, ENV_DEPLOYMENT, ENV_TASK, ENV_VERIFIER, ENV_VERIFICATION]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"MSG_MISSING_ARG \u003d \"Missing argument: --%(arg_name)s\""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"7f96bb07_bea3b5b1","line":30,"range":{"start_line":30,"start_character":11,"end_line":30,"end_character":34},"updated":"2018-01-18 13:28:09.000000000","message":"Maybe we should use one var for deployment and env. otherwise, usage of `rally task` and `rally verify` is a bit misleading (Why it requires to call `rally deployment use or rally deployment create`, if `rally env use` was used ?).","commit_id":"da99f479803e40dae538277f02a9c1c9ec28ffae"}],"rally/env/env_mgr.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"301f69a79fd3633df618c624ae1ff7ebc8dfe2ca","unresolved":false,"context_lines":[{"line_number":613,"context_line":""},{"line_number":614,"context_line":"        from rally.common import objects"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"        # TODO(boris-42): This is breaking all kinds of rules of good"},{"line_number":617,"context_line":"        #                 architecture, and we should remove this thing from"},{"line_number":618,"context_line":"        #                 here..."},{"line_number":619,"context_line":"        for verifier in objects.Verifier.list():"},{"line_number":620,"context_line":"            verifier.set_deployment(self.uuid)"},{"line_number":621,"context_line":"            verifier.manager.uninstall()"}],"source_content_type":"text/x-python","patch_set":49,"id":"3fa0c359_37a7030e","line":618,"range":{"start_line":616,"start_character":8,"end_line":618,"end_character":33},"updated":"2018-02-10 09:13:39.000000000","message":"this code will be replaced by VerifiedManager or whatever new entity will be, but this logic always will be here.","commit_id":"0d39ea22a88f856536b6f3314cee3f121ac8ad38"}]}
