)]}'
{"ironic_python_agent/ironic_api_client.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4c72a07859685c119735f8062c24afe1128a9bb0","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        self.interval \u003d 1"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def start(self, initial_delay\u003dNone, starting_interval\u003d1, timeout\u003d300,"},{"line_number":180,"context_line":"              min_jitter\u003d0.6, max_jitter\u003d0.9):"},{"line_number":181,"context_line":"        self.interval \u003d starting_interval"},{"line_number":182,"context_line":"        self._running \u003d True"},{"line_number":183,"context_line":"        done \u003d event.Event()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F92Vg%3D","line":180,"updated":"2014-04-01 17:13:40.000000000","message":"These are all hardcoded... should they be options or constants?","commit_id":"9b526f0c4a05e5011af325e2a210289371ed6876"},{"author":{"_account_id":10380,"name":"Josh Gachnang","email":"josh@pcsforeducation.com","username":"JoshNang"},"change_message_id":"186ce91ae5544b7fc48b95f065f51bb0497b13d0","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        self.interval \u003d 1"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    def start(self, initial_delay\u003dNone, starting_interval\u003d1, timeout\u003d300,"},{"line_number":180,"context_line":"              min_jitter\u003d0.6, max_jitter\u003d0.9):"},{"line_number":181,"context_line":"        self.interval \u003d starting_interval"},{"line_number":182,"context_line":"        self._running \u003d True"},{"line_number":183,"context_line":"        done \u003d event.Event()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F92R4%3D","line":180,"in_reply_to":"AAAAWH%2F92Vg%3D","updated":"2014-04-01 17:57:20.000000000","message":"They\u0027re just defaults. To run this without jitter, you do timer \u003d BackOffLoopingCall(func, *args, *kwargs).start(min_jitter\u003dNone, max_jitter\u003dNone). I\u0027ll add something to the docs, because I wasn\u0027t sure how to run it the first time and the other two loopingcalls have crappy docs.","commit_id":"9b526f0c4a05e5011af325e2a210289371ed6876"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4c72a07859685c119735f8062c24afe1128a9bb0","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                        # Don\u0027t go over timeout, end early if necessary."},{"line_number":211,"context_line":"                        if self.error_time + idle \u003e timeout:"},{"line_number":212,"context_line":"                            raise LoopingCallTimeOut(\u0027Looping call timed out \u0027"},{"line_number":213,"context_line":"                                                     \u0027after %.02f seconds\u0027"},{"line_number":214,"context_line":"                                                     % self.error_time)"},{"line_number":215,"context_line":"                        self.error_time +\u003d idle"},{"line_number":216,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F92Ws%3D","line":213,"updated":"2014-04-01 17:13:40.000000000","message":"nit: indentation","commit_id":"9b526f0c4a05e5011af325e2a210289371ed6876"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"9ded0bd1b1f60208169642763f1b4fd1712c9a86","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                                       advertise_address[1])"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"#TODO(JoshNang) move to oslo, i18n"},{"line_number":147,"context_line":"class LoopingCallTimeOut(Exception):"},{"line_number":148,"context_line":"    \"\"\"Exception for a timed out LoopingCall."},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9s6E%3D","line":146,"updated":"2014-04-02 18:04:12.000000000","message":"You should put up the review and link it here with a TODO to remove when merged :)","commit_id":"a5c42c6a3c4c51b4f4891f74984ccafbb94616d2"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"9ded0bd1b1f60208169642763f1b4fd1712c9a86","unresolved":false,"context_lines":[{"line_number":153,"context_line":"    pass"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"class BackOffLoopingCall(loopingcall.LoopingCallBase):"},{"line_number":157,"context_line":"    \"\"\"The passed in function should return True (no error, return to"},{"line_number":158,"context_line":"    initial_interval),"},{"line_number":159,"context_line":"    False (error, start backing off), or raise LoopingCallDone(retvalue\u003dNone)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9s6w%3D","line":156,"updated":"2014-04-02 18:04:12.000000000","message":"Could you move this out to a separate file/module?","commit_id":"a5c42c6a3c4c51b4f4891f74984ccafbb94616d2"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"9ded0bd1b1f60208169642763f1b4fd1712c9a86","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":180,"context_line":"        super(BackOffLoopingCall, self).__init__(*args, **kwargs)"},{"line_number":181,"context_line":"        self.error_time \u003d 0"},{"line_number":182,"context_line":"        self.interval \u003d 1"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def start(self, initial_delay\u003dNone, starting_interval\u003d1, timeout\u003d300,"},{"line_number":185,"context_line":"              min_jitter\u003d0.6, max_jitter\u003d0.9):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9sxc%3D","line":182,"updated":"2014-04-02 18:04:12.000000000","message":"I think I would just move self.error_time into the start() function, and remove self.interval since it\u0027s already being set in start()","commit_id":"a5c42c6a3c4c51b4f4891f74984ccafbb94616d2"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"9ded0bd1b1f60208169642763f1b4fd1712c9a86","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        self.interval \u003d 1"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def start(self, initial_delay\u003dNone, starting_interval\u003d1, timeout\u003d300,"},{"line_number":185,"context_line":"              min_jitter\u003d0.6, max_jitter\u003d0.9):"},{"line_number":186,"context_line":"        self.interval \u003d starting_interval"},{"line_number":187,"context_line":"        self._running \u003d True"},{"line_number":188,"context_line":"        done \u003d event.Event()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9swg%3D","line":185,"updated":"2014-04-02 18:04:12.000000000","message":"I don\u0027t think I have a problem with hardcoding these here, but oslo-incubator might.","commit_id":"a5c42c6a3c4c51b4f4891f74984ccafbb94616d2"}],"ironic_python_agent/tests/ironic_api_client.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b24e39bc086610a5e037d3553749317e8d272f92","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"from oslotest import base as test_base"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import mock"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from ironic_python_agent import backoff"},{"line_number":26,"context_line":"from ironic_python_agent import errors"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9QfY%3D","line":23,"updated":"2014-04-07 15:50:10.000000000","message":"Imported already on line 20. This is what\u0027s breaking your PEP8 runs.","commit_id":"a9c2f25be5f6b2c1fc3e624ce6f01bd2f1d18b31"}]}
