)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"0b65308bd414bf55c09b35082f3e4ce568c48a01","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"* Part 2:"},{"line_number":15,"context_line":"Add an object property \"plugin_info\" to task config to store"},{"line_number":16,"context_line":"information for plugins."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I882938e86d6c8209b669d7220285e8aa05bdd3e3"},{"line_number":19,"context_line":"Partial-bug: #1447496"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"ba15a1d1_cb88fc73","line":16,"updated":"2015-09-23 15:17:21.000000000","message":"Please don\u0027t include things in the commit message that aren\u0027t implemented in the commit.","commit_id":"383c22319d1a15b2b9ab47d9e3ad9a1c37153c25"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b3250aa21b28a11f4f8e2800caa04e6349d57654","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"* Part 2:"},{"line_number":15,"context_line":"Add an object property \"plugin_info\" to task config to store"},{"line_number":16,"context_line":"information for plugins."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I882938e86d6c8209b669d7220285e8aa05bdd3e3"},{"line_number":19,"context_line":"Partial-bug: #1447496"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"ba15a1d1_8ab8a912","line":16,"in_reply_to":"ba15a1d1_cb88fc73","updated":"2015-09-24 01:27:29.000000000","message":"Done","commit_id":"383c22319d1a15b2b9ab47d9e3ad9a1c37153c25"}],"rally-jobs/rally.yaml":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"c9d3183e5ddcb9503bbd07627c764c241b95b40a","unresolved":false,"context_lines":[{"line_number":1037,"context_line":"      sla:"},{"line_number":1038,"context_line":"        failure_rate:"},{"line_number":1039,"context_line":"          max: 0"},{"line_number":1040,"context_line":"      description:"},{"line_number":1041,"context_line":"        runner:"},{"line_number":1042,"context_line":"          constant: \"User defined runner description.\""},{"line_number":1043,"context_line":"        context:"}],"source_content_type":"text/x-yaml","patch_set":21,"id":"ba15a1d1_351543e4","line":1040,"updated":"2015-09-17 08:02:12.000000000","message":"I am not sure how we get to this point but this doesn\u0027t look good to me.\n\nI would like to see next thing: \n\n  1) Description field that accepts just string and can contain any data that users wants.\n\n  2) Description should be added to reports nicely on overview page if it exists  \n\n  3) Maybe as a part of separated effort add somewhere (in other field) information about plugin that are used.","commit_id":"635c22f190e87a2e966a2e5925df66782d18ddd7"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"396ebaaeca00506e99d6a3da01e20149574792ad","unresolved":false,"context_lines":[{"line_number":2,"context_line":"  KeystoneBasic.create_user:"},{"line_number":3,"context_line":"    -"},{"line_number":4,"context_line":"      description:"},{"line_number":5,"context_line":"        \"User specified description for create user task.\""},{"line_number":6,"context_line":"      args:"},{"line_number":7,"context_line":"        name_length: 10"},{"line_number":8,"context_line":"      runner:"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"ba15a1d1_307a2af2","line":5,"updated":"2015-09-24 03:15:40.000000000","message":"Not rally understand this, are you hinting operators to update this themselves? Does the description section is for basic description of current scenario?","commit_id":"64ef90ee8cb7e85ccbb116a74d46f230c76c525a"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"295f35292a17541fa4c6eb83f45449470139bacd","unresolved":false,"context_lines":[{"line_number":2,"context_line":"  KeystoneBasic.create_user:"},{"line_number":3,"context_line":"    -"},{"line_number":4,"context_line":"      description:"},{"line_number":5,"context_line":"        \"User specified description for create user task.\""},{"line_number":6,"context_line":"      args:"},{"line_number":7,"context_line":"        name_length: 10"},{"line_number":8,"context_line":"      runner:"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"9a1a9d01_2bc9bf78","line":5,"in_reply_to":"ba15a1d1_307a2af2","updated":"2015-09-28 01:51:25.000000000","message":"This is just a test to make sure user specified description working correctly. Yes, the description is for current scenario.","commit_id":"64ef90ee8cb7e85ccbb116a74d46f230c76c525a"}],"rally/task/engine.py":[{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"f92b2c0d390173317eb1b5de96c8909e18e3ca0b","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            description \u003d doc[\"short_description\"] or \"\""},{"line_number":124,"context_line":"            for v in values:"},{"line_number":125,"context_line":"                v[\"description\"] \u003d (description if not v.get(\"description\")"},{"line_number":126,"context_line":"                                    else v[\"description\"])"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @rutils.log_task_wrapper(LOG.info, _(\"Task validation check cloud.\"))"},{"line_number":129,"context_line":"    def _check_cloud(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_ac45a8b4","line":126,"updated":"2015-08-03 03:33:03.000000000","message":"v[\"description\"] \u003d v.get(\"description\", description)","commit_id":"74c615237d472682f65dc763b9a55dbc7a33f259"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"5ae24199ab887cf81c5875e4858bb24c9cfa07f7","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            description \u003d doc[\"short_description\"] or \"\""},{"line_number":124,"context_line":"            for v in values:"},{"line_number":125,"context_line":"                v[\"description\"] \u003d (description if not v.get(\"description\")"},{"line_number":126,"context_line":"                                    else v[\"description\"])"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @rutils.log_task_wrapper(LOG.info, _(\"Task validation check cloud.\"))"},{"line_number":129,"context_line":"    def _check_cloud(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_0cd93cf3","line":126,"in_reply_to":"3a50d1a3_ac45a8b4","updated":"2015-08-03 03:38:06.000000000","message":"Done","commit_id":"74c615237d472682f65dc763b9a55dbc7a33f259"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"ec69331c538112c2891f48600bf10dfd5590e565","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        for key, values in six.iteritems(self.config):"},{"line_number":121,"context_line":"            scenario \u003d base_scenario.Scenario.get_scenario_by_name(key)"},{"line_number":122,"context_line":"            doc \u003d rutils.parse_docstring(scenario.__doc__)"},{"line_number":123,"context_line":"            description \u003d doc[\"short_description\"] or \"\""},{"line_number":124,"context_line":"            for v in values:"},{"line_number":125,"context_line":"                v[\"description\"] \u003d v.get(\"description\", description)"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_d4c187e5","line":123,"updated":"2015-08-03 12:45:45.000000000","message":"doc.get(\"short_description\",  \"\") I think be better then doc[\"short_description\"] or \"\". Its a suggestion.","commit_id":"d00da631ef65cf1bebf5c62e47bb0c06dbc05e73"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b3ce6723cf16d45a17bd486ee275f85022457e30","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        for key, values in six.iteritems(self.config):"},{"line_number":121,"context_line":"            scenario \u003d base_scenario.Scenario.get_scenario_by_name(key)"},{"line_number":122,"context_line":"            doc \u003d rutils.parse_docstring(scenario.__doc__)"},{"line_number":123,"context_line":"            description \u003d doc[\"short_description\"] or \"\""},{"line_number":124,"context_line":"            for v in values:"},{"line_number":125,"context_line":"                v[\"description\"] \u003d v.get(\"description\", description)"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_de870111","line":123,"in_reply_to":"3a50d1a3_d4c187e5","updated":"2015-08-03 14:01:11.000000000","message":"Agree, done","commit_id":"d00da631ef65cf1bebf5c62e47bb0c06dbc05e73"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"0db30fdcdfa0cceec0c5d22017ca81d510500b78","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        # Add description to scenario configuration if not exist."},{"line_number":120,"context_line":"        for key, values in six.iteritems(self.config):"},{"line_number":121,"context_line":"            scenario \u003d base_scenario.Scenario.get_scenario_by_name(key)"},{"line_number":122,"context_line":"            doc \u003d rutils.parse_docstring(scenario.__doc__)"},{"line_number":123,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":124,"context_line":"            for v in values:"},{"line_number":125,"context_line":"                v[\"description\"] \u003d v.get(\"description\", description)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_590f67e1","line":122,"updated":"2015-08-04 07:10:05.000000000","message":"this is great idea to put docstrings to description, but I believe that we should put info about scenario, context, sla and other parts of task","commit_id":"11366163326ffe504b0efc1ea53230826b03c284"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"1c16fc72f2d749ada0665778e075c90b23207b08","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        for key, values in six.iteritems(self.config):"},{"line_number":181,"context_line":"            scenario \u003d base_scenario.Scenario.get_scenario_by_name(key)"},{"line_number":182,"context_line":"            doc \u003d rutils.parse_docstring(scenario.__doc__)"},{"line_number":183,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":184,"context_line":"            for v in values:"},{"line_number":185,"context_line":"                v[\"description\"] \u003d v.get(\"description\", {})"},{"line_number":186,"context_line":"                # Add scenario description"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_8d48bab4","line":183,"updated":"2015-08-12 13:00:13.000000000","message":"Do we need to left possibility for user to add description into the config file?","commit_id":"e404bd3327f1e02df82ec7f82a7d4fd62c0c06c5"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"7e262232a1adbafb220ed10faa85010e1a65adc1","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        for key, values in six.iteritems(self.config):"},{"line_number":181,"context_line":"            scenario \u003d base_scenario.Scenario.get_scenario_by_name(key)"},{"line_number":182,"context_line":"            doc \u003d rutils.parse_docstring(scenario.__doc__)"},{"line_number":183,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":184,"context_line":"            for v in values:"},{"line_number":185,"context_line":"                v[\"description\"] \u003d v.get(\"description\", {})"},{"line_number":186,"context_line":"                # Add scenario description"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_e83ca8c9","line":183,"in_reply_to":"1a4dcd0f_8d48bab4","updated":"2015-08-13 03:46:40.000000000","message":"I think it need to leave to scenario developers...","commit_id":"e404bd3327f1e02df82ec7f82a7d4fd62c0c06c5"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"95d6f5945dd443e2241c3341e34a32091807b72d","unresolved":false,"context_lines":[{"line_number":180,"context_line":"        for key, values in six.iteritems(self.config):"},{"line_number":181,"context_line":"            scenario \u003d base_scenario.Scenario.get_scenario_by_name(key)"},{"line_number":182,"context_line":"            doc \u003d rutils.parse_docstring(scenario.__doc__)"},{"line_number":183,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":184,"context_line":"            for v in values:"},{"line_number":185,"context_line":"                v[\"description\"] \u003d v.get(\"description\", {})"},{"line_number":186,"context_line":"                # Add scenario description"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_bcfa5973","line":183,"in_reply_to":"1a4dcd0f_8d48bab4","updated":"2015-08-14 03:04:06.000000000","message":"Removed","commit_id":"e404bd3327f1e02df82ec7f82a7d4fd62c0c06c5"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"811d8ddf8eb19f4d853c569c668a098ef174bb8f","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            doc \u003d rutils.parse_docstring(scenario_cls.__doc__)"},{"line_number":183,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":184,"context_line":"            for v in values:"},{"line_number":185,"context_line":"                v[\"description\"] \u003d v.get(\"description\", {})"},{"line_number":186,"context_line":"                # Add scenario description"},{"line_number":187,"context_line":"                v[\"description\"][\"scenario\"] \u003d description"},{"line_number":188,"context_line":"                # Add sla docstring as description"}],"source_content_type":"text/x-python","patch_set":17,"id":"fa1b9901_f3b9a02f","line":185,"updated":"2015-08-18 09:27:24.000000000","message":"This assignment is implicit: `v\u0027 is changed but actually it\u0027s `self.config\u0027","commit_id":"9cfcbb40fe2f7c58fbc5206cea7793e64b40cf6f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f27b54a4823c97e44b25e2777488ee6636dd5878","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            doc \u003d rutils.parse_docstring(scenario_cls.__doc__)"},{"line_number":183,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":184,"context_line":"            for v in values:"},{"line_number":185,"context_line":"                v[\"description\"] \u003d v.get(\"description\", {})"},{"line_number":186,"context_line":"                # Add scenario description"},{"line_number":187,"context_line":"                v[\"description\"][\"scenario\"] \u003d description"},{"line_number":188,"context_line":"                # Add sla docstring as description"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_43362a52","line":185,"in_reply_to":"fa1b9901_f3b9a02f","updated":"2015-09-11 01:52:19.000000000","message":"Done","commit_id":"9cfcbb40fe2f7c58fbc5206cea7793e64b40cf6f"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"811d8ddf8eb19f4d853c569c668a098ef174bb8f","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                # Add context docstring as description"},{"line_number":196,"context_line":"                if v.get(\"context\"):"},{"line_number":197,"context_line":"                    v[\"description\"][\"context\"] \u003d {}"},{"line_number":198,"context_line":"                for name in v.get(\"context\", {}).keys():"},{"line_number":199,"context_line":"                    context_doc \u003d ("},{"line_number":200,"context_line":"                        rutils.parse_docstring("},{"line_number":201,"context_line":"                            context.Context.get(name).__doc__))"}],"source_content_type":"text/x-python","patch_set":17,"id":"fa1b9901_33de386e","line":198,"updated":"2015-08-18 09:27:24.000000000","message":"keys() is not required, dict is iterated over keys by default","commit_id":"9cfcbb40fe2f7c58fbc5206cea7793e64b40cf6f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f27b54a4823c97e44b25e2777488ee6636dd5878","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                # Add context docstring as description"},{"line_number":196,"context_line":"                if v.get(\"context\"):"},{"line_number":197,"context_line":"                    v[\"description\"][\"context\"] \u003d {}"},{"line_number":198,"context_line":"                for name in v.get(\"context\", {}).keys():"},{"line_number":199,"context_line":"                    context_doc \u003d ("},{"line_number":200,"context_line":"                        rutils.parse_docstring("},{"line_number":201,"context_line":"                            context.Context.get(name).__doc__))"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_033d922a","line":198,"in_reply_to":"fa1b9901_33de386e","updated":"2015-09-11 01:52:19.000000000","message":"Done","commit_id":"9cfcbb40fe2f7c58fbc5206cea7793e64b40cf6f"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"5674233b9cf99c2f59571f95236a58bc92bae5a8","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                    name, doc.get(\"short_description\", \"\")))"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    def _add_description(self):"},{"line_number":193,"context_line":"        # Add description to scenario configuration from docstring."},{"line_number":194,"context_line":"        for key, values in six.iteritems(self.config):"},{"line_number":195,"context_line":"            scenario_cls \u003d scenario.Scenario.get(key)"},{"line_number":196,"context_line":"            doc \u003d rutils.parse_docstring(scenario_cls.__doc__)"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba15a1d1_881ea7b9","line":193,"updated":"2015-09-16 10:35:07.000000000","message":"that\u0027s a method docstring. It should be in \"\"\" and not as a comment.","commit_id":"aaceeb9b6414d75b89eb2c801dc410592578442d"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"d7a85ff4d2bf3c0a49dd8f09def8bccddc681d3a","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                    name, doc.get(\"short_description\", \"\")))"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    def _add_description(self):"},{"line_number":193,"context_line":"        # Add description to scenario configuration from docstring."},{"line_number":194,"context_line":"        for key, values in six.iteritems(self.config):"},{"line_number":195,"context_line":"            scenario_cls \u003d scenario.Scenario.get(key)"},{"line_number":196,"context_line":"            doc \u003d rutils.parse_docstring(scenario_cls.__doc__)"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba15a1d1_2f551af9","line":193,"in_reply_to":"ba15a1d1_881ea7b9","updated":"2015-09-16 13:14:21.000000000","message":"Done","commit_id":"aaceeb9b6414d75b89eb2c801dc410592578442d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"5674233b9cf99c2f59571f95236a58bc92bae5a8","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        for key, values in six.iteritems(self.config):"},{"line_number":195,"context_line":"            scenario_cls \u003d scenario.Scenario.get(key)"},{"line_number":196,"context_line":"            doc \u003d rutils.parse_docstring(scenario_cls.__doc__)"},{"line_number":197,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":198,"context_line":"            for i in range(len(values)):"},{"line_number":199,"context_line":"                v \u003d self.config[key][i]"},{"line_number":200,"context_line":"                self.config[key][i][\"description\"] \u003d v.get(\"description\", {})"},{"line_number":201,"context_line":"                # Add scenario description"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba15a1d1_0b1e115f","line":198,"range":{"start_line":197,"start_character":0,"end_line":198,"end_character":40},"updated":"2015-09-16 10:35:07.000000000","message":"wouldn\u0027t this work better?\n\n  for i, v in enum(values)\n\nWhy do you need \"i\" at all?","commit_id":"aaceeb9b6414d75b89eb2c801dc410592578442d"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"d7a85ff4d2bf3c0a49dd8f09def8bccddc681d3a","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            scenario_cls \u003d scenario.Scenario.get(key)"},{"line_number":196,"context_line":"            doc \u003d rutils.parse_docstring(scenario_cls.__doc__)"},{"line_number":197,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":198,"context_line":"            for i in range(len(values)):"},{"line_number":199,"context_line":"                v \u003d self.config[key][i]"},{"line_number":200,"context_line":"                self.config[key][i][\"description\"] \u003d v.get(\"description\", {})"},{"line_number":201,"context_line":"                # Add scenario description"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba15a1d1_0f4b762b","line":198,"in_reply_to":"ba15a1d1_0b1e115f","updated":"2015-09-16 13:14:21.000000000","message":"Done","commit_id":"aaceeb9b6414d75b89eb2c801dc410592578442d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"5674233b9cf99c2f59571f95236a58bc92bae5a8","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            doc \u003d rutils.parse_docstring(scenario_cls.__doc__)"},{"line_number":197,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":198,"context_line":"            for i in range(len(values)):"},{"line_number":199,"context_line":"                v \u003d self.config[key][i]"},{"line_number":200,"context_line":"                self.config[key][i][\"description\"] \u003d v.get(\"description\", {})"},{"line_number":201,"context_line":"                # Add scenario description"},{"line_number":202,"context_line":"                self.config[key][i][\"description\"][\"scenario\"] \u003d ("}],"source_content_type":"text/x-python","patch_set":19,"id":"ba15a1d1_0bdb7150","line":199,"updated":"2015-09-16 10:35:07.000000000","message":"after this line, you can replace all references to \"self.config[key][i]\" with \"v\", which makes this whole block hard to understand.","commit_id":"aaceeb9b6414d75b89eb2c801dc410592578442d"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"d7a85ff4d2bf3c0a49dd8f09def8bccddc681d3a","unresolved":false,"context_lines":[{"line_number":196,"context_line":"            doc \u003d rutils.parse_docstring(scenario_cls.__doc__)"},{"line_number":197,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":198,"context_line":"            for i in range(len(values)):"},{"line_number":199,"context_line":"                v \u003d self.config[key][i]"},{"line_number":200,"context_line":"                self.config[key][i][\"description\"] \u003d v.get(\"description\", {})"},{"line_number":201,"context_line":"                # Add scenario description"},{"line_number":202,"context_line":"                self.config[key][i][\"description\"][\"scenario\"] \u003d ("}],"source_content_type":"text/x-python","patch_set":19,"id":"ba15a1d1_6f0792ca","line":199,"in_reply_to":"ba15a1d1_0bdb7150","updated":"2015-09-16 13:14:21.000000000","message":"Done","commit_id":"aaceeb9b6414d75b89eb2c801dc410592578442d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"5674233b9cf99c2f59571f95236a58bc92bae5a8","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":198,"context_line":"            for i in range(len(values)):"},{"line_number":199,"context_line":"                v \u003d self.config[key][i]"},{"line_number":200,"context_line":"                self.config[key][i][\"description\"] \u003d v.get(\"description\", {})"},{"line_number":201,"context_line":"                # Add scenario description"},{"line_number":202,"context_line":"                self.config[key][i][\"description\"][\"scenario\"] \u003d ("},{"line_number":203,"context_line":"                    v[\"description\"].get(\"scenario\", description))"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba15a1d1_4b9de9ba","line":200,"range":{"start_line":200,"start_character":16,"end_line":200,"end_character":35},"updated":"2015-09-16 10:35:07.000000000","message":"This seems wrong. IIUC, this is actually:\n\n  v.setdefault(\"description\", {})","commit_id":"aaceeb9b6414d75b89eb2c801dc410592578442d"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"d7a85ff4d2bf3c0a49dd8f09def8bccddc681d3a","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":198,"context_line":"            for i in range(len(values)):"},{"line_number":199,"context_line":"                v \u003d self.config[key][i]"},{"line_number":200,"context_line":"                self.config[key][i][\"description\"] \u003d v.get(\"description\", {})"},{"line_number":201,"context_line":"                # Add scenario description"},{"line_number":202,"context_line":"                self.config[key][i][\"description\"][\"scenario\"] \u003d ("},{"line_number":203,"context_line":"                    v[\"description\"].get(\"scenario\", description))"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba15a1d1_cf67beb5","line":200,"in_reply_to":"ba15a1d1_4b9de9ba","updated":"2015-09-16 13:14:21.000000000","message":"Done","commit_id":"aaceeb9b6414d75b89eb2c801dc410592578442d"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"5674233b9cf99c2f59571f95236a58bc92bae5a8","unresolved":false,"context_lines":[{"line_number":199,"context_line":"                v \u003d self.config[key][i]"},{"line_number":200,"context_line":"                self.config[key][i][\"description\"] \u003d v.get(\"description\", {})"},{"line_number":201,"context_line":"                # Add scenario description"},{"line_number":202,"context_line":"                self.config[key][i][\"description\"][\"scenario\"] \u003d ("},{"line_number":203,"context_line":"                    v[\"description\"].get(\"scenario\", description))"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"                # Add plugins description"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba15a1d1_2be0b5f9","line":202,"updated":"2015-09-16 10:35:07.000000000","message":"ditto","commit_id":"aaceeb9b6414d75b89eb2c801dc410592578442d"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"d7a85ff4d2bf3c0a49dd8f09def8bccddc681d3a","unresolved":false,"context_lines":[{"line_number":199,"context_line":"                v \u003d self.config[key][i]"},{"line_number":200,"context_line":"                self.config[key][i][\"description\"] \u003d v.get(\"description\", {})"},{"line_number":201,"context_line":"                # Add scenario description"},{"line_number":202,"context_line":"                self.config[key][i][\"description\"][\"scenario\"] \u003d ("},{"line_number":203,"context_line":"                    v[\"description\"].get(\"scenario\", description))"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"                # Add plugins description"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba15a1d1_8f0c66ee","line":202,"in_reply_to":"ba15a1d1_2be0b5f9","updated":"2015-09-16 13:14:21.000000000","message":"Done","commit_id":"aaceeb9b6414d75b89eb2c801dc410592578442d"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a66af224a0c8f2df2f83c8358b9634ef1748e349","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        self.existing_users \u003d users or []"},{"line_number":177,"context_line":"        self.abort_on_sla_failure \u003d abort_on_sla_failure"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def _fetch_plugin_description(self, cls, plugin, value):"},{"line_number":180,"context_line":"        value[\"description\"].setdefault(plugin, {})"},{"line_number":181,"context_line":"        names \u003d []"},{"line_number":182,"context_line":"        if plugin \u003d\u003d \"runner\" and value[\"runner\"].get(\"type\"):"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba15a1d1_a08a9019","line":179,"updated":"2015-09-16 16:20:51.000000000","message":"\"value\" should be a more descriptive name. Below I propose \"subtask,\" which I think would work here too.","commit_id":"0a26d4d1876b006c52ccc84070d63c16f3109f62"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"8b9e40f2fac8bf843641416c15065a4a229cda64","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        self.existing_users \u003d users or []"},{"line_number":177,"context_line":"        self.abort_on_sla_failure \u003d abort_on_sla_failure"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def _fetch_plugin_description(self, cls, plugin, value):"},{"line_number":180,"context_line":"        value[\"description\"].setdefault(plugin, {})"},{"line_number":181,"context_line":"        names \u003d []"},{"line_number":182,"context_line":"        if plugin \u003d\u003d \"runner\" and value[\"runner\"].get(\"type\"):"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba15a1d1_cd5c8d7f","line":179,"in_reply_to":"ba15a1d1_a08a9019","updated":"2015-09-17 00:58:48.000000000","message":"Done","commit_id":"0a26d4d1876b006c52ccc84070d63c16f3109f62"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a66af224a0c8f2df2f83c8358b9634ef1748e349","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            scenario_cls \u003d scenario.Scenario.get(key)"},{"line_number":198,"context_line":"            doc \u003d rutils.parse_docstring(scenario_cls.__doc__)"},{"line_number":199,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":200,"context_line":"            for i, v in enumerate(values):"},{"line_number":201,"context_line":"                v.setdefault(\"description\", {})"},{"line_number":202,"context_line":"                # Add scenario description"},{"line_number":203,"context_line":"                v[\"description\"].setdefault(\"scenario\", description)"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba15a1d1_8012ec07","line":200,"updated":"2015-09-16 16:20:51.000000000","message":"AFAICT, enumerate isn\u0027t necessary here; I don\u0027t see where you use \u0027i\u0027 below.\n\nAlso, please use a real variable name instead of \u0027v\u0027. In this case I think \u0027v\u0027 holds a subtask, so maybe \u0027subtask\u0027?","commit_id":"0a26d4d1876b006c52ccc84070d63c16f3109f62"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"8b9e40f2fac8bf843641416c15065a4a229cda64","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            scenario_cls \u003d scenario.Scenario.get(key)"},{"line_number":198,"context_line":"            doc \u003d rutils.parse_docstring(scenario_cls.__doc__)"},{"line_number":199,"context_line":"            description \u003d doc.get(\"short_description\", \"\")"},{"line_number":200,"context_line":"            for i, v in enumerate(values):"},{"line_number":201,"context_line":"                v.setdefault(\"description\", {})"},{"line_number":202,"context_line":"                # Add scenario description"},{"line_number":203,"context_line":"                v[\"description\"].setdefault(\"scenario\", description)"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba15a1d1_4d1b9dca","line":200,"in_reply_to":"ba15a1d1_8012ec07","updated":"2015-09-17 00:58:48.000000000","message":"Done","commit_id":"0a26d4d1876b006c52ccc84070d63c16f3109f62"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a66af224a0c8f2df2f83c8358b9634ef1748e349","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                for plugin in [(\"sla\", sla.SLA), (\"context\", context.Context),"},{"line_number":207,"context_line":"                               (\"runner\", runner.ScenarioRunner)]:"},{"line_number":208,"context_line":"                    if v.get(plugin[0]):"},{"line_number":209,"context_line":"                        self._fetch_plugin_description(plugin[1], plugin[0], v)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @rutils.log_task_wrapper(LOG.info, _(\"Task validation check cloud.\"))"},{"line_number":212,"context_line":"    def _check_cloud(self):"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba15a1d1_0016dcf0","line":209,"updated":"2015-09-16 16:20:51.000000000","message":"Use two variables instead of plugin[0]/plugin[1], e.g.:\n\n    for plugin_type, plugin_cls in [...]:\n        if subtask.get(plugin_type):\n            self._fetch_plugin_description(plugin_cls, plugin_type, subtask)","commit_id":"0a26d4d1876b006c52ccc84070d63c16f3109f62"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"8b9e40f2fac8bf843641416c15065a4a229cda64","unresolved":false,"context_lines":[{"line_number":206,"context_line":"                for plugin in [(\"sla\", sla.SLA), (\"context\", context.Context),"},{"line_number":207,"context_line":"                               (\"runner\", runner.ScenarioRunner)]:"},{"line_number":208,"context_line":"                    if v.get(plugin[0]):"},{"line_number":209,"context_line":"                        self._fetch_plugin_description(plugin[1], plugin[0], v)"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @rutils.log_task_wrapper(LOG.info, _(\"Task validation check cloud.\"))"},{"line_number":212,"context_line":"    def _check_cloud(self):"}],"source_content_type":"text/x-python","patch_set":20,"id":"ba15a1d1_ad57d958","line":209,"in_reply_to":"ba15a1d1_0016dcf0","updated":"2015-09-17 00:58:48.000000000","message":"Done","commit_id":"0a26d4d1876b006c52ccc84070d63c16f3109f62"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"396ebaaeca00506e99d6a3da01e20149574792ad","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.existing_users \u003d users or []"},{"line_number":213,"context_line":"        self.abort_on_sla_failure \u003d abort_on_sla_failure"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def _fetch_task_description(self):"},{"line_number":216,"context_line":"        \"\"\"Fetch task description to task config.\"\"\""},{"line_number":217,"context_line":"        for key, values in six.iteritems(self.config):"},{"line_number":218,"context_line":"            scenario_cls \u003d scenario.Scenario.get(key)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ba15a1d1_d052ce66","line":215,"updated":"2015-09-24 03:15:40.000000000","message":"actually this function is used to set default description, not fetch something","commit_id":"64ef90ee8cb7e85ccbb116a74d46f230c76c525a"},{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"396ebaaeca00506e99d6a3da01e20149574792ad","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        self.abort_on_sla_failure \u003d abort_on_sla_failure"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def _fetch_task_description(self):"},{"line_number":216,"context_line":"        \"\"\"Fetch task description to task config.\"\"\""},{"line_number":217,"context_line":"        for key, values in six.iteritems(self.config):"},{"line_number":218,"context_line":"            scenario_cls \u003d scenario.Scenario.get(key)"},{"line_number":219,"context_line":"            description \u003d scenario_cls.get_info().get(\"title\", \"\")"}],"source_content_type":"text/x-python","patch_set":24,"id":"ba15a1d1_d06bae1c","line":216,"updated":"2015-09-24 03:15:40.000000000","message":"s/to/from","commit_id":"64ef90ee8cb7e85ccbb116a74d46f230c76c525a"}],"rally/task/processing/plot.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"58d445922f14183ffbb82c25482d31f35edb6ed8","unresolved":false,"context_lines":[{"line_number":283,"context_line":"            source_dict[scenario_name] \u003d [kw]"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        for sla in data[\"sla\"]:"},{"line_number":286,"context_line":"            if kw.get(\"description\"):"},{"line_number":287,"context_line":"                sla[\"description\"] \u003d kw[\"description\"][\"sla\"][sla[\"criterion\"]]"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        description \u003d []"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a4dcd0f_7acb034b","line":286,"updated":"2015-08-15 23:24:09.000000000","message":"Lets change the order of lines 285 and 286. If we swap them, then we won\u0027t check if statement \u0027len(data[\"sla\"])\u0027 times.","commit_id":"8edfbff87dcc0e109541fb0a8fa1ebbe4d801e27"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b257a99c49440c29e0ffa1e0de5ac674a514105b","unresolved":false,"context_lines":[{"line_number":283,"context_line":"            source_dict[scenario_name] \u003d [kw]"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        for sla in data[\"sla\"]:"},{"line_number":286,"context_line":"            if kw.get(\"description\"):"},{"line_number":287,"context_line":"                sla[\"description\"] \u003d kw[\"description\"][\"sla\"][sla[\"criterion\"]]"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        description \u003d []"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a4dcd0f_0b586955","line":286,"in_reply_to":"1a4dcd0f_7acb034b","updated":"2015-08-17 02:04:43.000000000","message":"Done","commit_id":"8edfbff87dcc0e109541fb0a8fa1ebbe4d801e27"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"58d445922f14183ffbb82c25482d31f35edb6ed8","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                sla[\"description\"] \u003d kw[\"description\"][\"sla\"][sla[\"criterion\"]]"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        description \u003d []"},{"line_number":290,"context_line":"        for key, value in six.iteritems(kw.get(\"description\", {})):"},{"line_number":291,"context_line":"            if key \u003d\u003d \"scenario\":"},{"line_number":292,"context_line":"                description.append({\"key\": key, \"description\": value})"},{"line_number":293,"context_line":"            if key in [\"runner\", \"context\"]:"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a4dcd0f_9a584f8c","line":290,"updated":"2015-08-15 23:24:09.000000000","message":"I think we could dispose off this for statement. It will decrease time complexity of this snippet of code. And will reduce number of nested for statement.","commit_id":"8edfbff87dcc0e109541fb0a8fa1ebbe4d801e27"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b257a99c49440c29e0ffa1e0de5ac674a514105b","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                sla[\"description\"] \u003d kw[\"description\"][\"sla\"][sla[\"criterion\"]]"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        description \u003d []"},{"line_number":290,"context_line":"        for key, value in six.iteritems(kw.get(\"description\", {})):"},{"line_number":291,"context_line":"            if key \u003d\u003d \"scenario\":"},{"line_number":292,"context_line":"                description.append({\"key\": key, \"description\": value})"},{"line_number":293,"context_line":"            if key in [\"runner\", \"context\"]:"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a4dcd0f_86aa3084","line":290,"in_reply_to":"1a4dcd0f_9a584f8c","updated":"2015-08-17 02:04:43.000000000","message":"Using \u003ch3\u003e in report.mako as suggested, so line 289-296 is no longer needed. Removed.","commit_id":"8edfbff87dcc0e109541fb0a8fa1ebbe4d801e27"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"58d445922f14183ffbb82c25482d31f35edb6ed8","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        description \u003d []"},{"line_number":290,"context_line":"        for key, value in six.iteritems(kw.get(\"description\", {})):"},{"line_number":291,"context_line":"            if key \u003d\u003d \"scenario\":"},{"line_number":292,"context_line":"                description.append({\"key\": key, \"description\": value})"},{"line_number":293,"context_line":"            if key in [\"runner\", \"context\"]:"},{"line_number":294,"context_line":"                for k, v in six.iteritems(value):"},{"line_number":295,"context_line":"                    description.append({\"key\": key + \".\" + k,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a4dcd0f_1a767f06","line":292,"updated":"2015-08-15 23:24:09.000000000","message":"At least at the code without knowing of context looks strange to see in dict key \u0027key\u0027 maybe we will name it... Lets \u0027description_type\u0027, for example.","commit_id":"8edfbff87dcc0e109541fb0a8fa1ebbe4d801e27"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"58d445922f14183ffbb82c25482d31f35edb6ed8","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            if key in [\"runner\", \"context\"]:"},{"line_number":294,"context_line":"                for k, v in six.iteritems(value):"},{"line_number":295,"context_line":"                    description.append({\"key\": key + \".\" + k,"},{"line_number":296,"context_line":"                                        \"description\": v})"},{"line_number":297,"context_line":"        output.append({"},{"line_number":298,"context_line":"            \"cls\": cls,"},{"line_number":299,"context_line":"            \"met\": met,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a4dcd0f_bad2ebcf","line":296,"updated":"2015-08-15 23:24:09.000000000","message":"Also I think it would be great if we will output at the page contexts in order of there execution. Lets sort them by order of execution not in lexicographic order if its possible.","commit_id":"8edfbff87dcc0e109541fb0a8fa1ebbe4d801e27"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"58d445922f14183ffbb82c25482d31f35edb6ed8","unresolved":false,"context_lines":[{"line_number":301,"context_line":"            \"name\": name,"},{"line_number":302,"context_line":"            \"runner\": kw[\"runner\"][\"type\"],"},{"line_number":303,"context_line":"            \"config\": json.dumps({scenario_name: [kw]}, indent\u003d2),"},{"line_number":304,"context_line":"            \"description\": sorted(description),"},{"line_number":305,"context_line":"            \"iterations\": _process_main_duration(result, data),"},{"line_number":306,"context_line":"            \"atomic\": _process_atomic(result, data),"},{"line_number":307,"context_line":"            \"table_cols\": table_cols,"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a4dcd0f_bab18be2","line":304,"updated":"2015-08-15 23:24:09.000000000","message":"I think you will notice here py34 error\u003d)","commit_id":"8edfbff87dcc0e109541fb0a8fa1ebbe4d801e27"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"811d8ddf8eb19f4d853c569c668a098ef174bb8f","unresolved":false,"context_lines":[{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        if kw.get(\"description\"):"},{"line_number":286,"context_line":"            for sla in data[\"sla\"]:"},{"line_number":287,"context_line":"                sla[\"description\"] \u003d kw[\"description\"][\"sla\"][sla[\"criterion\"]]"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        output.append({"},{"line_number":290,"context_line":"            \"cls\": cls,"}],"source_content_type":"text/x-python","patch_set":17,"id":"fa1b9901_187f93ab","line":287,"updated":"2015-08-18 09:27:24.000000000","message":"Please use explicit assignment:\n\n data[\"sla\"][sla] \u003d ...","commit_id":"9cfcbb40fe2f7c58fbc5206cea7793e64b40cf6f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f27b54a4823c97e44b25e2777488ee6636dd5878","unresolved":false,"context_lines":[{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        if kw.get(\"description\"):"},{"line_number":286,"context_line":"            for sla in data[\"sla\"]:"},{"line_number":287,"context_line":"                sla[\"description\"] \u003d kw[\"description\"][\"sla\"][sla[\"criterion\"]]"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        output.append({"},{"line_number":290,"context_line":"            \"cls\": cls,"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_c38c7ad9","line":287,"in_reply_to":"fa1b9901_187f93ab","updated":"2015-09-11 01:52:19.000000000","message":"Done","commit_id":"9cfcbb40fe2f7c58fbc5206cea7793e64b40cf6f"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"a66af224a0c8f2df2f83c8358b9634ef1748e349","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    kw \u003d data[\"key\"][\"kw\"]"},{"line_number":49,"context_line":"    cls, method \u003d data[\"key\"][\"name\"].split(\".\")"},{"line_number":50,"context_line":"    if kw.get(\"description\"):"},{"line_number":51,"context_line":"        for i in range(len(data[\"sla\"])):"},{"line_number":52,"context_line":"            desc \u003d kw[\"description\"][\"sla\"][data[\"sla\"][i][\"criterion\"]]"},{"line_number":53,"context_line":"            data[\"sla\"][i][\"description\"] \u003d desc"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"ba15a1d1_20576059","line":51,"updated":"2015-09-16 16:20:51.000000000","message":"Why do you iterate over a range here? The only time you use \u0027i\u0027 in the loop is with reference to data[\"sla\"], so this could be:\n\n    for sla in data[\"sla\"]:\n        sla[\"description\"] \u003d kw[\"description\"][\"sla\"][sla[\"criterion\"]]","commit_id":"0a26d4d1876b006c52ccc84070d63c16f3109f62"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"8b9e40f2fac8bf843641416c15065a4a229cda64","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    kw \u003d data[\"key\"][\"kw\"]"},{"line_number":49,"context_line":"    cls, method \u003d data[\"key\"][\"name\"].split(\".\")"},{"line_number":50,"context_line":"    if kw.get(\"description\"):"},{"line_number":51,"context_line":"        for i in range(len(data[\"sla\"])):"},{"line_number":52,"context_line":"            desc \u003d kw[\"description\"][\"sla\"][data[\"sla\"][i][\"criterion\"]]"},{"line_number":53,"context_line":"            data[\"sla\"][i][\"description\"] \u003d desc"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"ba15a1d1_ad091986","line":51,"in_reply_to":"ba15a1d1_20576059","updated":"2015-09-17 00:58:48.000000000","message":"Done","commit_id":"0a26d4d1876b006c52ccc84070d63c16f3109f62"}],"rally/ui/templates/task/report.mako":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"58d445922f14183ffbb82c25482d31f35edb6ed8","unresolved":false,"context_lines":[{"line_number":524,"context_line":"          \u003ctable class\u003d\"striped\"\u003e"},{"line_number":525,"context_line":"            \u003ctbody\u003e"},{"line_number":526,"context_line":"              \u003ctr class\u003d\"rich\""},{"line_number":527,"context_line":"                  ng-repeat\u003d\"row in scenario.description track by $index\"\u003e"},{"line_number":528,"context_line":"                \u003ctd\u003e{{row.key}}"},{"line_number":529,"context_line":"                \u003ctd\u003e{{row.description}}"},{"line_number":530,"context_line":"              \u003ctr\u003e"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"1a4dcd0f_fab713d5","line":527,"updated":"2015-08-15 23:24:09.000000000","message":"Maybe we need to add \u003ch3\u003eUsed contexts\u003c/h3\u003e \u003ch3\u003eRunner\u003c/h3\u003e  \u003ch3\u003eScenario\u003c/h3\u003e ? As for me in case of multiple contexts in scenario, in the first column repeated prefix \"context.\" is a bit annoying.","commit_id":"8edfbff87dcc0e109541fb0a8fa1ebbe4d801e27"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b257a99c49440c29e0ffa1e0de5ac674a514105b","unresolved":false,"context_lines":[{"line_number":524,"context_line":"          \u003ctable class\u003d\"striped\"\u003e"},{"line_number":525,"context_line":"            \u003ctbody\u003e"},{"line_number":526,"context_line":"              \u003ctr class\u003d\"rich\""},{"line_number":527,"context_line":"                  ng-repeat\u003d\"row in scenario.description track by $index\"\u003e"},{"line_number":528,"context_line":"                \u003ctd\u003e{{row.key}}"},{"line_number":529,"context_line":"                \u003ctd\u003e{{row.description}}"},{"line_number":530,"context_line":"              \u003ctr\u003e"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"1a4dcd0f_0655c0c4","line":527,"in_reply_to":"1a4dcd0f_fab713d5","updated":"2015-08-17 02:04:43.000000000","message":"Done","commit_id":"8edfbff87dcc0e109541fb0a8fa1ebbe4d801e27"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"87d97fc29b15be22e90cae558913c9f5797525a4","unresolved":false,"context_lines":[{"line_number":534,"context_line":"            \u003cdiv ng-show\u003d\"scenario.description.runner\"\u003e"},{"line_number":535,"context_line":"              \u003ch3\u003eRunner\u003c/h3\u003e"},{"line_number":536,"context_line":"              \u003cdiv ng-repeat\u003d\"(key, value) in scenario.description.runner\"\u003e"},{"line_number":537,"context_line":"                \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003cb\u003e- {{key}}:\u003c/b\u003e {{value}}"},{"line_number":538,"context_line":"              \u003c/div\u003e"},{"line_number":539,"context_line":"            \u003c/div\u003e"},{"line_number":540,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":17,"id":"fa1b9901_f36c409e","line":537,"updated":"2015-08-18 09:29:45.000000000","message":"You can use css or even inline style instead of repeating \u0026nbsp;\n\nExample:\n\n \u003cb style\u003d\"padding-left:15px\"\u003e{{key}}:\u003c/b\u003e {{value}}","commit_id":"9cfcbb40fe2f7c58fbc5206cea7793e64b40cf6f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f27b54a4823c97e44b25e2777488ee6636dd5878","unresolved":false,"context_lines":[{"line_number":534,"context_line":"            \u003cdiv ng-show\u003d\"scenario.description.runner\"\u003e"},{"line_number":535,"context_line":"              \u003ch3\u003eRunner\u003c/h3\u003e"},{"line_number":536,"context_line":"              \u003cdiv ng-repeat\u003d\"(key, value) in scenario.description.runner\"\u003e"},{"line_number":537,"context_line":"                \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003cb\u003e- {{key}}:\u003c/b\u003e {{value}}"},{"line_number":538,"context_line":"              \u003c/div\u003e"},{"line_number":539,"context_line":"            \u003c/div\u003e"},{"line_number":540,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":17,"id":"da20952f_e35e5e44","line":537,"in_reply_to":"fa1b9901_f36c409e","updated":"2015-09-11 01:52:19.000000000","message":"Done","commit_id":"9cfcbb40fe2f7c58fbc5206cea7793e64b40cf6f"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"811d8ddf8eb19f4d853c569c668a098ef174bb8f","unresolved":false,"context_lines":[{"line_number":554,"context_line":"                    ng-repeat\u003d\"row in scenario.sla track by $index\""},{"line_number":555,"context_line":"                    ng-class\u003d\"{\u0027status-fail\u0027:!row.success, \u0027status-pass\u0027:row.success}\"\u003e"},{"line_number":556,"context_line":"                  \u003ctd\u003e{{row.criterion}}"},{"line_number":557,"context_line":"                  \u003ctd\u003e{{row.description}}"},{"line_number":558,"context_line":"                  \u003ctd\u003e{{row.detail}}"},{"line_number":559,"context_line":"                  \u003ctd class\u003d\"capitalize\"\u003e{{row.success}}"},{"line_number":560,"context_line":"                \u003ctr\u003e"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"fa1b9901_ad81874c","line":557,"updated":"2015-08-18 09:27:24.000000000","message":"I recommend moving this description into tooltip (html `title\u0027 attribute), because this information looks like supplementary, but takes a lot of place","commit_id":"9cfcbb40fe2f7c58fbc5206cea7793e64b40cf6f"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"f27b54a4823c97e44b25e2777488ee6636dd5878","unresolved":false,"context_lines":[{"line_number":554,"context_line":"                    ng-repeat\u003d\"row in scenario.sla track by $index\""},{"line_number":555,"context_line":"                    ng-class\u003d\"{\u0027status-fail\u0027:!row.success, \u0027status-pass\u0027:row.success}\"\u003e"},{"line_number":556,"context_line":"                  \u003ctd\u003e{{row.criterion}}"},{"line_number":557,"context_line":"                  \u003ctd\u003e{{row.description}}"},{"line_number":558,"context_line":"                  \u003ctd\u003e{{row.detail}}"},{"line_number":559,"context_line":"                  \u003ctd class\u003d\"capitalize\"\u003e{{row.success}}"},{"line_number":560,"context_line":"                \u003ctr\u003e"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"da20952f_9eb57933","line":557,"in_reply_to":"fa1b9901_ad81874c","updated":"2015-09-11 01:52:19.000000000","message":"Done","commit_id":"9cfcbb40fe2f7c58fbc5206cea7793e64b40cf6f"}]}
