)]}'
{"neutron/agent/firewall.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"fe7a7f8a65f4cba41eb568471eded959af6edcfe","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        \"\"\"Stop filtering port.\"\"\""},{"line_number":117,"context_line":"        raise NotImplementedError()"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def update_ipset_members(self, sec_group_ids):"},{"line_number":120,"context_line":"        \"\"\"Update ipset members for security groups.\"\"\""},{"line_number":121,"context_line":"        pass"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_a0a644ab","line":119,"range":{"start_line":119,"start_character":0,"end_line":119,"end_character":50},"updated":"2016-07-07 13:20:14.000000000","message":"Why is it part of firewall API? It sounds more like an implementation detail that should be encapsulated by the driver. e.g. why isn\u0027t it called from update_security_group_members() ?","commit_id":"af0ec646529dfd5b81557bf17492e8d971978251"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"b42209fa31ebe1da0a1916a5e4ef1dd7f23ab397","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        \"\"\"Stop filtering port.\"\"\""},{"line_number":117,"context_line":"        raise NotImplementedError()"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def update_ipset_members(self, sec_group_ids):"},{"line_number":120,"context_line":"        \"\"\"Update ipset members for security groups.\"\"\""},{"line_number":121,"context_line":"        pass"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_a2b336e8","line":119,"updated":"2016-07-07 13:38:32.000000000","message":"ipset is a hybrid firewall driver specific term, may be we should use something else.\n\nIs there also overlap with \"update_security_group_members\" can you explan what will be the difference between both?","commit_id":"af0ec646529dfd5b81557bf17492e8d971978251"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"73a531a0267d3751a4800bfb18dc097e95f85857","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        \"\"\"Stop filtering port.\"\"\""},{"line_number":117,"context_line":"        raise NotImplementedError()"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def update_ipset_members(self, sec_group_ids):"},{"line_number":120,"context_line":"        \"\"\"Update ipset members for security groups.\"\"\""},{"line_number":121,"context_line":"        pass"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_a00f6435","line":119,"range":{"start_line":119,"start_character":0,"end_line":119,"end_character":50},"in_reply_to":"1aa78d24_a0a644ab","updated":"2016-07-07 13:26:33.000000000","message":"Thanks Kuba. That makes sense(and I missed that).\n\nAs it is specific to iptables firewall driver, I can move it to update_security_group_members in iptables_firewall.py.","commit_id":"af0ec646529dfd5b81557bf17492e8d971978251"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"7998b1703cc7d9a9d4d06e98619409fbc05f63c6","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        \"\"\"Stop filtering port.\"\"\""},{"line_number":117,"context_line":"        raise NotImplementedError()"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def update_ipset_members(self, sec_group_ids):"},{"line_number":120,"context_line":"        \"\"\"Update ipset members for security groups.\"\"\""},{"line_number":121,"context_line":"        pass"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_5773b2e7","line":119,"in_reply_to":"1aa78d24_a2b336e8","updated":"2016-07-08 09:13:38.000000000","message":"agree with ajo that ipset is a hybrid firewall driver specific term, so it is not a good idea to add this method","commit_id":"af0ec646529dfd5b81557bf17492e8d971978251"}],"neutron/agent/linux/iptables_firewall.py":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"3cfa49e462fee65f607a0a1ce290b3053fd28a62","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        # make sure ipset members are updated for remote security groups"},{"line_number":505,"context_line":"        if self.enable_ipset:"},{"line_number":506,"context_line":"            remote_sg_ids \u003d self._get_remote_sg_ids(port, direction)"},{"line_number":507,"context_line":"            self._update_ipset_members(remote_sg_ids)"},{"line_number":508,"context_line":"        # split groups by ip version"},{"line_number":509,"context_line":"        # for ipv4, iptables command is used"},{"line_number":510,"context_line":"        # for ipv6, iptables6 command is used"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_6d54d220","side":"PARENT","line":507,"updated":"2016-07-19 14:28:09.000000000","message":"look at line 541:\n\nhttps://review.openstack.org/#/c/337064/5/neutron/agent/linux/iptables_firewall.py@541\n\nI\u0027m not sure if this would lead to the ipset not being created, and then not referenced anywhere in some conditions. I\u0027m trying to trace this great mesh :]","commit_id":"213167552e5c5a3c546cbd0e74e6a1a18be0dcda"}],"neutron/agent/securitygroups_rpc.py":[{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"e3928945ade50a707aef31312d3e0e1fd21181c9","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                          devices.keys())"},{"line_number":169,"context_line":"                self._update_security_group_info("},{"line_number":170,"context_line":"                    security_groups, security_group_member_ips)"},{"line_number":171,"context_line":"                if self.firewall.enable_ipset:"},{"line_number":172,"context_line":"                    self.firewall.update_ipset_members(security_groups.keys())"},{"line_number":173,"context_line":"            for device in devices.values():"},{"line_number":174,"context_line":"                self.firewall.prepare_port_filter(device)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_38dd2415","line":171,"updated":"2016-07-04 09:56:56.000000000","message":"you should consider other firewall driver, if you want to add a new method, we should add it base class: FirewallDriver in firewall.py","commit_id":"7551da71c95ae89a74cc27a1bbb3455abb89a36b"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"869101dcc846da3e8d8f77de7d6c6b036bfbfa22","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                          devices.keys())"},{"line_number":169,"context_line":"                self._update_security_group_info("},{"line_number":170,"context_line":"                    security_groups, security_group_member_ips)"},{"line_number":171,"context_line":"                if self.firewall.enable_ipset:"},{"line_number":172,"context_line":"                    self.firewall.update_ipset_members(security_groups.keys())"},{"line_number":173,"context_line":"            for device in devices.values():"},{"line_number":174,"context_line":"                self.firewall.prepare_port_filter(device)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_eec47641","line":171,"in_reply_to":"1aa78d24_38dd2415","updated":"2016-07-04 10:38:22.000000000","message":"Thanks shihanzhang. I will do it.","commit_id":"7551da71c95ae89a74cc27a1bbb3455abb89a36b"}]}
