)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3b23b90859bc8800583fa1a1f8746836c1d5898b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Adam Young \u003cayoung@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-09-18 12:46:21 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Catch AttributeError if no service catalog"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I439f71e548b8230e7ce38d1a0e9d0d8f9b205d77"},{"line_number":10,"context_line":"Closes-Bug: 1239219"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"baa201ad_05465223","line":7,"updated":"2014-10-03 00:58:23.000000000","message":"the commit message is inaccurate since this doesn\u0027t catch an attributeerror.","commit_id":"8abca6bd7ca2738ccae601068775f41719675b2e"}],"keystoneclient/httpclient.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"527aa85d86e25836bb87e1e9c3d31f9932b857c1","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        try:"},{"line_number":283,"context_line":"            return self.auth_ref.has_service_catalog()"},{"line_number":284,"context_line":"        except AttributeError:"},{"line_number":285,"context_line":"            return False"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    @property"},{"line_number":288,"context_line":"    def tenant_id(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_b9fd0bb4","line":285,"updated":"2014-06-23 23:23:47.000000000","message":"looking at it again i\u0027d prefer just \n\n    return self.auth_ref and self.auth_ref.has_service_catalog()\n\nbecause as is you are catching AttributeErrors coming from the has_service_catalog call on the AccessInfo.\n\n\nProbably wants a test as well","commit_id":"47f97f431310aea2e616f13f44507263bc1e993e"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"bcafe36423ea7b383dfd442ce8dcd70bcfe895be","unresolved":false,"context_lines":[{"line_number":308,"context_line":"    @property"},{"line_number":309,"context_line":"    def service_catalog(self):"},{"line_number":310,"context_line":"        \"\"\"Returns this client\u0027s service catalog.\"\"\""},{"line_number":311,"context_line":"        return self.auth_ref.service_catalog"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def has_service_catalog(self):"},{"line_number":314,"context_line":"        \"\"\"Returns True if this client provides a service catalog.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"da9df570_5ccaf76e","side":"PARENT","line":311,"updated":"2014-09-24 20:47:27.000000000","message":"Do we need a guard for this one too? It has the same problem.","commit_id":"118763cbe00e00e7b78b926e21e69ec479212b1b"}]}
