)]}'
{"openstack/exceptions.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"7a80511d221515d268fc7a4c9b5dc0483a0b0780","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        self.response \u003d response"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class HttpException(_exceptions.HttpError):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, message\u003dNone, details\u003dNone, response\u003dNone,"},{"line_number":42,"context_line":"                 request_id\u003dNone, url\u003dNone, method\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_66463525","line":39,"range":{"start_line":39,"start_character":20,"end_line":39,"end_character":31},"updated":"2016-01-12 21:01:57.000000000","message":"Do we want to do this or just add members to this class we want to map?  Do we want this dependency?","commit_id":"66cd1002ef3d7957b6b76420be0a788d2f0ed6d5"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"355f6dd481e333a07f7371aca487f339264cc97d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        self.response \u003d response"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class HttpException(_exceptions.HttpError):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, message\u003dNone, details\u003dNone, response\u003dNone,"},{"line_number":42,"context_line":"                 request_id\u003dNone, url\u003dNone, method\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_b13d48bd","line":39,"range":{"start_line":39,"start_character":20,"end_line":39,"end_character":31},"in_reply_to":"da6ed579_66463525","updated":"2016-01-12 21:50:41.000000000","message":"Well we already depend on KSA very heavily. If we were to tear it out, this particular dependency would be the least of our worries.\n\nWe want to map KSA exceptions precisely to not lose information. But if KSA changed HttpError, would we even know or would we automatically benefit from the change?\n\nDo we need something like this instead?\n\n    def __init__(self, **kwargs, cause\u003dNone):\n            super(HttpException, self).__init__(**kwargs)\n            self.cause \u003d cause\n\nSeems like if we\u0027re not doing that, we don\u0027t get much benefit from inheriting.","commit_id":"66cd1002ef3d7957b6b76420be0a788d2f0ed6d5"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"324dc7c1eb7931ae48663ba40a99173a64ab9ae4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        self.response \u003d response"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class HttpException(_exceptions.HttpError):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, message\u003dNone, details\u003dNone, response\u003dNone,"},{"line_number":42,"context_line":"                 request_id\u003dNone, url\u003dNone, method\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_60676fe9","line":39,"range":{"start_line":39,"start_character":20,"end_line":39,"end_character":31},"in_reply_to":"da6ed579_b13d48bd","updated":"2016-01-14 23:13:31.000000000","message":"I wound up just adding members to this class. I like that more because then I can put `cause` in SDKException and the only place ksa exceptions are imported anywhere in the code base are in openstack.session.","commit_id":"66cd1002ef3d7957b6b76420be0a788d2f0ed6d5"}],"openstack/session.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"63b584fad81fc31f3db29f4815a2d8983a1a03f0","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        super(Session, self).__init__(**kwargs)"},{"line_number":79,"context_line":"        self.profile \u003d profile"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        for attributeName, attribute in vars(_session.Session).items():"},{"line_number":82,"context_line":"            if isinstance(attribute, FunctionType) and \\"},{"line_number":83,"context_line":"                    not attributeName.startswith(\u0027_\u0027):"},{"line_number":84,"context_line":"                setattr(_session.Session, attributeName,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_c7ac4da1","line":81,"updated":"2016-01-11 14:46:23.000000000","message":"I\u0027m not following what this is doing here. It seems like the real work happens in the decorated function at call-time.\n\nI think this is reaching into the KSA Session and wrapping everything in there as well?","commit_id":"7e82cb4492a8896829aa88101d112f5909080f12"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"76312801d142ee1c71fb21332b9d33cd1c169415","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        super(Session, self).__init__(**kwargs)"},{"line_number":79,"context_line":"        self.profile \u003d profile"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        for attributeName, attribute in vars(_session.Session).items():"},{"line_number":82,"context_line":"            if isinstance(attribute, FunctionType) and \\"},{"line_number":83,"context_line":"                    not attributeName.startswith(\u0027_\u0027):"},{"line_number":84,"context_line":"                setattr(_session.Session, attributeName,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_a7dfd6d4","line":81,"in_reply_to":"fa69d971_c7ac4da1","updated":"2016-01-11 15:35:42.000000000","message":"Ugh. I meant to remove this. It\u0027s gone now.","commit_id":"7e82cb4492a8896829aa88101d112f5909080f12"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"7a80511d221515d268fc7a4c9b5dc0483a0b0780","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    def map_exceptions_wrapper(*args, **kwargs):"},{"line_number":47,"context_line":"        try:"},{"line_number":48,"context_line":"            return func(*args, **kwargs)"},{"line_number":49,"context_line":"        except _exceptions.HttpError as e:"},{"line_number":50,"context_line":"            if e.http_status \u003d\u003d 404:"},{"line_number":51,"context_line":"                raise exceptions.NotFoundException("},{"line_number":52,"context_line":"                    message\u003de.message, details\u003de.details,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_a60aedd0","line":49,"range":{"start_line":49,"start_character":27,"end_line":49,"end_character":36},"updated":"2016-01-12 21:01:57.000000000","message":"Are there any other ksa exceptions we should map here?  I kind of wouldn\u0027t think so, but what about endpoint not found errors for get_endpoint?","commit_id":"66cd1002ef3d7957b6b76420be0a788d2f0ed6d5"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"49bbe941c3a5f0134acf9b78f352250443526d72","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    def map_exceptions_wrapper(*args, **kwargs):"},{"line_number":47,"context_line":"        try:"},{"line_number":48,"context_line":"            return func(*args, **kwargs)"},{"line_number":49,"context_line":"        except _exceptions.HttpError as e:"},{"line_number":50,"context_line":"            if e.http_status \u003d\u003d 404:"},{"line_number":51,"context_line":"                raise exceptions.NotFoundException("},{"line_number":52,"context_line":"                    message\u003de.message, details\u003de.details,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_91cb6453","line":49,"range":{"start_line":49,"start_character":27,"end_line":49,"end_character":36},"in_reply_to":"da6ed579_110694ce","updated":"2016-01-12 21:55:40.000000000","message":"All KSA exceptions derive off https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/exceptions/base.py so it would be safer to have an except for that and map message from that to our base exception.","commit_id":"66cd1002ef3d7957b6b76420be0a788d2f0ed6d5"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"355f6dd481e333a07f7371aca487f339264cc97d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    def map_exceptions_wrapper(*args, **kwargs):"},{"line_number":47,"context_line":"        try:"},{"line_number":48,"context_line":"            return func(*args, **kwargs)"},{"line_number":49,"context_line":"        except _exceptions.HttpError as e:"},{"line_number":50,"context_line":"            if e.http_status \u003d\u003d 404:"},{"line_number":51,"context_line":"                raise exceptions.NotFoundException("},{"line_number":52,"context_line":"                    message\u003de.message, details\u003de.details,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6ed579_110694ce","line":49,"range":{"start_line":49,"start_character":27,"end_line":49,"end_character":36},"in_reply_to":"da6ed579_a60aedd0","updated":"2016-01-12 21:50:41.000000000","message":"Can you be a bit more specific?\n\nDo you mean keystoneauth1.exceptions.catalog.EndpointNotFound?\n\nWhat would we map it to? Create a new SDK exception?","commit_id":"66cd1002ef3d7957b6b76420be0a788d2f0ed6d5"}]}
