)]}'
{"neutron/agent/l3_agent.py":[{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"420aff00ff8e3ee81f79709ed636ae5ee86e664f","unresolved":false,"context_lines":[{"line_number":695,"context_line":"        router_id \u003d ns[len(NS_PREFIX):]"},{"line_number":696,"context_line":"        ra.disable_ipv6_ra(router_id, ns, self.root_helper)"},{"line_number":697,"context_line":"        if self.conf.enable_metadata_proxy:"},{"line_number":698,"context_line":"            self._destroy_metadata_proxy(router_id, ns)"},{"line_number":699,"context_line":"        ns_ip \u003d ip_lib.IPWrapper(self.root_helper, namespace\u003dns)"},{"line_number":700,"context_line":"        for d in ns_ip.get_devices(exclude_loopback\u003dTrue):"},{"line_number":701,"context_line":"            if d.name.startswith(INTERNAL_DEV_PREFIX):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_69c31f38","line":698,"updated":"2014-10-27 15:07:33.000000000","message":"This creates a regression for https://review.openstack.org/#/c/117994/ - here, the expected \u0027ns\u0027 variable may be suffixed by a \u0027@agent1\u0027 suffix (in the HA L3 test agent), and this doesn\u0027t work the same as before.\n\nFor example, if \u0027ns\u0027 here is \u0027qrouter-123456@agent1\u0027 (which is possible for HA L3 test agent, designed to allow multiple L3 agents on the same node), \u0027router_id\u0027 will be \u0027123456@agent1\u0027. Before this change, it was \u0027123456\u0027 since the RouterInfo object held the correct router_id.","commit_id":"d712663b99520e6d26269b0ca193527603178742"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"66f7bf0aecc7f3838fde30dc00a2ac2934e83233","unresolved":false,"context_lines":[{"line_number":695,"context_line":"        router_id \u003d ns[len(NS_PREFIX):]"},{"line_number":696,"context_line":"        ra.disable_ipv6_ra(router_id, ns, self.root_helper)"},{"line_number":697,"context_line":"        if self.conf.enable_metadata_proxy:"},{"line_number":698,"context_line":"            self._destroy_metadata_proxy(router_id, ns)"},{"line_number":699,"context_line":"        ns_ip \u003d ip_lib.IPWrapper(self.root_helper, namespace\u003dns)"},{"line_number":700,"context_line":"        for d in ns_ip.get_devices(exclude_loopback\u003dTrue):"},{"line_number":701,"context_line":"            if d.name.startswith(INTERNAL_DEV_PREFIX):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_c9f40b5d","line":698,"in_reply_to":"9aa7fdbe_69c31f38","updated":"2014-10-27 15:15:15.000000000","message":"well, if a change hasn\u0027t merged yet, this is not exactly a regression is it? :P\n\nNot sure I understand the issue here though","commit_id":"d712663b99520e6d26269b0ca193527603178742"},{"author":{"_account_id":12444,"name":"John Schwarz","email":"jschwarz@redhat.com","username":"jschwarz"},"change_message_id":"f1eaf2b09b46ff8aa0eaa6a9fec26b52a2ebf112","unresolved":false,"context_lines":[{"line_number":695,"context_line":"        router_id \u003d ns[len(NS_PREFIX):]"},{"line_number":696,"context_line":"        ra.disable_ipv6_ra(router_id, ns, self.root_helper)"},{"line_number":697,"context_line":"        if self.conf.enable_metadata_proxy:"},{"line_number":698,"context_line":"            self._destroy_metadata_proxy(router_id, ns)"},{"line_number":699,"context_line":"        ns_ip \u003d ip_lib.IPWrapper(self.root_helper, namespace\u003dns)"},{"line_number":700,"context_line":"        for d in ns_ip.get_devices(exclude_loopback\u003dTrue):"},{"line_number":701,"context_line":"            if d.name.startswith(INTERNAL_DEV_PREFIX):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_0c446119","line":698,"in_reply_to":"9aa7fdbe_c9f40b5d","updated":"2014-10-27 15:24:55.000000000","message":":P\n\nThe HA L3 test agent (introduced in the patch I linked above) is designed to allow multiple L3 agents to be ran on a single machine. If you think about it, once an L3 agent is started a new namespace is created for each router it manages - so if we have a router with router_id\u003d\u003d123456, then a \u0027qrouter-123456\u0027 namespace is created.\n\nIn the HA L3 test agent, multiple agents will try to create the \u0027qrouter-123456\u0027 namespace, and this will cause some conflicts. To rectify, the configuration option \u0027host\u0027 (neutron.conf) is appended to each namespace (ie \u0027qrouter-123456\u0027 -\u003e \u0027qrouter-123456@\u003chost\u003e\u0027), and each test agent is started with different neutron.conf (which hold different \u0027host\u0027 configurations), thus no conflicts happen. A similar solution is made for interfaces (\u0027qvo1234567890\u0027 -\u003e \u0027qvo1234556@st1\u0027) to avoid multiple interfaces with the same name.\n\nIn short, this forces us to pay attention between the router_id and namespace (which, if using the previous example, should be \u0027123456\u0027 and \u0027qrouter-123456@host1\u0027 respectively). This patch derives the router_id from the namespace, so basically we have router_id be \u0027123456@host1\u0027 - and this causes various problems (specifically, ProcessManager is unable to find the process with the uuid(\u003drouter_id) specified.\n\nHope this is better :)","commit_id":"d712663b99520e6d26269b0ca193527603178742"}],"neutron/tests/unit/test_l3_agent.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"92d548e71cedd026304b24af5040d01e52d74742","unresolved":false,"context_lines":[{"line_number":2024,"context_line":"                    if n.startswith(l3_agent.NS_PREFIX)]"},{"line_number":2025,"context_line":"        expected_pm_disables +\u003d len(qrouters)"},{"line_number":2026,"context_line":""},{"line_number":2027,"context_line":"        self.assertEqual(expected_pm_disables, pm.disable.call_count)"},{"line_number":2028,"context_line":"        self.assertEqual(agent._destroy_router_namespace.call_count,"},{"line_number":2029,"context_line":"                         len(qrouters))"},{"line_number":2030,"context_line":"        self.assertEqual(agent._destroy_snat_namespace.call_count,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa7fdbe_02bf45fc","side":"PARENT","line":2027,"updated":"2014-10-22 04:53:37.000000000","message":"I am a bit sad about this but I can see why you did it.","commit_id":"f0aef106e0feca893e64165b1c4718c83f9438dd"}]}
