)]}'
{"neutron/tests/fullstack/resources/environment.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"56f6f3a909d15f004862c3a8609bd1c7bb0895f4","unresolved":true,"context_lines":[{"line_number":43,"context_line":"                 dhcp_scheduler_class\u003dNone, ml2_extension_drivers\u003dNone,"},{"line_number":44,"context_line":"                 api_workers\u003d1,"},{"line_number":45,"context_line":"                 enable_ext_dhcp\u003dFalse,"},{"line_number":46,"context_line":"                 enable_traditional_dhcp\u003dTrue):"},{"line_number":47,"context_line":"        self.network_type \u003d network_type"},{"line_number":48,"context_line":"        self.l2_pop \u003d l2_pop"},{"line_number":49,"context_line":"        self.qos \u003d qos"}],"source_content_type":"text/x-python","patch_set":31,"id":"94ebe0dc_a4e216a8","line":46,"updated":"2021-06-24 14:33:32.000000000","message":"do we need 2 variables here? Can\u0027t it be something like:\n\n    if enable_traditional_dhcp \u003d\u003d False:\n        enable_dhcp_ext()","commit_id":"f4b7281f0e237aa087d6ff5ca47f8ab1424a86f9"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a3070fd4f57e8e3a3d220b2dab5027c7cbb5f9ef","unresolved":true,"context_lines":[{"line_number":43,"context_line":"                 dhcp_scheduler_class\u003dNone, ml2_extension_drivers\u003dNone,"},{"line_number":44,"context_line":"                 api_workers\u003d1,"},{"line_number":45,"context_line":"                 enable_ext_dhcp\u003dFalse,"},{"line_number":46,"context_line":"                 enable_traditional_dhcp\u003dTrue):"},{"line_number":47,"context_line":"        self.network_type \u003d network_type"},{"line_number":48,"context_line":"        self.l2_pop \u003d l2_pop"},{"line_number":49,"context_line":"        self.qos \u003d qos"}],"source_content_type":"text/x-python","patch_set":31,"id":"fdd20c60_b2ea953a","line":46,"in_reply_to":"94ebe0dc_a4e216a8","updated":"2021-06-28 10:12:21.000000000","message":"Hmm....enable_traditional_dhcp is set to True does not mean that dhcp agent extension is enabled automatically. But it should be OK to add the param like you suggest, since adding new cases for DHCP agent with/without dhcp extension should be in a very low probability.","commit_id":"f4b7281f0e237aa087d6ff5ca47f8ab1424a86f9"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"20d8e281025b29a6fd26bc770ff98de206094d84","unresolved":false,"context_lines":[{"line_number":43,"context_line":"                 dhcp_scheduler_class\u003dNone, ml2_extension_drivers\u003dNone,"},{"line_number":44,"context_line":"                 api_workers\u003d1,"},{"line_number":45,"context_line":"                 enable_ext_dhcp\u003dFalse,"},{"line_number":46,"context_line":"                 enable_traditional_dhcp\u003dTrue):"},{"line_number":47,"context_line":"        self.network_type \u003d network_type"},{"line_number":48,"context_line":"        self.l2_pop \u003d l2_pop"},{"line_number":49,"context_line":"        self.qos \u003d qos"}],"source_content_type":"text/x-python","patch_set":31,"id":"485aaf9a_f0ed2f88","line":46,"in_reply_to":"fdd20c60_b2ea953a","updated":"2021-06-28 10:12:35.000000000","message":"Done","commit_id":"f4b7281f0e237aa087d6ff5ca47f8ab1424a86f9"}],"neutron/tests/fullstack/resources/machine.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9db6f2c623e4f31766655e18eec1d579da9015cf","unresolved":true,"context_lines":[{"line_number":142,"context_line":"        if self.gateway_ip:"},{"line_number":143,"context_line":"            net_helpers.set_namespace_gateway(self.port, self.gateway_ip)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def _configure_ipaddress_via_dhcp(self, version\u003d4):"},{"line_number":146,"context_line":"        self._start_async_dhclient(version)"},{"line_number":147,"context_line":"        self.addCleanup(self._stop_async_dhclient)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"80c7282a_2b5a663a","line":145,"range":{"start_line":145,"start_character":52,"end_line":145,"end_character":53},"updated":"2021-03-05 09:16:18.000000000","message":"please use constant from neutron_lib here and in other places in that patch as well","commit_id":"fe6fa208189114eff0643127a9f7835a8ce636ae"}],"neutron/tests/fullstack/test_ovs_dhcp_extension.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9db6f2c623e4f31766655e18eec1d579da9015cf","unresolved":true,"context_lines":[{"line_number":31,"context_line":"            environment.HostDescription("},{"line_number":32,"context_line":"                l2_agent_type\u003dconstants.AGENT_TYPE_OVS,"},{"line_number":33,"context_line":"                firewall_driver\u003d\u0027openvswitch\u0027,"},{"line_number":34,"context_line":"                l3_agent\u003dTrue,"},{"line_number":35,"context_line":"                dhcp_agent\u003dFalse) for _ in range(self.number_of_hosts)]"},{"line_number":36,"context_line":"        env_desc \u003d environment.EnvironmentDescription("},{"line_number":37,"context_line":"            mech_drivers\u003d\u0027openvswitch\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ea6c88b6_42cdcac2","line":34,"updated":"2021-03-05 09:16:18.000000000","message":"do You really need l3 agent and routers in that test?","commit_id":"fe6fa208189114eff0643127a9f7835a8ce636ae"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"843307c39e2ec54f75fa89e10f75fbf0837feaa5","unresolved":true,"context_lines":[{"line_number":31,"context_line":"            environment.HostDescription("},{"line_number":32,"context_line":"                l2_agent_type\u003dconstants.AGENT_TYPE_OVS,"},{"line_number":33,"context_line":"                firewall_driver\u003d\u0027openvswitch\u0027,"},{"line_number":34,"context_line":"                l3_agent\u003dTrue,"},{"line_number":35,"context_line":"                dhcp_agent\u003dFalse) for _ in range(self.number_of_hosts)]"},{"line_number":36,"context_line":"        env_desc \u003d environment.EnvironmentDescription("},{"line_number":37,"context_line":"            mech_drivers\u003d\u0027openvswitch\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"fd6b571c_a4ccd4f3","line":34,"in_reply_to":"ea6c88b6_42cdcac2","updated":"2021-03-05 10:14:09.000000000","message":"For the prefix advertisement, see comments at line 88.","commit_id":"fe6fa208189114eff0643127a9f7835a8ce636ae"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9db6f2c623e4f31766655e18eec1d579da9015cf","unresolved":true,"context_lines":[{"line_number":50,"context_line":"            self.tenant_id, network[\u0027id\u0027], cidr)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        router \u003d self.safe_client.create_router("},{"line_number":53,"context_line":"            self.tenant_id, external_network\u003dnetwork[\u0027id\u0027])"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        self.network \u003d self.safe_client.create_network("},{"line_number":56,"context_line":"            self.tenant_id, \u0027network-test\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"2edf52ea_addd9b77","line":53,"updated":"2021-03-05 09:16:18.000000000","message":"why router is needed?","commit_id":"fe6fa208189114eff0643127a9f7835a8ce636ae"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"843307c39e2ec54f75fa89e10f75fbf0837feaa5","unresolved":true,"context_lines":[{"line_number":50,"context_line":"            self.tenant_id, network[\u0027id\u0027], cidr)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        router \u003d self.safe_client.create_router("},{"line_number":53,"context_line":"            self.tenant_id, external_network\u003dnetwork[\u0027id\u0027])"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        self.network \u003d self.safe_client.create_network("},{"line_number":56,"context_line":"            self.tenant_id, \u0027network-test\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"2396839f_c87b4eaa","line":53,"in_reply_to":"2edf52ea_addd9b77","updated":"2021-03-05 10:14:09.000000000","message":"See comments at line 88.","commit_id":"fe6fa208189114eff0643127a9f7835a8ce636ae"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9db6f2c623e4f31766655e18eec1d579da9015cf","unresolved":true,"context_lines":[{"line_number":136,"context_line":"            self.tenant_id, sgs[1][\u0027id\u0027],"},{"line_number":137,"context_line":"            direction\u003dconstants.INGRESS_DIRECTION,"},{"line_number":138,"context_line":"            ethertype\u003dconstants.IPv6,"},{"line_number":139,"context_line":"            protocol\u003dconstants.PROTO_NAME_ICMP)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        vm1 \u003d self.useFixture("},{"line_number":142,"context_line":"            machine.FakeFullstackMachine("}],"source_content_type":"text/x-python","patch_set":6,"id":"b300e325_f0ca5332","line":139,"updated":"2021-03-05 09:16:18.000000000","message":"why do we need security groups, wouldn\u0027t be easier to just check in the \"vm\u0027s namespace\" if proper IP address is configured? I think that this is main goal of that test, no?","commit_id":"fe6fa208189114eff0643127a9f7835a8ce636ae"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"843307c39e2ec54f75fa89e10f75fbf0837feaa5","unresolved":true,"context_lines":[{"line_number":136,"context_line":"            self.tenant_id, sgs[1][\u0027id\u0027],"},{"line_number":137,"context_line":"            direction\u003dconstants.INGRESS_DIRECTION,"},{"line_number":138,"context_line":"            ethertype\u003dconstants.IPv6,"},{"line_number":139,"context_line":"            protocol\u003dconstants.PROTO_NAME_ICMP)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        vm1 \u003d self.useFixture("},{"line_number":142,"context_line":"            machine.FakeFullstackMachine("}],"source_content_type":"text/x-python","patch_set":6,"id":"3ebae9ee_84a17b70","line":139,"in_reply_to":"b300e325_f0ca5332","updated":"2021-03-05 10:14:09.000000000","message":"Just allowing icmp for the ping action at line 166 and 168 since the port is from different sg.","commit_id":"fe6fa208189114eff0643127a9f7835a8ce636ae"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9996d8c1ed3bd40da78b8cd5866e71e9a414fe33","unresolved":true,"context_lines":[{"line_number":31,"context_line":"            environment.HostDescription("},{"line_number":32,"context_line":"                l2_agent_type\u003dconstants.AGENT_TYPE_OVS,"},{"line_number":33,"context_line":"                firewall_driver\u003d\u0027openvswitch\u0027,"},{"line_number":34,"context_line":"                l3_agent\u003dTrue,"},{"line_number":35,"context_line":"                dhcp_agent\u003dFalse) for _ in range(self.number_of_hosts)]"},{"line_number":36,"context_line":"        env_desc \u003d environment.EnvironmentDescription("},{"line_number":37,"context_line":"            mech_drivers\u003d\u0027openvswitch\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"3ab6c491_c11ceaca","line":34,"updated":"2021-05-19 11:20:20.000000000","message":"Why we need that l3_agent to be run?","commit_id":"5cebda8d95f822ae00c09e3fc389fedc77315379"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0c3473b7f3e713ffef2e213927f0f30976815cba","unresolved":true,"context_lines":[{"line_number":31,"context_line":"            environment.HostDescription("},{"line_number":32,"context_line":"                l2_agent_type\u003dconstants.AGENT_TYPE_OVS,"},{"line_number":33,"context_line":"                firewall_driver\u003d\u0027openvswitch\u0027,"},{"line_number":34,"context_line":"                l3_agent\u003dTrue,"},{"line_number":35,"context_line":"                dhcp_agent\u003dFalse) for _ in range(self.number_of_hosts)]"},{"line_number":36,"context_line":"        env_desc \u003d environment.EnvironmentDescription("},{"line_number":37,"context_line":"            mech_drivers\u003d\u0027openvswitch\u0027,"}],"source_content_type":"text/x-python","patch_set":19,"id":"8d1d14a2_91d0804b","line":34,"in_reply_to":"3ab6c491_c11ceaca","updated":"2021-05-20 01:40:38.000000000","message":"I througth you have read the reply of patch set 6:\nhttps://review.opendev.org/c/openstack/neutron/+/776568/6/neutron/tests/fullstack/test_ovs_dhcp_extension.py\n\nVM needs to receive the RA notification from radvd which is handled by router and L3 agent.","commit_id":"5cebda8d95f822ae00c09e3fc389fedc77315379"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"9996d8c1ed3bd40da78b8cd5866e71e9a414fe33","unresolved":true,"context_lines":[{"line_number":157,"context_line":"                neutron_port\u003dport2,"},{"line_number":158,"context_line":"                use_dhcp\u003dTrue,"},{"line_number":159,"context_line":"                use_dhcp6\u003dTrue))"},{"line_number":160,"context_line":"        return machine.FakeFullstackMachinesList([vm1, vm2])"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def test_ovs_dhcp_agent_extension_ping_vms(self):"},{"line_number":163,"context_line":"        vms \u003d self._prepare_vms()"}],"source_content_type":"text/x-python","patch_set":19,"id":"e527ac8e_c261e2ac","line":160,"updated":"2021-05-19 11:20:20.000000000","message":"I\u0027m not sure if You need all of that in that test. IMO You could only:\n\n1. Spawn VM plugged to the private network,\n2. Check if IP address(es) are configured properly inside the vm\u0027s namespace\n\nSuch test would be much faster and less resource heavy. Please remember that in the fullstack tests You have access to the \"fake VM\" so You can check everything there.","commit_id":"5cebda8d95f822ae00c09e3fc389fedc77315379"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"91d7b230e478048aad2a5e18abfd89f06f87b45e","unresolved":true,"context_lines":[{"line_number":157,"context_line":"                neutron_port\u003dport2,"},{"line_number":158,"context_line":"                use_dhcp\u003dTrue,"},{"line_number":159,"context_line":"                use_dhcp6\u003dTrue))"},{"line_number":160,"context_line":"        return machine.FakeFullstackMachinesList([vm1, vm2])"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def test_ovs_dhcp_agent_extension_ping_vms(self):"},{"line_number":163,"context_line":"        vms \u003d self._prepare_vms()"}],"source_content_type":"text/x-python","patch_set":19,"id":"bc9db12d_58248546","line":160,"in_reply_to":"71d8dd4a_d830cdbb","updated":"2021-06-29 01:07:09.000000000","message":"The router\u0027s \"radvd\" is used for notifying DHCPv6 client the RA flags of \"Autonomous flag\", \"Managed flag\" and  \"Other flag\". Otherwise, the DHCPv6 request will no work in right settings. Actually, we have no test coverage for router \"radvd\" before, we did not verify if it really works for Neutron. If one day, radvd is going to upgrade with something bad to Neutron, we have no way to know that until the users meet it in production deployment. So, here can be a win-win case, we test DHCP extension with radvd\u0027s real functionalities.","commit_id":"5cebda8d95f822ae00c09e3fc389fedc77315379"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f1f0782813d5e32614c613dff0b6048e43df4062","unresolved":true,"context_lines":[{"line_number":157,"context_line":"                neutron_port\u003dport2,"},{"line_number":158,"context_line":"                use_dhcp\u003dTrue,"},{"line_number":159,"context_line":"                use_dhcp6\u003dTrue))"},{"line_number":160,"context_line":"        return machine.FakeFullstackMachinesList([vm1, vm2])"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def test_ovs_dhcp_agent_extension_ping_vms(self):"},{"line_number":163,"context_line":"        vms \u003d self._prepare_vms()"}],"source_content_type":"text/x-python","patch_set":19,"id":"71d8dd4a_d830cdbb","line":160,"in_reply_to":"d20b0aca_9226dafd","updated":"2021-06-28 19:57:32.000000000","message":"I still think that we should make this test as \"light\" as possible, so L3 agent isn\u0027t necessary.","commit_id":"5cebda8d95f822ae00c09e3fc389fedc77315379"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0c3473b7f3e713ffef2e213927f0f30976815cba","unresolved":true,"context_lines":[{"line_number":157,"context_line":"                neutron_port\u003dport2,"},{"line_number":158,"context_line":"                use_dhcp\u003dTrue,"},{"line_number":159,"context_line":"                use_dhcp6\u003dTrue))"},{"line_number":160,"context_line":"        return machine.FakeFullstackMachinesList([vm1, vm2])"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def test_ovs_dhcp_agent_extension_ping_vms(self):"},{"line_number":163,"context_line":"        vms \u003d self._prepare_vms()"}],"source_content_type":"text/x-python","patch_set":19,"id":"fce8aa5b_8a41dc1c","line":160,"in_reply_to":"e527ac8e_c261e2ac","updated":"2021-05-20 01:40:38.000000000","message":"All these resources is not real VM, it is just namespace. I don\u0027t think it is heavy. The test case is ping from VM1 to VM2, and ping from VM2 to VM1. Ping inside the namespace where the device is resident looks a bit insufficient. And we already have similar cases here:\nhttps://github.com/openstack/neutron/blob/master/neutron/tests/fullstack/test_logging.py","commit_id":"5cebda8d95f822ae00c09e3fc389fedc77315379"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"56f6f3a909d15f004862c3a8609bd1c7bb0895f4","unresolved":true,"context_lines":[{"line_number":157,"context_line":"                neutron_port\u003dport2,"},{"line_number":158,"context_line":"                use_dhcp\u003dTrue,"},{"line_number":159,"context_line":"                use_dhcp6\u003dTrue))"},{"line_number":160,"context_line":"        return machine.FakeFullstackMachinesList([vm1, vm2])"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def test_ovs_dhcp_agent_extension_ping_vms(self):"},{"line_number":163,"context_line":"        vms \u003d self._prepare_vms()"}],"source_content_type":"text/x-python","patch_set":19,"id":"d20b0aca_9226dafd","line":160,"in_reply_to":"fce8aa5b_8a41dc1c","updated":"2021-06-24 14:33:32.000000000","message":"Namespace isn\u0027t heave but You need to spawn L3 agent, create router, etc. And all of that uses resources. So IMO if we can do it in the lighter way, we should do that.","commit_id":"5cebda8d95f822ae00c09e3fc389fedc77315379"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0eb3f22ecfe49cc3a0a607c4b2db3d6ea20c23d8","unresolved":true,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        self.network \u003d self.safe_client.create_network("},{"line_number":58,"context_line":"            self.tenant_id, \u0027network-test\u0027)"},{"line_number":59,"context_line":"        subnet_routes_v4 \u003d ["},{"line_number":60,"context_line":"            {\"destination\": \"1.1.1.0/24\", \"nexthop\": \"10.0.0.100\"},"},{"line_number":61,"context_line":"            {\"destination\": \"2.2.2.2/32\", \"nexthop\": \"10.0.0.101\"}]"},{"line_number":62,"context_line":"        self.subnet_v4 \u003d self.safe_client.create_subnet("}],"source_content_type":"text/x-python","patch_set":27,"id":"98ef480a_49809f69","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":24},"updated":"2021-06-18 11:20:08.000000000","message":"just a question: do we have a way, in fullstack, to check the routes have been injected correctly?","commit_id":"b8efc120d28c2083b3305c45bdb93374e1caca01"}]}
