)]}'
{"rally/cli/commands/env.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"7172b5866205c10f45d8914db5bf92361f903850","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @cliutils.args(\"--name\", type\u003dstr, required\u003dTrue,"},{"line_number":38,"context_line":"                   help\u003d\"Name of the environment.\")"},{"line_number":39,"context_line":"    @cliutils.args(\"--filename\", type\u003dstr, required\u003dFalse, metavar\u003d\"\u003cpath\u003e\","},{"line_number":40,"context_line":"                   help\u003d\"Path to the configuration file of the environment.\")"},{"line_number":41,"context_line":"    @cliutils.args(\"--no-use\", action\u003d\"store_false\", dest\u003d\"do_use\","},{"line_number":42,"context_line":"                   help\u003d\"Don\u0027t set new environment as default for\""},{"line_number":43,"context_line":"                        \" future operations.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_e5d126cf","line":40,"range":{"start_line":39,"start_character":4,"end_line":40,"end_character":77},"updated":"2017-10-23 10:55:07.000000000","message":"1) Let\u0027s call it just `--file`\n2) Do we need to support from environment variables? I understand that `rally env create --fromenv` sounds strange, but we can name it in different way (--from-envvars or something like that)","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8114a295b12099a387aadf77647c7fae664bea7d","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @cliutils.args(\"--name\", type\u003dstr, required\u003dTrue,"},{"line_number":38,"context_line":"                   help\u003d\"Name of the environment.\")"},{"line_number":39,"context_line":"    @cliutils.args(\"--filename\", type\u003dstr, required\u003dFalse, metavar\u003d\"\u003cpath\u003e\","},{"line_number":40,"context_line":"                   help\u003d\"Path to the configuration file of the environment.\")"},{"line_number":41,"context_line":"    @cliutils.args(\"--no-use\", action\u003d\"store_false\", dest\u003d\"do_use\","},{"line_number":42,"context_line":"                   help\u003d\"Don\u0027t set new environment as default for\""},{"line_number":43,"context_line":"                        \" future operations.\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f485f77_517c43b4","line":40,"range":{"start_line":39,"start_character":4,"end_line":40,"end_character":77},"in_reply_to":"3f4b6375_e5d126cf","updated":"2017-11-27 09:32:21.000000000","message":"I would prefer to remove everything unnecessary from this patch and make it as small as possible. \n\nIt\u0027s super easy to add  --from-envvars later without breaking anything","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"7172b5866205c10f45d8914db5bf92361f903850","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def create(self, api, name, filename\u003dNone, do_use\u003dFalse):"},{"line_number":46,"context_line":"        \"\"\"Create new environment."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        :param filename: path to the configuration file"},{"line_number":49,"context_line":"        :param name: name of the environment"},{"line_number":50,"context_line":"        \"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        if not filename:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_05668252","line":49,"range":{"start_line":48,"start_character":8,"end_line":49,"end_character":44},"updated":"2017-10-23 10:55:07.000000000","message":"even now (from the creation) you are missing to describe all the arguments... you should remove these lines, see https://github.com/openstack/rally/commit/f0eb35495d713881ca1d7ff991a237e766207936","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8114a295b12099a387aadf77647c7fae664bea7d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def create(self, api, name, filename\u003dNone, do_use\u003dFalse):"},{"line_number":46,"context_line":"        \"\"\"Create new environment."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        :param filename: path to the configuration file"},{"line_number":49,"context_line":"        :param name: name of the environment"},{"line_number":50,"context_line":"        \"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        if not filename:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f485f77_91207bb2","line":49,"range":{"start_line":48,"start_character":8,"end_line":49,"end_character":44},"in_reply_to":"3f4b6375_05668252","updated":"2017-11-27 09:32:21.000000000","message":"done","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"7172b5866205c10f45d8914db5bf92361f903850","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            cliutils.print_list("},{"line_number":98,"context_line":"                table_rows, headers, sortby_index\u003dheaders.index(\"created_at\"))"},{"line_number":99,"context_line":"        else:"},{"line_number":100,"context_line":"            print(\"There are no environments. To create a new environment, \""},{"line_number":101,"context_line":"                  \"use next command:\\nrally env create\")"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @cliutils.args(\"--env\", dest\u003d\"env\", type\u003dstr,"},{"line_number":104,"context_line":"                   metavar\u003d\"\u003cuuid\u003e\", required\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_a5b20e93","line":101,"range":{"start_line":100,"start_character":12,"end_line":101,"end_character":56},"updated":"2017-10-23 10:55:07.000000000","message":"should we return 1 or another not-zero value in such case?","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8114a295b12099a387aadf77647c7fae664bea7d","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            cliutils.print_list("},{"line_number":98,"context_line":"                table_rows, headers, sortby_index\u003dheaders.index(\"created_at\"))"},{"line_number":99,"context_line":"        else:"},{"line_number":100,"context_line":"            print(\"There are no environments. To create a new environment, \""},{"line_number":101,"context_line":"                  \"use next command:\\nrally env create\")"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    @cliutils.args(\"--env\", dest\u003d\"env\", type\u003dstr,"},{"line_number":104,"context_line":"                   metavar\u003d\"\u003cuuid\u003e\", required\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f485f77_4c070a84","line":101,"range":{"start_line":100,"start_character":12,"end_line":101,"end_character":56},"in_reply_to":"3f4b6375_a5b20e93","updated":"2017-11-27 09:32:21.000000000","message":"Usually 1 means error, something is wrong (error), however there is nothing wrong about the fact that there is no environments, print is just here to point user to right direction","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"7172b5866205c10f45d8914db5bf92361f903850","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        :param env: UUID or name of the environment"},{"line_number":151,"context_line":"        \"\"\""},{"line_number":152,"context_line":"        # TODO(astudenov): make this method platform independent"},{"line_number":153,"context_line":"        try:"},{"line_number":154,"context_line":"            if not isinstance(env, dict):"},{"line_number":155,"context_line":"                env \u003d api.env.get(env\u003denv)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_457c7ab4","line":152,"range":{"start_line":152,"start_character":8,"end_line":152,"end_character":64},"updated":"2017-10-23 10:55:07.000000000","message":"imo, this comment invalid, there is nothing related to platforms.","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"7172b5866205c10f45d8914db5bf92361f903850","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        \"\"\""},{"line_number":152,"context_line":"        # TODO(astudenov): make this method platform independent"},{"line_number":153,"context_line":"        try:"},{"line_number":154,"context_line":"            if not isinstance(env, dict):"},{"line_number":155,"context_line":"                env \u003d api.env.get(env\u003denv)"},{"line_number":156,"context_line":"        except exceptions.NotFound:"},{"line_number":157,"context_line":"            print(\"Environment %s is not found.\" % env)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_251bbe81","line":154,"range":{"start_line":154,"start_character":12,"end_line":154,"end_character":41},"updated":"2017-10-23 10:55:07.000000000","message":"actually, I dislike how it is done in deployment and do not want to accept the same in the new code. Let\u0027s create a separate method `_use` for L159-160 and use it in L68. This will make the code of `rally env use` represents only the command code and look more clear.","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8114a295b12099a387aadf77647c7fae664bea7d","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        \"\"\""},{"line_number":152,"context_line":"        # TODO(astudenov): make this method platform independent"},{"line_number":153,"context_line":"        try:"},{"line_number":154,"context_line":"            if not isinstance(env, dict):"},{"line_number":155,"context_line":"                env \u003d api.env.get(env\u003denv)"},{"line_number":156,"context_line":"        except exceptions.NotFound:"},{"line_number":157,"context_line":"            print(\"Environment %s is not found.\" % env)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f485f77_675f810e","line":154,"range":{"start_line":154,"start_character":12,"end_line":154,"end_character":41},"in_reply_to":"3f4b6375_251bbe81","updated":"2017-11-27 09:32:21.000000000","message":"fair enough","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"}],"rally/common/db/sqlalchemy/api.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"62587f52cd9a127b6363be2e71641db015d35a90","unresolved":false,"context_lines":[{"line_number":647,"context_line":"        if count:"},{"line_number":648,"context_line":"            return True"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"        env \u003d self.env_get(uuid)"},{"line_number":651,"context_line":"        raise exceptions.DBConflict("},{"line_number":652,"context_line":"            \"Env %s should be in status %s actual %s\""},{"line_number":653,"context_line":"            % (uuid, old_status, env[\"status\"]))"}],"source_content_type":"text/x-python","patch_set":34,"id":"9f91af0f_5fddd9dd","line":650,"range":{"start_line":650,"start_character":8,"end_line":650,"end_character":32},"updated":"2018-01-10 15:43:02.000000000","message":"I suppose env_get_status should be used instead. it\u0027s cost less.","commit_id":"588cfa4f6d5e9665c1c65c096232c46898b3e86a"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"fbbfc9f1d4dd2fdd69336a457c3555d4997272af","unresolved":false,"context_lines":[{"line_number":647,"context_line":"        if count:"},{"line_number":648,"context_line":"            return True"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"        env \u003d self.env_get(uuid)"},{"line_number":651,"context_line":"        raise exceptions.DBConflict("},{"line_number":652,"context_line":"            \"Env %s should be in status %s actual %s\""},{"line_number":653,"context_line":"            % (uuid, old_status, env[\"status\"]))"}],"source_content_type":"text/x-python","patch_set":34,"id":"7f96bb07_81351cfa","line":650,"range":{"start_line":650,"start_character":8,"end_line":650,"end_character":32},"in_reply_to":"9f91af0f_5fddd9dd","updated":"2018-01-11 23:01:12.000000000","message":"fair point","commit_id":"588cfa4f6d5e9665c1c65c096232c46898b3e86a"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"a553aeb2bd858db9a35ca51aa20544a8c0fc7b2c","unresolved":false,"context_lines":[{"line_number":610,"context_line":"                status\u003dstatus, description\u003ddescription,"},{"line_number":611,"context_line":"                extras\u003dextras, spec\u003dspec"},{"line_number":612,"context_line":"            )"},{"line_number":613,"context_line":"            # db_session.add(env)"},{"line_number":614,"context_line":"            get_session().bulk_save_objects([env] + ["},{"line_number":615,"context_line":"                models.Platform(**p) for p in platforms"},{"line_number":616,"context_line":"            ])"}],"source_content_type":"text/x-python","patch_set":35,"id":"7f96bb07_4d52b015","line":613,"range":{"start_line":613,"start_character":12,"end_line":613,"end_character":33},"updated":"2018-01-12 10:42:59.000000000","message":"do we need this?)","commit_id":"4719c5d8c70078de9c89caeea53a738c18067f74"}],"rally/common/db/sqlalchemy/models.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"7172b5866205c10f45d8914db5bf92361f903850","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    uuid \u003d sa.Column(sa.String(36), default\u003dUUID, nullable\u003dFalse)"},{"line_number":149,"context_line":"    name \u003d sa.Column(sa.String(255), unique\u003dTrue)"},{"line_number":150,"context_line":"    status \u003d sa.Column(sa.String(36))"},{"line_number":151,"context_line":"    extra \u003d sa.Column(sa_types.MutableJSONEncodedDict, default\u003d{})"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"class Platform(Base, RallyBase):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_e8221da4","line":151,"updated":"2017-10-23 10:55:07.000000000","message":"should we split extra to `options` and other extras(notes for example)? The first thing will possible useful for regular operation while the second one only for env show/info commands. Splitting will possible speed up loading env from database in case of regular operations...","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"}],"rally/common/utils.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"62587f52cd9a127b6363be2e71641db015d35a90","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                yield v"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"class TransitionMixin(object):"},{"line_number":61,"context_line":"    TRANSITION_TABLE \u003d {}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":34,"id":"9f91af0f_3ff7b55b","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":30},"updated":"2018-01-10 15:43:02.000000000","message":"I do not find the usage of the object","commit_id":"588cfa4f6d5e9665c1c65c096232c46898b3e86a"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"fbbfc9f1d4dd2fdd69336a457c3555d4997272af","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                yield v"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"class TransitionMixin(object):"},{"line_number":61,"context_line":"    TRANSITION_TABLE \u003d {}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":34,"id":"7f96bb07_c12a448f","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":30},"in_reply_to":"9f91af0f_3ff7b55b","updated":"2018-01-11 23:01:12.000000000","message":"I\u0027ll probably remove it in separate patch","commit_id":"588cfa4f6d5e9665c1c65c096232c46898b3e86a"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"fbbfc9f1d4dd2fdd69336a457c3555d4997272af","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                yield v"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"class TransitionMixin(object):"},{"line_number":61,"context_line":"    TRANSITION_TABLE \u003d {}"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":34,"id":"7f96bb07_44f722f7","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":30},"in_reply_to":"9f91af0f_3ff7b55b","updated":"2018-01-11 23:01:12.000000000","message":"I\u0027ll update few","commit_id":"588cfa4f6d5e9665c1c65c096232c46898b3e86a"}],"rally/env/engine.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"7172b5866205c10f45d8914db5bf92361f903850","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017: 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":5,"id":"3f4b6375_483131ec","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":31},"updated":"2017-10-23 10:55:07.000000000","message":"not sure that you are still working there.","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8114a295b12099a387aadf77647c7fae664bea7d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2017: 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":5,"id":"1f485f77_47ea450f","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":31},"in_reply_to":"3f4b6375_483131ec","updated":"2017-11-27 09:32:21.000000000","message":"Done","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"7172b5866205c10f45d8914db5bf92361f903850","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    Deployment Input has next syntax:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    {"},{"line_number":47,"context_line":"        \"type\": \"object\","},{"line_number":48,"context_line":"        \"properties\": {"},{"line_number":49,"context_line":"            \"version\": {"},{"line_number":50,"context_line":"                \"type\": \"integer\","},{"line_number":51,"context_line":"                \"description\": \"Deployment version\""},{"line_number":52,"context_line":"            },"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"            \"name\": {"},{"line_number":55,"context_line":"                \"type\": \"string\","},{"line_number":56,"context_line":"                \"description\": \"Unique name that may be used instead of UUID\""},{"line_number":57,"context_line":"            },"},{"line_number":58,"context_line":"            \"description\": {"},{"line_number":59,"context_line":"                \"type\": \"string\","},{"line_number":60,"context_line":"                \"description\": \"User specific description of deployment\""},{"line_number":61,"context_line":"            },"},{"line_number":62,"context_line":"            \"platforms\": {"},{"line_number":63,"context_line":"                \"type\": \"object\","},{"line_number":64,"context_line":"                \"properties\": {"},{"line_number":65,"context_line":"                    \"*\": {"},{"line_number":66,"context_line":"                        \"type\": \"object\","},{"line_number":67,"context_line":"                        \"description\": |"},{"line_number":68,"context_line":"                            Key is platform plugin name,"},{"line_number":69,"context_line":"                            values are specific for plugin"},{"line_number":70,"context_line":"                    }"},{"line_number":71,"context_line":"                }"},{"line_number":72,"context_line":"            }"},{"line_number":73,"context_line":"        }"},{"line_number":74,"context_line":"    }"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    Deployment Output used by Task and Verification components"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_6892ada0","line":74,"range":{"start_line":46,"start_character":4,"end_line":74,"end_character":5},"updated":"2017-10-23 10:55:07.000000000","message":"it would be nice to wrap this by `.. code-block:: json`, so we will be able to use this docstings in our docs.","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"7172b5866205c10f45d8914db5bf92361f903850","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        else:"},{"line_number":109,"context_line":"            self.deployment \u003d db.api.deployment_v2_create()"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def create(self, deployment_input):"},{"line_number":112,"context_line":"        if self.existing:"},{"line_number":113,"context_line":"            raise Exception(\"Wrong usage can\u0027t create 2 times deployment\")"},{"line_number":114,"context_line":"        self.existing \u003d True"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_a8742569","line":111,"range":{"start_line":111,"start_character":4,"end_line":111,"end_character":39},"updated":"2017-10-23 10:55:07.000000000","message":"why not just make it classmethod and clean all methods from redundant if..else?","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"7172b5866205c10f45d8914db5bf92361f903850","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        for platforms in deployment_input[\"platforms\"].items():"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"            try:"},{"line_number":121,"context_line":"                name, namespace \u003d split()"},{"line_number":122,"context_line":"                platform.get(name\u003d)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"                db.api.deployment_v2_add_platform()"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_48693189","line":122,"range":{"start_line":121,"start_character":16,"end_line":122,"end_character":35},"updated":"2017-10-23 10:55:07.000000000","message":"it think you will fix it:)","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8114a295b12099a387aadf77647c7fae664bea7d","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        for platforms in deployment_input[\"platforms\"].items():"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"            try:"},{"line_number":121,"context_line":"                name, namespace \u003d split()"},{"line_number":122,"context_line":"                platform.get(name\u003d)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"                db.api.deployment_v2_add_platform()"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_0dbaeb08","line":122,"range":{"start_line":121,"start_character":16,"end_line":122,"end_character":35},"in_reply_to":"3f4b6375_48693189","updated":"2017-11-27 09:32:21.000000000","message":"i got tired LOL","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"}],"rally/env/env_mgr.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ccc5f53e07a22f8edfcdbe6e1d9b833756a7f835","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        return cls.get(self.uuid)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    @classmethod"},{"line_number":208,"context_line":"    def list(cls):"},{"line_number":209,"context_line":"        return [cls(data) for data in db.env_list()]"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def _get_platforms(self):"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f91af0f_c368b488","line":208,"range":{"start_line":208,"start_character":4,"end_line":208,"end_character":18},"updated":"2018-01-04 11:39:23.000000000","message":"there should be ability to filter envs by status and it is better to do it at db level","commit_id":"f23c90903fdf6dfbb5f111b77112b7c14687310e"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"fab14e77b23b4be08b626c4c1b1adc57bfbaa981","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        return cls.get(self.uuid)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    @classmethod"},{"line_number":208,"context_line":"    def list(cls):"},{"line_number":209,"context_line":"        return [cls(data) for data in db.env_list()]"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    def _get_platforms(self):"}],"source_content_type":"text/x-python","patch_set":20,"id":"9f91af0f_41ea5775","line":208,"range":{"start_line":208,"start_character":4,"end_line":208,"end_character":18},"in_reply_to":"9f91af0f_c368b488","updated":"2018-01-04 17:48:57.000000000","message":"we should change status in envs to enum, otherwise filtering is going to have terrible performance.","commit_id":"f23c90903fdf6dfbb5f111b77112b7c14687310e"}],"rally/env/platform.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"ab6d13182294594cba7f80e7699e7dba04d78723","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        :returns: Complete platform data as dictionary"},{"line_number":72,"context_line":"        \"\"\""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def cleanup(self):"},{"line_number":75,"context_line":"        \"\"\"Disaster cleanup for platform.\"\"\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def check(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_4ca54102","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":22},"updated":"2017-11-07 20:08:03.000000000","message":"it should accept task_ids to clean just after particular task","commit_id":"c047bd988c66b46dcbcaf27cb7237cd556af9142"}]}
