)]}'
{"ironic_python_agent/backoff.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"155b9175050f21d90b4f61d0d51e960271785a48","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    def start(self, initial_delay\u003dNone, starting_interval\u003d1, timeout\u003d300,"},{"line_number":88,"context_line":"              max_interval\u003d300, jitter\u003d0.75):"},{"line_number":89,"context_line":"        if self._thread is not None:"},{"line_number":90,"context_line":"            raise RuntimeError(self._RUN_ONLY_ONE_MESSAGE)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Reset any prior state."},{"line_number":93,"context_line":"        self._error_time \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_cf52badd","line":90,"updated":"2015-09-14 16:51:54.000000000","message":"nit: I don\u0027t think we need a constant for something used only once","commit_id":"137a454a0d438224f94e9de031dc3c2367394442"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"b59e2f4630ae9fcfff2c5cd28c5f32aba81a0707","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    def start(self, initial_delay\u003dNone, starting_interval\u003d1, timeout\u003d300,"},{"line_number":88,"context_line":"              max_interval\u003d300, jitter\u003d0.75):"},{"line_number":89,"context_line":"        if self._thread is not None:"},{"line_number":90,"context_line":"            raise RuntimeError(self._RUN_ONLY_ONE_MESSAGE)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Reset any prior state."},{"line_number":93,"context_line":"        self._error_time \u003d 0"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_cc82c152","line":90,"in_reply_to":"ba15a1d1_cf52badd","updated":"2015-09-14 19:13:06.000000000","message":"It\u0027s just following the existing pattern already used.\n\nhttps://github.com/openstack/oslo.service/blob/master/oslo_service/loopingcall.py#L70\n\nnow maybe i shouldn\u0027t have put that in oslo_service but oh well, ha.","commit_id":"137a454a0d438224f94e9de031dc3c2367394442"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"155b9175050f21d90b4f61d0d51e960271785a48","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        self._error_time \u003d 0"},{"line_number":94,"context_line":"        self._interval \u003d starting_interval"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        def _idle_for(no_error, _elapsed):"},{"line_number":97,"context_line":"            random_jitter \u003d random.gauss(jitter, 0.1)"},{"line_number":98,"context_line":"            if no_error:"},{"line_number":99,"context_line":"                # Reset error state"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_6f5e0eeb","line":96,"updated":"2015-09-14 16:51:54.000000000","message":"nit: maybe s/no_error/success/ ?","commit_id":"137a454a0d438224f94e9de031dc3c2367394442"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"b59e2f4630ae9fcfff2c5cd28c5f32aba81a0707","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        self._error_time \u003d 0"},{"line_number":94,"context_line":"        self._interval \u003d starting_interval"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        def _idle_for(no_error, _elapsed):"},{"line_number":97,"context_line":"            random_jitter \u003d random.gauss(jitter, 0.1)"},{"line_number":98,"context_line":"            if no_error:"},{"line_number":99,"context_line":"                # Reset error state"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_ec87855f","line":96,"in_reply_to":"ba15a1d1_6f5e0eeb","updated":"2015-09-14 19:13:06.000000000","message":"sure.","commit_id":"137a454a0d438224f94e9de031dc3c2367394442"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"155b9175050f21d90b4f61d0d51e960271785a48","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                self._error_time +\u003d idle"},{"line_number":114,"context_line":"                return idle"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        return self._start(_idle_for, initial_delay\u003dinitial_delay)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_8f6362b1","line":116,"updated":"2015-09-14 16:51:54.000000000","message":"is it using a private method of the base class? if so, that\u0027s a no-go, sorry","commit_id":"137a454a0d438224f94e9de031dc3c2367394442"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"b59e2f4630ae9fcfff2c5cd28c5f32aba81a0707","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                self._error_time +\u003d idle"},{"line_number":114,"context_line":"                return idle"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        return self._start(_idle_for, initial_delay\u003dinitial_delay)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba15a1d1_6c94d58a","line":116,"in_reply_to":"ba15a1d1_8f6362b1","updated":"2015-09-14 19:13:06.000000000","message":"protected method imho, not private,\n\nideally this code will be moved out of ironic once it merges here, and into oslo_service, but need this change in here first.","commit_id":"137a454a0d438224f94e9de031dc3c2367394442"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"2b5d0c0eee4d06f43296385bc723e4e7b2214e48","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    def start(self, initial_delay\u003dNone, starting_interval\u003d1, timeout\u003d300,"},{"line_number":88,"context_line":"              max_interval\u003d300, jitter\u003d0.75):"},{"line_number":89,"context_line":"        if self._thread is not None:"},{"line_number":90,"context_line":"            raise RuntimeError(self._RUN_ONLY_ONE_MESSAGE)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Reset any prior state."},{"line_number":93,"context_line":"        self._error_time \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_4ba529b3","line":90,"updated":"2015-10-19 21:48:00.000000000","message":"self._start() does this. Do we need it here as well?","commit_id":"04582bc2197f414f053b7347f211270615108260"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"79487ca1b48fd1a54cd188c5c2d57ee7d42fa9b3","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    def start(self, initial_delay\u003dNone, starting_interval\u003d1, timeout\u003d300,"},{"line_number":88,"context_line":"              max_interval\u003d300, jitter\u003d0.75):"},{"line_number":89,"context_line":"        if self._thread is not None:"},{"line_number":90,"context_line":"            raise RuntimeError(self._RUN_ONLY_ONE_MESSAGE)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Reset any prior state."},{"line_number":93,"context_line":"        self._error_time \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_630929dd","line":90,"in_reply_to":"3a29b11f_4ba529b3","updated":"2015-10-19 22:54:31.000000000","message":"Yes, start is called later, if we don\u0027t do this, we then reset prior state then fail, which isn\u0027t exactly what we want to do (reset the internal state if its already running).","commit_id":"04582bc2197f414f053b7347f211270615108260"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"53221124877685533a432eba36e95338bf301199","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    def start(self, initial_delay\u003dNone, starting_interval\u003d1, timeout\u003d300,"},{"line_number":88,"context_line":"              max_interval\u003d300, jitter\u003d0.75):"},{"line_number":89,"context_line":"        if self._thread is not None:"},{"line_number":90,"context_line":"            raise RuntimeError(self._RUN_ONLY_ONE_MESSAGE)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Reset any prior state."},{"line_number":93,"context_line":"        self._error_time \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_c3a4bda7","line":90,"in_reply_to":"3a29b11f_630929dd","updated":"2015-10-19 23:02:43.000000000","message":"Hmm. Ok. So another way would be to modify _start() to take some function-to-call-prior-to-the-actual-loop. But this is fine :)","commit_id":"04582bc2197f414f053b7347f211270615108260"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"fe091d02d27d0ae2c4329e54d3712f958550685b","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    def start(self, initial_delay\u003dNone, starting_interval\u003d1, timeout\u003d300,"},{"line_number":88,"context_line":"              max_interval\u003d300, jitter\u003d0.75):"},{"line_number":89,"context_line":"        if self._thread is not None:"},{"line_number":90,"context_line":"            raise RuntimeError(self._RUN_ONLY_ONE_MESSAGE)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Reset any prior state."},{"line_number":93,"context_line":"        self._error_time \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_6db3b64d","line":90,"in_reply_to":"3a29b11f_c3a4bda7","updated":"2015-10-22 23:11:16.000000000","message":"right, perhaps for a followup","commit_id":"04582bc2197f414f053b7347f211270615108260"}]}
