)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7227,"name":"Timur Nurlygayanov","email":"tnurlygayanov@mirantis.com","username":"tnurlygayanov"},"change_message_id":"6295c35d6186835819f3ae4d964bccc5a71d8958","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     kairat_kushaev \u003ckkushaev@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-12 13:05:12 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Pass parameters, files and env  for heat stacks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Some heat templates can contain parameters, files and"},{"line_number":10,"context_line":"environment dependencies that cannot be used with the current"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a0c5dc1_ffe755aa","line":7,"updated":"2015-05-12 11:49:06.000000000","message":"extra white space in the first string","commit_id":"f23fe67368837a8ae7edd453a14bdcc2dfb0eea7"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"18ef0a8f86d6270ebcf844cdc59b4edb74b99692","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     kairat_kushaev \u003ckkushaev@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-27 12:30:23 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Pass parameters, files and env  for heat stacks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Some heat templates can contain parameters, files and"},{"line_number":10,"context_line":"environment dependencies that cannot be used with the current"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7a016987_0a04ad15","line":7,"updated":"2015-05-29 00:53:26.000000000","message":"Please prefix with \"[Heat]\"","commit_id":"815fcb9b566d0f1526e8e502efb79c29dc0714e6"}],"rally/benchmark/scenarios/heat/stacks.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"0a77ff9a69c861d8e387efc8e8d4262442405071","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":32,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"heat\"]})"},{"line_number":33,"context_line":"    def create_and_list_stack(self, template_path, parameters\u003dNone,"},{"line_number":34,"context_line":"                              files\u003dNone, environment\u003dNone):"},{"line_number":35,"context_line":"        \"\"\"Add a stack and then list all stacks."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        Measure the \"heat stack-create\" and \"heat stack-list\" commands"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_c39fe4b2","line":34,"updated":"2015-05-03 03:01:49.000000000","message":"are you sure that we need to pass readed files and not just paths?","commit_id":"4cd860ee2a8cd5a8ff8a405597c6c7123df1ba1f"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"81d1e2780fbb085b9e61a5ce336eb8690d81eacc","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":32,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"heat\"]})"},{"line_number":33,"context_line":"    def create_and_list_stack(self, template_path, parameters\u003dNone,"},{"line_number":34,"context_line":"                              files\u003dNone, environment\u003dNone):"},{"line_number":35,"context_line":"        \"\"\"Add a stack and then list all stacks."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        Measure the \"heat stack-create\" and \"heat stack-list\" commands"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_16772ad4","line":34,"in_reply_to":"3acd31a7_c39fe4b2","updated":"2015-05-12 10:06:42.000000000","message":"Yes, because it is exactly the thing that heat client shell does before stack create/update.","commit_id":"4cd860ee2a8cd5a8ff8a405597c6c7123df1ba1f"}],"rally/benchmark/scenarios/heat/utils.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"0a77ff9a69c861d8e387efc8e8d4262442405071","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            \"disable_rollback\": True,"},{"line_number":146,"context_line":"            \"parameters\": parameters or {},"},{"line_number":147,"context_line":"            \"template\": template,"},{"line_number":148,"context_line":"            \"files\": files or {},"},{"line_number":149,"context_line":"            \"environment\": environment or {}"},{"line_number":150,"context_line":"        }"},{"line_number":151,"context_line":"        self.clients(\"heat\").stacks.update(stack.id, **kw)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_035f1c0f","line":148,"updated":"2015-05-03 03:01:49.000000000","message":"maybe list?","commit_id":"4cd860ee2a8cd5a8ff8a405597c6c7123df1ba1f"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"81d1e2780fbb085b9e61a5ce336eb8690d81eacc","unresolved":false,"context_lines":[{"line_number":145,"context_line":"            \"disable_rollback\": True,"},{"line_number":146,"context_line":"            \"parameters\": parameters or {},"},{"line_number":147,"context_line":"            \"template\": template,"},{"line_number":148,"context_line":"            \"files\": files or {},"},{"line_number":149,"context_line":"            \"environment\": environment or {}"},{"line_number":150,"context_line":"        }"},{"line_number":151,"context_line":"        self.clients(\"heat\").stacks.update(stack.id, **kw)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_961fba6b","line":148,"in_reply_to":"3acd31a7_035f1c0f","updated":"2015-05-12 10:06:42.000000000","message":"Nope, you can see in this patch that FileTypeList creates a dict. It seems that I need to rename it.","commit_id":"4cd860ee2a8cd5a8ff8a405597c6c7123df1ba1f"}],"rally/benchmark/types.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"0a77ff9a69c861d8e387efc8e8d4262442405071","unresolved":false,"context_lines":[{"line_number":367,"context_line":"        :return: dictionary {file_path: file_content, ...}"},{"line_number":368,"context_line":"        \"\"\""},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        file_type_list \u003d {}"},{"line_number":371,"context_line":"        for file_path in resource_config:"},{"line_number":372,"context_line":"            with open(file_path, \"r\") as f:"},{"line_number":373,"context_line":"                file_type_list[file_path] \u003d f.read()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_e39c20c2","line":370,"updated":"2015-05-03 03:01:49.000000000","message":"it\u0027s not list it\u0027s dict..","commit_id":"4cd860ee2a8cd5a8ff8a405597c6c7123df1ba1f"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"81d1e2780fbb085b9e61a5ce336eb8690d81eacc","unresolved":false,"context_lines":[{"line_number":367,"context_line":"        :return: dictionary {file_path: file_content, ...}"},{"line_number":368,"context_line":"        \"\"\""},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        file_type_list \u003d {}"},{"line_number":371,"context_line":"        for file_path in resource_config:"},{"line_number":372,"context_line":"            with open(file_path, \"r\") as f:"},{"line_number":373,"context_line":"                file_type_list[file_path] \u003d f.read()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_f604ae18","line":370,"in_reply_to":"3acd31a7_e39c20c2","updated":"2015-05-12 10:06:42.000000000","message":"Yes, agree.","commit_id":"4cd860ee2a8cd5a8ff8a405597c6c7123df1ba1f"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"5bb6ff96cbd33c5f6fa27be9c8ef4a9c4cc45188","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        file_type_dict \u003d {}"},{"line_number":371,"context_line":"        for file_path in resource_config:"},{"line_number":372,"context_line":"            with open(file_path, \"r\") as f:"},{"line_number":373,"context_line":"                file_type_dict[file_path] \u003d f.read()"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"        return file_type_dict"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_e0096285","line":373,"updated":"2015-05-20 11:32:17.000000000","message":"As I understand in resource_config could be image. If we read image we could overflow RAM. And it will cause a problem","commit_id":"046c1193e44da69d2318ed36299c484273990199"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"f81b11b6c11d62bd361ff53e02336da5dafab0a0","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        file_type_dict \u003d {}"},{"line_number":371,"context_line":"        for file_path in resource_config:"},{"line_number":372,"context_line":"            with open(file_path, \"r\") as f:"},{"line_number":373,"context_line":"                file_type_dict[file_path] \u003d f.read()"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"        return file_type_dict"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_95430742","line":373,"in_reply_to":"7a016987_e0096285","updated":"2015-05-26 07:19:09.000000000","message":"AFAIK Heat does not support such kind of feature.\nFiles used for 3 main purposes:\nspecify text file with environment definition\nspecify text file with nested template\nspecify some scripts that will be used in template.\nFor each case we need to read them from instance where the heat client is launched.\nThat\u0027s why I introduced this type.","commit_id":"046c1193e44da69d2318ed36299c484273990199"}],"tests/unit/benchmark/scenarios/heat/test_stacks.py":[{"author":{"_account_id":7227,"name":"Timur Nurlygayanov","email":"tnurlygayanov@mirantis.com","username":"tnurlygayanov"},"change_message_id":"39ca9400407f817ffd102a041664667f7e102908","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.default_template \u003d \"heat_template_version: 2013-05-23\""},{"line_number":29,"context_line":"        self.default_parameters \u003d {\"dummy_param\": \"dummy_key\"}"},{"line_number":30,"context_line":"        self.default_files \u003d [\"dummy_file.yaml\"]"},{"line_number":31,"context_line":"        self.default_environment \u003d {\"dummy_env\"}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @mock.patch(HEAT_STACKS + \"._generate_random_name\")"},{"line_number":34,"context_line":"    @mock.patch(HEAT_STACKS + \"._list_stacks\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_274020a5","line":31,"updated":"2015-04-30 10:11:35.000000000","message":"So, if it is dict, we need to use format {\"key\": \"value\"} intead of {\"string\"}.\n\nThis is why jobs failed with the following error:\n\n2015-04-30 08:35:30.003 | Traceback (most recent call last):\n\n2015-04-30 08:35:30.003 |   File \"/home/jenkins/workspace/gate-rally-python26/.tox/py26/lib/python2.6/site-packages/unittest2/loader.py\", line 445, in _find_test_path\n\n2015-04-30 08:35:30.003 |     module \u003d self._get_module_from_name(name)\n\n2015-04-30 08:35:30.003 |   File \"/home/jenkins/workspace/gate-rally-python26/.tox/py26/lib/python2.6/site-packages/unittest2/loader.py\", line 384, in _get_module_from_name\n\n2015-04-30 08:35:30.003 |     __import__(name)\n\n2015-04-30 08:35:30.003 |   File \"tests/unit/benchmark/scenarios/heat/test_stacks.py\", line 31\n\n2015-04-30 08:35:30.004 |     self.default_environment \u003d {\"dummy_env\"}\n\n2015-04-30 08:35:30.004 |                                            ^\n\n2015-04-30 08:35:30.004 | SyntaxError: invalid syntax","commit_id":"7e26dd92504df1e4b6de93600af09545a8b74158"}]}
