)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"2f4abd320d1253a1183a3a90f0944cb86fb301e7","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This change looks at making the in-line error notifications"},{"line_number":15,"context_line":"follow the same format, so they become equally useful."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Fixes bug 1251602"},{"line_number":18,"context_line":"Change-Id: I1cd64a90ecefc64d12af05487eb6e45aa0362d69"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAATn%2F9G0s%3D","line":17,"updated":"2013-12-16 18:46:22.000000000","message":"It could be better to use Closes-Bug as suggested by the the gerrit workflow","commit_id":"ad50d62603687f52d01ec1734b2b981c1bc5d171"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0706ac2f934d365dd1d769d07107dc0404e92a14","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This change looks at making the in-line error notifications"},{"line_number":15,"context_line":"follow the same format, so they become equally useful."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Fixes bug 1251602"},{"line_number":18,"context_line":"Change-Id: I1cd64a90ecefc64d12af05487eb6e45aa0362d69"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAATn%2F9C3E%3D","line":17,"in_reply_to":"AAAATn%2F9G0s%3D","updated":"2013-12-17 11:05:30.000000000","message":"Yeah, I need to update these old changes.","commit_id":"ad50d62603687f52d01ec1734b2b981c1bc5d171"}],"nova/compute/manager.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"2f4abd320d1253a1183a3a90f0944cb86fb301e7","unresolved":false,"context_lines":[{"line_number":946,"context_line":"            \"\"\"Send a create.{start,error,end} notification.\"\"\""},{"line_number":947,"context_line":"            type_ \u003d \"create.%(status)s\" % dict(status\u003dstatus)"},{"line_number":948,"context_line":"            info \u003d extra_usage_info.copy()"},{"line_number":949,"context_line":"            if not msg:"},{"line_number":950,"context_line":"                msg \u003d \"\""},{"line_number":951,"context_line":"            info[\u0027message\u0027] \u003d unicode(msg)"},{"line_number":952,"context_line":"            self._notify_about_instance_usage(context, instance, type_,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9G0g%3D","line":949,"updated":"2013-12-16 18:46:22.000000000","message":"What do you think about to use use msg\u003d\"\" in the prototype of the method?","commit_id":"ad50d62603687f52d01ec1734b2b981c1bc5d171"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0706ac2f934d365dd1d769d07107dc0404e92a14","unresolved":false,"context_lines":[{"line_number":946,"context_line":"            \"\"\"Send a create.{start,error,end} notification.\"\"\""},{"line_number":947,"context_line":"            type_ \u003d \"create.%(status)s\" % dict(status\u003dstatus)"},{"line_number":948,"context_line":"            info \u003d extra_usage_info.copy()"},{"line_number":949,"context_line":"            if not msg:"},{"line_number":950,"context_line":"                msg \u003d \"\""},{"line_number":951,"context_line":"            info[\u0027message\u0027] \u003d unicode(msg)"},{"line_number":952,"context_line":"            self._notify_about_instance_usage(context, instance, type_,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9C3I%3D","line":949,"in_reply_to":"AAAATn%2F9G0g%3D","updated":"2013-12-17 11:05:30.000000000","message":"I would rather not change the old code in this change.","commit_id":"ad50d62603687f52d01ec1734b2b981c1bc5d171"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"2f4abd320d1253a1183a3a90f0944cb86fb301e7","unresolved":false,"context_lines":[{"line_number":972,"context_line":"        except exception.BuildAbortException as e:"},{"line_number":973,"context_line":"            # Instance build aborted due to a non-failure"},{"line_number":974,"context_line":"            LOG.info(e)"},{"line_number":975,"context_line":"            notify(\"end\", msg\u003dunicode(e))  # notify that build is done"},{"line_number":976,"context_line":""},{"line_number":977,"context_line":"        except Exception as e:"},{"line_number":978,"context_line":"            # Instance build encountered a non-recoverable error:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9Gyo%3D","line":975,"updated":"2013-12-16 18:46:22.000000000","message":"Because you are working on this peace of code, may be you can replace unicode(e) by using e.format_message()","commit_id":"ad50d62603687f52d01ec1734b2b981c1bc5d171"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"f46dc18832c6129d2e5c12c9c777607457c8d508","unresolved":false,"context_lines":[{"line_number":1730,"context_line":"                    \u0027create.error\u0027, fault\u003de)"},{"line_number":1731,"context_line":"            msg \u003d _(\u0027Failed to allocate the network(s), not rescheduling.\u0027)"},{"line_number":1732,"context_line":"            raise exception.BuildAbortException(instance_uuid\u003dinstance.uuid,"},{"line_number":1733,"context_line":"                                                reason\u003dmsg)"},{"line_number":1734,"context_line":"        except Exception as e:"},{"line_number":1735,"context_line":"            self._notify_about_instance_usage(context, instance,"},{"line_number":1736,"context_line":"                    \u0027create.error\u0027, fault\u003de)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F9y10%3D","line":1733,"updated":"2014-02-03 21:21:53.000000000","message":"This makes the line inconsistent with the rest of this method.","commit_id":"9625fd3a3dd8a45f7b808712f504b31361908d0a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"facb463805af5130e95897860eb415e13cd7399a","unresolved":false,"context_lines":[{"line_number":1730,"context_line":"                    \u0027create.error\u0027, fault\u003de)"},{"line_number":1731,"context_line":"            msg \u003d _(\u0027Failed to allocate the network(s), not rescheduling.\u0027)"},{"line_number":1732,"context_line":"            raise exception.BuildAbortException(instance_uuid\u003dinstance.uuid,"},{"line_number":1733,"context_line":"                                                reason\u003dmsg)"},{"line_number":1734,"context_line":"        except Exception as e:"},{"line_number":1735,"context_line":"            self._notify_about_instance_usage(context, instance,"},{"line_number":1736,"context_line":"                    \u0027create.error\u0027, fault\u003de)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F9oZM%3D","line":1733,"in_reply_to":"AAAAUH%2F9y10%3D","updated":"2014-02-05 14:38:06.000000000","message":"good spot, I will check.","commit_id":"9625fd3a3dd8a45f7b808712f504b31361908d0a"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"f46dc18832c6129d2e5c12c9c777607457c8d508","unresolved":false,"context_lines":[{"line_number":2404,"context_line":"                if new_power_state \u003d\u003d power_state.RUNNING:"},{"line_number":2405,"context_line":"                    LOG.warning(_(\u0027Reboot failed but instance is running\u0027),"},{"line_number":2406,"context_line":"                                context\u003dcontext, instance\u003dinstance)"},{"line_number":2407,"context_line":"                    compute_utils.add_instance_fault_from_exc(context,"},{"line_number":2408,"context_line":"                            self.conductor_api, instance, error, exc_info)"},{"line_number":2409,"context_line":"                    self._notify_about_instance_usage(context, instance,"},{"line_number":2410,"context_line":"                            \u0027reboot.error\u0027, fault\u003derror)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F9y0w%3D","line":2407,"updated":"2014-02-03 21:21:53.000000000","message":"Why move this here?  Now the _set_instance_obj_error_state below will set an error state but there won\u0027t be a fault recorded.","commit_id":"9625fd3a3dd8a45f7b808712f504b31361908d0a"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"c1805aa8ab9559a47550cdc3d79ca652e3d54367","unresolved":false,"context_lines":[{"line_number":2404,"context_line":"                if new_power_state \u003d\u003d power_state.RUNNING:"},{"line_number":2405,"context_line":"                    LOG.warning(_(\u0027Reboot failed but instance is running\u0027),"},{"line_number":2406,"context_line":"                                context\u003dcontext, instance\u003dinstance)"},{"line_number":2407,"context_line":"                    compute_utils.add_instance_fault_from_exc(context,"},{"line_number":2408,"context_line":"                            self.conductor_api, instance, error, exc_info)"},{"line_number":2409,"context_line":"                    self._notify_about_instance_usage(context, instance,"},{"line_number":2410,"context_line":"                            \u0027reboot.error\u0027, fault\u003derror)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F9nyw%3D","line":2407,"in_reply_to":"AAAAUH%2F9oXQ%3D","updated":"2014-02-05 15:51:06.000000000","message":"Gotcha.","commit_id":"9625fd3a3dd8a45f7b808712f504b31361908d0a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"facb463805af5130e95897860eb415e13cd7399a","unresolved":false,"context_lines":[{"line_number":2404,"context_line":"                if new_power_state \u003d\u003d power_state.RUNNING:"},{"line_number":2405,"context_line":"                    LOG.warning(_(\u0027Reboot failed but instance is running\u0027),"},{"line_number":2406,"context_line":"                                context\u003dcontext, instance\u003dinstance)"},{"line_number":2407,"context_line":"                    compute_utils.add_instance_fault_from_exc(context,"},{"line_number":2408,"context_line":"                            self.conductor_api, instance, error, exc_info)"},{"line_number":2409,"context_line":"                    self._notify_about_instance_usage(context, instance,"},{"line_number":2410,"context_line":"                            \u0027reboot.error\u0027, fault\u003derror)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F9oXQ%3D","line":2407,"in_reply_to":"AAAAUH%2F9y0w%3D","updated":"2014-02-05 14:38:06.000000000","message":"it is to prevent multiple faults, I think\n\nin the else clause, we re-raise, and the method will add a fault and raise a notification.","commit_id":"9625fd3a3dd8a45f7b808712f504b31361908d0a"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"720f1d5bd89d8ce58b6ef45059b6457065962f02","unresolved":false,"context_lines":[{"line_number":1719,"context_line":"                    \u0027create.error\u0027, fault\u003de)"},{"line_number":1720,"context_line":"            msg \u003d _(\u0027Failed to allocate the network(s), not rescheduling.\u0027)"},{"line_number":1721,"context_line":"            raise exception.BuildAbortException(instance_uuid\u003dinstance.uuid,"},{"line_number":1722,"context_line":"                                                reason\u003dmsg)"},{"line_number":1723,"context_line":"        except Exception as e:"},{"line_number":1724,"context_line":"            self._notify_about_instance_usage(context, instance,"},{"line_number":1725,"context_line":"                    \u0027create.error\u0027, fault\u003de)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUH%2F9nxA%3D","line":1722,"updated":"2014-02-05 15:51:39.000000000","message":"This should be moved back to where it was.","commit_id":"dc6f72a487f5a69380a519e7cd9420332e6e56a0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"10deb49038db5605ef013d43998e96271bc4cd28","unresolved":false,"context_lines":[{"line_number":1719,"context_line":"                    \u0027create.error\u0027, fault\u003de)"},{"line_number":1720,"context_line":"            msg \u003d _(\u0027Failed to allocate the network(s), not rescheduling.\u0027)"},{"line_number":1721,"context_line":"            raise exception.BuildAbortException(instance_uuid\u003dinstance.uuid,"},{"line_number":1722,"context_line":"                                                reason\u003dmsg)"},{"line_number":1723,"context_line":"        except Exception as e:"},{"line_number":1724,"context_line":"            self._notify_about_instance_usage(context, instance,"},{"line_number":1725,"context_line":"                    \u0027create.error\u0027, fault\u003de)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2FeOY%3D","line":1722,"in_reply_to":"AAAAUH%2F9nxA%3D","updated":"2014-02-12 23:30:06.000000000","message":"oops, yeah.","commit_id":"dc6f72a487f5a69380a519e7cd9420332e6e56a0"}],"nova/compute/utils.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"14673e1176e50c254b4b48173228dcae6f9b69af","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"def exception_to_dict(fault):"},{"line_number":45,"context_line":"    \"\"\"Converts exceptions to a dict for use in notifications.\"\"\""},{"line_number":46,"context_line":"    #TODO(johngarbutt) move to nova/exception.py to share with wrap_exception"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    code \u003d 500"},{"line_number":49,"context_line":"    if hasattr(fault, \"kwargs\"):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Fv%2FY%3D","line":46,"updated":"2014-01-08 22:12:07.000000000","message":"Are you planning on doing this TODO in this patch or a later one?","commit_id":"29f4b57b10351cf4d69b114a50402f2f238f11ec"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b6df5762170cfb946a8c4eb47fa36b7348801ab8","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"def exception_to_dict(fault):"},{"line_number":45,"context_line":"    \"\"\"Converts exceptions to a dict for use in notifications.\"\"\""},{"line_number":46,"context_line":"    #TODO(johngarbutt) move to nova/exception.py to share with wrap_exception"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    code \u003d 500"},{"line_number":49,"context_line":"    if hasattr(fault, \"kwargs\"):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FtU4%3D","line":46,"in_reply_to":"AAAAUH%2F%2Fv%2FY%3D","updated":"2014-01-09 11:03:35.000000000","message":"A later one, it would mess up this change a bit too much.","commit_id":"29f4b57b10351cf4d69b114a50402f2f238f11ec"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"f46dc18832c6129d2e5c12c9c777607457c8d508","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def _get_fault_details(exc_info, error_code):"},{"line_number":77,"context_line":"    details \u003d \u0027\u0027"},{"line_number":78,"context_line":"    if exc_info and error_code \u003d\u003d 500:"},{"line_number":79,"context_line":"        tb \u003d exc_info[2]"},{"line_number":80,"context_line":"        if tb:"},{"line_number":81,"context_line":"            details \u003d \u0027\u0027.join(traceback.format_tb(tb))"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUH%2F9y7Q%3D","line":78,"updated":"2014-02-03 21:21:53.000000000","message":"It would be nice to know the history behind this check, because I wonder if it\u0027s necessary anymore.","commit_id":"9625fd3a3dd8a45f7b808712f504b31361908d0a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6c63975a5c83e5ca0ef63768f73674a3453ca4d5","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def _get_fault_details(exc_info, error_code):"},{"line_number":77,"context_line":"    details \u003d \u0027\u0027"},{"line_number":78,"context_line":"    if exc_info and error_code \u003d\u003d 500:"},{"line_number":79,"context_line":"        tb \u003d exc_info[2]"},{"line_number":80,"context_line":"        if tb:"},{"line_number":81,"context_line":"            details \u003d \u0027\u0027.join(traceback.format_tb(tb))"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2FeN8%3D","line":78,"in_reply_to":"AAAAUH%2F9y7Q%3D","updated":"2014-02-12 23:30:01.000000000","message":"Thats a good point... hmm, well I would rather not delay this further though.","commit_id":"9625fd3a3dd8a45f7b808712f504b31361908d0a"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"9eb2f9a45c6cf0f26a8ebb82f506c0433af8448c","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def exception_to_dict(fault):"},{"line_number":43,"context_line":"    \"\"\"Converts exceptions to a dict for use in notifications.\"\"\""},{"line_number":44,"context_line":"    #TODO(johngarbutt) move to nova/exception.py to share with wrap_exception"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    code \u003d 500"},{"line_number":47,"context_line":"    if hasattr(fault, \"kwargs\"):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2FQK0%3D","line":44,"updated":"2014-02-14 14:24:43.000000000","message":"Do you mean to address this TODO in this patch or a future one?","commit_id":"996b3f7c76eb85683d6510c977673441e2e319ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3caa568add9fc5e79e938e2a0c50809ad453dd81","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def exception_to_dict(fault):"},{"line_number":43,"context_line":"    \"\"\"Converts exceptions to a dict for use in notifications.\"\"\""},{"line_number":44,"context_line":"    #TODO(johngarbutt) move to nova/exception.py to share with wrap_exception"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    code \u003d 500"},{"line_number":47,"context_line":"    if hasattr(fault, \"kwargs\"):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FqUw%3D","line":44,"in_reply_to":"AAAAUX%2F%2FQK0%3D","updated":"2014-02-25 12:01:08.000000000","message":"a future one, its a refactor thing that would mess up this patch.","commit_id":"996b3f7c76eb85683d6510c977673441e2e319ad"}],"nova/tests/compute/test_compute.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"9eb2f9a45c6cf0f26a8ebb82f506c0433af8448c","unresolved":false,"context_lines":[{"line_number":2262,"context_line":""},{"line_number":2263,"context_line":"        if test_delete:"},{"line_number":2264,"context_line":"            fault \u003d exception.InstanceNotFound("},{"line_number":2265,"context_line":"                        instance_id\u003dinstance[\u0027uuid\u0027])"},{"line_number":2266,"context_line":"            db.instance_update_and_get_original("},{"line_number":2267,"context_line":"                econtext, updated_dbinstance1[\u0027uuid\u0027],"},{"line_number":2268,"context_line":"                {\u0027power_state\u0027: new_power_state,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2FQLY%3D","line":2265,"updated":"2014-02-14 14:24:43.000000000","message":"This should fit in one line.","commit_id":"996b3f7c76eb85683d6510c977673441e2e319ad"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3caa568add9fc5e79e938e2a0c50809ad453dd81","unresolved":false,"context_lines":[{"line_number":2262,"context_line":""},{"line_number":2263,"context_line":"        if test_delete:"},{"line_number":2264,"context_line":"            fault \u003d exception.InstanceNotFound("},{"line_number":2265,"context_line":"                        instance_id\u003dinstance[\u0027uuid\u0027])"},{"line_number":2266,"context_line":"            db.instance_update_and_get_original("},{"line_number":2267,"context_line":"                econtext, updated_dbinstance1[\u0027uuid\u0027],"},{"line_number":2268,"context_line":"                {\u0027power_state\u0027: new_power_state,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAU3%2F%2FqUE%3D","line":2265,"in_reply_to":"AAAAUX%2F%2FQLY%3D","updated":"2014-02-25 12:01:08.000000000","message":"it probably can, will fix that if there is another issue that needs resolving.","commit_id":"996b3f7c76eb85683d6510c977673441e2e319ad"}]}
