)]}'
{"neutron/agent/rpc.py":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"87125a21584a446e16847bd06ddb13bef2f13f13","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                          agent_id\u003dagent_id, host\u003dhost)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def update_device_list(self, context, devices_up, devices_down,"},{"line_number":164,"context_line":"                           agent_id, host, refresh_tunnels\u003dFalse):"},{"line_number":165,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.5\u0027)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        ret_devices_up \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_54494a2c","line":164,"range":{"start_line":164,"start_character":43,"end_line":164,"end_character":58},"updated":"2020-01-08 15:37:42.000000000","message":"I like that we changed the name to better reflect this field\u0027s use. However by this we changed the rpc message format, so we need to bump the rpc version, don\u0027t we?\n\nI see that you already handle the backwards compatibility on the server side. The rpc version bump would also enable a clearer detection of agent-server version mismatch if that happens.","commit_id":"fe70bfc52927cca53eee6c7034ea76f4d8ee7622"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"f781e6fa453dbb0600490ccfcd4780265c2f92b0","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                          agent_id\u003dagent_id, host\u003dhost)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def update_device_list(self, context, devices_up, devices_down,"},{"line_number":164,"context_line":"                           agent_id, host, refresh_tunnels\u003dFalse):"},{"line_number":165,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.5\u0027)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        ret_devices_up \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_c94a7559","line":164,"range":{"start_line":164,"start_character":43,"end_line":164,"end_character":58},"in_reply_to":"3fa7e38b_54494a2c","updated":"2020-01-09 11:41:05.000000000","message":"Good question -I\u0027m not sure - [1] suggests yes, but [2] which introduced agent_restarted did not. Master is on 1.7 but Rocky is 1.5 - will the patch be backportable if the version is bumped? \n\n[1] https://docs.openstack.org/neutron/train/contributor/internals/rpc_api.html\n[2] https://review.opendev.org/#/c/640797/19/neutron/agent/rpc.py","commit_id":"fe70bfc52927cca53eee6c7034ea76f4d8ee7622"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"26c89ac04ef1cf74b33b63cd941d3b677d16a8ce","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                          agent_id\u003dagent_id, host\u003dhost)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def update_device_list(self, context, devices_up, devices_down,"},{"line_number":164,"context_line":"                           agent_id, host, refresh_tunnels\u003dFalse):"},{"line_number":165,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.5\u0027)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        ret_devices_up \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_f44dc470","line":164,"range":{"start_line":164,"start_character":43,"end_line":164,"end_character":58},"in_reply_to":"3fa7e38b_c94a7559","updated":"2020-01-09 12:43:40.000000000","message":"we should bump rpc version IMO. And it will not be backportable with new rpc version but we can probably backport it without changing version and use old (wrong) name of flag in stable branches.","commit_id":"fe70bfc52927cca53eee6c7034ea76f4d8ee7622"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"afd34245158b276a36ab9354c465661fa0bc95e7","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                          agent_id\u003dagent_id, host\u003dhost)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    def update_device_list(self, context, devices_up, devices_down,"},{"line_number":164,"context_line":"                           agent_id, host, refresh_tunnels\u003dFalse):"},{"line_number":165,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.5\u0027)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        ret_devices_up \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_7ac45d41","line":164,"range":{"start_line":164,"start_character":43,"end_line":164,"end_character":58},"in_reply_to":"3fa7e38b_f44dc470","updated":"2020-01-09 15:02:21.000000000","message":"okay. I pushed another patch. Please check I did the versioning change correctly.","commit_id":"fe70bfc52927cca53eee6c7034ea76f4d8ee7622"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"505e5c06b615d7d3504a9fef00fe68ae4bec5e37","unresolved":false,"context_lines":[{"line_number":1114,"context_line":"                if (not tunnels_missing and"},{"line_number":1115,"context_line":"                        lvm.network_type in constants.TUNNEL_NETWORK_TYPES and"},{"line_number":1116,"context_line":"                        len(lvm.tun_ofports) \u003d\u003d 0):"},{"line_number":1117,"context_line":"                    tunnels_missing \u003d True"},{"line_number":1118,"context_line":"            else:"},{"line_number":1119,"context_line":"                LOG.debug(\"Setting status for %s to DOWN\", device)"},{"line_number":1120,"context_line":"                devices_down.append(device)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_550eebe4","line":1117,"updated":"2019-12-16 09:17:26.000000000","message":"Does it mean that we will send \"agent_restarted \u003d\u003d True\" every time when new tunnel network will be added?","commit_id":"3ec739821cff0738735247f55875f5166aec5fc3"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"392e36c0d86b19680a9c185b6bd14006a2fe005e","unresolved":false,"context_lines":[{"line_number":1114,"context_line":"                if (not tunnels_missing and"},{"line_number":1115,"context_line":"                        lvm.network_type in constants.TUNNEL_NETWORK_TYPES and"},{"line_number":1116,"context_line":"                        len(lvm.tun_ofports) \u003d\u003d 0):"},{"line_number":1117,"context_line":"                    tunnels_missing \u003d True"},{"line_number":1118,"context_line":"            else:"},{"line_number":1119,"context_line":"                LOG.debug(\"Setting status for %s to DOWN\", device)"},{"line_number":1120,"context_line":"                devices_down.append(device)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_f8517d64","line":1117,"in_reply_to":"3fa7e38b_550eebe4","updated":"2020-01-03 13:30:30.000000000","message":"\u003e Does it mean that we will send \"agent_restarted \u003d\u003d True\" every time\n \u003e when new tunnel network will be added?\n\nI changed this in PS2 so that only happens if it\u0027s in the first 100 iterations.","commit_id":"3ec739821cff0738735247f55875f5166aec5fc3"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"af0e37cbde8871c78508abc528ed46dcbac5820c","unresolved":false,"context_lines":[{"line_number":1114,"context_line":"                if (not tunnels_missing and"},{"line_number":1115,"context_line":"                        lvm.network_type in constants.TUNNEL_NETWORK_TYPES and"},{"line_number":1116,"context_line":"                        len(lvm.tun_ofports) \u003d\u003d 0):"},{"line_number":1117,"context_line":"                    tunnels_missing \u003d True"},{"line_number":1118,"context_line":"            else:"},{"line_number":1119,"context_line":"                LOG.debug(\"Setting status for %s to DOWN\", device)"},{"line_number":1120,"context_line":"                devices_down.append(device)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_7c92dda2","line":1117,"in_reply_to":"3fa7e38b_550eebe4","updated":"2019-12-17 11:42:03.000000000","message":"So this patch overloads agent_restarted to do more - not ideal for readability. Let me know if you are okay with this approach.","commit_id":"3ec739821cff0738735247f55875f5166aec5fc3"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"87c9d2835d74be98ed2878a1bdcfa998959ede6b","unresolved":false,"context_lines":[{"line_number":1114,"context_line":"                if (not tunnels_missing and"},{"line_number":1115,"context_line":"                        lvm.network_type in constants.TUNNEL_NETWORK_TYPES and"},{"line_number":1116,"context_line":"                        len(lvm.tun_ofports) \u003d\u003d 0):"},{"line_number":1117,"context_line":"                    tunnels_missing \u003d True"},{"line_number":1118,"context_line":"            else:"},{"line_number":1119,"context_line":"                LOG.debug(\"Setting status for %s to DOWN\", device)"},{"line_number":1120,"context_line":"                devices_down.append(device)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_55ffcb65","line":1117,"in_reply_to":"3fa7e38b_550eebe4","updated":"2019-12-16 09:32:20.000000000","message":"yes","commit_id":"3ec739821cff0738735247f55875f5166aec5fc3"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"505e5c06b615d7d3504a9fef00fe68ae4bec5e37","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"            # the initialization work. L2 pop needs this precise knowledge"},{"line_number":1124,"context_line":"            # to notify the agent to refresh the tunnel related flows."},{"line_number":1125,"context_line":"            # Otherwise, these flows will be cleaned as stale due to the"},{"line_number":1126,"context_line":"            # different cookie id."},{"line_number":1127,"context_line":"            agent_restarted \u003d (self.iter_num \u003d\u003d 0) or tunnels_missing"},{"line_number":1128,"context_line":"            devices_set \u003d self.plugin_rpc.update_device_list("},{"line_number":1129,"context_line":"                self.context, devices_up, devices_down, self.agent_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_d5f97bc5","line":1126,"updated":"2019-12-16 09:17:26.000000000","message":"this comment should be updated also","commit_id":"3ec739821cff0738735247f55875f5166aec5fc3"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"392e36c0d86b19680a9c185b6bd14006a2fe005e","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"            # the initialization work. L2 pop needs this precise knowledge"},{"line_number":1124,"context_line":"            # to notify the agent to refresh the tunnel related flows."},{"line_number":1125,"context_line":"            # Otherwise, these flows will be cleaned as stale due to the"},{"line_number":1126,"context_line":"            # different cookie id."},{"line_number":1127,"context_line":"            agent_restarted \u003d (self.iter_num \u003d\u003d 0) or tunnels_missing"},{"line_number":1128,"context_line":"            devices_set \u003d self.plugin_rpc.update_device_list("},{"line_number":1129,"context_line":"                self.context, devices_up, devices_down, self.agent_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_f8689d22","line":1126,"in_reply_to":"3fa7e38b_d5f97bc5","updated":"2020-01-03 13:30:30.000000000","message":"Done","commit_id":"3ec739821cff0738735247f55875f5166aec5fc3"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d0a6b0d81dac7c0a06f9de9fa29725757a5b23b9","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                devices_up.append(device)"},{"line_number":1134,"context_line":"                if (not tunnels_missing and"},{"line_number":1135,"context_line":"                        lvm.network_type in constants.TUNNEL_NETWORK_TYPES and"},{"line_number":1136,"context_line":"                        len(lvm.tun_ofports) \u003d\u003d 0):"},{"line_number":1137,"context_line":"                    tunnels_missing \u003d True"},{"line_number":1138,"context_line":"            else:"},{"line_number":1139,"context_line":"                LOG.debug(\"Setting status for %s to DOWN\", device)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_07c2f486","line":1136,"range":{"start_line":1136,"start_character":24,"end_line":1136,"end_character":49},"updated":"2020-01-04 00:12:46.000000000","message":"So here only consider the number 0, what if the tunnels do not match the real need?\n\nSince neutron-server knows how many tunnels should this host created, so during the agent init we can call neutron server one time to retrieve the number? How about that?","commit_id":"9270737b3beebef8ab30379424ebf7da0d5d5c99"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"8ae364071a2747777fa9a1f83dd6a1a811a587e4","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"                devices_up.append(device)"},{"line_number":1134,"context_line":"                if (not tunnels_missing and"},{"line_number":1135,"context_line":"                        lvm.network_type in constants.TUNNEL_NETWORK_TYPES and"},{"line_number":1136,"context_line":"                        len(lvm.tun_ofports) \u003d\u003d 0):"},{"line_number":1137,"context_line":"                    tunnels_missing \u003d True"},{"line_number":1138,"context_line":"            else:"},{"line_number":1139,"context_line":"                LOG.debug(\"Setting status for %s to DOWN\", device)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_53a8a789","line":1136,"range":{"start_line":1136,"start_character":24,"end_line":1136,"end_character":49},"in_reply_to":"3fa7e38b_07c2f486","updated":"2020-01-06 10:47:33.000000000","message":"\u003e So here only consider the number 0, what if the tunnels do not\n \u003e match the real need?\n\nThis is just a check to see if the neutron-server has not sent the flooding entries for this network. If this is \u003e0, then it has and we can assume the quantity is correct. Before https://opendev.org/openstack/neutron/commit/a5244d6d44d2b66de27dc77efa7830fa657260be the neutron-server used to always send the flooding entries if the agent was running for less than agent_boot_time (180sec default).","commit_id":"9270737b3beebef8ab30379424ebf7da0d5d5c99"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"68fe6f3eae432ad1c49585495c7512abc9c71ec1","unresolved":false,"context_lines":[{"line_number":1145,"context_line":"            # Otherwise, these flows will be cleaned as stale due to the"},{"line_number":1146,"context_line":"            # different cookie id. We also set agent_restarted if the agent has"},{"line_number":1147,"context_line":"            # not received the notification and has not been running for long."},{"line_number":1148,"context_line":"            agent_restarted \u003d (self.iter_num \u003d\u003d 0) or (tunnels_missing and"},{"line_number":1149,"context_line":"                                                       self.iter_num \u003c 100)"},{"line_number":1150,"context_line":"            devices_set \u003d self.plugin_rpc.update_device_list("},{"line_number":1151,"context_line":"                self.context, devices_up, devices_down, self.agent_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_dbdc9ee3","line":1148,"range":{"start_line":1148,"start_character":12,"end_line":1148,"end_character":27},"updated":"2020-01-07 13:03:09.000000000","message":"IMO if we want to use this flag in such way, we should rename it as \"agent_restarted\" isn\u0027t correct name for this anymore. Maybe something like \"refresh_tunnel_flows\" or something like that would be better?","commit_id":"9270737b3beebef8ab30379424ebf7da0d5d5c99"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"0ce9fb15878e8e09cd72167158683a637746172b","unresolved":false,"context_lines":[{"line_number":1145,"context_line":"            # Otherwise, these flows will be cleaned as stale due to the"},{"line_number":1146,"context_line":"            # different cookie id. We also set agent_restarted if the agent has"},{"line_number":1147,"context_line":"            # not received the notification and has not been running for long."},{"line_number":1148,"context_line":"            agent_restarted \u003d (self.iter_num \u003d\u003d 0) or (tunnels_missing and"},{"line_number":1149,"context_line":"                                                       self.iter_num \u003c 100)"},{"line_number":1150,"context_line":"            devices_set \u003d self.plugin_rpc.update_device_list("},{"line_number":1151,"context_line":"                self.context, devices_up, devices_down, self.agent_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_25b6ecdd","line":1148,"range":{"start_line":1148,"start_character":12,"end_line":1148,"end_character":27},"in_reply_to":"3fa7e38b_dbdc9ee3","updated":"2020-01-07 18:01:15.000000000","message":"Done","commit_id":"9270737b3beebef8ab30379424ebf7da0d5d5c99"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"d0a6b0d81dac7c0a06f9de9fa29725757a5b23b9","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"            # different cookie id. We also set agent_restarted if the agent has"},{"line_number":1147,"context_line":"            # not received the notification and has not been running for long."},{"line_number":1148,"context_line":"            agent_restarted \u003d (self.iter_num \u003d\u003d 0) or (tunnels_missing and"},{"line_number":1149,"context_line":"                                                       self.iter_num \u003c 100)"},{"line_number":1150,"context_line":"            devices_set \u003d self.plugin_rpc.update_device_list("},{"line_number":1151,"context_line":"                self.context, devices_up, devices_down, self.agent_id,"},{"line_number":1152,"context_line":"                self.conf.host, agent_restarted\u003dagent_restarted)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c7b7fc21","line":1149,"range":{"start_line":1149,"start_character":55,"end_line":1149,"end_character":74},"updated":"2020-01-04 00:12:46.000000000","message":"ditto\n\nIf tunnel quantity is not right, this may not help.","commit_id":"9270737b3beebef8ab30379424ebf7da0d5d5c99"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"8ae364071a2747777fa9a1f83dd6a1a811a587e4","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"            # different cookie id. We also set agent_restarted if the agent has"},{"line_number":1147,"context_line":"            # not received the notification and has not been running for long."},{"line_number":1148,"context_line":"            agent_restarted \u003d (self.iter_num \u003d\u003d 0) or (tunnels_missing and"},{"line_number":1149,"context_line":"                                                       self.iter_num \u003c 100)"},{"line_number":1150,"context_line":"            devices_set \u003d self.plugin_rpc.update_device_list("},{"line_number":1151,"context_line":"                self.context, devices_up, devices_down, self.agent_id,"},{"line_number":1152,"context_line":"                self.conf.host, agent_restarted\u003dagent_restarted)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f379932f","line":1149,"range":{"start_line":1149,"start_character":55,"end_line":1149,"end_character":74},"in_reply_to":"3fa7e38b_c7b7fc21","updated":"2020-01-06 10:47:33.000000000","message":"In the related bug, the problem is not about the tunnel quantity. It is about neutron-server not sending the flooding entries.","commit_id":"9270737b3beebef8ab30379424ebf7da0d5d5c99"}]}
