)]}'
{"ironic/drivers/modules/agent_base_vendor.py":[{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"d8afb8ce7083cc2d775881efd9b1b4a1657dfdf9","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                msg \u003d _(\u0027Node failed to move to active state.\u0027)"},{"line_number":166,"context_line":"                self.reboot_to_instance(task, **kwargs)"},{"line_number":167,"context_line":"        except Exception as e:"},{"line_number":168,"context_line":"            last_error \u003d \u0027Async exception: %(msg)s; exception: %(e)s\u0027 % {"},{"line_number":169,"context_line":"                \u0027msg\u0027: msg,"},{"line_number":170,"context_line":"                \u0027e\u0027: e,"},{"line_number":171,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_7dcf7f29","line":168,"updated":"2015-02-25 01:24:13.000000000","message":"(echoing from IRC) Do last_error messages need to be translated? I see it happening in manager.py.","commit_id":"be30bec3453fcb3685de7fc03871696b11b6bcc6"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"eebc747ce431e057e26445c0a79eef60b0d680f9","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                msg \u003d _(\u0027Node failed to move to active state.\u0027)"},{"line_number":166,"context_line":"                self.reboot_to_instance(task, **kwargs)"},{"line_number":167,"context_line":"        except Exception as e:"},{"line_number":168,"context_line":"            last_error \u003d \u0027Async exception: %(msg)s; exception: %(e)s\u0027 % {"},{"line_number":169,"context_line":"                \u0027msg\u0027: msg,"},{"line_number":170,"context_line":"                \u0027e\u0027: e,"},{"line_number":171,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_1d46834f","line":168,"updated":"2015-02-25 00:56:58.000000000","message":"Would there be a downside to using the same message for both?  Pass \u0027last_error\u0027 to LOG.exception.  Would have to add the node to last_error.","commit_id":"be30bec3453fcb3685de7fc03871696b11b6bcc6"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"75b11f5a65b268fc612396f0f7c718c2240910b9","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                msg \u003d _(\u0027Node failed to move to active state.\u0027)"},{"line_number":166,"context_line":"                self.reboot_to_instance(task, **kwargs)"},{"line_number":167,"context_line":"        except Exception as e:"},{"line_number":168,"context_line":"            last_error \u003d \u0027Async exception: %(msg)s; exception: %(e)s\u0027 % {"},{"line_number":169,"context_line":"                \u0027msg\u0027: msg,"},{"line_number":170,"context_line":"                \u0027e\u0027: e,"},{"line_number":171,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_dd522b66","line":168,"in_reply_to":"ba7be1f8_1d1be3ca","updated":"2015-02-25 01:26:07.000000000","message":"Fair enough.  I was just thinking about maintainability and having to update both if a change is made.  I\u0027m fine with it  as is though.","commit_id":"be30bec3453fcb3685de7fc03871696b11b6bcc6"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"195f232b6822f1fbdbe5599512cd3e0062d7974b","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                msg \u003d _(\u0027Node failed to move to active state.\u0027)"},{"line_number":166,"context_line":"                self.reboot_to_instance(task, **kwargs)"},{"line_number":167,"context_line":"        except Exception as e:"},{"line_number":168,"context_line":"            last_error \u003d \u0027Async exception: %(msg)s; exception: %(e)s\u0027 % {"},{"line_number":169,"context_line":"                \u0027msg\u0027: msg,"},{"line_number":170,"context_line":"                \u0027e\u0027: e,"},{"line_number":171,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_1d1be3ca","line":168,"in_reply_to":"ba7be1f8_1d46834f","updated":"2015-02-25 01:20:38.000000000","message":"The downside would be the node UUID stored in the database at node.last_error. Not a huge problem, but not really inclined to do it. Idk.","commit_id":"be30bec3453fcb3685de7fc03871696b11b6bcc6"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"afcffb44578d1f4a495db3f6330988de353a1f08","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                msg \u003d _(\u0027Node failed to move to active state.\u0027)"},{"line_number":166,"context_line":"                self.reboot_to_instance(task, **kwargs)"},{"line_number":167,"context_line":"        except Exception as e:"},{"line_number":168,"context_line":"            last_error \u003d \u0027Async exception: %(msg)s; exception: %(e)s\u0027 % {"},{"line_number":169,"context_line":"                \u0027msg\u0027: msg,"},{"line_number":170,"context_line":"                \u0027e\u0027: e,"},{"line_number":171,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_468e607a","line":168,"in_reply_to":"ba7be1f8_65243d60","updated":"2015-02-25 09:57:53.000000000","message":"Yes, I see it being translated in most places and I also think that it should be for the reason @Dmitry pointed out here. Thanks Josh for bringing it up","commit_id":"be30bec3453fcb3685de7fc03871696b11b6bcc6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"2ae0c189dd3e2467a9016b73e1fa0a4130ea99ae","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                msg \u003d _(\u0027Node failed to move to active state.\u0027)"},{"line_number":166,"context_line":"                self.reboot_to_instance(task, **kwargs)"},{"line_number":167,"context_line":"        except Exception as e:"},{"line_number":168,"context_line":"            last_error \u003d \u0027Async exception: %(msg)s; exception: %(e)s\u0027 % {"},{"line_number":169,"context_line":"                \u0027msg\u0027: msg,"},{"line_number":170,"context_line":"                \u0027e\u0027: e,"},{"line_number":171,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_65243d60","line":168,"in_reply_to":"ba7be1f8_7dcf7f29","updated":"2015-02-25 09:06:20.000000000","message":"I believe they do, that\u0027s user-visible strings","commit_id":"be30bec3453fcb3685de7fc03871696b11b6bcc6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"95b3c5fab63e34b4396dfc980c5ee8aabc7dbd6a","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                msg \u003d _(\u0027Node failed to move to active state.\u0027)"},{"line_number":166,"context_line":"                self.reboot_to_instance(task, **kwargs)"},{"line_number":167,"context_line":"        except Exception as e:"},{"line_number":168,"context_line":"            last_error \u003d _LE(\u0027Asynchronous exception%(node_str)s: %(msg)s;\u0027"},{"line_number":169,"context_line":"                           \u0027exception: %(e)s\u0027) % {\u0027msg\u0027: msg, \u0027e\u0027: e}"},{"line_number":170,"context_line":"            error_msg \u003d last_error % {\u0027node_str\u0027: \u0027 for node %s\u0027 % node.uuid}"},{"line_number":171,"context_line":"            LOG.exception(error_msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_9c809cf8","line":168,"updated":"2015-02-25 14:36:31.000000000","message":"s/_LE/_/ if it goes to a user","commit_id":"ee1441d5396d8b299e491a40f620b61ac4286c16"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"95b3c5fab63e34b4396dfc980c5ee8aabc7dbd6a","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                self.reboot_to_instance(task, **kwargs)"},{"line_number":167,"context_line":"        except Exception as e:"},{"line_number":168,"context_line":"            last_error \u003d _LE(\u0027Asynchronous exception%(node_str)s: %(msg)s;\u0027"},{"line_number":169,"context_line":"                           \u0027exception: %(e)s\u0027) % {\u0027msg\u0027: msg, \u0027e\u0027: e}"},{"line_number":170,"context_line":"            error_msg \u003d last_error % {\u0027node_str\u0027: \u0027 for node %s\u0027 % node.uuid}"},{"line_number":171,"context_line":"            LOG.exception(error_msg)"},{"line_number":172,"context_line":"            deploy_utils.set_failed_state(task, last_error % {\u0027node_str\u0027: \u0027\u0027})"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_5ca384b1","line":169,"updated":"2015-02-25 14:36:31.000000000","message":"nit: indentation","commit_id":"ee1441d5396d8b299e491a40f620b61ac4286c16"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8c5c0f7414ab1b0a86a736f1dce349b63ccdcaa6","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                msg \u003d _(\u0027Node failed to move to active state.\u0027)"},{"line_number":166,"context_line":"                self.reboot_to_instance(task, **kwargs)"},{"line_number":167,"context_line":"        except Exception as e:"},{"line_number":168,"context_line":"            last_error \u003d _(\u0027Asynchronous exception%(node_str)s: %(msg)s;\u0027"},{"line_number":169,"context_line":"                           \u0027exception: %(e)s\u0027) % {\u0027msg\u0027: msg, \u0027e\u0027: e}"},{"line_number":170,"context_line":"            error_msg \u003d last_error % {"},{"line_number":171,"context_line":"                    \u0027node_str\u0027: _LE(\u0027 for node %s\u0027) % node.uuid}"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_f700d135","line":168,"updated":"2015-02-25 15:02:01.000000000","message":"nit: space after ;","commit_id":"a9cfa9780c08a140db61b64aa4d2312bca3da859"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8c5c0f7414ab1b0a86a736f1dce349b63ccdcaa6","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                self.reboot_to_instance(task, **kwargs)"},{"line_number":167,"context_line":"        except Exception as e:"},{"line_number":168,"context_line":"            last_error \u003d _(\u0027Asynchronous exception%(node_str)s: %(msg)s;\u0027"},{"line_number":169,"context_line":"                           \u0027exception: %(e)s\u0027) % {\u0027msg\u0027: msg, \u0027e\u0027: e}"},{"line_number":170,"context_line":"            error_msg \u003d last_error % {"},{"line_number":171,"context_line":"                    \u0027node_str\u0027: _LE(\u0027 for node %s\u0027) % node.uuid}"},{"line_number":172,"context_line":"            LOG.exception(error_msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_57651d1c","line":169,"updated":"2015-02-25 15:02:01.000000000","message":"partial application does not seem to work:\n\n \u003e\u003e\u003e \u0027%(x)s %(y)s\u0027 % {\u0027x\u0027: 2}\n Traceback (most recent call last):\n   File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\n KeyError: \u0027y\u0027\n\nyou may need \u0027node_str\u0027: \u0027%(node_str)s\u0027","commit_id":"a9cfa9780c08a140db61b64aa4d2312bca3da859"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"93fe025deacd7b1dfa6c3953ff4df5dd6c5ab53f","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                self.reboot_to_instance(task, **kwargs)"},{"line_number":167,"context_line":"        except Exception as e:"},{"line_number":168,"context_line":"            last_error \u003d _(\u0027Asynchronous exception%(node_str)s: %(msg)s;\u0027"},{"line_number":169,"context_line":"                           \u0027exception: %(e)s\u0027) % {\u0027msg\u0027: msg, \u0027e\u0027: e}"},{"line_number":170,"context_line":"            error_msg \u003d last_error % {"},{"line_number":171,"context_line":"                    \u0027node_str\u0027: _LE(\u0027 for node %s\u0027) % node.uuid}"},{"line_number":172,"context_line":"            LOG.exception(error_msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_4323a0a6","line":169,"in_reply_to":"ba7be1f8_57651d1c","updated":"2015-02-25 15:43:59.000000000","message":"Add unit test would be fine.","commit_id":"a9cfa9780c08a140db61b64aa4d2312bca3da859"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"62ed4e97cb2e80323a6b48017c928d8d2062cf47","unresolved":false,"context_lines":[{"line_number":169,"context_line":"            last_error \u003d _(\u0027Asynchronous exception for node %(node)s: \u0027"},{"line_number":170,"context_line":"                           \u0027%(msg)s; exception: %(e)s\u0027) % err_info"},{"line_number":171,"context_line":"            LOG.exception(last_error)"},{"line_number":172,"context_line":"            deploy_utils.set_failed_state(task, last_error)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    @base.driver_passthru([\u0027POST\u0027], async\u003dFalse)"},{"line_number":175,"context_line":"    def lookup(self, context, **kwargs):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_ea454043","line":172,"updated":"2015-02-25 18:06:32.000000000","message":"I gave up caring about trying to keep the node id out of node.last_error; it\u0027s only a few bytes and I don\u0027t think it\u0027s worth the effort to keep it out.","commit_id":"a37a0dc1bfea948736cbebae3aae83046760dd93"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"26285c973b5f067c7f2d462bd7a8505072b6607c","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        node.save()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        # Async call backs don\u0027t set error state on their own"},{"line_number":157,"context_line":"        # TODO(jimrollenhagen) improve error messages here"},{"line_number":158,"context_line":"        msg \u003d _(\u0027Failed checking if deploy is done.\u0027)"},{"line_number":159,"context_line":"        try:"},{"line_number":160,"context_line":"            if node.provision_state \u003d\u003d states.DEPLOYWAIT:"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba7be1f8_96e050ce","line":157,"updated":"2015-02-26 10:05:01.000000000","message":"do we need this todo now? :)","commit_id":"591f3f2e34c2bdc654d5a653a163c71417ae4733"}]}
