)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"5d6115b4b70b199eb181619732bd97e757e7e84e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"be able to share the discovery cache with the session. This function"},{"line_number":11,"context_line":"should therefore be reusable rather than making the cache on the session"},{"line_number":12,"context_line":"public."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I769b4e2cd59a4dd167c4dcd8f14641081f867a71"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"baada198_f4531cdc","line":13,"updated":"2014-08-05 23:36:37.000000000","message":"This introduces a new public API so it should have a bug or docimpact.","commit_id":"b78e89015ccc5597a54d5dc974649ea57f527530"}],"keystoneclient/_discover.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"998920b6a3c516706091d4fda8f1e6470a0f5373","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    try:"},{"line_number":37,"context_line":"        resp \u003d session.get(url, headers\u003dheaders)"},{"line_number":38,"context_line":"    except (exceptions.HTTPError, exceptions.ConnectionError):"},{"line_number":39,"context_line":"        raise exceptions.DiscoveryFailure()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_3aaaddd3","line":38,"updated":"2014-08-06 00:57:47.000000000","message":"no big deal but we may want to log this","commit_id":"60e5e565414c544eb9d07dd0bceefc87559dec04"}],"keystoneclient/auth/identity/base.py":[{"author":{"_account_id":11045,"name":"Bob Thyne","email":"bob.thyne@hp.com","username":"bobt"},"change_message_id":"1bae7199a011bb4c55e8e99917a31b1368019f9a","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            except (exceptions.HTTPError, exceptions.ConnectionError):"},{"line_number":208,"context_line":"                LOG.warn(\u0027Failed to contact the endpoint at %s for discovery. \u0027"},{"line_number":209,"context_line":"                         \u0027Fallback to using that endpoint as the \u0027"},{"line_number":210,"context_line":"                         \u0027base url.\u0027, url)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"                raise exceptions.DiscoveryFailure()"},{"line_number":213,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_d89fa94e","line":210,"updated":"2014-07-19 04:59:43.000000000","message":"At this point in the code we don\u0027t actually fallback to using any endpoint as the base url as noted by the log message, we just throw a DiscoveryFailure exception inside this function. I would suggest logging this particular message further up the food chain (e.g. line 172) where we do actually return the endpoint url in the case of a DiscoveryFailure.","commit_id":"c37d8518a09a1635acbdbcd3cee7a96ba7258a3f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"833ffe0a13dbf9f16bfb9f3f4f0258cacb350064","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            except (exceptions.HTTPError, exceptions.ConnectionError):"},{"line_number":208,"context_line":"                LOG.warn(\u0027Failed to contact the endpoint at %s for discovery. \u0027"},{"line_number":209,"context_line":"                         \u0027Fallback to using that endpoint as the \u0027"},{"line_number":210,"context_line":"                         \u0027base url.\u0027, url)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"                raise exceptions.DiscoveryFailure()"},{"line_number":213,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_75277b63","line":210,"in_reply_to":"baada198_d89fa94e","updated":"2014-07-20 01:13:41.000000000","message":"I agree. Done.","commit_id":"c37d8518a09a1635acbdbcd3cee7a96ba7258a3f"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"4f673d9c799b673ba3ab2eb2c7b8de243f1e709e","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        else:"},{"line_number":238,"context_line":"            try:"},{"line_number":239,"context_line":"                disc \u003d _discover.Discover(session, url)"},{"line_number":240,"context_line":"            except (exceptions.HTTPError, exceptions.ConnectionError):"},{"line_number":241,"context_line":"                raise exceptions.DiscoveryFailure()"},{"line_number":242,"context_line":"            else:"},{"line_number":243,"context_line":"                self._endpoint_cache[url] \u003d disc"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_e4055c15","line":240,"updated":"2014-08-05 00:02:40.000000000","message":"This logic should be in _discover.Discover as it is common to all. We should not be expecting everyone to catch HTTPError and ConnectionError.","commit_id":"411931fad14b3ca7395a48b536dbea3ac4871fa0"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"1757444533ca4c4962672b3a19093e5f02ef3667","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            LOG.warn(\u0027Failed to contact the endpoint at %s for discovery. \u0027"},{"line_number":201,"context_line":"                     \u0027Fallback to using that endpoint as the base url.\u0027, url)"},{"line_number":202,"context_line":"        else:"},{"line_number":203,"context_line":"            url \u003d disc.url_for(version)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        return url"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_feca129f","line":203,"updated":"2014-08-06 06:56:37.000000000","message":"It is possible to get TypeError exception from url_for(...), and is not currently handled.","commit_id":"60e5e565414c544eb9d07dd0bceefc87559dec04"},{"author":{"_account_id":11333,"name":"David J Hu","email":"david.hu@hpe.com","username":"dhu"},"change_message_id":"b48b2bc367efa10a70763d33f28d37ceebaaea58","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            LOG.warn(\u0027Failed to contact the endpoint at %s for discovery. \u0027"},{"line_number":201,"context_line":"                     \u0027Fallback to using that endpoint as the base url.\u0027, url)"},{"line_number":202,"context_line":"        else:"},{"line_number":203,"context_line":"            url \u003d disc.url_for(version)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        return url"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_e759898e","line":203,"in_reply_to":"baada198_6ab47c36","updated":"2014-08-06 21:24:26.000000000","message":"Here is the call path: Discover.url_for(...) --\u003e Discover.data_for(...) --\u003e normalize_version_number(...)\n\nnormalize_version_number(...) will eventually raise TypeError if it is unhappy with the version representation.","commit_id":"60e5e565414c544eb9d07dd0bceefc87559dec04"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"3498b5d8745619e72a5fc480f8da584f1d91cf62","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            LOG.warn(\u0027Failed to contact the endpoint at %s for discovery. \u0027"},{"line_number":201,"context_line":"                     \u0027Fallback to using that endpoint as the base url.\u0027, url)"},{"line_number":202,"context_line":"        else:"},{"line_number":203,"context_line":"            url \u003d disc.url_for(version)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        return url"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_6ab47c36","line":203,"in_reply_to":"baada198_feca129f","updated":"2014-08-06 08:47:07.000000000","message":"From where exactly? \n\nIf it\u0027s somewhere raised on purpose then we should be catching that closer to the source.","commit_id":"60e5e565414c544eb9d07dd0bceefc87559dec04"}]}
