)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b2264e7121e74a2a96eb4c3ac9f9312a8cb2587b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add update_id for ResourceUpdate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add an unique id for resource update, then we can caculate"},{"line_number":10,"context_line":"the resource processing time and track it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related-Bug: #1825152"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ffb9cba7_348a361b","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":6},"updated":"2019-04-23 13:11:14.000000000","message":"s/a","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b2264e7121e74a2a96eb4c3ac9f9312a8cb2587b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add update_id for ResourceUpdate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add an unique id for resource update, then we can caculate"},{"line_number":10,"context_line":"the resource processing time and track it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related-Bug: #1825152"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ffb9cba7_b4cf067e","line":9,"range":{"start_line":9,"start_character":50,"end_line":9,"end_character":58},"updated":"2019-04-23 13:11:14.000000000","message":"s/calculate","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3187fb1c3aa32d9f4c8f347aeefc3cd0f6ab6991","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add update_id for ResourceUpdate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add an unique id for resource update, then we can caculate"},{"line_number":10,"context_line":"the resource processing time and track it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related-Bug: #1825152"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ffb9cba7_3a60dfa5","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":6},"in_reply_to":"ffb9cba7_348a361b","updated":"2019-04-23 14:50:42.000000000","message":"Done","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3187fb1c3aa32d9f4c8f347aeefc3cd0f6ab6991","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add update_id for ResourceUpdate"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add an unique id for resource update, then we can caculate"},{"line_number":10,"context_line":"the resource processing time and track it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related-Bug: #1825152"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ffb9cba7_fa59e7fd","line":9,"range":{"start_line":9,"start_character":50,"end_line":9,"end_character":58},"in_reply_to":"ffb9cba7_b4cf067e","updated":"2019-04-23 14:50:42.000000000","message":"Done","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b2264e7121e74a2a96eb4c3ac9f9312a8cb2587b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Related-Bug: #1825152"},{"line_number":13,"context_line":"Related-Bug: #1824911"},{"line_number":14,"context_line":"Related-Bug: #1821912"},{"line_number":15,"context_line":"Related-Bug: #1813787"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ib4d197c6c180c32860964440882393794aabb6ef"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ffb9cba7_f4aa5e83","line":15,"updated":"2019-04-23 13:11:14.000000000","message":"That\u0027s a lot of related bugs :)","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3187fb1c3aa32d9f4c8f347aeefc3cd0f6ab6991","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Related-Bug: #1825152"},{"line_number":13,"context_line":"Related-Bug: #1824911"},{"line_number":14,"context_line":"Related-Bug: #1821912"},{"line_number":15,"context_line":"Related-Bug: #1813787"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ib4d197c6c180c32860964440882393794aabb6ef"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ffb9cba7_9a6a2b7e","line":15,"in_reply_to":"ffb9cba7_f4aa5e83","updated":"2019-04-23 14:50:42.000000000","message":"L3 agent is now facing scale issues...","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"}],"neutron/agent/common/resource_processing_queue.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b2264e7121e74a2a96eb4c3ac9f9312a8cb2587b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        # update_id will be used for tracking one resource processing"},{"line_number":45,"context_line":"        # procedure."},{"line_number":46,"context_line":"        self.update_id \u003d uuidutils.generate_uuid()"},{"line_number":47,"context_line":"        self.start_time \u003d time.time()"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def set_start_time(self):"},{"line_number":50,"context_line":"        # The real processing procedure start time."}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_34e9d619","line":47,"updated":"2019-04-23 13:11:14.000000000","message":"s/create_time ?","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3187fb1c3aa32d9f4c8f347aeefc3cd0f6ab6991","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        # update_id will be used for tracking one resource processing"},{"line_number":45,"context_line":"        # procedure."},{"line_number":46,"context_line":"        self.update_id \u003d uuidutils.generate_uuid()"},{"line_number":47,"context_line":"        self.start_time \u003d time.time()"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def set_start_time(self):"},{"line_number":50,"context_line":"        # The real processing procedure start time."}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_5a3cb392","line":47,"in_reply_to":"ffb9cba7_34e9d619","updated":"2019-04-23 14:50:42.000000000","message":"It is start time here, because in some test cases they do not call that set_start_time.","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b2264e7121e74a2a96eb4c3ac9f9312a8cb2587b","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def set_start_time(self):"},{"line_number":50,"context_line":"        # The real processing procedure start time."},{"line_number":51,"context_line":"        self.start_time \u003d time.time()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __lt__(self, other):"},{"line_number":54,"context_line":"        \"\"\"Implements priority among updates"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_54c1ea53","line":51,"updated":"2019-04-23 13:11:14.000000000","message":"You could also add a method here to do the time delta calculation and return it, instead of putting it in the caller.  Would save an import of time there as well.\n\ndef get_time_elapsed(self):\n    return time.time() - self.start_time","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3187fb1c3aa32d9f4c8f347aeefc3cd0f6ab6991","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def set_start_time(self):"},{"line_number":50,"context_line":"        # The real processing procedure start time."},{"line_number":51,"context_line":"        self.start_time \u003d time.time()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def __lt__(self, other):"},{"line_number":54,"context_line":"        \"\"\"Implements priority among updates"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_3a953fe5","line":51,"in_reply_to":"ffb9cba7_54c1ea53","updated":"2019-04-23 14:50:42.000000000","message":"Done","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c948ab0ea102204b4b986db2f85fc8aad100c947","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        self.start_time \u003d time.time()"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def set_start_time(self):"},{"line_number":50,"context_line":"        # The real processing procedure start time."},{"line_number":51,"context_line":"        self.start_time \u003d time.time()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def get_time_elapsed(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_28d2d55d","line":50,"updated":"2019-04-23 15:18:34.000000000","message":"The comment isn\u0027t completely correct as it\u0027s assuming the usage of the l3-agent.  Maybe something more generic like \"Set the start_time to \u0027now\u0027 - can be used by callers to help track time spent in procedures\"","commit_id":"cf58d9a810a6afa93664a3d4e4b9558cca1ce112"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"2253dfed5f45431fda44a9d11d5bfa7dc4b8e959","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        self.start_time \u003d time.time()"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def set_start_time(self):"},{"line_number":50,"context_line":"        # The real processing procedure start time."},{"line_number":51,"context_line":"        self.start_time \u003d time.time()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def get_time_elapsed(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_4a6db696","line":50,"in_reply_to":"ffb9cba7_28d2d55d","updated":"2019-04-24 01:37:44.000000000","message":"Done","commit_id":"cf58d9a810a6afa93664a3d4e4b9558cca1ce112"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2a350604c010459998bba7b9ecc2eb4136505da4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        # NOTE: Because one resource can be processed multiple times, this"},{"line_number":44,"context_line":"        # update_id will be used for tracking one resource processing"},{"line_number":45,"context_line":"        # procedure."},{"line_number":46,"context_line":"        self.update_id \u003d uuidutils.generate_uuid()"},{"line_number":47,"context_line":"        self.create_time \u003d time.time()"},{"line_number":48,"context_line":"        self.start_time \u003d time.time()"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_46204ab1","line":46,"updated":"2019-04-24 09:05:31.000000000","message":"do we really need this additional, random uuid? I\u0027m not sure why it would help at all","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a6013f2b51faf66c3fdccfcf97206c0cd4c2fcc6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        # NOTE: Because one resource can be processed multiple times, this"},{"line_number":44,"context_line":"        # update_id will be used for tracking one resource processing"},{"line_number":45,"context_line":"        # procedure."},{"line_number":46,"context_line":"        self.update_id \u003d uuidutils.generate_uuid()"},{"line_number":47,"context_line":"        self.create_time \u003d time.time()"},{"line_number":48,"context_line":"        self.start_time \u003d time.time()"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_2c41773a","line":46,"in_reply_to":"ffb9cba7_46204ab1","updated":"2019-04-24 09:55:08.000000000","message":"Please see the NOTE up ^^^.","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"933dc119d94c84717effe5b1982eaf6c6525b3a2","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        # procedure."},{"line_number":46,"context_line":"        self.update_id \u003d uuidutils.generate_uuid()"},{"line_number":47,"context_line":"        self.create_time \u003d time.time()"},{"line_number":48,"context_line":"        self.start_time \u003d time.time()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def set_start_time(self):"},{"line_number":51,"context_line":"        # Set the start_time to \u0027now\u0027 - can be used by callers to help"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_639532e4","line":48,"updated":"2019-04-24 17:51:32.000000000","message":"Could probably get away with a single call to time.time() here","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c2e1a607cdbb9eddd67055a10c114e63c1111efa","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        # procedure."},{"line_number":46,"context_line":"        self.update_id \u003d uuidutils.generate_uuid()"},{"line_number":47,"context_line":"        self.create_time \u003d time.time()"},{"line_number":48,"context_line":"        self.start_time \u003d time.time()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def set_start_time(self):"},{"line_number":51,"context_line":"        # Set the start_time to \u0027now\u0027 - can be used by callers to help"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_87314b0e","line":48,"in_reply_to":"ffb9cba7_639532e4","updated":"2019-04-25 01:16:46.000000000","message":"Done","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2a350604c010459998bba7b9ecc2eb4136505da4","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        # track time spent in procedures."},{"line_number":53,"context_line":"        self.start_time \u003d time.time()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def before_start(self):"},{"line_number":56,"context_line":"        # Time elapsed between \u0027update\u0027 creation and processing start."},{"line_number":57,"context_line":"        return time.time() - self.create_time"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_6646ae7f","line":55,"updated":"2019-04-24 09:05:31.000000000","message":"nit: this can be @property","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c2e1a607cdbb9eddd67055a10c114e63c1111efa","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        # track time spent in procedures."},{"line_number":53,"context_line":"        self.start_time \u003d time.time()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def before_start(self):"},{"line_number":56,"context_line":"        # Time elapsed between \u0027update\u0027 creation and processing start."},{"line_number":57,"context_line":"        return time.time() - self.create_time"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_2ad8667d","line":55,"in_reply_to":"ffb9cba7_038476b0","updated":"2019-04-25 01:16:46.000000000","message":"Done","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c2e1a607cdbb9eddd67055a10c114e63c1111efa","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        # track time spent in procedures."},{"line_number":53,"context_line":"        self.start_time \u003d time.time()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def before_start(self):"},{"line_number":56,"context_line":"        # Time elapsed between \u0027update\u0027 creation and processing start."},{"line_number":57,"context_line":"        return time.time() - self.create_time"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_a7348ffc","line":55,"in_reply_to":"ffb9cba7_6646ae7f","updated":"2019-04-25 01:16:46.000000000","message":"Done","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"933dc119d94c84717effe5b1982eaf6c6525b3a2","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        # track time spent in procedures."},{"line_number":53,"context_line":"        self.start_time \u003d time.time()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def before_start(self):"},{"line_number":56,"context_line":"        # Time elapsed between \u0027update\u0027 creation and processing start."},{"line_number":57,"context_line":"        return time.time() - self.create_time"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_038476b0","line":55,"in_reply_to":"ffb9cba7_6646ae7f","updated":"2019-04-24 17:51:32.000000000","message":"time_before_start() ?","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2a350604c010459998bba7b9ecc2eb4136505da4","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def before_start(self):"},{"line_number":56,"context_line":"        # Time elapsed between \u0027update\u0027 creation and processing start."},{"line_number":57,"context_line":"        return time.time() - self.create_time"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_time_elapsed(self):"},{"line_number":60,"context_line":"        # Time elapsed between processing start and end."}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_a631060e","line":57,"updated":"2019-04-24 09:05:31.000000000","message":"this in fact returns time from \"create_time\" up to when method is called, not time between create event and processing start.","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c2e1a607cdbb9eddd67055a10c114e63c1111efa","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def before_start(self):"},{"line_number":56,"context_line":"        # Time elapsed between \u0027update\u0027 creation and processing start."},{"line_number":57,"context_line":"        return time.time() - self.create_time"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_time_elapsed(self):"},{"line_number":60,"context_line":"        # Time elapsed between processing start and end."}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_473b53ea","line":57,"in_reply_to":"ffb9cba7_a631060e","updated":"2019-04-25 01:16:46.000000000","message":"removed","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2a350604c010459998bba7b9ecc2eb4136505da4","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        # Time elapsed between \u0027update\u0027 creation and processing start."},{"line_number":57,"context_line":"        return time.time() - self.create_time"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_time_elapsed(self):"},{"line_number":60,"context_line":"        # Time elapsed between processing start and end."},{"line_number":61,"context_line":"        return time.time() - self.start_time"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_2660b601","line":59,"updated":"2019-04-24 09:05:31.000000000","message":"nit: same here","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c2e1a607cdbb9eddd67055a10c114e63c1111efa","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        # Time elapsed between \u0027update\u0027 creation and processing start."},{"line_number":57,"context_line":"        return time.time() - self.create_time"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def get_time_elapsed(self):"},{"line_number":60,"context_line":"        # Time elapsed between processing start and end."},{"line_number":61,"context_line":"        return time.time() - self.start_time"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_cae66a45","line":59,"in_reply_to":"ffb9cba7_2660b601","updated":"2019-04-25 01:16:46.000000000","message":"Done","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"933dc119d94c84717effe5b1982eaf6c6525b3a2","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            # Here, if the current worker is not the master, the call to"},{"line_number":184,"context_line":"            # rp.updates() will not yield and so this will essentially be a"},{"line_number":185,"context_line":"            # noop."},{"line_number":186,"context_line":"            for update in rp.updates():"},{"line_number":187,"context_line":"                yield (rp, update)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_a3e48aad","line":186,"updated":"2019-04-24 17:51:32.000000000","message":"This is where I\u0027d set start time as it\u0027s just when the consumer is pulling it off the queue","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c2e1a607cdbb9eddd67055a10c114e63c1111efa","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            # Here, if the current worker is not the master, the call to"},{"line_number":184,"context_line":"            # rp.updates() will not yield and so this will essentially be a"},{"line_number":185,"context_line":"            # noop."},{"line_number":186,"context_line":"            for update in rp.updates():"},{"line_number":187,"context_line":"                yield (rp, update)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_8ad2b25b","line":186,"in_reply_to":"ffb9cba7_a3e48aad","updated":"2019-04-25 01:16:46.000000000","message":"Done","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"}],"neutron/agent/l3/agent.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b2264e7121e74a2a96eb4c3ac9f9312a8cb2587b","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    def _process_router_update(self):"},{"line_number":622,"context_line":"        for rp, update in self._queue.each_update_to_next_resource():"},{"line_number":623,"context_line":"            LOG.info(\"Starting router update for %s, action %s, priority %s, \""},{"line_number":624,"context_line":"                     \"update_id: %s\","},{"line_number":625,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":626,"context_line":"                     update.update_id)"},{"line_number":627,"context_line":"            update.set_start_time()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_f21ef16e","line":624,"range":{"start_line":624,"start_character":31,"end_line":624,"end_character":32},"updated":"2019-04-23 13:11:14.000000000","message":"nit: we don\u0027t use a : in the other three, just a space","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3187fb1c3aa32d9f4c8f347aeefc3cd0f6ab6991","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    def _process_router_update(self):"},{"line_number":622,"context_line":"        for rp, update in self._queue.each_update_to_next_resource():"},{"line_number":623,"context_line":"            LOG.info(\"Starting router update for %s, action %s, priority %s, \""},{"line_number":624,"context_line":"                     \"update_id: %s\","},{"line_number":625,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":626,"context_line":"                     update.update_id)"},{"line_number":627,"context_line":"            update.set_start_time()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_3a053fc3","line":624,"range":{"start_line":624,"start_character":31,"end_line":624,"end_character":32},"in_reply_to":"ffb9cba7_f21ef16e","updated":"2019-04-23 14:50:42.000000000","message":"Done","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b2264e7121e74a2a96eb4c3ac9f9312a8cb2587b","unresolved":false,"context_lines":[{"line_number":624,"context_line":"                     \"update_id: %s\","},{"line_number":625,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":626,"context_line":"                     update.update_id)"},{"line_number":627,"context_line":"            update.set_start_time()"},{"line_number":628,"context_line":"            if update.action \u003d\u003d PD_UPDATE:"},{"line_number":629,"context_line":"                self.pd.process_prefix_update()"},{"line_number":630,"context_line":"                LOG.info(\"Finished a router update for %s IPv6 PD, \""}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_74b8ae29","line":627,"updated":"2019-04-23 13:11:14.000000000","message":"I\u0027m curious why you\u0027re setting this here.  If we\u0027re trying to track how much time has elapsed since the update was received (put in queue + process time) that info was just lost.  If all we\u0027re trying to do is calculate the process time we don\u0027t need any change to the update object as we could just do that locally here.\n\nSo I would think you don\u0027t want to do this.","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3187fb1c3aa32d9f4c8f347aeefc3cd0f6ab6991","unresolved":false,"context_lines":[{"line_number":624,"context_line":"                     \"update_id: %s\","},{"line_number":625,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":626,"context_line":"                     update.update_id)"},{"line_number":627,"context_line":"            update.set_start_time()"},{"line_number":628,"context_line":"            if update.action \u003d\u003d PD_UPDATE:"},{"line_number":629,"context_line":"                self.pd.process_prefix_update()"},{"line_number":630,"context_line":"                LOG.info(\"Finished a router update for %s IPv6 PD, \""}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_7ab89729","line":627,"in_reply_to":"ffb9cba7_74b8ae29","updated":"2019-04-23 14:50:42.000000000","message":"Here I\u0027d like to retrieve the process time only, so here refresh the start time at the real processing beginning. IMO, this start time can be the attribute of the ResourceUpdate, I will add another function to get the elapsed time.","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b2264e7121e74a2a96eb4c3ac9f9312a8cb2587b","unresolved":false,"context_lines":[{"line_number":628,"context_line":"            if update.action \u003d\u003d PD_UPDATE:"},{"line_number":629,"context_line":"                self.pd.process_prefix_update()"},{"line_number":630,"context_line":"                LOG.info(\"Finished a router update for %s IPv6 PD, \""},{"line_number":631,"context_line":"                         \"update_id: %s\", update.id, update.update_id)"},{"line_number":632,"context_line":"                continue"},{"line_number":633,"context_line":""},{"line_number":634,"context_line":"            routers \u003d [update.resource] if update.resource else []"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_520d7d3c","line":631,"updated":"2019-04-23 13:11:14.000000000","message":"same","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3187fb1c3aa32d9f4c8f347aeefc3cd0f6ab6991","unresolved":false,"context_lines":[{"line_number":628,"context_line":"            if update.action \u003d\u003d PD_UPDATE:"},{"line_number":629,"context_line":"                self.pd.process_prefix_update()"},{"line_number":630,"context_line":"                LOG.info(\"Finished a router update for %s IPv6 PD, \""},{"line_number":631,"context_line":"                         \"update_id: %s\", update.id, update.update_id)"},{"line_number":632,"context_line":"                continue"},{"line_number":633,"context_line":""},{"line_number":634,"context_line":"            routers \u003d [update.resource] if update.resource else []"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_fa0ec7e3","line":631,"in_reply_to":"ffb9cba7_520d7d3c","updated":"2019-04-23 14:50:42.000000000","message":"Done","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b2264e7121e74a2a96eb4c3ac9f9312a8cb2587b","unresolved":false,"context_lines":[{"line_number":665,"context_line":"                    # prevent deleted router re-creation"},{"line_number":666,"context_line":"                    rp.fetched_and_processed(update.timestamp)"},{"line_number":667,"context_line":"                LOG.info(\"Finished a router update for %s, update_id: %s, \""},{"line_number":668,"context_line":"                         \"Time elapsed: %.3f\","},{"line_number":669,"context_line":"                         update.id, update.update_id,"},{"line_number":670,"context_line":"                         time.time() - update.start_time)"},{"line_number":671,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_32048917","line":668,"updated":"2019-04-23 13:11:14.000000000","message":"same, and s/Time/time","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3187fb1c3aa32d9f4c8f347aeefc3cd0f6ab6991","unresolved":false,"context_lines":[{"line_number":665,"context_line":"                    # prevent deleted router re-creation"},{"line_number":666,"context_line":"                    rp.fetched_and_processed(update.timestamp)"},{"line_number":667,"context_line":"                LOG.info(\"Finished a router update for %s, update_id: %s, \""},{"line_number":668,"context_line":"                         \"Time elapsed: %.3f\","},{"line_number":669,"context_line":"                         update.id, update.update_id,"},{"line_number":670,"context_line":"                         time.time() - update.start_time)"},{"line_number":671,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_1a14fbf4","line":668,"in_reply_to":"ffb9cba7_32048917","updated":"2019-04-23 14:50:42.000000000","message":"Done","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b2264e7121e74a2a96eb4c3ac9f9312a8cb2587b","unresolved":false,"context_lines":[{"line_number":676,"context_line":""},{"line_number":677,"context_line":"            rp.fetched_and_processed(update.timestamp)"},{"line_number":678,"context_line":"            LOG.info(\"Finished a router update for %s, update_id: %s, \""},{"line_number":679,"context_line":"                     \"Time elapsed: %.3f\","},{"line_number":680,"context_line":"                     update.id, update.update_id,"},{"line_number":681,"context_line":"                     time.time() - update.start_time)"},{"line_number":682,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_34ff9602","line":679,"updated":"2019-04-23 13:11:14.000000000","message":"same, and s/Time time","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3187fb1c3aa32d9f4c8f347aeefc3cd0f6ab6991","unresolved":false,"context_lines":[{"line_number":676,"context_line":""},{"line_number":677,"context_line":"            rp.fetched_and_processed(update.timestamp)"},{"line_number":678,"context_line":"            LOG.info(\"Finished a router update for %s, update_id: %s, \""},{"line_number":679,"context_line":"                     \"Time elapsed: %.3f\","},{"line_number":680,"context_line":"                     update.id, update.update_id,"},{"line_number":681,"context_line":"                     time.time() - update.start_time)"},{"line_number":682,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ffb9cba7_baf84fc4","line":679,"in_reply_to":"ffb9cba7_34ff9602","updated":"2019-04-23 14:50:42.000000000","message":"Done","commit_id":"660d6b296b4dcbdc2e7cd11dfa5836c772a1e287"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c948ab0ea102204b4b986db2f85fc8aad100c947","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    def _process_router_update(self):"},{"line_number":620,"context_line":"        for rp, update in self._queue.each_update_to_next_resource():"},{"line_number":621,"context_line":"            LOG.info(\"Starting router update for %s, action %s, priority %s, \""},{"line_number":622,"context_line":"                     \"update_id, %s\","},{"line_number":623,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":624,"context_line":"                     update.update_id)"},{"line_number":625,"context_line":"            update.set_start_time()"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_7d80918c","line":622,"range":{"start_line":622,"start_character":22,"end_line":622,"end_character":32},"updated":"2019-04-23 15:18:34.000000000","message":"s/update_id (no comma after)","commit_id":"cf58d9a810a6afa93664a3d4e4b9558cca1ce112"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"2253dfed5f45431fda44a9d11d5bfa7dc4b8e959","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    def _process_router_update(self):"},{"line_number":620,"context_line":"        for rp, update in self._queue.each_update_to_next_resource():"},{"line_number":621,"context_line":"            LOG.info(\"Starting router update for %s, action %s, priority %s, \""},{"line_number":622,"context_line":"                     \"update_id, %s\","},{"line_number":623,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":624,"context_line":"                     update.update_id)"},{"line_number":625,"context_line":"            update.set_start_time()"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_6a6afa80","line":622,"range":{"start_line":622,"start_character":22,"end_line":622,"end_character":32},"in_reply_to":"ffb9cba7_7d80918c","updated":"2019-04-24 01:37:44.000000000","message":"Done","commit_id":"cf58d9a810a6afa93664a3d4e4b9558cca1ce112"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c948ab0ea102204b4b986db2f85fc8aad100c947","unresolved":false,"context_lines":[{"line_number":622,"context_line":"                     \"update_id, %s\","},{"line_number":623,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":624,"context_line":"                     update.update_id)"},{"line_number":625,"context_line":"            update.set_start_time()"},{"line_number":626,"context_line":"            if update.action \u003d\u003d PD_UPDATE:"},{"line_number":627,"context_line":"                self.pd.process_prefix_update()"},{"line_number":628,"context_line":"                LOG.info(\"Finished a router update for %s IPv6 PD, \""}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_e8211da1","line":625,"updated":"2019-04-23 15:18:34.000000000","message":"So maybe a better question would be - is it also useful to have the total time?  For example, what if half the time was spent sitting in the queue waiting for a worker?  Or maybe you can just retrieve the time elapsed here to know how much time was spent in the queue before you set this and print both?  Do you think it\u0027s useful data?\n\nAs a second thought on ^^ it could be automatically done in the resource_processing code when we pull this item from the queue.","commit_id":"cf58d9a810a6afa93664a3d4e4b9558cca1ce112"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"2253dfed5f45431fda44a9d11d5bfa7dc4b8e959","unresolved":false,"context_lines":[{"line_number":622,"context_line":"                     \"update_id, %s\","},{"line_number":623,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":624,"context_line":"                     update.update_id)"},{"line_number":625,"context_line":"            update.set_start_time()"},{"line_number":626,"context_line":"            if update.action \u003d\u003d PD_UPDATE:"},{"line_number":627,"context_line":"                self.pd.process_prefix_update()"},{"line_number":628,"context_line":"                LOG.info(\"Finished a router update for %s IPv6 PD, \""}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_0a057ec2","line":625,"in_reply_to":"ffb9cba7_e8211da1","updated":"2019-04-24 01:37:44.000000000","message":"Done","commit_id":"cf58d9a810a6afa93664a3d4e4b9558cca1ce112"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"f749c9982fe5f028ec2cc73c25a47aca41ee1810","unresolved":false,"context_lines":[{"line_number":622,"context_line":"                     \"update_id, %s\","},{"line_number":623,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":624,"context_line":"                     update.update_id)"},{"line_number":625,"context_line":"            update.set_start_time()"},{"line_number":626,"context_line":"            if update.action \u003d\u003d PD_UPDATE:"},{"line_number":627,"context_line":"                self.pd.process_prefix_update()"},{"line_number":628,"context_line":"                LOG.info(\"Finished a router update for %s IPv6 PD, \""}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_4a1cd669","line":625,"in_reply_to":"ffb9cba7_e8211da1","updated":"2019-04-24 01:08:38.000000000","message":"This is a great idea, it could be useful. During large set resource processing, some router may wait a real long time before start.","commit_id":"cf58d9a810a6afa93664a3d4e4b9558cca1ce112"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2a350604c010459998bba7b9ecc2eb4136505da4","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    def _process_router_update(self):"},{"line_number":620,"context_line":"        for rp, update in self._queue.each_update_to_next_resource():"},{"line_number":621,"context_line":"            LOG.info(\"Starting router update for %s, action %s, priority %s, \""},{"line_number":622,"context_line":"                     \"update_id %s. Time elapsed for waiting: %.3f\","},{"line_number":623,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":624,"context_line":"                     update.update_id,"},{"line_number":625,"context_line":"                     update.before_start())"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_c102e409","line":622,"updated":"2019-04-24 09:05:31.000000000","message":"For example here, message will contains \"update for\" which will be id of resource (router), action, priority - aren\u0027t that enough data?","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"933dc119d94c84717effe5b1982eaf6c6525b3a2","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    def _process_router_update(self):"},{"line_number":620,"context_line":"        for rp, update in self._queue.each_update_to_next_resource():"},{"line_number":621,"context_line":"            LOG.info(\"Starting router update for %s, action %s, priority %s, \""},{"line_number":622,"context_line":"                     \"update_id %s. Time elapsed for waiting: %.3f\","},{"line_number":623,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":624,"context_line":"                     update.update_id,"},{"line_number":625,"context_line":"                     update.before_start())"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_a3800a8d","line":622,"range":{"start_line":622,"start_character":36,"end_line":622,"end_character":60},"updated":"2019-04-24 17:51:32.000000000","message":"s/Wait time elapsed","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c2e1a607cdbb9eddd67055a10c114e63c1111efa","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    def _process_router_update(self):"},{"line_number":620,"context_line":"        for rp, update in self._queue.each_update_to_next_resource():"},{"line_number":621,"context_line":"            LOG.info(\"Starting router update for %s, action %s, priority %s, \""},{"line_number":622,"context_line":"                     \"update_id %s. Time elapsed for waiting: %.3f\","},{"line_number":623,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":624,"context_line":"                     update.update_id,"},{"line_number":625,"context_line":"                     update.before_start())"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_aad53645","line":622,"range":{"start_line":622,"start_character":36,"end_line":622,"end_character":60},"in_reply_to":"ffb9cba7_a3800a8d","updated":"2019-04-25 01:16:46.000000000","message":"Done","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a6013f2b51faf66c3fdccfcf97206c0cd4c2fcc6","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    def _process_router_update(self):"},{"line_number":620,"context_line":"        for rp, update in self._queue.each_update_to_next_resource():"},{"line_number":621,"context_line":"            LOG.info(\"Starting router update for %s, action %s, priority %s, \""},{"line_number":622,"context_line":"                     \"update_id %s. Time elapsed for waiting: %.3f\","},{"line_number":623,"context_line":"                     update.id, update.action, update.priority,"},{"line_number":624,"context_line":"                     update.update_id,"},{"line_number":625,"context_line":"                     update.before_start())"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb9cba7_0c3113ed","line":622,"in_reply_to":"ffb9cba7_c102e409","updated":"2019-04-24 09:55:08.000000000","message":"One resource can be processed multiple times, then how to distinguish each update?","commit_id":"66249ab2128d9a3cbd38f3e58451c1e40e1d32e7"}]}
