)]}'
{"ironic_python_agent/backoff.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"73542542f4d6e6e671d011543a7378d9bca2d116","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    \"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    try:"},{"line_number":79,"context_line":"        _RAND \u003d random.SystemRandom()"},{"line_number":80,"context_line":"    except NotImplementedError:"},{"line_number":81,"context_line":"        _RAND \u003d random.Random()"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_406e7030","line":79,"updated":"2015-09-14 21:36:41.000000000","message":"IPA requires at least Python 2.7.\n\nSystemRandom has been in Python since 2.4.  So not sure these checks are needed.","commit_id":"5ac59b5826ca2f3971b8dce9c79eef115715d1ed"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"af6e0c70c76a6fbfa58b934cc24c935ad7f28cb2","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    \"\"\""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    try:"},{"line_number":79,"context_line":"        _RAND \u003d random.SystemRandom()"},{"line_number":80,"context_line":"    except NotImplementedError:"},{"line_number":81,"context_line":"        _RAND \u003d random.Random()"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_23a4a3a4","line":79,"in_reply_to":"ba15a1d1_406e7030","updated":"2015-09-15 00:03:19.000000000","message":"Done","commit_id":"5ac59b5826ca2f3971b8dce9c79eef115715d1ed"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"fae68e88f559a996b4768ba7782261994383fa4d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    :param max_interval: The maximum interval between calls during errors"},{"line_number":69,"context_line":"    :param jitter: Used to vary when calls are actually run to avoid group of"},{"line_number":70,"context_line":"                   calls all coming at the exact same time. Uses"},{"line_number":71,"context_line":"                   random.gauss(jitter, 0.1), with jitter as the mean for the"},{"line_number":72,"context_line":"                   distribution. If set below .5, it can cause the calls to"},{"line_number":73,"context_line":"                   come more rapidly after each failure."},{"line_number":74,"context_line":"    :raises: LoopingCallTimeout if time spent doing error retries would exceed"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_d60f9c2c","line":71,"updated":"2015-10-19 21:50:09.000000000","message":"nit if anyone reads this. s/random/random.SystemRandom/ but when it moves to oslo, it will be changed anyway so. meh.","commit_id":"6e2b0f7799b27a47b9be467d3d322a8272f9e7e7"}]}
