)]}'
{"neutron/agent/l3_agent.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"05a51cc1918714905f4ee1a803b07a619eb4bccb","unresolved":false,"context_lines":[{"line_number":719,"context_line":"            ip_wrapper.netns.execute([\u0027sysctl\u0027, \u0027-w\u0027,"},{"line_number":720,"context_line":"                                      \u0027net.ipv6.conf.all.forwarding\u003d1\u0027])"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"    def _create_router_namespace(self, ri):"},{"line_number":723,"context_line":"        self._create_namespace(ri.ns_name)"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"    def _fetch_external_net_id(self, force\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa7fdbe_3c1c7dc1","side":"PARENT","line":722,"updated":"2014-10-21 17:23:55.000000000","message":"I\u0027ll have to leave this one in here for now.  neutron/services/firewall/agents/varmour/varmour_router.py overrides this with a no op apparently to avoid calling self._create_namespace.\n\nI\u0027ll have to look in to this a bit further but it seems that the vArmourL3NATAgent should refuse to run with use_namespaces \u003d True instead of overriding private methods to accomplish this.  Nonetheless, I\u0027ll remove this change from this patch and deal with it later.","commit_id":"b087867d0dcfb6399cf6eeb2898b53ad381f34d4"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"29518a216403e25d94fc2d230fbc5525200bfe7c","unresolved":false,"context_lines":[{"line_number":709,"context_line":"            ip_wrapper.netns.execute([\u0027sysctl\u0027, \u0027-w\u0027,"},{"line_number":710,"context_line":"                                      \u0027net.ipv6.conf.all.forwarding\u003d1\u0027])"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"    def _create_router_namespaces(self, ri):"},{"line_number":713,"context_line":"        self._create_namespace(ri.ns_name)"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"    def _fetch_external_net_id(self, force\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_0650475d","line":712,"updated":"2014-10-21 19:22:49.000000000","message":"Looks like usage is _create_router_namespace? Since only use in one place, is this wrapper needed too?","commit_id":"c8b4fa0cfcf2e080691ea7462a86943793cfa883"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"89492332a543d2fa12b98ff788302ca30cfebf4d","unresolved":false,"context_lines":[{"line_number":709,"context_line":"            ip_wrapper.netns.execute([\u0027sysctl\u0027, \u0027-w\u0027,"},{"line_number":710,"context_line":"                                      \u0027net.ipv6.conf.all.forwarding\u003d1\u0027])"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"    def _create_router_namespaces(self, ri):"},{"line_number":713,"context_line":"        self._create_namespace(ri.ns_name)"},{"line_number":714,"context_line":""},{"line_number":715,"context_line":"    def _fetch_external_net_id(self, force\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa7fdbe_0964d8e3","line":712,"in_reply_to":"9aa7fdbe_0650475d","updated":"2014-10-21 19:32:59.000000000","message":"Doh!  How did that extra \u0027s\u0027 get in there!  Thanks for spotting that.","commit_id":"c8b4fa0cfcf2e080691ea7462a86943793cfa883"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"4b38573cd5dfbeaa87cb16ec399e12f4022f0783","unresolved":false,"context_lines":[{"line_number":623,"context_line":"        ns_to_ignore \u003d self._get_routers_namespaces(router_ids)"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"        ns_to_destroy \u003d router_namespaces - ns_to_ignore"},{"line_number":626,"context_line":"        for ns in ns_to_destroy:"},{"line_number":627,"context_line":"            try:"},{"line_number":628,"context_line":"                self._destroy_namespace(ns)"},{"line_number":629,"context_line":"            except RuntimeError:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa7fdbe_554aefac","line":626,"updated":"2014-10-21 21:43:23.000000000","message":"It seems that this redirection is indeed no useful. I am fine removing it.","commit_id":"56367845e3db590efabe65ad337bca6958a515c3"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"9bec78bd92a2b3550213e67a2a15d4745d788b12","unresolved":false,"context_lines":[{"line_number":1842,"context_line":"    def periodic_sync_routers_task(self, context):"},{"line_number":1843,"context_line":"        if self.services_sync:"},{"line_number":1844,"context_line":"            super(L3NATAgent, self).process_services_sync(context)"},{"line_number":1845,"context_line":"        LOG.debug(_(\"Starting periodic_sync_routers_task - fullsync:%s\"),"},{"line_number":1846,"context_line":"                  self.fullsync)"},{"line_number":1847,"context_line":"        if not self.fullsync:"},{"line_number":1848,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa7fdbe_8cf69b8d","line":1845,"updated":"2014-10-27 10:23:45.000000000","message":"_() could be removed","commit_id":"56367845e3db590efabe65ad337bca6958a515c3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"719ba9ebf239a7f2d071726daa4a46baa1fcb2e3","unresolved":false,"context_lines":[{"line_number":1842,"context_line":"    def periodic_sync_routers_task(self, context):"},{"line_number":1843,"context_line":"        if self.services_sync:"},{"line_number":1844,"context_line":"            super(L3NATAgent, self).process_services_sync(context)"},{"line_number":1845,"context_line":"        LOG.debug(_(\"Starting periodic_sync_routers_task - fullsync:%s\"),"},{"line_number":1846,"context_line":"                  self.fullsync)"},{"line_number":1847,"context_line":"        if not self.fullsync:"},{"line_number":1848,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa7fdbe_6756bf07","line":1845,"in_reply_to":"9aa7fdbe_8cf69b8d","updated":"2014-10-28 19:11:18.000000000","message":"Done","commit_id":"56367845e3db590efabe65ad337bca6958a515c3"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"9bec78bd92a2b3550213e67a2a15d4745d788b12","unresolved":false,"context_lines":[{"line_number":1870,"context_line":"                                      timestamp\u003dtimestamp)"},{"line_number":1871,"context_line":"                self._queue.add(update)"},{"line_number":1872,"context_line":"            self.fullsync \u003d False"},{"line_number":1873,"context_line":"            LOG.debug(_(\"periodic_sync_routers_task successfully completed\"))"},{"line_number":1874,"context_line":"        except n_rpc.RPCException:"},{"line_number":1875,"context_line":"            LOG.exception(_(\"Failed synchronizing routers due to RPC error\"))"},{"line_number":1876,"context_line":"            self.fullsync \u003d True"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa7fdbe_acf19f96","line":1873,"updated":"2014-10-27 10:23:45.000000000","message":"itto","commit_id":"56367845e3db590efabe65ad337bca6958a515c3"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"719ba9ebf239a7f2d071726daa4a46baa1fcb2e3","unresolved":false,"context_lines":[{"line_number":1870,"context_line":"                                      timestamp\u003dtimestamp)"},{"line_number":1871,"context_line":"                self._queue.add(update)"},{"line_number":1872,"context_line":"            self.fullsync \u003d False"},{"line_number":1873,"context_line":"            LOG.debug(_(\"periodic_sync_routers_task successfully completed\"))"},{"line_number":1874,"context_line":"        except n_rpc.RPCException:"},{"line_number":1875,"context_line":"            LOG.exception(_(\"Failed synchronizing routers due to RPC error\"))"},{"line_number":1876,"context_line":"            self.fullsync \u003d True"}],"source_content_type":"text/x-python","patch_set":7,"id":"9aa7fdbe_8759e336","line":1873,"in_reply_to":"9aa7fdbe_acf19f96","updated":"2014-10-28 19:11:18.000000000","message":"Done","commit_id":"56367845e3db590efabe65ad337bca6958a515c3"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"74e5fca2454e5738e1bb3b707c0d25b0950634c3","unresolved":false,"context_lines":[{"line_number":1849,"context_line":"        if not self.conf.use_namespaces:"},{"line_number":1850,"context_line":"            return [self.conf.router_id]"},{"line_number":1851,"context_line":""},{"line_number":1852,"context_line":"    @periodic_task.periodic_task"},{"line_number":1853,"context_line":"    def periodic_sync_routers_task(self, context):"},{"line_number":1854,"context_line":"        self._sync_routers_task(context)"},{"line_number":1855,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a890539_647b5abe","side":"PARENT","line":1852,"updated":"2014-11-24 20:56:50.000000000","message":"one thing I liked about this one was that testing didn\u0027t need to depend on the fact the loopingcall needed to be mocked out (or any underlying looping mechanism for that matter)","commit_id":"9cebd57d524b1ed953c69cfd3f2480938632d8d4"}]}
