)]}'
{"rally/plugins/openstack/scenarios/vm/vmtasks.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"c653f2be5d8a15311aa1fabffb36f7b79872b65e","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        # NOTE(amaretskiy): command output should be in format:"},{"line_number":194,"context_line":"        #     {\"key1\": numeric_value, \"key2\": numeric_value, ...}"},{"line_number":195,"context_line":"        output \u003d None"},{"line_number":196,"context_line":"        if type(data) \u003d\u003d dict:"},{"line_number":197,"context_line":"            try:"},{"line_number":198,"context_line":"                output \u003d [[str(k), float(v)] for k, v in data.items()]"},{"line_number":199,"context_line":"            except (TypeError, ValueError):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_e7c01d2d","line":196,"updated":"2016-05-24 13:53:13.000000000","message":"It\u0027s conceivable that a custom scenario could return some dict-like object (e.g., an OrderedDict), so we should check:\n\n    if hasattr(data, \"items\"):","commit_id":"de13fd6c3f09e789a304e529efb740a073a6403a"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"76db1d8880d52cede72597ade74d15ca938bad40","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        # NOTE(amaretskiy): command output should be in format:"},{"line_number":194,"context_line":"        #     {\"key1\": numeric_value, \"key2\": numeric_value, ...}"},{"line_number":195,"context_line":"        output \u003d None"},{"line_number":196,"context_line":"        if type(data) \u003d\u003d dict:"},{"line_number":197,"context_line":"            try:"},{"line_number":198,"context_line":"                output \u003d [[str(k), float(v)] for k, v in data.items()]"},{"line_number":199,"context_line":"            except (TypeError, ValueError):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_228cd334","line":196,"in_reply_to":"bab6814e_e7c01d2d","updated":"2016-05-24 14:00:26.000000000","message":"json.loads at L176 transforms json objects only into dicts","commit_id":"de13fd6c3f09e789a304e529efb740a073a6403a"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"c653f2be5d8a15311aa1fabffb36f7b79872b65e","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            try:"},{"line_number":198,"context_line":"                output \u003d [[str(k), float(v)] for k, v in data.items()]"},{"line_number":199,"context_line":"            except (TypeError, ValueError):"},{"line_number":200,"context_line":"                pass"},{"line_number":201,"context_line":"        if output:"},{"line_number":202,"context_line":"            self.add_output(additive\u003d{\"title\": \"Command output\","},{"line_number":203,"context_line":"                                      \"chart_plugin\": \"Lines\","}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_c725190b","line":200,"updated":"2016-05-24 13:53:13.000000000","message":"I don\u0027t like the way this discards all errors. We should at least log:\n\n1. If the output data type is wrong (e.g., a scenario produces a list); and\n\n2. If any data items have the wrong time (e.g., a non-numeric value or non-string key).","commit_id":"de13fd6c3f09e789a304e529efb740a073a6403a"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"686109db8cbba80b22535aa2b6c6feadf879e3d1","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            try:"},{"line_number":198,"context_line":"                output \u003d [[str(k), float(v)] for k, v in data.items()]"},{"line_number":199,"context_line":"            except (TypeError, ValueError):"},{"line_number":200,"context_line":"                pass"},{"line_number":201,"context_line":"        if output:"},{"line_number":202,"context_line":"            self.add_output(additive\u003d{\"title\": \"Command output\","},{"line_number":203,"context_line":"                                      \"chart_plugin\": \"Lines\","}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_7ddcbc46","line":200,"in_reply_to":"bab6814e_c725190b","updated":"2016-05-24 14:13:47.000000000","message":"Done","commit_id":"de13fd6c3f09e789a304e529efb740a073a6403a"},{"author":{"_account_id":7369,"name":"Sergey Skripnick","email":"sskripnick@mirantis.com","username":"redixin"},"change_message_id":"cce03c0aa3469451c3b309b9ab79dfe60dc4d967","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            if wait_for_ping:"},{"line_number":165,"context_line":"                self._wait_for_ping(fip[\"ip\"])"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            code, out, err \u003d self._run_command("},{"line_number":168,"context_line":"                fip[\"ip\"], port, username, password, command\u003dcommand)"},{"line_number":169,"context_line":"            if code:"},{"line_number":170,"context_line":"                raise exceptions.ScriptError("}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_f83525db","line":167,"updated":"2016-05-25 11:54:37.000000000","message":"This patch does not fixes the bug. Contents of \u0027err\u0027 should be stored in any case, and user should be able to see it.","commit_id":"7e306d64d160245e16f033dd467411a3c8276462"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"278edb3e83d9f2ee685f0019a9594323ebc90250","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            if wait_for_ping:"},{"line_number":165,"context_line":"                self._wait_for_ping(fip[\"ip\"])"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            code, out, err \u003d self._run_command("},{"line_number":168,"context_line":"                fip[\"ip\"], port, username, password, command\u003dcommand)"},{"line_number":169,"context_line":"            if code:"},{"line_number":170,"context_line":"                raise exceptions.ScriptError("}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_d86dc105","line":167,"in_reply_to":"bab6814e_78e015cd","updated":"2016-05-25 12:07:22.000000000","message":"Done","commit_id":"7e306d64d160245e16f033dd467411a3c8276462"},{"author":{"_account_id":7369,"name":"Sergey Skripnick","email":"sskripnick@mirantis.com","username":"redixin"},"change_message_id":"14d84ea5d1c09b4964cc05413bbcabb6bd733309","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            if wait_for_ping:"},{"line_number":165,"context_line":"                self._wait_for_ping(fip[\"ip\"])"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            code, out, err \u003d self._run_command("},{"line_number":168,"context_line":"                fip[\"ip\"], port, username, password, command\u003dcommand)"},{"line_number":169,"context_line":"            if code:"},{"line_number":170,"context_line":"                raise exceptions.ScriptError("}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_78e015cd","line":167,"in_reply_to":"bab6814e_9837b9af","updated":"2016-05-25 12:01:31.000000000","message":"So please remove \"Closes-Bug\" from commit message","commit_id":"7e306d64d160245e16f033dd467411a3c8276462"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"4fa9295afffc2e1d5b1a0e98b35ec0872ac79b78","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            if wait_for_ping:"},{"line_number":165,"context_line":"                self._wait_for_ping(fip[\"ip\"])"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"            code, out, err \u003d self._run_command("},{"line_number":168,"context_line":"                fip[\"ip\"], port, username, password, command\u003dcommand)"},{"line_number":169,"context_line":"            if code:"},{"line_number":170,"context_line":"                raise exceptions.ScriptError("}],"source_content_type":"text/x-python","patch_set":3,"id":"bab6814e_9837b9af","line":167,"in_reply_to":"bab6814e_f83525db","updated":"2016-05-25 11:58:01.000000000","message":"We can not display this in HTML report right now because we do not have text widget in OutputCharts (however I\u0027m going to add it later).\n\nAgree that `err\u0027 should be at least saved, but it is not possible right now. Let\u0027s not block this change, especially because old feature did not show err in report as well.","commit_id":"7e306d64d160245e16f033dd467411a3c8276462"}]}
