)]}'
{"neutron/agent/l3/agent.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"ba7740700cefee628e20baa7aaab5e02ec35337e","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"    # is responsible for task running. If this is not defined, it will default"},{"line_number":1092,"context_line":"    # to the DEFAULT_INTERVAL defined in the periodic_task module which can"},{"line_number":1093,"context_line":"    # be greater than what the user has configured and will cause it not to"},{"line_number":1094,"context_line":"    # run as frequently as expected."},{"line_number":1095,"context_line":"    @periodic_task.periodic_task(spacing\u003d1)"},{"line_number":1096,"context_line":"    def periodic_sync_routers_task(self, context):"},{"line_number":1097,"context_line":"        if self.services_sync:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_f63794fc","line":1094,"updated":"2015-01-20 08:15:35.000000000","message":"I considered that, but having the cfg value directly here was causing errors since this function is decorated as class definition time and the cfg value isn\u0027t always availble then in some testing.","commit_id":"2b7d5a025b01eac0ded4d76def45abb0677c8b0c"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"42fc5c3f305ade7331981448451fbeaf4730c7c8","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"    # is responsible for task running. If this is not defined, it will default"},{"line_number":1092,"context_line":"    # to the DEFAULT_INTERVAL defined in the periodic_task module which can"},{"line_number":1093,"context_line":"    # be greater than what the user has configured and will cause it not to"},{"line_number":1094,"context_line":"    # run as frequently as expected."},{"line_number":1095,"context_line":"    @periodic_task.periodic_task(spacing\u003d1)"},{"line_number":1096,"context_line":"    def periodic_sync_routers_task(self, context):"},{"line_number":1097,"context_line":"        if self.services_sync:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_7e02f63e","line":1094,"updated":"2015-01-16 03:54:10.000000000","message":"this is a bit abuse of the api.\n\nit\u0027s better to reduce the loopingcall interval instead.\n\nit would be even better if periodic_tasks module had a functionality to\nsuggest an interval value suitable among tasks...\n\neither ways, _ensure_keepalived_alive seems to need a similar change, too.","commit_id":"2b7d5a025b01eac0ded4d76def45abb0677c8b0c"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e348e022ac9311d33f74ae5adbff5597cd627e27","unresolved":false,"context_lines":[{"line_number":1086,"context_line":"        while True:"},{"line_number":1087,"context_line":"            pool.spawn_n(self._process_router_update)"},{"line_number":1088,"context_line":""},{"line_number":1089,"context_line":"    @periodic_task.periodic_task(spacing\u003dcfg.CONF.periodic_interval)"},{"line_number":1090,"context_line":"    def periodic_sync_routers_task(self, context):"},{"line_number":1091,"context_line":"        if self.services_sync:"},{"line_number":1092,"context_line":"            super(L3NATAgent, self).process_services_sync(context)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a930d6b_2cf8cf48","line":1089,"updated":"2015-01-22 12:51:55.000000000","message":"Should we use self.conf here? (Meaning, moving decorator call into after_start.)","commit_id":"ccd26c02e40909142daa75bf56e197f314a870eb"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"e18a5de888bb8ae762cc6fb2f4435922cdd0d547","unresolved":false,"context_lines":[{"line_number":1086,"context_line":"        while True:"},{"line_number":1087,"context_line":"            pool.spawn_n(self._process_router_update)"},{"line_number":1088,"context_line":""},{"line_number":1089,"context_line":"    @periodic_task.periodic_task(spacing\u003dcfg.CONF.periodic_interval)"},{"line_number":1090,"context_line":"    def periodic_sync_routers_task(self, context):"},{"line_number":1091,"context_line":"        if self.services_sync:"},{"line_number":1092,"context_line":"            super(L3NATAgent, self).process_services_sync(context)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa81d914_14322e10","line":1089,"in_reply_to":"1a930d6b_2cf8cf48","updated":"2015-01-29 06:24:21.000000000","message":"after_start is too late as decorated tasks are collected at class-defining time using a metaclass.\n\nprobably it\u0027s simpler to stay away from periodic_task.","commit_id":"ccd26c02e40909142daa75bf56e197f314a870eb"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"706a56c6b93c9c3bd82fa8a82db04ecc12e2ef91","unresolved":false,"context_lines":[{"line_number":1086,"context_line":"        while True:"},{"line_number":1087,"context_line":"            pool.spawn_n(self._process_router_update)"},{"line_number":1088,"context_line":""},{"line_number":1089,"context_line":"    @periodic_task.periodic_task(spacing\u003dcfg.CONF.periodic_interval)"},{"line_number":1090,"context_line":"    def periodic_sync_routers_task(self, context):"},{"line_number":1091,"context_line":"        if self.services_sync:"},{"line_number":1092,"context_line":"            super(L3NATAgent, self).process_services_sync(context)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa81d914_af1bcb1a","line":1089,"in_reply_to":"fa81d914_14322e10","updated":"2015-01-29 06:31:46.000000000","message":"\u003e probably it\u0027s simpler to stay away from periodic_task.\n\nI have begun to think so, too.","commit_id":"ccd26c02e40909142daa75bf56e197f314a870eb"}]}
