)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"de501b26d5d5f7beb9672c93e634baa1e9b6475c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Speed up initial L3 full sync time"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a L3 agent starts up the initial full sync occurs"},{"line_number":10,"context_line":"on the first periodic task interval."},{"line_number":11,"context_line":"This means that from the point the router is ready to"},{"line_number":12,"context_line":"process updates it can take ~1 minute until traffic"},{"line_number":13,"context_line":"can start flowing through the L3 agent\u0027s routers."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_c606b1cd","line":10,"updated":"2015-01-08 08:42:38.000000000","message":"router -\u003e agent","commit_id":"fdc4271961d26849236cade16898b81e13eea78d"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"de501b26d5d5f7beb9672c93e634baa1e9b6475c","unresolved":false,"context_lines":[{"line_number":11,"context_line":"This means that from the point the router is ready to"},{"line_number":12,"context_line":"process updates it can take ~1 minute until traffic"},{"line_number":13,"context_line":"can start flowing through the L3 agent\u0027s routers."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"When using a highly availabe solution (not VRRP)"},{"line_number":16,"context_line":"the downtime can be very significant."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_060d19e8","line":14,"updated":"2015-01-08 08:42:38.000000000","message":"available","commit_id":"fdc4271961d26849236cade16898b81e13eea78d"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"de501b26d5d5f7beb9672c93e634baa1e9b6475c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"process updates it can take ~1 minute until traffic"},{"line_number":13,"context_line":"can start flowing through the L3 agent\u0027s routers."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"When using a highly availabe solution (not VRRP)"},{"line_number":16,"context_line":"the downtime can be very significant."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch simply does a manual (i.e. not periodic) full"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_66f5fdc9","line":15,"updated":"2015-01-08 08:42:38.000000000","message":"I wouldn\u0027t say \u0027very significant\u0027. I would just say that it adds a full minute to the minimum downtime, for no good reason.","commit_id":"fdc4271961d26849236cade16898b81e13eea78d"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"de501b26d5d5f7beb9672c93e634baa1e9b6475c","unresolved":false,"context_lines":[{"line_number":16,"context_line":"the downtime can be very significant."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch simply does a manual (i.e. not periodic) full"},{"line_number":19,"context_line":"sync once the L3 agent is ready (in \u0027after_start\u0027 method)."},{"line_number":20,"context_line":"The change results a much faster sync on a new agent."},{"line_number":21,"context_line":"With the patch it takes several seconds until routers are"},{"line_number":22,"context_line":"created on the new L3 agent."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_a6fb65bc","line":19,"updated":"2015-01-08 08:42:38.000000000","message":"in a","commit_id":"fdc4271961d26849236cade16898b81e13eea78d"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"de501b26d5d5f7beb9672c93e634baa1e9b6475c","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch simply does a manual (i.e. not periodic) full"},{"line_number":19,"context_line":"sync once the L3 agent is ready (in \u0027after_start\u0027 method)."},{"line_number":20,"context_line":"The change results a much faster sync on a new agent."},{"line_number":21,"context_line":"With the patch it takes several seconds until routers are"},{"line_number":22,"context_line":"created on the new L3 agent."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_c62dd147","line":20,"updated":"2015-01-08 08:42:38.000000000","message":"And before how long it took?","commit_id":"fdc4271961d26849236cade16898b81e13eea78d"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"613d2a33d439a0762ebe7bf1fcdb02717dcc3e9f","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch simply does a manual (i.e. not periodic) full"},{"line_number":19,"context_line":"sync once the L3 agent is ready (in \u0027after_start\u0027 method)."},{"line_number":20,"context_line":"The change results a much faster sync on a new agent."},{"line_number":21,"context_line":"With the patch it takes several seconds until routers are"},{"line_number":22,"context_line":"created on the new L3 agent."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_c1277bb4","line":20,"updated":"2015-01-08 09:16:38.000000000","message":"more time ;)","commit_id":"fdc4271961d26849236cade16898b81e13eea78d"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"cba24f2588c7e9a6fa68dfc7821803175af0e581","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"This patch simply does a manual (i.e. not periodic) full"},{"line_number":19,"context_line":"sync once the L3 agent is ready (in \u0027after_start\u0027 method)."},{"line_number":20,"context_line":"The change results a much faster sync on a new agent."},{"line_number":21,"context_line":"With the patch it takes several seconds until routers are"},{"line_number":22,"context_line":"created on the new L3 agent."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_016c23cf","line":20,"in_reply_to":"3a961159_c1277bb4","updated":"2015-01-08 09:19:25.000000000","message":"You are technically correct, the best kind of correct.\n\nI\u0027m just saying that it would add more context if Yoni were to specify that because of the looping call defaults, it took 60 seconds to start doing anything.","commit_id":"fdc4271961d26849236cade16898b81e13eea78d"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"de501b26d5d5f7beb9672c93e634baa1e9b6475c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"This patch simply does a manual (i.e. not periodic) full"},{"line_number":19,"context_line":"sync once the L3 agent is ready (in \u0027after_start\u0027 method)."},{"line_number":20,"context_line":"The change results a much faster sync on a new agent."},{"line_number":21,"context_line":"With the patch it takes several seconds until routers are"},{"line_number":22,"context_line":"created on the new L3 agent."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Closes-Bug: #1407410"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_26277564","line":21,"updated":"2015-01-08 08:42:38.000000000","message":"new, or a restarted agent.","commit_id":"fdc4271961d26849236cade16898b81e13eea78d"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"679c2487f5a70db4a96aaccc26e4c372dd85591d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"process updates it can take ~1 minute until traffic"},{"line_number":13,"context_line":"can start flowing through the L3 agent\u0027s routers."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"When using a highly available solution (not VRRP)"},{"line_number":16,"context_line":"the this startup delay adds around a full minute to"},{"line_number":17,"context_line":"the minimum downtime."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_f232835c","line":15,"updated":"2015-01-08 12:51:06.000000000","message":"the this","commit_id":"bd934d8c3b51bc1a7eb2740bba07ab997f585fe8"},{"author":{"_account_id":14024,"name":"Yoni Shafrir","email":"yshafrir@redhat.com","username":"yoni"},"change_message_id":"943abe54e4cd86aad68e0f5b0263111152128509","unresolved":false,"context_lines":[{"line_number":12,"context_line":"process updates it can take ~1 minute until traffic"},{"line_number":13,"context_line":"can start flowing through the L3 agent\u0027s routers."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"When using a highly available solution (not VRRP)"},{"line_number":16,"context_line":"the this startup delay adds around a full minute to"},{"line_number":17,"context_line":"the minimum downtime."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_db20439c","line":15,"in_reply_to":"3a961159_f232835c","updated":"2015-01-08 12:59:54.000000000","message":"Done","commit_id":"bd934d8c3b51bc1a7eb2740bba07ab997f585fe8"}],"neutron/agent/l3/agent.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"94fd5523e7a2a7237e996e6c1354e56945a732df","unresolved":false,"context_lines":[{"line_number":1211,"context_line":"        eventlet.spawn_n(self._process_routers_loop)"},{"line_number":1212,"context_line":"        LOG.info(_LI(\"L3 agent started\"))"},{"line_number":1213,"context_line":"        # When L3 agent is ready, we immediately do a full sync"},{"line_number":1214,"context_line":"        self.periodic_sync_routers_task(self.context)"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"    def _update_routing_table(self, ri, operation, route):"},{"line_number":1217,"context_line":"        cmd \u003d [\u0027ip\u0027, \u0027route\u0027, operation, \u0027to\u0027, route[\u0027destination\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_c97defe8","line":1214,"updated":"2015-01-07 23:57:54.000000000","message":"does it make sense to add a test where we ensure that this is not removed for any reason, so that we don\u0027t regress?","commit_id":"fdc4271961d26849236cade16898b81e13eea78d"},{"author":{"_account_id":14024,"name":"Yoni Shafrir","email":"yshafrir@redhat.com","username":"yoni"},"change_message_id":"f6b2953616cd18971d0797fdd8d5e6adfe7c8770","unresolved":false,"context_lines":[{"line_number":1211,"context_line":"        eventlet.spawn_n(self._process_routers_loop)"},{"line_number":1212,"context_line":"        LOG.info(_LI(\"L3 agent started\"))"},{"line_number":1213,"context_line":"        # When L3 agent is ready, we immediately do a full sync"},{"line_number":1214,"context_line":"        self.periodic_sync_routers_task(self.context)"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"    def _update_routing_table(self, ri, operation, route):"},{"line_number":1217,"context_line":"        cmd \u003d [\u0027ip\u0027, \u0027route\u0027, operation, \u0027to\u0027, route[\u0027destination\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_fb8349c8","line":1214,"in_reply_to":"3a961159_c97defe8","updated":"2015-01-08 05:50:00.000000000","message":"Kevin Benton suggested this and i think its a good idea.\nI\u0027ll send a new patch set.","commit_id":"fdc4271961d26849236cade16898b81e13eea78d"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"fe26c81ac1f7a78374d190d3befeb02cc2ad9d87","unresolved":false,"context_lines":[{"line_number":1147,"context_line":"        pool \u003d eventlet.GreenPool(size\u003d8)"},{"line_number":1148,"context_line":"        while True:"},{"line_number":1149,"context_line":"            pool.spawn_n(self._process_router_update)"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"    @periodic_task.periodic_task"},{"line_number":1152,"context_line":"    def periodic_sync_routers_task(self, context):"},{"line_number":1153,"context_line":"        if self.services_sync:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_59c5d708","line":1150,"updated":"2015-01-13 05:29:49.000000000","message":"@periodic_task.periodic_task(run_immediately\u003dTrue)","commit_id":"fff86b689e2ff0d4f6815ba1dd22ea7805202ab5"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"574c33c39c1039fac4ec28c8c03b033a88bf5945","unresolved":false,"context_lines":[{"line_number":1147,"context_line":"        pool \u003d eventlet.GreenPool(size\u003d8)"},{"line_number":1148,"context_line":"        while True:"},{"line_number":1149,"context_line":"            pool.spawn_n(self._process_router_update)"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"    @periodic_task.periodic_task"},{"line_number":1152,"context_line":"    def periodic_sync_routers_task(self, context):"},{"line_number":1153,"context_line":"        if self.services_sync:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_f4354cdb","line":1150,"in_reply_to":"3a961159_59c5d708","updated":"2015-01-15 09:06:46.000000000","message":"not part of this commit, it can be push in a new one!","commit_id":"fff86b689e2ff0d4f6815ba1dd22ea7805202ab5"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"fe26c81ac1f7a78374d190d3befeb02cc2ad9d87","unresolved":false,"context_lines":[{"line_number":1211,"context_line":"        eventlet.spawn_n(self._process_routers_loop)"},{"line_number":1212,"context_line":"        LOG.info(_LI(\"L3 agent started\"))"},{"line_number":1213,"context_line":"        # When L3 agent is ready, we immediately do a full sync"},{"line_number":1214,"context_line":"        self.periodic_sync_routers_task(self.context)"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"    def _update_routing_table(self, ri, operation, route):"},{"line_number":1217,"context_line":"        cmd \u003d [\u0027ip\u0027, \u0027route\u0027, operation, \u0027to\u0027, route[\u0027destination\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_99e65faf","line":1214,"updated":"2015-01-13 05:29:49.000000000","message":"This is very welcome fix but I think implementation can be simpler. See 1151.","commit_id":"fff86b689e2ff0d4f6815ba1dd22ea7805202ab5"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"fed13c1d624d95ead905fc658194452f382e2b01","unresolved":false,"context_lines":[{"line_number":1211,"context_line":"        eventlet.spawn_n(self._process_routers_loop)"},{"line_number":1212,"context_line":"        LOG.info(_LI(\"L3 agent started\"))"},{"line_number":1213,"context_line":"        # When L3 agent is ready, we immediately do a full sync"},{"line_number":1214,"context_line":"        self.periodic_sync_routers_task(self.context)"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"    def _update_routing_table(self, ri, operation, route):"},{"line_number":1217,"context_line":"        cmd \u003d [\u0027ip\u0027, \u0027route\u0027, operation, \u0027to\u0027, route[\u0027destination\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_abfca273","line":1214,"in_reply_to":"3a961159_6b5c7af1","updated":"2015-01-13 06:20:15.000000000","message":"OK. it is not so strong opinion.","commit_id":"fff86b689e2ff0d4f6815ba1dd22ea7805202ab5"},{"author":{"_account_id":14024,"name":"Yoni Shafrir","email":"yshafrir@redhat.com","username":"yoni"},"change_message_id":"94e17c45476fec6402af7cc9176b1ec171fe134f","unresolved":false,"context_lines":[{"line_number":1211,"context_line":"        eventlet.spawn_n(self._process_routers_loop)"},{"line_number":1212,"context_line":"        LOG.info(_LI(\"L3 agent started\"))"},{"line_number":1213,"context_line":"        # When L3 agent is ready, we immediately do a full sync"},{"line_number":1214,"context_line":"        self.periodic_sync_routers_task(self.context)"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"    def _update_routing_table(self, ri, operation, route):"},{"line_number":1217,"context_line":"        cmd \u003d [\u0027ip\u0027, \u0027route\u0027, operation, \u0027to\u0027, route[\u0027destination\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_6b5c7af1","line":1214,"in_reply_to":"3a961159_99e65faf","updated":"2015-01-13 06:02:28.000000000","message":"This was considered, i think the current change is more explicit and focused on the L3 start up. This change coupling to the L3 init is more tight as opposed to the alternative you suggested\n\nDoes it make sense to you ?","commit_id":"fff86b689e2ff0d4f6815ba1dd22ea7805202ab5"}],"neutron/tests/unit/test_l3_agent.py":[{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"679c2487f5a70db4a96aaccc26e4c372dd85591d","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        with mock.patch.object(l3_agent.L3NATAgent,"},{"line_number":288,"context_line":"                               \u0027periodic_sync_routers_task\u0027) as router_sync:"},{"line_number":289,"context_line":"            agent \u003d l3_agent.L3NATAgent(HOSTNAME, self.conf)"},{"line_number":290,"context_line":"            agent.after_start()"},{"line_number":291,"context_line":"        router_sync.assert_called_once_with(agent.context)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def test_periodic_sync_routers_task_call_clean_stale_namespaces(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_984ec194","line":290,"updated":"2015-01-08 12:51:06.000000000","message":"The fact that router_sync is out of the context manager scope seemed weird to me so I checked it out. It seems like the router_sync object remains a mock after the scope ends, but agent.periodic_sync_routers_task is a mock inside the scope, but is not a mock outside of it.\n\nI don\u0027t *think* this matters. Either way, I would indent line 291 once, for readability / to reduce the WTF impact.","commit_id":"bd934d8c3b51bc1a7eb2740bba07ab997f585fe8"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"c2a941987032dbc2b0597e10ef328e3a5b571fc0","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        with mock.patch.object(l3_agent.L3NATAgent,"},{"line_number":288,"context_line":"                               \u0027periodic_sync_routers_task\u0027) as router_sync:"},{"line_number":289,"context_line":"            agent \u003d l3_agent.L3NATAgent(HOSTNAME, self.conf)"},{"line_number":290,"context_line":"            agent.after_start()"},{"line_number":291,"context_line":"        router_sync.assert_called_once_with(agent.context)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def test_periodic_sync_routers_task_call_clean_stale_namespaces(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_b80ffd37","line":290,"in_reply_to":"3a961159_984ec194","updated":"2015-01-08 12:55:32.000000000","message":"+1 on indenting next line.","commit_id":"bd934d8c3b51bc1a7eb2740bba07ab997f585fe8"},{"author":{"_account_id":14024,"name":"Yoni Shafrir","email":"yshafrir@redhat.com","username":"yoni"},"change_message_id":"943abe54e4cd86aad68e0f5b0263111152128509","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        with mock.patch.object(l3_agent.L3NATAgent,"},{"line_number":288,"context_line":"                               \u0027periodic_sync_routers_task\u0027) as router_sync:"},{"line_number":289,"context_line":"            agent \u003d l3_agent.L3NATAgent(HOSTNAME, self.conf)"},{"line_number":290,"context_line":"            agent.after_start()"},{"line_number":291,"context_line":"        router_sync.assert_called_once_with(agent.context)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def test_periodic_sync_routers_task_call_clean_stale_namespaces(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_9b2a3b7c","line":290,"in_reply_to":"3a961159_984ec194","updated":"2015-01-08 12:59:54.000000000","message":"Done","commit_id":"bd934d8c3b51bc1a7eb2740bba07ab997f585fe8"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"5db94782afeba26457ff7b0cd5e8edbe6ca0b0d4","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        with mock.patch.object(l3_agent.L3NATAgent,"},{"line_number":288,"context_line":"                               \u0027periodic_sync_routers_task\u0027) as router_sync:"},{"line_number":289,"context_line":"            agent \u003d l3_agent.L3NATAgent(HOSTNAME, self.conf)"},{"line_number":290,"context_line":"            agent.after_start()"},{"line_number":291,"context_line":"            router_sync.assert_called_once_with(agent.context)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def test_periodic_sync_routers_task_call_clean_stale_namespaces(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_3b8dc77c","line":290,"updated":"2015-01-08 13:08:26.000000000","message":"Does it mean we spawn router green thread during unit test? Is it ok?","commit_id":"6165d91fe47fb4ac5b9cbbea441f97ab5fdc074e"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"57dca52416ffece4aa5fdd210d7781e00a8c7d77","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        with mock.patch.object(l3_agent.L3NATAgent,"},{"line_number":288,"context_line":"                               \u0027periodic_sync_routers_task\u0027) as router_sync:"},{"line_number":289,"context_line":"            agent \u003d l3_agent.L3NATAgent(HOSTNAME, self.conf)"},{"line_number":290,"context_line":"            agent.after_start()"},{"line_number":291,"context_line":"            router_sync.assert_called_once_with(agent.context)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def test_periodic_sync_routers_task_call_clean_stale_namespaces(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_9b8cfb36","line":290,"in_reply_to":"3a961159_3b8dc77c","updated":"2015-01-08 13:18:29.000000000","message":"No. It should be mocked as well.","commit_id":"6165d91fe47fb4ac5b9cbbea441f97ab5fdc074e"},{"author":{"_account_id":14024,"name":"Yoni Shafrir","email":"yshafrir@redhat.com","username":"yoni"},"change_message_id":"20312b576fbaa2a38e97b5a2dfb090e8a7057d47","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        with mock.patch.object(l3_agent.L3NATAgent,"},{"line_number":288,"context_line":"                               \u0027periodic_sync_routers_task\u0027) as router_sync:"},{"line_number":289,"context_line":"            agent \u003d l3_agent.L3NATAgent(HOSTNAME, self.conf)"},{"line_number":290,"context_line":"            agent.after_start()"},{"line_number":291,"context_line":"            router_sync.assert_called_once_with(agent.context)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def test_periodic_sync_routers_task_call_clean_stale_namespaces(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_6529379b","line":290,"in_reply_to":"3a961159_9b8cfb36","updated":"2015-01-11 09:55:32.000000000","message":"Done - mocked eventlet\u0027s \u0027spawn_n\u0027 method.","commit_id":"6165d91fe47fb4ac5b9cbbea441f97ab5fdc074e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"8ce1fa8a6fa73886fba49c03c9cd6f6ab06405e0","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    def test_l3_initial_full_sync_done(self):"},{"line_number":288,"context_line":"        with mock.patch.object(l3_agent.L3NATAgent,"},{"line_number":289,"context_line":"                               \u0027periodic_sync_routers_task\u0027) as router_sync:"},{"line_number":290,"context_line":"            eventlet.spawn_n \u003d mock.Mock()"},{"line_number":291,"context_line":"            agent \u003d l3_agent.L3NATAgent(HOSTNAME, self.conf)"},{"line_number":292,"context_line":"            agent.after_start()"},{"line_number":293,"context_line":"            router_sync.assert_called_once_with(agent.context)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_84c1ba31","line":290,"updated":"2015-01-12 10:28:13.000000000","message":"Oh no, that\u0027s not how you do it!\n\nPlease mock it with mock.patch.* so that mock is cleaned up for next test cases.","commit_id":"f1daa37d72a1ed3670727805e643f609d71e4293"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"0c5cf0d9419ac0b9dbb6f75e8a4cda8b6f79940e","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    def test_l3_initial_full_sync_done(self):"},{"line_number":288,"context_line":"        with mock.patch.object(l3_agent.L3NATAgent,"},{"line_number":289,"context_line":"                               \u0027periodic_sync_routers_task\u0027) as router_sync:"},{"line_number":290,"context_line":"            eventlet.spawn_n \u003d mock.Mock()"},{"line_number":291,"context_line":"            agent \u003d l3_agent.L3NATAgent(HOSTNAME, self.conf)"},{"line_number":292,"context_line":"            agent.after_start()"},{"line_number":293,"context_line":"            router_sync.assert_called_once_with(agent.context)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_0d6faa94","line":290,"in_reply_to":"3a961159_84c1ba31","updated":"2015-01-12 13:12:25.000000000","message":"+1","commit_id":"f1daa37d72a1ed3670727805e643f609d71e4293"},{"author":{"_account_id":14024,"name":"Yoni Shafrir","email":"yshafrir@redhat.com","username":"yoni"},"change_message_id":"b5d3360fc84df8b4e834d60e2749acc7fec5a138","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    def test_l3_initial_full_sync_done(self):"},{"line_number":288,"context_line":"        with mock.patch.object(l3_agent.L3NATAgent,"},{"line_number":289,"context_line":"                               \u0027periodic_sync_routers_task\u0027) as router_sync:"},{"line_number":290,"context_line":"            eventlet.spawn_n \u003d mock.Mock()"},{"line_number":291,"context_line":"            agent \u003d l3_agent.L3NATAgent(HOSTNAME, self.conf)"},{"line_number":292,"context_line":"            agent.after_start()"},{"line_number":293,"context_line":"            router_sync.assert_called_once_with(agent.context)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_ffda074a","line":290,"in_reply_to":"3a961159_84c1ba31","updated":"2015-01-12 10:54:32.000000000","message":"Ok, will do","commit_id":"f1daa37d72a1ed3670727805e643f609d71e4293"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"3675ffdc36cc0d118d8772ec9dce8539574511a1","unresolved":false,"context_lines":[{"line_number":287,"context_line":"    def test_l3_initial_full_sync_done(self):"},{"line_number":288,"context_line":"        with mock.patch.object(l3_agent.L3NATAgent,"},{"line_number":289,"context_line":"                               \u0027periodic_sync_routers_task\u0027) as router_sync:"},{"line_number":290,"context_line":"            #eventlet.spawn_n \u003d mock.Mock()"},{"line_number":291,"context_line":"            with mock.patch.object(eventlet, \u0027spawn_n\u0027):"},{"line_number":292,"context_line":"                agent \u003d l3_agent.L3NATAgent(HOSTNAME, self.conf)"},{"line_number":293,"context_line":"                agent.after_start()"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_0bb792f6","line":290,"updated":"2015-01-12 14:14:55.000000000","message":"please remove.","commit_id":"f59e64a8dd1d9d07e920a1cd52da18697ad87428"}]}
