)]}'
{"neutron/agent/dhcp/agent.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ba27eebda14b9c225c19f5b85987923ba6a3693c","unresolved":true,"context_lines":[{"line_number":91,"context_line":"            # server and the DHCP agent should be updated."},{"line_number":92,"context_line":"            # This check could be removed in Y release."},{"line_number":93,"context_line":"            if (\u0027fixed_ips\u0027 not in self.resource or"},{"line_number":94,"context_line":"                    \u0027fixed_ips\u0027 not in other.resource):"},{"line_number":95,"context_line":"                return super().__lt__(other)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            self_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"7b9fdc3b_69fb1177","line":94,"updated":"2021-02-01 10:13:41.000000000","message":"nit: I would do this \"if\" in the opposite way:\n\n    if (\u0027fixed_ips\u0027 in self.resource and \u0027fixed_ips in other.resource):\n        do_this_ips_comparison\n\n    return super().__lt__(other)\n\nbecasuse that way You would have just one place where You call super().__lt__(other)","commit_id":"21641f7aa91b4abae641f923aba730af167cb081"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"574c829b3c3b99aa292740c01301bbea62a92f8e","unresolved":true,"context_lines":[{"line_number":91,"context_line":"            # server and the DHCP agent should be updated."},{"line_number":92,"context_line":"            # This check could be removed in Y release."},{"line_number":93,"context_line":"            if (\u0027fixed_ips\u0027 not in self.resource or"},{"line_number":94,"context_line":"                    \u0027fixed_ips\u0027 not in other.resource):"},{"line_number":95,"context_line":"                return super().__lt__(other)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            self_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"53aeb1a0_71068ae8","line":94,"in_reply_to":"7b9fdc3b_69fb1177","updated":"2021-02-01 11:30:17.000000000","message":"Agree, but this way when this comparison is removed (in Y), we\u0027ll need only to remove this section without fixing the indentation of L97-L102. That will keep better the git history in this file.\n\nI prefer to keep it in that way for this reason.","commit_id":"21641f7aa91b4abae641f923aba730af167cb081"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"adf23d27d9b9896829ef0bda425d69df32b3fc62","unresolved":true,"context_lines":[{"line_number":93,"context_line":"            if (\u0027fixed_ips\u0027 not in self.resource or"},{"line_number":94,"context_line":"                    \u0027fixed_ips\u0027 not in other.resource):"},{"line_number":95,"context_line":"                return super().__lt__(other)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            self_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"},{"line_number":98,"context_line":"                           for fixed_ip in self.resource[\u0027fixed_ips\u0027])"},{"line_number":99,"context_line":"            other_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"268f2a6e_13971a0e","line":96,"updated":"2021-02-01 10:18:53.000000000","message":"Can also quit quickly if ports network ids are different","commit_id":"21641f7aa91b4abae641f923aba730af167cb081"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"574c829b3c3b99aa292740c01301bbea62a92f8e","unresolved":true,"context_lines":[{"line_number":93,"context_line":"            if (\u0027fixed_ips\u0027 not in self.resource or"},{"line_number":94,"context_line":"                    \u0027fixed_ips\u0027 not in other.resource):"},{"line_number":95,"context_line":"                return super().__lt__(other)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            self_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"},{"line_number":98,"context_line":"                           for fixed_ip in self.resource[\u0027fixed_ips\u0027])"},{"line_number":99,"context_line":"            other_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"282a953a_30ac5014","line":96,"in_reply_to":"268f2a6e_13971a0e","updated":"2021-02-01 11:30:17.000000000","message":"Events are grouped per ResourceUpdate.id. All events ID is the network ID. Two ports belonging to different networks won\u0027t be compared.","commit_id":"21641f7aa91b4abae641f923aba730af167cb081"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"adf23d27d9b9896829ef0bda425d69df32b3fc62","unresolved":true,"context_lines":[{"line_number":94,"context_line":"                    \u0027fixed_ips\u0027 not in other.resource):"},{"line_number":95,"context_line":"                return super().__lt__(other)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            self_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"},{"line_number":98,"context_line":"                           for fixed_ip in self.resource[\u0027fixed_ips\u0027])"},{"line_number":99,"context_line":"            other_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"},{"line_number":100,"context_line":"                            for fixed_ip in other.resource[\u0027fixed_ips\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"36991f5a_731ccbf8","line":97,"range":{"start_line":97,"start_character":28,"end_line":97,"end_character":49},"updated":"2021-02-01 10:18:53.000000000","message":"no need for subnet_id if check net ids above","commit_id":"21641f7aa91b4abae641f923aba730af167cb081"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"574c829b3c3b99aa292740c01301bbea62a92f8e","unresolved":true,"context_lines":[{"line_number":94,"context_line":"                    \u0027fixed_ips\u0027 not in other.resource):"},{"line_number":95,"context_line":"                return super().__lt__(other)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            self_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"},{"line_number":98,"context_line":"                           for fixed_ip in self.resource[\u0027fixed_ips\u0027])"},{"line_number":99,"context_line":"            other_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"},{"line_number":100,"context_line":"                            for fixed_ip in other.resource[\u0027fixed_ips\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a473141_c37c6aa5","line":97,"range":{"start_line":97,"start_character":28,"end_line":97,"end_character":49},"in_reply_to":"36991f5a_731ccbf8","updated":"2021-02-01 11:30:17.000000000","message":"As commented, all events belong to a single network. But Neutron API don\u0027t allow IP CIDR overlapping, that means IP addresses of different networks can\u0027t collide. I\u0027ll remove the subnet_id because that\u0027s not needed.","commit_id":"21641f7aa91b4abae641f923aba730af167cb081"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ba27eebda14b9c225c19f5b85987923ba6a3693c","unresolved":true,"context_lines":[{"line_number":99,"context_line":"            other_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"},{"line_number":100,"context_line":"                            for fixed_ip in other.resource[\u0027fixed_ips\u0027])"},{"line_number":101,"context_line":"            if self_ips \u0026 other_ips:"},{"line_number":102,"context_line":"                return self.timestamp \u003c other.timestamp"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        return super().__lt__(other)"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ed18b4a9_06ec75c9","line":102,"updated":"2021-02-01 10:13:41.000000000","message":"so in case when there is any common IP address between those two resources we will ignore priority, and always process older event first. This makes sense for me.","commit_id":"21641f7aa91b4abae641f923aba730af167cb081"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"574c829b3c3b99aa292740c01301bbea62a92f8e","unresolved":true,"context_lines":[{"line_number":99,"context_line":"            other_ips \u003d set((fixed_ip[\u0027subnet_id\u0027], fixed_ip[\u0027ip_address\u0027])"},{"line_number":100,"context_line":"                            for fixed_ip in other.resource[\u0027fixed_ips\u0027])"},{"line_number":101,"context_line":"            if self_ips \u0026 other_ips:"},{"line_number":102,"context_line":"                return self.timestamp \u003c other.timestamp"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        return super().__lt__(other)"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"859d417a_0fe9cf53","line":102,"in_reply_to":"ed18b4a9_06ec75c9","updated":"2021-02-01 11:30:17.000000000","message":"Exactly, that\u0027s the goal here. That will prevent the situation described in the bug.","commit_id":"21641f7aa91b4abae641f923aba730af167cb081"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"adf23d27d9b9896829ef0bda425d69df32b3fc62","unresolved":true,"context_lines":[{"line_number":475,"context_line":""},{"line_number":476,"context_line":"    def network_create_end(self, context, payload):"},{"line_number":477,"context_line":"        \"\"\"Handle the network.create.end notification event.\"\"\""},{"line_number":478,"context_line":"        update \u003d DHCPResourceUpdate(payload[\u0027network\u0027][\u0027id\u0027],"},{"line_number":479,"context_line":"                                    payload.get(\u0027priority\u0027, DEFAULT_PRIORITY),"},{"line_number":480,"context_line":"                                    action\u003d\u0027_network_create\u0027,"},{"line_number":481,"context_line":"                                    resource\u003dpayload, obj_type\u003d\u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"2004b246_7b79745c","line":478,"range":{"start_line":478,"start_character":17,"end_line":478,"end_character":35},"updated":"2021-02-01 10:18:53.000000000","message":"Why need for networks?","commit_id":"21641f7aa91b4abae641f923aba730af167cb081"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"8f2424b1460823541ece2650c2be9a9f3b2c93b6","unresolved":true,"context_lines":[{"line_number":78,"context_line":"class DHCPResourceUpdate(queue.ResourceUpdate):"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def __init__(self, _id, priority, action\u003dNone, resource\u003dNone,"},{"line_number":81,"context_line":"                 timestamp\u003dNone, tries\u003d5, obj_type\u003dNone):"},{"line_number":82,"context_line":"        super().__init__(_id, priority, action\u003daction, resource\u003dresource,"},{"line_number":83,"context_line":"                         timestamp\u003dtimestamp, tries\u003dtries)"},{"line_number":84,"context_line":"        self.obj_type \u003d obj_type"}],"source_content_type":"text/x-python","patch_set":4,"id":"3edcf2db_f4006d72","line":81,"range":{"start_line":81,"start_character":42,"end_line":81,"end_character":55},"updated":"2021-02-02 05:29:50.000000000","message":"Isn\u0027t \u0027resource\u0027 sufficient?","commit_id":"f8904d0a1894f65e1076e1ec599b29bae361a61f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"bbdace0fe18f03310df58f3289a8478cf2ef371f","unresolved":true,"context_lines":[{"line_number":78,"context_line":"class DHCPResourceUpdate(queue.ResourceUpdate):"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def __init__(self, _id, priority, action\u003dNone, resource\u003dNone,"},{"line_number":81,"context_line":"                 timestamp\u003dNone, tries\u003d5, obj_type\u003dNone):"},{"line_number":82,"context_line":"        super().__init__(_id, priority, action\u003daction, resource\u003dresource,"},{"line_number":83,"context_line":"                         timestamp\u003dtimestamp, tries\u003dtries)"},{"line_number":84,"context_line":"        self.obj_type \u003d obj_type"}],"source_content_type":"text/x-python","patch_set":4,"id":"5d380237_b03fdd5d","line":81,"range":{"start_line":81,"start_character":42,"end_line":81,"end_character":55},"in_reply_to":"3edcf2db_f4006d72","updated":"2021-02-02 08:22:17.000000000","message":"The resource is a generic blob, that can be an incomplete dictionary describing the object parameters. Instead of changing something that is sent by the server, I prefer to add an explicit parameter to describe the object type. We cannot retrieve the object type from the resource parameter.","commit_id":"f8904d0a1894f65e1076e1ec599b29bae361a61f"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"8f2424b1460823541ece2650c2be9a9f3b2c93b6","unresolved":true,"context_lines":[{"line_number":475,"context_line":""},{"line_number":476,"context_line":"    def network_create_end(self, context, payload):"},{"line_number":477,"context_line":"        \"\"\"Handle the network.create.end notification event.\"\"\""},{"line_number":478,"context_line":"        update \u003d DHCPResourceUpdate(payload[\u0027network\u0027][\u0027id\u0027],"},{"line_number":479,"context_line":"                                    payload.get(\u0027priority\u0027, DEFAULT_PRIORITY),"},{"line_number":480,"context_line":"                                    action\u003d\u0027_network_create\u0027,"},{"line_number":481,"context_line":"                                    resource\u003dpayload, obj_type\u003d\u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"f2ee81c9_0b87b355","line":478,"range":{"start_line":478,"start_character":17,"end_line":478,"end_character":35},"updated":"2021-02-02 05:29:50.000000000","message":"Why do we need this change for nets and subnets?","commit_id":"f8904d0a1894f65e1076e1ec599b29bae361a61f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"bbdace0fe18f03310df58f3289a8478cf2ef371f","unresolved":true,"context_lines":[{"line_number":475,"context_line":""},{"line_number":476,"context_line":"    def network_create_end(self, context, payload):"},{"line_number":477,"context_line":"        \"\"\"Handle the network.create.end notification event.\"\"\""},{"line_number":478,"context_line":"        update \u003d DHCPResourceUpdate(payload[\u0027network\u0027][\u0027id\u0027],"},{"line_number":479,"context_line":"                                    payload.get(\u0027priority\u0027, DEFAULT_PRIORITY),"},{"line_number":480,"context_line":"                                    action\u003d\u0027_network_create\u0027,"},{"line_number":481,"context_line":"                                    resource\u003dpayload, obj_type\u003d\u0027network\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"f9195398_348215e6","line":478,"range":{"start_line":478,"start_character":17,"end_line":478,"end_character":35},"in_reply_to":"f2ee81c9_0b87b355","updated":"2021-02-02 08:22:17.000000000","message":"For consistency. The elements added to self._queue are stored in a single queue and compared all together. When inserting an element in ExclusiveResourceProcessor, the priority queue is the same for all elements belonging to the same network (resource ID). All element events (network, subnets and ports) will be prioritized in this queue using the above method class.","commit_id":"f8904d0a1894f65e1076e1ec599b29bae361a61f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6d87089d964fceb43a6e13966e0624d50c214a1e","unresolved":true,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class DHCPResourceUpdate(queue.ResourceUpdate):"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def __init__(self, _id, priority, action\u003dNone, resource\u003dNone,"},{"line_number":81,"context_line":"                 timestamp\u003dNone, tries\u003d5, obj_type\u003dNone):"},{"line_number":82,"context_line":"        super().__init__(_id, priority, action\u003daction, resource\u003dresource,"},{"line_number":83,"context_line":"                         timestamp\u003dtimestamp, tries\u003dtries)"}],"source_content_type":"text/x-python","patch_set":7,"id":"58e7d35c_69c42114","line":80,"range":{"start_line":80,"start_character":23,"end_line":80,"end_character":26},"updated":"2021-02-05 19:54:46.000000000","message":"odd you had to use the underscore as the parent class doesn\u0027t","commit_id":"f3c229b9cc5c293b4d512f269d5ddb3708fd303a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6d87089d964fceb43a6e13966e0624d50c214a1e","unresolved":true,"context_lines":[{"line_number":78,"context_line":"class DHCPResourceUpdate(queue.ResourceUpdate):"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def __init__(self, _id, priority, action\u003dNone, resource\u003dNone,"},{"line_number":81,"context_line":"                 timestamp\u003dNone, tries\u003d5, obj_type\u003dNone):"},{"line_number":82,"context_line":"        super().__init__(_id, priority, action\u003daction, resource\u003dresource,"},{"line_number":83,"context_line":"                         timestamp\u003dtimestamp, tries\u003dtries)"},{"line_number":84,"context_line":"        self.obj_type \u003d obj_type"}],"source_content_type":"text/x-python","patch_set":7,"id":"0dbc483a_69a4c197","line":81,"range":{"start_line":81,"start_character":17,"end_line":81,"end_character":40},"updated":"2021-02-05 19:54:46.000000000","message":"nit: since noone here specifies these, could have omitted and not passed them to super()","commit_id":"f3c229b9cc5c293b4d512f269d5ddb3708fd303a"}],"neutron/api/rpc/agentnotifiers/dhcp_rpc_agent_api.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"2369ac23e4213a6b2877533f27491f3236112aa8","unresolved":true,"context_lines":[{"line_number":136,"context_line":"                    context, \u0027network_create_end\u0027,"},{"line_number":137,"context_line":"                    {\u0027network\u0027: {\u0027id\u0027: network[\u0027id\u0027]},"},{"line_number":138,"context_line":"                     \u0027priority\u0027: PRIORITY_NETWORK_CREATE,"},{"line_number":139,"context_line":"                     \u0027obj_type\u0027: \u0027network\u0027}, agent[\u0027host\u0027])"},{"line_number":140,"context_line":"        elif not existing_agents:"},{"line_number":141,"context_line":"            LOG.warning(\u0027Unable to schedule network %s: no agents \u0027"},{"line_number":142,"context_line":"                        \u0027available; will retry on subsequent port \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"b2f3d600_3135e3fe","line":139,"range":{"start_line":139,"start_character":21,"end_line":139,"end_character":42},"updated":"2021-02-03 05:16:38.000000000","message":"Seems obj_type from payload is not used anywhere.","commit_id":"f8904d0a1894f65e1076e1ec599b29bae361a61f"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"d70d4bf13586205061f301906637926566ea9f1a","unresolved":true,"context_lines":[{"line_number":136,"context_line":"                    context, \u0027network_create_end\u0027,"},{"line_number":137,"context_line":"                    {\u0027network\u0027: {\u0027id\u0027: network[\u0027id\u0027]},"},{"line_number":138,"context_line":"                     \u0027priority\u0027: PRIORITY_NETWORK_CREATE,"},{"line_number":139,"context_line":"                     \u0027obj_type\u0027: \u0027network\u0027}, agent[\u0027host\u0027])"},{"line_number":140,"context_line":"        elif not existing_agents:"},{"line_number":141,"context_line":"            LOG.warning(\u0027Unable to schedule network %s: no agents \u0027"},{"line_number":142,"context_line":"                        \u0027available; will retry on subsequent port \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"6c26ed91_0cc67a36","line":139,"range":{"start_line":139,"start_character":21,"end_line":139,"end_character":42},"in_reply_to":"16a1b01b_74b211cd","updated":"2021-02-03 11:06:19.000000000","message":"Sorry, I mean it\u0027s added here, but can\u0027t see where it\u0027s used, who reads it from payload?","commit_id":"f8904d0a1894f65e1076e1ec599b29bae361a61f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d49e1370cb97807d47c351dc4c1d62094df49607","unresolved":true,"context_lines":[{"line_number":136,"context_line":"                    context, \u0027network_create_end\u0027,"},{"line_number":137,"context_line":"                    {\u0027network\u0027: {\u0027id\u0027: network[\u0027id\u0027]},"},{"line_number":138,"context_line":"                     \u0027priority\u0027: PRIORITY_NETWORK_CREATE,"},{"line_number":139,"context_line":"                     \u0027obj_type\u0027: \u0027network\u0027}, agent[\u0027host\u0027])"},{"line_number":140,"context_line":"        elif not existing_agents:"},{"line_number":141,"context_line":"            LOG.warning(\u0027Unable to schedule network %s: no agents \u0027"},{"line_number":142,"context_line":"                        \u0027available; will retry on subsequent port \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"aa5074d8_3e9ca676","line":139,"range":{"start_line":139,"start_character":21,"end_line":139,"end_character":42},"in_reply_to":"6c26ed91_0cc67a36","updated":"2021-02-03 13:33:45.000000000","message":"Oh my... this is a reminiscence of a previous approach to implement this patch.\n\nReviewing the code again, I confirm nothing is using the parameter: the \"obj_type\" is introduced in the agent methods when creating the events.\n\nThanks a lot! That\u0027s a good catch.","commit_id":"f8904d0a1894f65e1076e1ec599b29bae361a61f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"087ef54bfdb67f06369f96804e6043c1677f9249","unresolved":true,"context_lines":[{"line_number":136,"context_line":"                    context, \u0027network_create_end\u0027,"},{"line_number":137,"context_line":"                    {\u0027network\u0027: {\u0027id\u0027: network[\u0027id\u0027]},"},{"line_number":138,"context_line":"                     \u0027priority\u0027: PRIORITY_NETWORK_CREATE,"},{"line_number":139,"context_line":"                     \u0027obj_type\u0027: \u0027network\u0027}, agent[\u0027host\u0027])"},{"line_number":140,"context_line":"        elif not existing_agents:"},{"line_number":141,"context_line":"            LOG.warning(\u0027Unable to schedule network %s: no agents \u0027"},{"line_number":142,"context_line":"                        \u0027available; will retry on subsequent port \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"16a1b01b_74b211cd","line":139,"range":{"start_line":139,"start_character":21,"end_line":139,"end_character":42},"in_reply_to":"b2f3d600_3135e3fe","updated":"2021-02-03 09:05:32.000000000","message":"It is for port, network and subnet events. Where is \"obj_type\" not added to the payload?","commit_id":"f8904d0a1894f65e1076e1ec599b29bae361a61f"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"2369ac23e4213a6b2877533f27491f3236112aa8","unresolved":true,"context_lines":[{"line_number":183,"context_line":"    def _notify_agents(self, context, method, payload, network_id, obj_type):"},{"line_number":184,"context_line":"        \"\"\"Notify all the agents that are hosting the network.\"\"\""},{"line_number":185,"context_line":"        payload[\u0027priority\u0027] \u003d METHOD_PRIORITY_MAP.get(method)"},{"line_number":186,"context_line":"        payload[\u0027obj_type\u0027] \u003d obj_type"},{"line_number":187,"context_line":"        # fanout is required as we do not know who is \"listening\""},{"line_number":188,"context_line":"        no_agents \u003d not extensions.is_extension_supported("},{"line_number":189,"context_line":"            self.plugin, constants.DHCP_AGENT_SCHEDULER_EXT_ALIAS)"}],"source_content_type":"text/x-python","patch_set":4,"id":"82b0a50d_7bcbf4d4","line":186,"range":{"start_line":186,"start_character":8,"end_line":186,"end_character":38},"updated":"2021-02-03 05:16:38.000000000","message":"ditto","commit_id":"f8904d0a1894f65e1076e1ec599b29bae361a61f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"087ef54bfdb67f06369f96804e6043c1677f9249","unresolved":true,"context_lines":[{"line_number":183,"context_line":"    def _notify_agents(self, context, method, payload, network_id, obj_type):"},{"line_number":184,"context_line":"        \"\"\"Notify all the agents that are hosting the network.\"\"\""},{"line_number":185,"context_line":"        payload[\u0027priority\u0027] \u003d METHOD_PRIORITY_MAP.get(method)"},{"line_number":186,"context_line":"        payload[\u0027obj_type\u0027] \u003d obj_type"},{"line_number":187,"context_line":"        # fanout is required as we do not know who is \"listening\""},{"line_number":188,"context_line":"        no_agents \u003d not extensions.is_extension_supported("},{"line_number":189,"context_line":"            self.plugin, constants.DHCP_AGENT_SCHEDULER_EXT_ALIAS)"}],"source_content_type":"text/x-python","patch_set":4,"id":"b0685c27_1400f76d","line":186,"range":{"start_line":186,"start_character":8,"end_line":186,"end_character":38},"in_reply_to":"82b0a50d_7bcbf4d4","updated":"2021-02-03 09:05:32.000000000","message":"??","commit_id":"f8904d0a1894f65e1076e1ec599b29bae361a61f"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4e54b5fa017e89d7e692f3312a0d8015d2eb87e5","unresolved":true,"context_lines":[{"line_number":269,"context_line":"                                        **kwargs):"},{"line_number":270,"context_line":"        self._notify_agents(kwargs[\u0027context\u0027], \u0027port_delete_end\u0027,"},{"line_number":271,"context_line":"                            {\u0027port_id\u0027: kwargs[\u0027port\u0027][\u0027id\u0027],"},{"line_number":272,"context_line":"                             \u0027fixed_ips\u0027: kwargs[\u0027port\u0027][\u0027fixed_ips\u0027]},"},{"line_number":273,"context_line":"                            kwargs[\u0027port\u0027][\u0027network_id\u0027])"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def _native_event_send_dhcp_notification(self, resource, event, trigger,"}],"source_content_type":"text/x-python","patch_set":5,"id":"96ae94bc_1d897304","line":272,"updated":"2021-02-04 08:14:54.000000000","message":"this changes payload but agent\u0027s part is done in the way that it should simply fallback to the old way of work if new field will not be available. So IMO we should be good with that.","commit_id":"a473d52c32018a83f67f26b46515a26f9210527f"}],"neutron/tests/unit/api/rpc/agentnotifiers/test_dhcp_rpc_agent_api.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4e54b5fa017e89d7e692f3312a0d8015d2eb87e5","unresolved":true,"context_lines":[{"line_number":152,"context_line":"                for method in methods:"},{"line_number":153,"context_line":"                    f.return_value \u003d [mock.MagicMock()]"},{"line_number":154,"context_line":"                    g.return_value \u003d [mock.MagicMock()]"},{"line_number":155,"context_line":"                    obj_type \u003d method.split(\u0027_\u0027)[0]"},{"line_number":156,"context_line":"                    payload \u003d {}"},{"line_number":157,"context_line":"                    if method.startswith(\u0027port\u0027):"},{"line_number":158,"context_line":"                        payload[\u0027port\u0027] \u003d \\"}],"source_content_type":"text/x-python","patch_set":5,"id":"c3d48d86_8bad0103","line":155,"in_reply_to":"1b0abfa8_dc625ff3","updated":"2021-02-04 08:14:54.000000000","message":"\u003e pep8: F841 local variable \u0027obj_type\u0027 is assigned to but never used\n\nPlease fix.","commit_id":"a473d52c32018a83f67f26b46515a26f9210527f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9b06683816ff3760d645d4a795bf8cb80529667e","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                for method in methods:"},{"line_number":153,"context_line":"                    f.return_value \u003d [mock.MagicMock()]"},{"line_number":154,"context_line":"                    g.return_value \u003d [mock.MagicMock()]"},{"line_number":155,"context_line":"                    obj_type \u003d method.split(\u0027_\u0027)[0]"},{"line_number":156,"context_line":"                    payload \u003d {}"},{"line_number":157,"context_line":"                    if method.startswith(\u0027port\u0027):"},{"line_number":158,"context_line":"                        payload[\u0027port\u0027] \u003d \\"}],"source_content_type":"text/x-python","patch_set":5,"id":"56ee7700_c43f21b9","line":155,"in_reply_to":"c3d48d86_8bad0103","updated":"2021-02-04 12:00:23.000000000","message":"Done","commit_id":"a473d52c32018a83f67f26b46515a26f9210527f"}]}
