)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"c7e1d8e1f128afa546d7db3d1442b2b4db34c492","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Khayam Gondal \u003ckhayam.gondal@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-15 15:29:31 +0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Now an AttributeError will be raised and Traceback wil be printed"},{"line_number":8,"context_line":"Closes-Bug: #1591961"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: I2135b640ad88018df23de2b31cdcf168867dac85"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7aa08908_2e905c4e","line":7,"range":{"start_line":7,"start_character":7,"end_line":7,"end_character":36},"updated":"2016-06-15 10:56:36.000000000","message":"it won\u0027t, because you catch it","commit_id":"ddb6e8a21766c83f219fc8f80b69f19be627551b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"c7e1d8e1f128afa546d7db3d1442b2b4db34c492","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Khayam Gondal \u003ckhayam.gondal@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-15 15:29:31 +0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Now an AttributeError will be raised and Traceback wil be printed"},{"line_number":8,"context_line":"Closes-Bug: #1591961"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: I2135b640ad88018df23de2b31cdcf168867dac85"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7aa08908_ce0278ba","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":65},"updated":"2016-06-15 10:56:36.000000000","message":"when?","commit_id":"ddb6e8a21766c83f219fc8f80b69f19be627551b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"c7e1d8e1f128afa546d7db3d1442b2b4db34c492","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Khayam Gondal \u003ckhayam.gondal@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-15 15:29:31 +0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Now an AttributeError will be raised and Traceback wil be printed"},{"line_number":8,"context_line":"Closes-Bug: #1591961"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: I2135b640ad88018df23de2b31cdcf168867dac85"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7aa08908_ae072cc8","line":7,"range":{"start_line":7,"start_character":51,"end_line":7,"end_character":54},"updated":"2016-06-15 10:56:36.000000000","message":"will","commit_id":"ddb6e8a21766c83f219fc8f80b69f19be627551b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"c7e1d8e1f128afa546d7db3d1442b2b4db34c492","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-06-15 15:29:31 +0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Now an AttributeError will be raised and Traceback wil be printed"},{"line_number":8,"context_line":"Closes-Bug: #1591961"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: I2135b640ad88018df23de2b31cdcf168867dac85"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7aa08908_4e1e880e","line":8,"updated":"2016-06-15 10:56:36.000000000","message":"empty line is needed after the first line","commit_id":"ddb6e8a21766c83f219fc8f80b69f19be627551b"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"cccea0f6a23e6d9dd79461eab6a3c93a46af9c62","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Khayam Gondal \u003ckhayam.gondal@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-15 16:23:12 +0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Currently when body tag is missing, an exception is raised but not catched and an non informative message is shown. I have moved that part of code into try and logged the exception message with Traceback."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1591961"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7aa08908_84c32f57","line":7,"updated":"2016-06-15 11:34:02.000000000","message":"It must be shorter. I suggest the title to be something like: \"Improve error message when Body tag is missing\" and the rest of information starts on the 3rd line","commit_id":"d3535f323b33891bb83d50d317f3b59332b0eaee"},{"author":{"_account_id":12597,"name":"Lin Yang","email":"lin.a.yang@intel.com","username":"lin.yang"},"change_message_id":"177d46635aae018f2ed7437f7169d9c9665a6593","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Khayam Gondal \u003ckhayam.gondal@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-15 16:23:12 +0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Currently when body tag is missing, an exception is raised but not catched and an non informative message is shown. I have moved that part of code into try and logged the exception message with Traceback."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-Bug: #1591961"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7aa08908_44682722","line":7,"updated":"2016-06-15 11:36:01.000000000","message":"It would be better to format commit message according to following guideline.\nhttps://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"d3535f323b33891bb83d50d317f3b59332b0eaee"}],"murano/dsl/murano_method.py":[{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"cccea0f6a23e6d9dd79461eab6a3c93a46af9c62","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import sys"},{"line_number":17,"context_line":"import weakref"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import logging"},{"line_number":20,"context_line":"import six"},{"line_number":21,"context_line":"from yaql.language import specs"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_449e6755","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":14},"updated":"2016-06-15 11:34:02.000000000","message":"use \u0027from oslo_log import log as logging\u0027 as in the other files in the package","commit_id":"d3535f323b33891bb83d50d317f3b59332b0eaee"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"cccea0f6a23e6d9dd79461eab6a3c93a46af9c62","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                        declaring_type.extension_class, original_name),"},{"line_number":59,"context_line":"                    helpers.inspect_is_classmethod("},{"line_number":60,"context_line":"                        declaring_type.extension_class, original_name))):"},{"line_number":61,"context_line":"                try:"},{"line_number":62,"context_line":"                    self._usage \u003d self._body.meta.get("},{"line_number":63,"context_line":"                        constants.META_USAGE, dsl_types.MethodUsages.Static)"},{"line_number":64,"context_line":"                except AttributeError as ae1:"},{"line_number":65,"context_line":"                    LOG.exception(ae1)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"                if self._usage not in dsl_types.MethodUsages.StaticMethods:"},{"line_number":68,"context_line":"                    raise ValueError("}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_c406d784","line":65,"range":{"start_line":61,"start_character":16,"end_line":65,"end_character":38},"updated":"2016-06-15 11:34:02.000000000","message":"what\u0027s wrong about Usage? .get() means that you can\u0027t get AttributeError","commit_id":"d3535f323b33891bb83d50d317f3b59332b0eaee"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"06fde0a32a8d4b2cea31ede2c3c0dbe7ba6f02fc","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                        declaring_type.extension_class, original_name),"},{"line_number":59,"context_line":"                    helpers.inspect_is_classmethod("},{"line_number":60,"context_line":"                        declaring_type.extension_class, original_name))):"},{"line_number":61,"context_line":"                try:"},{"line_number":62,"context_line":"                    self._usage \u003d self._body.meta.get("},{"line_number":63,"context_line":"                        constants.META_USAGE, dsl_types.MethodUsages.Static)"},{"line_number":64,"context_line":"                except AttributeError as ae1:"},{"line_number":65,"context_line":"                    LOG.exception(ae1)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"                if self._usage not in dsl_types.MethodUsages.StaticMethods:"},{"line_number":68,"context_line":"                    raise ValueError("}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_3a77f63c","line":65,"range":{"start_line":61,"start_character":16,"end_line":65,"end_character":38},"in_reply_to":"7aa08908_3a91b69b","updated":"2016-06-15 12:19:19.000000000","message":"It is in the line \u0027self._body \u003d macros.MethodBlock(payload.get(\u0027Body\u0027) or [], name)\u0027.\nbut I don\u0027t think catching and logging the traceback is doing something good. you receive this traceback all the same, but now you supress an error while the program can not go on with it. I think the solution would be to catch an error, add information about the method where it happened and raise error","commit_id":"d3535f323b33891bb83d50d317f3b59332b0eaee"},{"author":{"_account_id":13305,"name":"Khayam Gondal","email":"khayam.gondal@gmail.com","username":"khayamgondal"},"change_message_id":"de05883d8432a871b0e6dde08e593fb632b17e49","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                        declaring_type.extension_class, original_name),"},{"line_number":59,"context_line":"                    helpers.inspect_is_classmethod("},{"line_number":60,"context_line":"                        declaring_type.extension_class, original_name))):"},{"line_number":61,"context_line":"                try:"},{"line_number":62,"context_line":"                    self._usage \u003d self._body.meta.get("},{"line_number":63,"context_line":"                        constants.META_USAGE, dsl_types.MethodUsages.Static)"},{"line_number":64,"context_line":"                except AttributeError as ae1:"},{"line_number":65,"context_line":"                    LOG.exception(ae1)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"                if self._usage not in dsl_types.MethodUsages.StaticMethods:"},{"line_number":68,"context_line":"                    raise ValueError("}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_3a91b69b","line":65,"range":{"start_line":61,"start_character":16,"end_line":65,"end_character":38},"in_reply_to":"7aa08908_5f5c744c","updated":"2016-06-15 12:06:06.000000000","message":"In bug details on launchpad, following is printed (http://paste.openstack.org/show/514141/) .\nAttributeError: \u0027list\u0027 object has no attribute \u0027get\u0027\nSo I just caught this exception and logged the details.","commit_id":"d3535f323b33891bb83d50d317f3b59332b0eaee"},{"author":{"_account_id":20773,"name":"Valerii Kovalchuk","email":"kovvalole@gmail.com","username":"vakovalchuk"},"change_message_id":"0edecb34f068241ac085e42c8cf165743dd5e1d7","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                        declaring_type.extension_class, original_name),"},{"line_number":59,"context_line":"                    helpers.inspect_is_classmethod("},{"line_number":60,"context_line":"                        declaring_type.extension_class, original_name))):"},{"line_number":61,"context_line":"                try:"},{"line_number":62,"context_line":"                    self._usage \u003d self._body.meta.get("},{"line_number":63,"context_line":"                        constants.META_USAGE, dsl_types.MethodUsages.Static)"},{"line_number":64,"context_line":"                except AttributeError as ae1:"},{"line_number":65,"context_line":"                    LOG.exception(ae1)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"                if self._usage not in dsl_types.MethodUsages.StaticMethods:"},{"line_number":68,"context_line":"                    raise ValueError("}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_5f5c744c","line":65,"range":{"start_line":61,"start_character":16,"end_line":65,"end_character":38},"in_reply_to":"7aa08908_7fedf0b6","updated":"2016-06-15 12:00:42.000000000","message":"at first I thought you catch possible absence of Usage key, but then it would produce KeyError rather than AttributeError, and this error would be processed inside the .get() method of the dict.\ncan you explain your idea maybe first? where do you think an error can happen that you try to catch?","commit_id":"d3535f323b33891bb83d50d317f3b59332b0eaee"},{"author":{"_account_id":13305,"name":"Khayam Gondal","email":"khayam.gondal@gmail.com","username":"khayamgondal"},"change_message_id":"9d0df834dd2fea7bbfdf21a742d5bbcc6c1a8ce2","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                        declaring_type.extension_class, original_name),"},{"line_number":59,"context_line":"                    helpers.inspect_is_classmethod("},{"line_number":60,"context_line":"                        declaring_type.extension_class, original_name))):"},{"line_number":61,"context_line":"                try:"},{"line_number":62,"context_line":"                    self._usage \u003d self._body.meta.get("},{"line_number":63,"context_line":"                        constants.META_USAGE, dsl_types.MethodUsages.Static)"},{"line_number":64,"context_line":"                except AttributeError as ae1:"},{"line_number":65,"context_line":"                    LOG.exception(ae1)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"                if self._usage not in dsl_types.MethodUsages.StaticMethods:"},{"line_number":68,"context_line":"                    raise ValueError("}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_7fedf0b6","line":65,"range":{"start_line":61,"start_character":16,"end_line":65,"end_character":38},"in_reply_to":"7aa08908_c406d784","updated":"2016-06-15 11:52:59.000000000","message":"Didn\u0027t get that. Can you explain a bit?","commit_id":"d3535f323b33891bb83d50d317f3b59332b0eaee"},{"author":{"_account_id":7226,"name":"Stan Lagun","email":"stan.lagun@gmail.com","username":"istalker2"},"change_message_id":"cb63f199d4fbfb1357a8972514c34aa89871abb2","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                    helpers.inspect_is_classmethod("},{"line_number":62,"context_line":"                        declaring_type.extension_class, original_name))):"},{"line_number":63,"context_line":"                try:"},{"line_number":64,"context_line":"                    self._usage \u003d self._body.meta.get("},{"line_number":65,"context_line":"                        constants.META_USAGE, dsl_types.MethodUsages.Static)"},{"line_number":66,"context_line":"                except AttributeError:"},{"line_number":67,"context_line":"                    exc_type, exc_obj, traceback \u003d sys.exc_info()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a9d85d2_2bde553f","line":64,"updated":"2016-06-21 02:47:16.000000000","message":"this is for Python-based methods (if declaring_type.extension_class ...). They always have body","commit_id":"0843b0f04f9576a1ee55bd2e4d91ed24f4a047c2"},{"author":{"_account_id":7226,"name":"Stan Lagun","email":"stan.lagun@gmail.com","username":"istalker2"},"change_message_id":"7dd2e2a509d3692805876fd147a54de7d44a3f5c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            payload \u003d payload or {}"},{"line_number":84,"context_line":"            try:"},{"line_number":85,"context_line":"                self._body \u003d macros.MethodBlock(payload.get(\u0027Body\u0027), name)"},{"line_number":86,"context_line":"            except AttributeError:"},{"line_number":87,"context_line":"                    exc_type, exc_obj, traceback \u003d sys.exc_info()"},{"line_number":88,"context_line":"                    filename \u003d exc_obj.filename"},{"line_number":89,"context_line":"                    LOG.exception(_LE(\u0027Body tag missing %(type)s \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_6aab291e","line":86,"updated":"2016-06-23 02:27:57.000000000","message":"mydict.get(\u0027something\u0027) never throws AttributeError\nAlso it is okay to have method without Body and we have tons of such examples. So I don\u0027t understand neither the bug nor the commit. Can you provide additional details in the LP for the bug?","commit_id":"3b5991a0efecfd971bc17ea55dab09b0ec195bde"},{"author":{"_account_id":13305,"name":"Khayam Gondal","email":"khayam.gondal@gmail.com","username":"khayamgondal"},"change_message_id":"470cf788d709752486a782fe50b77cdb9c9a6428","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            payload \u003d payload or {}"},{"line_number":84,"context_line":"            try:"},{"line_number":85,"context_line":"                self._body \u003d macros.MethodBlock(payload.get(\u0027Body\u0027), name)"},{"line_number":86,"context_line":"            except AttributeError:"},{"line_number":87,"context_line":"                    exc_type, exc_obj, traceback \u003d sys.exc_info()"},{"line_number":88,"context_line":"                    filename \u003d exc_obj.filename"},{"line_number":89,"context_line":"                    LOG.exception(_LE(\u0027Body tag missing %(type)s \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_b12a962a","line":86,"in_reply_to":"3aaa91ec_6aab291e","updated":"2016-06-23 06:05:39.000000000","message":"I didn\u0027t filed the bug. Please look here for description https://bugs.launchpad.net/murano/+bug/1591961.\nIt was filed by Alexey Khivin from Mirantis.","commit_id":"3b5991a0efecfd971bc17ea55dab09b0ec195bde"},{"author":{"_account_id":7535,"name":"Nikolay Starodubtsev","email":"starodubcevna@gmail.com","username":"Kezar"},"change_message_id":"6ec7b8d738bb7bd8ae7ddd801757ffed88bf5103","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            payload \u003d payload or {}"},{"line_number":84,"context_line":"            try:"},{"line_number":85,"context_line":"                self._body \u003d macros.MethodBlock(payload.get(\u0027Body\u0027), name)"},{"line_number":86,"context_line":"            except AttributeError:"},{"line_number":87,"context_line":"                    exc_type, exc_obj, traceback \u003d sys.exc_info()"},{"line_number":88,"context_line":"                    filename \u003d exc_obj.filename"},{"line_number":89,"context_line":"                    LOG.exception(_LE(\u0027Body tag missing %(type)s \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_3964c4e2","line":86,"in_reply_to":"3aaa91ec_b12a962a","updated":"2016-06-23 10:03:21.000000000","message":"Here is an exception from the logs that Alexey attached to the bug:\n    2016-06-13 10:52:50.273 30469 ERROR murano.common.engine     self._body \u003d macros.MethodBlock(payload.get(\u0027Body\u0027) or [], name)\n    2016-06-13 10:52:50.273 30469 ERROR murano.common.engine AttributeError: \u0027list\u0027 object has no attribute \u0027get\u0027\n\nso the problem is that payload suggested to be a dict, but it\u0027s a list. If you want to work on this bug you should update its description and rewrite patch.","commit_id":"3b5991a0efecfd971bc17ea55dab09b0ec195bde"}]}
