)]}'
{"troveclient/exceptions.py":[{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"31b6b7aaa90ff488d8908e09cc1ae7320e649f5b","unresolved":false,"context_lines":[{"line_number":154,"context_line":"#"},{"line_number":155,"context_line":"# Instead, we have to hardcode it:"},{"line_number":156,"context_line":"_code_map \u003d dict((c.http_status, c) for c in [BadRequest, Unauthorized,"},{"line_number":157,"context_line":"                                              Forbidden, NotFound, OverLimit,"},{"line_number":158,"context_line":"                                              HTTPNotImplemented,"},{"line_number":159,"context_line":"                                              UnprocessableEntity])"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2Fobs%3D","side":"PARENT","line":157,"updated":"2014-03-14 21:06:16.000000000","message":"these shouldn\u0027t be removed.","commit_id":"d140ff2811819d647b11f6cd376610b4f9f69e8c"},{"author":{"_account_id":6162,"name":"Dan Nguyen","email":"dan.nguyens.mail@gmail.com","username":"daniel-a-nguyen"},"change_message_id":"236eb6748e4a06f2a3c6719c3475025f0ef24750","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"#flake8: noqa"},{"line_number":23,"context_line":"from troveclient.openstack.common.apiclient.exceptions import *"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NoTokenLookupException(Exception):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2FZ4c%3D","line":23,"updated":"2014-03-18 04:03:53.000000000","message":"Could we remove the line above and just force the calling code to import only the exceptions they need?","commit_id":"4e20ed6730f32b8151796d2ece87c05a13ea5838"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"5c0eb16edd33812d91e3503b36738d1aa3e34ff9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"#flake8: noqa"},{"line_number":23,"context_line":"from troveclient.openstack.common.apiclient.exceptions import *"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NoTokenLookupException(Exception):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BI2Y%3D","line":23,"in_reply_to":"AAAAWH%2F%2Bkis%3D","updated":"2014-03-28 21:18:06.000000000","message":"1) the two remaining exceptions below are still in use, and don\u0027t exist in oslo (and they shouldn\u0027t).\n\nhttps://github.com/openstack/python-troveclient/blob/59ec2bb43354674f9d0a3f25d8098bc7264bbd45/troveclient/client.py#L333\nhttps://github.com/openstack/python-troveclient/blob/8bc981aba55f050c4b0277987d5505eb53355b25/troveclient/compat/client.py#L205\n\n2) no other client in all of openstack does what you\u0027re suggesting we should do:\n\nhttps://github.com/openstack/horizon/blob/master/openstack_dashboard/exceptions.py#L21-L28\n\nand if we did, it would require extensive coordinated releases/tagging with horizon to avoid breaking horizon. having our own exceptions class also gives us the flexibility to add errors if oslo refuses to merge one upstream we need.","commit_id":"4e20ed6730f32b8151796d2ece87c05a13ea5838"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"9dd15fdf375372a01e389352526628af02bdc2a6","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"#flake8: noqa"},{"line_number":23,"context_line":"from troveclient.openstack.common.apiclient.exceptions import *"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NoTokenLookupException(Exception):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2Bkis%3D","line":23,"in_reply_to":"AAAAWH%2F%2FI%2Bk%3D","updated":"2014-03-25 20:27:25.000000000","message":"Auston, good suggestion. But, IMHO, i\u0027d better get rid of this file at all and use exceptions from oslo.","commit_id":"4e20ed6730f32b8151796d2ece87c05a13ea5838"},{"author":{"_account_id":6162,"name":"Dan Nguyen","email":"dan.nguyens.mail@gmail.com","username":"daniel-a-nguyen"},"change_message_id":"1b9e9f2aca3686cd721e010bd949aa78324e63dc","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"#flake8: noqa"},{"line_number":23,"context_line":"from troveclient.openstack.common.apiclient.exceptions import *"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NoTokenLookupException(Exception):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2FI%2Bk%3D","line":23,"in_reply_to":"AAAAWH%2F%2FSSI%3D","updated":"2014-03-19 23:51:28.000000000","message":"gotcha, thx for setting me straight :)","commit_id":"4e20ed6730f32b8151796d2ece87c05a13ea5838"},{"author":{"_account_id":10139,"name":"Ramashri Umale","email":"rumale@ebaysf.com","username":"rumale"},"change_message_id":"7098a4bfb443b136f8d8f2993974daffd7eaf102","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"#flake8: noqa"},{"line_number":23,"context_line":"from troveclient.openstack.common.apiclient.exceptions import *"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NoTokenLookupException(Exception):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2FTG8%3D","line":23,"in_reply_to":"AAAAWH%2F%2FZ4c%3D","updated":"2014-03-18 19:19:14.000000000","message":"Why should calling code need to know about troveclient.openstack.common.apiclient.exceptions in addition to troveclient.exceptions","commit_id":"4e20ed6730f32b8151796d2ece87c05a13ea5838"},{"author":{"_account_id":8214,"name":"Auston McReynolds","email":"amcreynolds@ebaysf.com","username":"amcreynolds"},"change_message_id":"cfe080891af568808fa7ce97a865ed200b60dc02","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"#flake8: noqa"},{"line_number":23,"context_line":"from troveclient.openstack.common.apiclient.exceptions import *"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NoTokenLookupException(Exception):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2FSSI%3D","line":23,"in_reply_to":"AAAAWH%2F%2FZ4c%3D","updated":"2014-03-18 21:29:30.000000000","message":"hey dan, for context see https://gist.github.com/amcrn/80a68aca90869b5b66ab . we could arguably import one by one here, but since everything is needed anyway, and the python-keystoneclient did it this way (https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/exceptions.py#L19-L20), i think it\u0027s a reasonable approach. this approach also protects us from an oslo sync that introduces a new exception in openstack/common/apiclient/exceptions.py (because it\u0027s pretty much guaranteed the person syncing wouldn\u0027t know that an import in this file is required to avoid breaking horizon again).","commit_id":"4e20ed6730f32b8151796d2ece87c05a13ea5838"},{"author":{"_account_id":9683,"name":"Mat Lowery","email":"mlowery@ebaysf.com","username":"mat-lowery"},"change_message_id":"df013eb05b196069a5a937d60d208a399427d965","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\"\"\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"#flake8: noqa"},{"line_number":23,"context_line":"from troveclient.openstack.common.apiclient.exceptions import *"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class NoTokenLookupException(Exception):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXH%2F%2FRig%3D","line":23,"updated":"2014-04-22 20:24:45.000000000","message":"My only comment here is that I always assumed that imports were for the exclusive use of the module doing the import. Here, the whole point of this change is to alias the module for use by others. I understand that keystoneclient does this but I would guess it\u0027s not a Python best practice.\n\nAt a minimum, can we add a comment saying that this line is intentionally aliasing the module so that others will know that the line cannot be modified without external consequences?","commit_id":"70061368935395efa4b0fe9311917ae6fa02b138"}]}
