)]}'
{"devstack/lib/rally":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2b28342cd84cd8cf2c429f0aaeda7e679c90f770","unresolved":false,"context_lines":[{"line_number":51,"context_line":"{"},{"line_number":52,"context_line":"    \"type\": \"ExistingCloud\","},{"line_number":53,"context_line":"    \"creds\": {"},{"line_number":54,"context_line":"        \"default\": {},"},{"line_number":55,"context_line":"        \"openstack\": {"},{"line_number":56,"context_line":"            \"auth_url\": \"$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_SERVICE_PORT/v$IDENTITY_API_VERSION\","},{"line_number":57,"context_line":"            \"region_name\": \"$REGION_NAME\","},{"line_number":58,"context_line":"            \"admin\": {"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"ffe62b97_6081ce4a","line":55,"range":{"start_line":54,"start_character":8,"end_line":55,"end_character":8},"updated":"2017-03-25 08:50:03.000000000","message":"I dislike the case when we need to specify \"default\" creds. It should be our inner stuff.","commit_id":"7447d4eed8fcb3707f6cb58c7cdf7005cb2932ec"}],"rally-jobs/rally.yaml":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"3bed1f839b382818dda538dad0e81b632000d54a","unresolved":false,"context_lines":[{"line_number":389,"context_line":"      sla:"},{"line_number":390,"context_line":"        failure_rate:"},{"line_number":391,"context_line":"          max: 0"},{"line_number":392,"context_line":"    -"},{"line_number":393,"context_line":"      args:"},{"line_number":394,"context_line":"        sleep: 0.01"},{"line_number":395,"context_line":"      runner:"},{"line_number":396,"context_line":"        type: \"constant\""},{"line_number":397,"context_line":"        times: 1"},{"line_number":398,"context_line":"        concurrency: 1"},{"line_number":399,"context_line":"      context:"},{"line_number":400,"context_line":"        quotas:"},{"line_number":401,"context_line":"          nova:"},{"line_number":402,"context_line":"            instances: 200"},{"line_number":403,"context_line":"            cores: 200"},{"line_number":404,"context_line":"            ram: -1"},{"line_number":405,"context_line":"            floating_ips: 200"},{"line_number":406,"context_line":"            fixed_ips: 200"},{"line_number":407,"context_line":"            metadata_items: -1"},{"line_number":408,"context_line":"            injected_files: -1"},{"line_number":409,"context_line":"            injected_file_content_bytes: -1"},{"line_number":410,"context_line":"            injected_file_path_bytes: -1"},{"line_number":411,"context_line":"            key_pairs: 500"},{"line_number":412,"context_line":"            security_groups: 400"},{"line_number":413,"context_line":"            security_group_rules: 600"},{"line_number":414,"context_line":"          cinder:"},{"line_number":415,"context_line":"            gigabytes: -1"},{"line_number":416,"context_line":"            snapshots: -1"},{"line_number":417,"context_line":"            volumes: -1"},{"line_number":418,"context_line":"      sla:"},{"line_number":419,"context_line":"        failure_rate:"},{"line_number":420,"context_line":"          max: 0"},{"line_number":421,"context_line":"    -"},{"line_number":422,"context_line":"      args:"},{"line_number":423,"context_line":"        sleep: 0.6"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a1ced50_c0019606","line":420,"range":{"start_line":392,"start_character":4,"end_line":420,"end_character":16},"updated":"2017-03-23 11:26:48.000000000","message":"Only that subtask relates to OpenStack. all others should not depend on it (less keystone users context -\u003e less time for a job execution)","commit_id":"e74bea2fe754a2a279576e9b28a3be6e9e22d335"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"3bed1f839b382818dda538dad0e81b632000d54a","unresolved":false,"context_lines":[{"line_number":693,"context_line":"          action_3: 4.0"},{"line_number":694,"context_line":"          action_4: 5.0"},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"  Dummy.openstack_failure:"},{"line_number":697,"context_line":"    -"},{"line_number":698,"context_line":"      args:"},{"line_number":699,"context_line":"        sleep: 0.2"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a1ced50_852ed0a2","line":696,"range":{"start_line":696,"start_character":2,"end_line":696,"end_character":26},"updated":"2017-03-23 11:26:48.000000000","message":"it looks like that scenario do not relate to OpenStack at all","commit_id":"e74bea2fe754a2a279576e9b28a3be6e9e22d335"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"3bed1f839b382818dda538dad0e81b632000d54a","unresolved":false,"context_lines":[{"line_number":704,"context_line":"        type: \"constant\""},{"line_number":705,"context_line":"        times: 20"},{"line_number":706,"context_line":"        concurrency: 5"},{"line_number":707,"context_line":"      context:"},{"line_number":708,"context_line":"        users:"},{"line_number":709,"context_line":"          tenants: 1"},{"line_number":710,"context_line":"          users_per_tenant: 1"},{"line_number":711,"context_line":"      sla:"},{"line_number":712,"context_line":"        failure_rate:"},{"line_number":713,"context_line":"          min: 25"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"1a1ced50_450f7836","line":710,"range":{"start_line":707,"start_character":6,"end_line":710,"end_character":29},"updated":"2017-03-23 11:26:48.000000000","message":"it is redundant here","commit_id":"e74bea2fe754a2a279576e9b28a3be6e9e22d335"}],"rally/common/objects/deploy.py":[{"author":{"_account_id":18404,"name":"Ma Xinjian","email":"maxj.fnst@cn.fujitsu.com","username":"maxinjian"},"change_message_id":"43c4e5e9ca664a36d2bbbd4a50c6a528743e41b5","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        self._update({\"credentials\": credentials})"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    def get_platforms(self):"},{"line_number":100,"context_line":"        return [platfrom for platfrom in self.deployment[\"credentials\"]]"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def get_credentials_for(self, namespace):"},{"line_number":103,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_42fdc06c","line":100,"range":{"start_line":100,"start_character":29,"end_line":100,"end_character":37},"updated":"2017-03-23 01:22:50.000000000","message":"Spelling error?\nplatfrom -\u003e platform","commit_id":"247ccdc28406aafd50b29934d2a1e3d8e1c83f6e"}],"rally/common/plugin/plugin.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"fe4eb6c732cb4bb93d7c09871f7996eef2eb2493","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @classmethod"},{"line_number":212,"context_line":"    def get(cls, name, namespace\u003dNone, allow_hidden\u003dFalse,"},{"line_number":213,"context_line":"            fallback_to_default\u003dTrue):"},{"line_number":214,"context_line":"        \"\"\"Return plugin by its name from specified namespace."},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        This method iterates over all subclasses of cls and returns plugin"}],"source_content_type":"text/x-python","patch_set":10,"id":"ffe62b97_65641c23","line":213,"range":{"start_line":213,"start_character":12,"end_line":213,"end_character":36},"updated":"2017-03-27 11:27:36.000000000","message":"1) let\u0027s document the new parameter\n\n2) I prefer to rename it to something more general. I mean it would be nice to support the case when there is no specified namespace for context (in task) and it is possible to obtain it while searching in scenario namespace, default namespace, anyof namespace (if the name of context is unique for all namespaces). It can be done in further patches.","commit_id":"dfe17d71ab894fec8874ee3c076e81034705ea92"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"fe4eb6c732cb4bb93d7c09871f7996eef2eb2493","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            name\u003dname, namespace\u003dnamespace or \"any of\")"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    @classmethod"},{"line_number":256,"context_line":"    def get_all(cls, namespace\u003dNone, allow_hidden\u003dFalse, name\u003dNone):"},{"line_number":257,"context_line":"        \"\"\"Return all subclass plugins of plugin."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        All plugins that are not configured will be ignored."}],"source_content_type":"text/x-python","patch_set":10,"id":"ffe62b97_25b3b4ec","line":256,"range":{"start_line":256,"start_character":55,"end_line":256,"end_character":67},"updated":"2017-03-27 11:27:36.000000000","message":"let\u0027s document the new parameter","commit_id":"dfe17d71ab894fec8874ee3c076e81034705ea92"}],"rally/plugins/common/context/users.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"e10d6557ebbd1bdf8e1d9bf7b415e1a96fbe7fc3","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from rally.task import context"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"@context.configure(name\u003d\"users\", namespace\u003d\"default\", order\u003d100)"},{"line_number":20,"context_line":"class NoUsers(context.Context):"},{"line_number":21,"context_line":"    \"\"\"Context that provides empty list of users for default namespace.\"\"\""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_4de343d9","line":19,"updated":"2017-03-22 17:04:18.000000000","message":"Maybe it should hidden?","commit_id":"970f11f1787443779b9d8f3ec42a50f67f6d2151"}],"rally/plugins/common/credential.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2b28342cd84cd8cf2c429f0aaeda7e679c90f770","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        pass"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def list_services(self):"},{"line_number":33,"context_line":"        return {\"dafault\": \"unknown\"}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"@credential.configure_builder(\"default\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"ffe62b97_e0171e45","line":33,"range":{"start_line":33,"start_character":17,"end_line":33,"end_character":24},"updated":"2017-03-25 08:50:03.000000000","message":"s/dafault/default\n\nPS: not sure that we need to return anything","commit_id":"7447d4eed8fcb3707f6cb58c7cdf7005cb2932ec"}],"rally/task/context.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"fe4eb6c732cb4bb93d7c09871f7996eef2eb2493","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    def validate(ctx, namespace, allow_hidden\u003dFalse):"},{"line_number":159,"context_line":"        for name, config in ctx.items():"},{"line_number":160,"context_line":"            Context.get(name, namespace\u003dnamespace,"},{"line_number":161,"context_line":"                        allow_hidden\u003dallow_hidden).validate(config)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def _get_sorted_context_lst(self):"},{"line_number":164,"context_line":"        return sorted(["}],"source_content_type":"text/x-python","patch_set":10,"id":"ffe62b97_453598f6","line":161,"updated":"2017-03-27 11:27:36.000000000","message":"should we use here follback_to_default parameter?","commit_id":"dfe17d71ab894fec8874ee3c076e81034705ea92"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"b0e4321841a919918d9f131a5f2c6ff767f25922","unresolved":false,"context_lines":[{"line_number":158,"context_line":"    def validate(ctx, namespace, allow_hidden\u003dFalse):"},{"line_number":159,"context_line":"        for name, config in ctx.items():"},{"line_number":160,"context_line":"            Context.get(name, namespace\u003dnamespace,"},{"line_number":161,"context_line":"                        allow_hidden\u003dallow_hidden).validate(config)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def _get_sorted_context_lst(self):"},{"line_number":164,"context_line":"        return sorted(["}],"source_content_type":"text/x-python","patch_set":10,"id":"ffe62b97_9d1d3811","line":161,"in_reply_to":"ffe62b97_453598f6","updated":"2017-03-27 12:14:50.000000000","message":"it is True by default","commit_id":"dfe17d71ab894fec8874ee3c076e81034705ea92"}]}
