)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14228,"name":"Clif Houck","email":"me@clifhouck.com","username":"clif_h"},"change_message_id":"2448e607f6d9d3ef0845678edaad05cd35b3c519","unresolved":false,"context_lines":[{"line_number":10,"context_line":"2.6 and does not exist in Python 3."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The preferred way to get a message from an exception is str(exc) or"},{"line_number":13,"context_line":"exc.args[0]"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This change renames the \u0027message\u0027 property to \u0027_message\u0027 to indicate to"},{"line_number":16,"context_line":"users that they should not use it directly."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"da20952f_33066821","line":13,"updated":"2015-08-26 17:39:09.000000000","message":"As discussed in IRC, probably don\u0027t want to get messages from exceptions using exc.args[0].","commit_id":"8a56b2456b46ffec748f0b03176ffd94c9e2beed"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1236a43c104e7f506990b0a3753b1de7b9abc62f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     John L. Villalovos \u003cjohn.l.villalovos@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-26 11:07:00 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Stop providing \u0027message\u0027 property in IronicException"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The \u0027message\u0027 property for exceptions has been deprecated since Python"},{"line_number":10,"context_line":"2.6 and does not exist in Python 3."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da20952f_f0a10f47","line":7,"updated":"2015-08-31 10:49:38.000000000","message":"Oh I missed this.  This seems a bit misleading and got clarified when I checked the nova exception.  This commit is not going to stop providing message property in IronicException.  In fact this will still work\n\n  IronicException(\u0027foo\u0027).message\n\nSo, may be change the commit message header to something like \"Rename message attribute in exception classes\".","commit_id":"32e5935a552a1c8389a32f4b0a714b7f0e16ee46"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"d6d0b79706de811a20881c86299c4d30eeda2b8a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     John L. Villalovos \u003cjohn.l.villalovos@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-26 11:07:00 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Stop providing \u0027message\u0027 property in IronicException"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The \u0027message\u0027 property for exceptions has been deprecated since Python"},{"line_number":10,"context_line":"2.6 and does not exist in Python 3."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da20952f_0001c805","line":7,"in_reply_to":"da20952f_f0a10f47","updated":"2015-09-02 03:33:19.000000000","message":"It will not work in Python 3.X, as the attribute won\u0027t exist. So this patch would stop providing the message property in Python 3.X\n\nYou are correct that the \u0027message\u0027 property will still be accessible in Python 2.7 though. Because the call to the base Exception class will populate the message property.\n\nI will re-word this commit message to make that more clear.\n\nThe underlying goal of this patch is to move away from using the \u0027message\u0027 property as it is not the way to do it in Python anymore.","commit_id":"32e5935a552a1c8389a32f4b0a714b7f0e16ee46"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"d6d0b79706de811a20881c86299c4d30eeda2b8a","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The preferred way to get a message from an exception is str(exc)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This change renames the \u0027message\u0027 property to \u0027msg_fmt\u0027 to help indicate"},{"line_number":15,"context_line":"to users that they should not use it directly."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"For any third-party users of the IronicException class, log a warning"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da20952f_29233907","line":14,"updated":"2015-09-02 03:33:19.000000000","message":"I\u0027m probably going to respin this and make it \u0027_msg_fmt\u0027 to better indicate it should not be accessed directly.","commit_id":"32e5935a552a1c8389a32f4b0a714b7f0e16ee46"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1236a43c104e7f506990b0a3753b1de7b9abc62f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"The preferred way to get a message from an exception is str(exc)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This change renames the \u0027message\u0027 property to \u0027msg_fmt\u0027 to help indicate"},{"line_number":15,"context_line":"to users that they should not use it directly."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"For any third-party users of the IronicException class, log a warning"},{"line_number":18,"context_line":"that usage of the \u0027message\u0027 attribute is deprecated, but allow them to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da20952f_b0af1729","line":15,"updated":"2015-08-31 10:49:38.000000000","message":"I am not sure if it indicates users in any way that they should stop using message property.  People might still be using e.message in out of the tree code and we still won\u0027t do anything. (at least with changes in this patch).\n\nI think the intention of the nova patch was a bit different to provide same content if someone tried to do\n\n  str(exc) and\n  exc.message","commit_id":"32e5935a552a1c8389a32f4b0a714b7f0e16ee46"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"d6d0b79706de811a20881c86299c4d30eeda2b8a","unresolved":false,"context_lines":[{"line_number":12,"context_line":"The preferred way to get a message from an exception is str(exc)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This change renames the \u0027message\u0027 property to \u0027msg_fmt\u0027 to help indicate"},{"line_number":15,"context_line":"to users that they should not use it directly."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"For any third-party users of the IronicException class, log a warning"},{"line_number":18,"context_line":"that usage of the \u0027message\u0027 attribute is deprecated, but allow them to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da20952f_a91669a5","line":15,"in_reply_to":"da20952f_b0af1729","updated":"2015-09-02 03:33:19.000000000","message":"That would only be for Python 2.x.  In Python 3 that would not work in Nova as there is no \u0027message\u0027 property anymore.","commit_id":"32e5935a552a1c8389a32f4b0a714b7f0e16ee46"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"9669a6f1f4638e37f64ceef2a17e609c83794bb7","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This change renames the \u0027message\u0027 property to \u0027msg_fmt\u0027 to help indicate"},{"line_number":15,"context_line":"to users that they should not use it directly."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"For any third-party users of the IronicException class, log a warning"},{"line_number":18,"context_line":"that usage of the \u0027message\u0027 attribute is deprecated, but allow them to"},{"line_number":19,"context_line":"keep working."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da20952f_90d3f303","line":17,"updated":"2015-08-31 10:45:09.000000000","message":"I am not sure if we really need to care about out of the tree exceptions.  I think this patch as such will not break anything or anyone as my_exception.message will still be accessible.  And any way the exception is out of the tree, so they are the only persons who wrote the code and using it, and they should probably handle the case whoever is using their  out-of-tree exception.  It\u0027s private code anyway.\n\nSo I am wondering if it all we need a deprecation note for this.\n\nIf it all we need this warning message (for some other reason I am missing), there should be a timeframe when we should remove it off that should be captured.","commit_id":"32e5935a552a1c8389a32f4b0a714b7f0e16ee46"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"d6d0b79706de811a20881c86299c4d30eeda2b8a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This change renames the \u0027message\u0027 property to \u0027msg_fmt\u0027 to help indicate"},{"line_number":15,"context_line":"to users that they should not use it directly."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"For any third-party users of the IronicException class, log a warning"},{"line_number":18,"context_line":"that usage of the \u0027message\u0027 attribute is deprecated, but allow them to"},{"line_number":19,"context_line":"keep working."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da20952f_89492591","line":17,"in_reply_to":"da20952f_90d3f303","updated":"2015-09-02 03:33:19.000000000","message":"I was asked in a previous patchset to think about out-of-tree users. Thus why I added the code.","commit_id":"32e5935a552a1c8389a32f4b0a714b7f0e16ee46"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"9669a6f1f4638e37f64ceef2a17e609c83794bb7","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"This is similar to work done in Nova:"},{"line_number":22,"context_line":"  commit 70569ae344bceb3794713abc5cb2c82e9671c37d"},{"line_number":23,"context_line":"  Author: Mark McLoughlin \u003cmarkmc@redhat.com\u003e"},{"line_number":24,"context_line":"  Date:   Mon Jul 1 11:31:06 2013 +0100"},{"line_number":25,"context_line":"  Subject: Avoid shadowing Exception \u0027message\u0027 attribute"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da20952f_509d5b64","line":23,"updated":"2015-08-31 10:45:09.000000000","message":"I am not sure if anything other than commit ID in nova is required :)","commit_id":"32e5935a552a1c8389a32f4b0a714b7f0e16ee46"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"d6d0b79706de811a20881c86299c4d30eeda2b8a","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"This is similar to work done in Nova:"},{"line_number":22,"context_line":"  commit 70569ae344bceb3794713abc5cb2c82e9671c37d"},{"line_number":23,"context_line":"  Author: Mark McLoughlin \u003cmarkmc@redhat.com\u003e"},{"line_number":24,"context_line":"  Date:   Mon Jul 1 11:31:06 2013 +0100"},{"line_number":25,"context_line":"  Subject: Avoid shadowing Exception \u0027message\u0027 attribute"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da20952f_a92f49f5","line":23,"in_reply_to":"da20952f_509d5b64","updated":"2015-09-02 03:33:19.000000000","message":"True, not required. But I like it :)","commit_id":"32e5935a552a1c8389a32f4b0a714b7f0e16ee46"}],"ironic/common/exception.py":[{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"f0c2e50be8e2dd50a7a1df9e97b5f812f95e40e3","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        if not message:"},{"line_number":80,"context_line":"            # Check if class is using deprecated \u0027message\u0027 attribute."},{"line_number":81,"context_line":"            if (hasattr(self, \u0027message\u0027) and self.message):"},{"line_number":82,"context_line":"                LOG.warning(_LW(\"Exception class: %s Using the \u0027message\u0027 \""},{"line_number":83,"context_line":"                                \"attribute in an exception has been \""},{"line_number":84,"context_line":"                                \"deprecated. The exception class should be \""},{"line_number":85,"context_line":"                                \"modified to use the \u0027msg_fmt\u0027 \""}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_8c6cc509","line":82,"updated":"2015-09-02 10:47:47.000000000","message":"Is this going to be removed at some point? Maybe add a comment about this too.","commit_id":"32e5935a552a1c8389a32f4b0a714b7f0e16ee46"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        if not message:"},{"line_number":79,"context_line":"            # Check if class is using deprecated \u0027message\u0027 attribute."},{"line_number":80,"context_line":"            if (hasattr(self, \u0027message\u0027) and self.message):"},{"line_number":81,"context_line":"                LOG.warning(_LW(\"Exception class: %s Using the \u0027message\u0027 \""},{"line_number":82,"context_line":"                                \"attribute in an exception has been \""},{"line_number":83,"context_line":"                                \"deprecated. The exception class should be \""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_11f7d759","line":80,"updated":"2015-09-30 11:14:23.000000000","message":"nit: if getattr(self, \u0027message\u0027, None)","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7f2a1a86b8a532d02378700609396941be8053f0","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        if not message:"},{"line_number":79,"context_line":"            # Check if class is using deprecated \u0027message\u0027 attribute."},{"line_number":80,"context_line":"            if (hasattr(self, \u0027message\u0027) and self.message):"},{"line_number":81,"context_line":"                LOG.warning(_LW(\"Exception class: %s Using the \u0027message\u0027 \""},{"line_number":82,"context_line":"                                \"attribute in an exception has been \""},{"line_number":83,"context_line":"                                \"deprecated. The exception class should be \""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_8ab2b24a","line":80,"in_reply_to":"9a1a9d01_11f7d759","updated":"2015-09-30 21:36:27.000000000","message":"If I re-spin I will do this.","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"class InstanceAssociated(Conflict):"},{"line_number":176,"context_line":"    _msg_fmt \u003d _(\"Instance %(instance_uuid)s is already associated with a \""},{"line_number":177,"context_line":"                 \"node, it cannot be associated with this other node %(node)s\")"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"class DuplicateName(Conflict):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_b1986b1d","line":177,"updated":"2015-09-30 11:14:23.000000000","message":"nit: seems like we have dots everywhere, if you happen to submit one more patchset, please add it","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"7f2a1a86b8a532d02378700609396941be8053f0","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"class InstanceAssociated(Conflict):"},{"line_number":176,"context_line":"    _msg_fmt \u003d _(\"Instance %(instance_uuid)s is already associated with a \""},{"line_number":177,"context_line":"                 \"node, it cannot be associated with this other node %(node)s\")"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"class DuplicateName(Conflict):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_aa6696ea","line":177,"in_reply_to":"9a1a9d01_b1986b1d","updated":"2015-09-30 21:36:27.000000000","message":"Okay, if I respin I will add periods to the lines.\n\notherwise I will do it as a follow-up patch","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"class PatchError(Invalid):"},{"line_number":210,"context_line":"    _msg_fmt \u003d _(\"Couldn\u0027t apply patch \u0027%(patch)s\u0027. Reason: %(reason)s\")"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"class InstanceDeployFailure(IronicException):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_d19b9f16","line":210,"updated":"2015-09-30 11:14:23.000000000","message":"ditto about dots here, though I\u0027m not sure whether \"reason\" has dots in it..","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":243,"context_line":""},{"line_number":244,"context_line":"class DHCPLoadError(IronicException):"},{"line_number":245,"context_line":"    _msg_fmt \u003d _(\"Failed to load DHCP provider %(dhcp_provider_name)s, \""},{"line_number":246,"context_line":"                 \"reason: %(reason)s\")"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"class DriverNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_719e5308","line":246,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"class NoValidHost(NotFound):"},{"line_number":258,"context_line":"    _msg_fmt \u003d _(\"No valid host was found. Reason: %(reason)s\")"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"class InstanceNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_91a1a748","line":258,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":318,"context_line":""},{"line_number":319,"context_line":"class NodeMaintenanceFailure(Invalid):"},{"line_number":320,"context_line":"    _msg_fmt \u003d _(\"Failed to toggle maintenance-mode flag \""},{"line_number":321,"context_line":"                 \"for node %(node)s: %(reason)s\")"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"class NodeConsoleNotEnabled(Invalid):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_318d3bd6","line":321,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"class NodeConsoleNotEnabled(Invalid):"},{"line_number":325,"context_line":"    _msg_fmt \u003d _(\"Console access is not enabled on node %(node)s\")"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"class NodeInMaintenance(Invalid):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_5188efc4","line":325,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":366,"context_line":""},{"line_number":367,"context_line":"class GlanceConnectionFailed(IronicException):"},{"line_number":368,"context_line":"    _msg_fmt \u003d _(\"Connection to glance host %(host)s:%(port)s failed: \""},{"line_number":369,"context_line":"                 \"%(reason)s\")"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"class ImageNotAuthorized(NotAuthorized):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_f19263f5","line":369,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"class ImageRefValidationFailed(IronicException):"},{"line_number":381,"context_line":"    _msg_fmt \u003d _(\"Validation of image href %(image_href)s failed, \""},{"line_number":382,"context_line":"                 \"reason: %(reason)s\")"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"class ImageDownloadFailed(IronicException):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_118ef7cf","line":382,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":400,"context_line":""},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"class ServiceUnavailable(IronicException):"},{"line_number":403,"context_line":"    _msg_fmt \u003d _(\"Connection failed\")"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"class Forbidden(IronicException):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_b1bf0b60","line":403,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":404,"context_line":""},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"class Forbidden(IronicException):"},{"line_number":407,"context_line":"    _msg_fmt \u003d _(\"Requested OpenStack Images API is forbidden\")"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"class BadRequest(IronicException):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_d1c2bfe8","line":407,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":407,"context_line":"    _msg_fmt \u003d _(\"Requested OpenStack Images API is forbidden\")"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"class BadRequest(IronicException):"},{"line_number":411,"context_line":"    pass"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_71b5f37b","line":410,"updated":"2015-09-30 11:14:23.000000000","message":"I\u0027d prefer this have a generic \"Bad request received.\" message","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"class InvalidEndpoint(IronicException):"},{"line_number":415,"context_line":"    _msg_fmt \u003d _(\"The provided endpoint is invalid\")"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"class CommunicationError(IronicException):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_91b8c776","line":415,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":432,"context_line":""},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"class ConfigNotFound(IronicException):"},{"line_number":435,"context_line":"    _msg_fmt \u003d _(\"Could not find config at %(path)s\")"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"class NodeLocked(Conflict):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_31b45b7e","line":435,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":441,"context_line":""},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"class NodeNotLocked(Invalid):"},{"line_number":444,"context_line":"    _msg_fmt \u003d _(\"Node %(node)s found not to be locked on release\")"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"class NoFreeConductorWorker(TemporaryFailure):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_51af8f29","line":444,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":455,"context_line":""},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"class ConfigInvalid(IronicException):"},{"line_number":458,"context_line":"    _msg_fmt \u003d _(\"Invalid configuration file. %(error_msg)s\")"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"class DriverLoadError(IronicException):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_f1a90325","line":458,"updated":"2015-09-30 11:14:23.000000000","message":"ditto","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":459,"context_line":""},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"class DriverLoadError(IronicException):"},{"line_number":462,"context_line":"    _msg_fmt \u003d _(\"Driver %(driver)s could not be loaded. Reason: %(reason)s.\")"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"class ConsoleError(IronicException):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_11a59745","line":462,"updated":"2015-09-30 11:14:23.000000000","message":"and here we have a dot after reason...","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":462,"context_line":"    _msg_fmt \u003d _(\"Driver %(driver)s could not be loaded. Reason: %(reason)s.\")"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"class ConsoleError(IronicException):"},{"line_number":466,"context_line":"    pass"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_b1662b28","line":465,"updated":"2015-09-30 11:14:23.000000000","message":"Again, would be cool to have \"Unknown console error\" or something","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a0b6ddbb920fa969baaa30fb20a0883da1176fa8","unresolved":false,"context_lines":[{"line_number":467,"context_line":""},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"class NoConsolePid(ConsoleError):"},{"line_number":470,"context_line":"    _msg_fmt \u003d _(\"Could not find pid in pid file %(pid_path)s\")"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"class ConsoleSubprocessFailed(ConsoleError):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a1a9d01_d1695ffa","line":470,"updated":"2015-09-30 11:14:23.000000000","message":"ditto about dot here and below","commit_id":"5766e61406780133caae1b9823ae4f47e1f1c16b"}],"ironic/tests/common/test_exception.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"7e8ef1519b9ffa3488a310ae968f83b38ef36b90","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            \"attribute in an exception has been deprecated. The exception \""},{"line_number":43,"context_line":"            \"class should be modified to use the \u0027_msg_fmt\u0027 attribute.\","},{"line_number":44,"context_line":"            \u0027DeprecatedException\u0027)"},{"line_number":45,"context_line":"        self.assertEqual(\u0027Using message is deprecated spam\u0027, str(exc))"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a1a9d01_45f9a87f","line":45,"updated":"2015-09-25 14:34:56.000000000","message":"Talking on IRC John clarified that all unittests run in english [1].\n\nSo I\u0027m good checking this message here.\n\n[1] https://github.com/openstack/ironic/blob/master/tox.ini#L13","commit_id":"0972a956f6c4d3abce7eb5e8682ff02c5b29ee7e"}]}
