)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"ce081c219237db75faa33aa60005294fe909435b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2.  if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"    can create a port with \u0027reserved_dhcp_port\u0027 device_id."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I40b85033d075562c43ce4d0e68296211b3241197"},{"line_number":16,"context_line":"Closes-bug: #1469615"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_1bc0badf","line":14,"updated":"2015-06-30 19:19:59.000000000","message":"Can\u0027t they just reschedule the network to the dhcp agent? If not, this fix is not adequate.","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"edf9093441650fcd152e8b73dcf9005e4587c123","unresolved":false,"context_lines":[{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2.  if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"    can create a port with \u0027reserved_dhcp_port\u0027 device_id."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I40b85033d075562c43ce4d0e68296211b3241197"},{"line_number":16,"context_line":"Closes-bug: #1469615"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_4ec8e655","line":14,"updated":"2015-06-30 06:49:38.000000000","message":"I don\u0027t think this method is proper so that users disable dhcp service. If you want this, you should provide a Doc which the procedure is written.","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"d02c9c595b50cb7e97e67d248f352963f625d97e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2.  if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"    can create a port with \u0027reserved_dhcp_port\u0027 device_id."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I40b85033d075562c43ce4d0e68296211b3241197"},{"line_number":16,"context_line":"Closes-bug: #1469615"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_296f6793","line":14,"in_reply_to":"ba3cc151_1bc0badf","updated":"2015-07-01 04:08:01.000000000","message":"when we delete dhcp port, and then call \u0027disable_dhcp_helper\u0027 in dhcp agent, this agent still hosting the network, so it will not reschedule the network to the ohter dhcp agent.","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"28ca536cbdafd0424b8f1d36f0df6b1ad1f04e41","unresolved":false,"context_lines":[{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2.  if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"    can create a port with \u0027reserved_dhcp_port\u0027 device_id."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I40b85033d075562c43ce4d0e68296211b3241197"},{"line_number":16,"context_line":"Closes-bug: #1469615"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_9f05b6c3","line":14,"in_reply_to":"ba3cc151_4ec8e655","updated":"2015-06-30 08:06:42.000000000","message":"hi Hirofumi Ichihara, thx for your review, now neutron API support to delete dhcp port, if user delete this port by mistake, the dhcp service will be unavailable, it should provide a method to recover dhcp service","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"},{"author":{"_account_id":10257,"name":"Sridhar Gaddam","email":"sgaddam@redhat.com","username":"sridhargaddam"},"change_message_id":"c2771d32ae8e64928cbd32f5f98b23550d1a05d2","unresolved":false,"context_lines":[{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2.  if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"    can create a port with \u0027reserved_dhcp_port\u0027 device_id."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I40b85033d075562c43ce4d0e68296211b3241197"},{"line_number":16,"context_line":"Closes-bug: #1469615"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_a1b17c91","line":14,"in_reply_to":"ba3cc151_98786dc6","updated":"2015-06-30 10:21:11.000000000","message":"It would be useful to have some associated documentation for this use-case. Can you please include \"DocImpact\".\n\nRef: https://wiki.openstack.org/wiki/Documentation/HowTo#DocImpact","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"c8b1bf25ef3788bdbd41ef77f7399205628be3da","unresolved":false,"context_lines":[{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2.  if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"    can create a port with \u0027reserved_dhcp_port\u0027 device_id."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I40b85033d075562c43ce4d0e68296211b3241197"},{"line_number":16,"context_line":"Closes-bug: #1469615"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_98786dc6","line":14,"in_reply_to":"ba3cc151_9f05b6c3","updated":"2015-06-30 09:08:14.000000000","message":"I agree with a plan that you provide recover solution for the case :)","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"7f4af82ada966830eb1a195341d47608db5e3670","unresolved":false,"context_lines":[{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2.  if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"    can create a port with \u0027reserved_dhcp_port\u0027 device_id."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I40b85033d075562c43ce4d0e68296211b3241197"},{"line_number":16,"context_line":"Closes-bug: #1469615"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_6d6365dd","line":14,"in_reply_to":"ba3cc151_a1b17c91","updated":"2015-06-30 11:57:17.000000000","message":"hi Sridhar Gaddam, thx for your review, agree to add DocImpact","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"748d31eb7c21b5cc9bd1f7d75a0e3fcdf1899698","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Disable DHCP service if dhcp port is deleted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this patch provides two changes for DHCP service:"},{"line_number":10,"context_line":"1. if user deletes the dhcp port in a network, it will disable"},{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2. if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"   can create a port with \u0027reserved_dhcp_port\u0027 device_id."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba3cc151_1fb99c79","line":10,"updated":"2015-07-07 02:00:57.000000000","message":"I don\u0027t think we should change this behavior. It\u0027s possible for there to be multiple dhcp-ports on the network. I think it would be better if we prevented them from deleting the dhcp-port(s) instead and required them to disable dhcp via the subnet directly.","commit_id":"403b106731ab7cffbd40759affa5f9ccd3b974d8"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"f23e5e253f5eb627fbd6e4c2740a908664c7ae5b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Disable DHCP service if dhcp port is deleted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this patch provides two changes for DHCP service:"},{"line_number":10,"context_line":"1. if user deletes the dhcp port in a network, it will disable"},{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2. if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"   can create a port with \u0027reserved_dhcp_port\u0027 device_id."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a41bdd9_386e14ca","line":10,"in_reply_to":"9a41bdd9_94d872f1","updated":"2015-07-13 04:51:28.000000000","message":"hi kevin, now if we delete dhcp port, ovs-agent just set the VIF tag to 4095, and dhcp agent can\u0027t recover","commit_id":"403b106731ab7cffbd40759affa5f9ccd3b974d8"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"92af6ac38830c9e5645659f4b299764a8f6c35e0","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Disable DHCP service if dhcp port is deleted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this patch provides two changes for DHCP service:"},{"line_number":10,"context_line":"1. if user deletes the dhcp port in a network, it will disable"},{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2. if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"   can create a port with \u0027reserved_dhcp_port\u0027 device_id."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba3cc151_0282a300","line":10,"in_reply_to":"ba3cc151_1fb99c79","updated":"2015-07-07 02:22:15.000000000","message":"I agree with Aaron.","commit_id":"403b106731ab7cffbd40759affa5f9ccd3b974d8"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"ccbae074528c04f66c1422f1f412508694a21906","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Disable DHCP service if dhcp port is deleted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this patch provides two changes for DHCP service:"},{"line_number":10,"context_line":"1. if user deletes the dhcp port in a network, it will disable"},{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2. if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"   can create a port with \u0027reserved_dhcp_port\u0027 device_id."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba3cc151_a2d657ef","line":10,"in_reply_to":"ba3cc151_1fb99c79","updated":"2015-07-07 02:27:35.000000000","message":"hi Aaron Rosen, for DHCP HA, a network may has multiple dhcp-ports, but as this bug description, if user delete one DHCP port by mistake, the  DHCP service on that network node will be unavailable, and it will not recover, so I think it is better to provider a method to recover it.\ndo you think it is better to prevent them from deleting the dhcp-port(s)?","commit_id":"403b106731ab7cffbd40759affa5f9ccd3b974d8"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"20c38ce977c9444dd4fc029bd6085d1c8c1ce6cc","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Disable DHCP service if dhcp port is deleted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this patch provides two changes for DHCP service:"},{"line_number":10,"context_line":"1. if user deletes the dhcp port in a network, it will disable"},{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2. if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"   can create a port with \u0027reserved_dhcp_port\u0027 device_id."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba3cc151_18a2124c","line":10,"in_reply_to":"ba3cc151_a2d657ef","updated":"2015-07-07 04:08:05.000000000","message":"I think carefully, I agree that it is better to prevented them from deleting the dhcp-port(s).","commit_id":"403b106731ab7cffbd40759affa5f9ccd3b974d8"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"7f2373a922fdcb02cda7d22546b4fd4964151022","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Disable DHCP service if dhcp port is deleted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"this patch provides two changes for DHCP service:"},{"line_number":10,"context_line":"1. if user deletes the dhcp port in a network, it will disable"},{"line_number":11,"context_line":"   DHCP service in dhcp-agent for this network."},{"line_number":12,"context_line":"2. if user want recover the DHCP service for this network, it"},{"line_number":13,"context_line":"   can create a port with \u0027reserved_dhcp_port\u0027 device_id."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9a41bdd9_94d872f1","line":10,"in_reply_to":"ba3cc151_a2d657ef","updated":"2015-07-11 07:00:46.000000000","message":"We should not prevent it at the API. Just have the dhcp agent attempt to recover by creating a new port like it previously did.","commit_id":"403b106731ab7cffbd40759affa5f9ccd3b974d8"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"c6966d385922d9c309bff1dda458c908570efb2c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"if user delete the dhcp port, dhcp-agent should unplug"},{"line_number":10,"context_line":"the VIF for this dhcp port, then the driver do"},{"line_number":11,"context_line":"\u0027reload_allocations\u0027 will raise a exception, dhcp-agent"},{"line_number":12,"context_line":"resync for this network and re-create dhcp port."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I40b85033d075562c43ce4d0e68296211b3241197"},{"line_number":15,"context_line":"Closes-bug: #1469615"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3a50d1a3_d05b6c2d","line":12,"updated":"2015-07-19 03:06:25.000000000","message":"Don\u0027t quite understand the commit-msg, which should describe what/how\nthe patch is doing.","commit_id":"9d800021293d8564ced1c071b6415d9a97b3ef49"}],"neutron/agent/dhcp/agent.py":[{"author":{"_account_id":10257,"name":"Sridhar Gaddam","email":"sgaddam@redhat.com","username":"sridhargaddam"},"change_message_id":"c2771d32ae8e64928cbd32f5f98b23550d1a05d2","unresolved":false,"context_lines":[{"line_number":334,"context_line":"                    driver_action \u003d \u0027restart\u0027"},{"line_number":335,"context_line":"            self.cache.put_port(updated_port)"},{"line_number":336,"context_line":"            self.call_driver(driver_action, network)"},{"line_number":337,"context_line":"        elif updated_port[\u0027device_id\u0027] \u003d\u003d \u0027reserved_dhcp_port\u0027:"},{"line_number":338,"context_line":"            self.enable_dhcp_helper(updated_port[\u0027network_id\u0027])"},{"line_number":339,"context_line":"            self.refresh_dhcp_helper(updated_port[\u0027network_id\u0027])"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_41675025","line":337,"updated":"2015-06-30 10:21:11.000000000","message":"Please use the constant - constants.DEVICE_ID_RESERVED_DHCP_PORT","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"ce081c219237db75faa33aa60005294fe909435b","unresolved":false,"context_lines":[{"line_number":334,"context_line":"                    driver_action \u003d \u0027restart\u0027"},{"line_number":335,"context_line":"            self.cache.put_port(updated_port)"},{"line_number":336,"context_line":"            self.call_driver(driver_action, network)"},{"line_number":337,"context_line":"        elif updated_port[\u0027device_id\u0027] \u003d\u003d \u0027reserved_dhcp_port\u0027:"},{"line_number":338,"context_line":"            self.enable_dhcp_helper(updated_port[\u0027network_id\u0027])"},{"line_number":339,"context_line":"            self.refresh_dhcp_helper(updated_port[\u0027network_id\u0027])"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_bbb66e88","line":337,"updated":"2015-06-30 19:19:59.000000000","message":"what happens if two ports have the device_id \u0027reserved_dhcp_port\u0027? If we absolutely need to go this route, the device_id should probably match this agent\u0027s ID.\n\nHowever, to avoid all of this extra special-casing, I don\u0027t think we need to solve the issue of them deleting the port and wanting the same one back. If they delete the port, we should just require them to reschedule it to the agent. What do you think?","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"7f4af82ada966830eb1a195341d47608db5e3670","unresolved":false,"context_lines":[{"line_number":334,"context_line":"                    driver_action \u003d \u0027restart\u0027"},{"line_number":335,"context_line":"            self.cache.put_port(updated_port)"},{"line_number":336,"context_line":"            self.call_driver(driver_action, network)"},{"line_number":337,"context_line":"        elif updated_port[\u0027device_id\u0027] \u003d\u003d \u0027reserved_dhcp_port\u0027:"},{"line_number":338,"context_line":"            self.enable_dhcp_helper(updated_port[\u0027network_id\u0027])"},{"line_number":339,"context_line":"            self.refresh_dhcp_helper(updated_port[\u0027network_id\u0027])"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_524e3c97","line":337,"in_reply_to":"ba3cc151_41675025","updated":"2015-06-30 11:57:17.000000000","message":"agree","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"b4a57e38759cf7d7e63c36210d030636bbe93511","unresolved":false,"context_lines":[{"line_number":334,"context_line":"                    driver_action \u003d \u0027restart\u0027"},{"line_number":335,"context_line":"            self.cache.put_port(updated_port)"},{"line_number":336,"context_line":"            self.call_driver(driver_action, network)"},{"line_number":337,"context_line":"        elif updated_port[\u0027device_id\u0027] \u003d\u003d \u0027reserved_dhcp_port\u0027:"},{"line_number":338,"context_line":"            self.enable_dhcp_helper(updated_port[\u0027network_id\u0027])"},{"line_number":339,"context_line":"            self.refresh_dhcp_helper(updated_port[\u0027network_id\u0027])"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_75753c96","line":337,"in_reply_to":"ba3cc151_bbb66e88","updated":"2015-07-01 06:29:36.000000000","message":"if two port have the device_id \u0027reserved_dhcp_port\u0027, when dhcp agent receive the the notify for second one, it will exec \u0027reload_allocations\u0027 action","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"d02c9c595b50cb7e97e67d248f352963f625d97e","unresolved":false,"context_lines":[{"line_number":334,"context_line":"                    driver_action \u003d \u0027restart\u0027"},{"line_number":335,"context_line":"            self.cache.put_port(updated_port)"},{"line_number":336,"context_line":"            self.call_driver(driver_action, network)"},{"line_number":337,"context_line":"        elif updated_port[\u0027device_id\u0027] \u003d\u003d \u0027reserved_dhcp_port\u0027:"},{"line_number":338,"context_line":"            self.enable_dhcp_helper(updated_port[\u0027network_id\u0027])"},{"line_number":339,"context_line":"            self.refresh_dhcp_helper(updated_port[\u0027network_id\u0027])"},{"line_number":340,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_2979a72f","line":337,"in_reply_to":"ba3cc151_bbb66e88","updated":"2015-07-01 04:08:01.000000000","message":"if user delete dhcp port, the network still bindings to dhcp agent, so neutron-server will not automatically reschedule this network to other dhcp agent, if user manually remove this network from origin dhcp agent then bindings it wo other dhcp agent, the TAP device will remain in origin dhcp agent.\nso I think it is better to provide a method to recover the dhcp service in origin dhcp agent.","commit_id":"8d0db1c5289607b37bd14ca3e623dcb57951abb0"}],"neutron/agent/linux/dhcp.py":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"e4c60b31676a134ad93f2295d427c751897b21bd","unresolved":false,"context_lines":[{"line_number":657,"context_line":"        old_leases \u003d self._read_hosts_file_leases(filename)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"        new_leases \u003d set()"},{"line_number":660,"context_line":"        find_dhcp_port \u003d False"},{"line_number":661,"context_line":"        for port in self.network.ports:"},{"line_number":662,"context_line":"            client_id \u003d self._get_client_id(port)"},{"line_number":663,"context_line":"            for alloc in port.fixed_ips:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_de751098","line":660,"updated":"2015-07-17 05:43:10.000000000","message":"dhcp_port_found \u003d False  (find is infinitive, which is more for a function than a variable).","commit_id":"60f0852ebde57cda36d56ab3354457bc23d53192"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"e4c60b31676a134ad93f2295d427c751897b21bd","unresolved":false,"context_lines":[{"line_number":664,"context_line":"                new_leases.add((alloc.ip_address, port.mac_address, client_id))"},{"line_number":665,"context_line":"            if (port.device_id \u003d\u003d"},{"line_number":666,"context_line":"                self.device_manager.get_device_id(self.network)):"},{"line_number":667,"context_line":"                find_dhcp_port \u003d True"},{"line_number":668,"context_line":""},{"line_number":669,"context_line":"        for ip, mac, client_id in old_leases - new_leases:"},{"line_number":670,"context_line":"            self._release_lease(mac, ip, client_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_3e5d1c15","line":667,"updated":"2015-07-17 05:43:10.000000000","message":"ditto.","commit_id":"60f0852ebde57cda36d56ab3354457bc23d53192"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"e4c60b31676a134ad93f2295d427c751897b21bd","unresolved":false,"context_lines":[{"line_number":669,"context_line":"        for ip, mac, client_id in old_leases - new_leases:"},{"line_number":670,"context_line":"            self._release_lease(mac, ip, client_id)"},{"line_number":671,"context_line":""},{"line_number":672,"context_line":"        if not find_dhcp_port:"},{"line_number":673,"context_line":"            self.device_manager.driver.unplug("},{"line_number":674,"context_line":"                self.interface_name, namespace\u003dself.network.namespace)"},{"line_number":675,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a41bdd9_de9c30c2","line":672,"updated":"2015-07-17 05:43:10.000000000","message":"ditto.","commit_id":"60f0852ebde57cda36d56ab3354457bc23d53192"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0a55152339c51c3f0de9f7550e2ab5e090c26564","unresolved":false,"context_lines":[{"line_number":657,"context_line":"        old_leases \u003d self._read_hosts_file_leases(filename)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"        new_leases \u003d set()"},{"line_number":660,"context_line":"        find_dhcp_port \u003d False"},{"line_number":661,"context_line":"        for port in self.network.ports:"},{"line_number":662,"context_line":"            client_id \u003d self._get_client_id(port)"},{"line_number":663,"context_line":"            for alloc in port.fixed_ips:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_69e3e6a4","line":660,"updated":"2015-07-15 11:47:33.000000000","message":"please change find to found or use for example dhcp_port_exists?","commit_id":"ea5dd30bc8101070721c3b8798990cd07b918726"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"14ac15a115e7522d31524f7f335d8c8380dec2c8","unresolved":false,"context_lines":[{"line_number":657,"context_line":"        old_leases \u003d self._read_hosts_file_leases(filename)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"        new_leases \u003d set()"},{"line_number":660,"context_line":"        find_dhcp_port \u003d False"},{"line_number":661,"context_line":"        for port in self.network.ports:"},{"line_number":662,"context_line":"            client_id \u003d self._get_client_id(port)"},{"line_number":663,"context_line":"            for alloc in port.fixed_ips:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_ac2eb8a2","line":660,"in_reply_to":"9a41bdd9_69e3e6a4","updated":"2015-07-16 00:55:22.000000000","message":"dhcp_port_exists is better, thx for you suggetion!","commit_id":"ea5dd30bc8101070721c3b8798990cd07b918726"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"242bc3902e7e7e7fab00a8f5b45db194bac7045a","unresolved":false,"context_lines":[{"line_number":663,"context_line":"            for alloc in port.fixed_ips:"},{"line_number":664,"context_line":"                new_leases.add((alloc.ip_address, port.mac_address, client_id))"},{"line_number":665,"context_line":"            if (port.device_id \u003d\u003d"},{"line_number":666,"context_line":"                self.device_manager.get_device_id(self.network)):"},{"line_number":667,"context_line":"                dhcp_port_exists \u003d True"},{"line_number":668,"context_line":""},{"line_number":669,"context_line":"        for ip, mac, client_id in old_leases - new_leases:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a41bdd9_af0985df","line":666,"updated":"2015-07-17 05:48:47.000000000","message":"Can we optimize the get of our own port Id out of the loop so we don\u0027t have to call to device_manager.get_device_id every time? \n\nI\u0027m unsure about how expensive that is,  and we can have lots of ports to loop over at scale.","commit_id":"9c762b12982658e2cd34a7fac325b200ba680cd9"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"b25cb7810d696704696f0810544475f73bf48881","unresolved":false,"context_lines":[{"line_number":663,"context_line":"            for alloc in port.fixed_ips:"},{"line_number":664,"context_line":"                new_leases.add((alloc.ip_address, port.mac_address, client_id))"},{"line_number":665,"context_line":"            if (port.device_id \u003d\u003d"},{"line_number":666,"context_line":"                self.device_manager.get_device_id(self.network)):"},{"line_number":667,"context_line":"                dhcp_port_exists \u003d True"},{"line_number":668,"context_line":""},{"line_number":669,"context_line":"        for ip, mac, client_id in old_leases - new_leases:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a41bdd9_0f7751d5","line":666,"in_reply_to":"9a41bdd9_af0985df","updated":"2015-07-17 06:08:26.000000000","message":"hi ajo, I think you are right, it is better to move device_manager.get_device_id out of loop","commit_id":"9c762b12982658e2cd34a7fac325b200ba680cd9"},{"author":{"_account_id":8645,"name":"Trinath Somanchi","email":"trinath.somanchi@freescale.com","username":"trinaths"},"change_message_id":"6947e2d8fcd5af20c25587f138be6ccdbb1dacb9","unresolved":false,"context_lines":[{"line_number":659,"context_line":"        new_leases \u003d set()"},{"line_number":660,"context_line":"        dhcp_port_exists \u003d False"},{"line_number":661,"context_line":"        dhcp_port_on_this_host \u003d self.device_manager.get_device_id("},{"line_number":662,"context_line":"            self.network)"},{"line_number":663,"context_line":"        for port in self.network.ports:"},{"line_number":664,"context_line":"            client_id \u003d self._get_client_id(port)"},{"line_number":665,"context_line":"            for alloc in port.fixed_ips:"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_95813050","line":662,"updated":"2015-07-17 06:49:24.000000000","message":"Ajo\u0027s suggestion is updated.. I think","commit_id":"9d800021293d8564ced1c071b6415d9a97b3ef49"}],"neutron/tests/unit/agent/dhcp/test_agent.py":[{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"ddef3071cfa74ce4e2952f112d58daee31664caa","unresolved":false,"context_lines":[{"line_number":927,"context_line":"        payload \u003d dict(port\u003dfake_port1)"},{"line_number":928,"context_line":"        payload[\u0027port\u0027][\u0027device_id\u0027] \u003d \u0027reserved_dhcp_port\u0027"},{"line_number":929,"context_line":"        network_befor_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":930,"context_line":"        network_befor_refresh[\u0027ports\u0027] \u003d [payload[\u0027port\u0027]]"},{"line_number":931,"context_line":""},{"line_number":932,"context_line":"        network_after_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":933,"context_line":"        updated_port \u003d copy.deepcopy(fake_port1)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_31795630","line":930,"updated":"2015-07-06 13:01:32.000000000","message":"nit befor: before (just if you need to resubmit)","commit_id":"baf6f22586213d1f6507ad99b3244987482ddf6d"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"bea084b7f2fd4a20e788a6b6a515c6816548b39d","unresolved":false,"context_lines":[{"line_number":927,"context_line":"        payload \u003d dict(port\u003dfake_port1)"},{"line_number":928,"context_line":"        payload[\u0027port\u0027][\u0027device_id\u0027] \u003d \u0027reserved_dhcp_port\u0027"},{"line_number":929,"context_line":"        network_befor_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":930,"context_line":"        network_befor_refresh[\u0027ports\u0027] \u003d [payload[\u0027port\u0027]]"},{"line_number":931,"context_line":""},{"line_number":932,"context_line":"        network_after_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":933,"context_line":"        updated_port \u003d copy.deepcopy(fake_port1)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_37dce345","line":930,"in_reply_to":"ba3cc151_31795630","updated":"2015-07-06 14:24:32.000000000","message":"agree!","commit_id":"baf6f22586213d1f6507ad99b3244987482ddf6d"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b6c84dc96cdb0d09d46ab4df4f813d2e659a48df","unresolved":false,"context_lines":[{"line_number":927,"context_line":"        payload \u003d dict(port\u003dfake_port1)"},{"line_number":928,"context_line":"        payload[\u0027port\u0027][\u0027device_id\u0027] \u003d \u0027reserved_dhcp_port\u0027"},{"line_number":929,"context_line":"        network_befor_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":930,"context_line":"        network_befor_refresh[\u0027ports\u0027] \u003d [payload[\u0027port\u0027]]"},{"line_number":931,"context_line":""},{"line_number":932,"context_line":"        network_after_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":933,"context_line":"        updated_port \u003d copy.deepcopy(fake_port1)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_91306209","line":930,"in_reply_to":"ba3cc151_31795630","updated":"2015-07-06 13:10:38.000000000","message":"i am in favor of changing this.","commit_id":"baf6f22586213d1f6507ad99b3244987482ddf6d"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"cf790c94eee39d89a312390d2db57502d6aa198f","unresolved":false,"context_lines":[{"line_number":927,"context_line":"        payload \u003d dict(port\u003dfake_port1)"},{"line_number":928,"context_line":"        payload[\u0027port\u0027][\u0027device_id\u0027] \u003d \u0027reserved_dhcp_port\u0027"},{"line_number":929,"context_line":"        network_befor_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":930,"context_line":"        network_befor_refresh[\u0027ports\u0027] \u003d [payload[\u0027port\u0027]]"},{"line_number":931,"context_line":""},{"line_number":932,"context_line":"        network_after_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":933,"context_line":"        updated_port \u003d copy.deepcopy(fake_port1)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_c3ff01a9","line":930,"in_reply_to":"ba3cc151_91306209","updated":"2015-07-06 13:38:01.000000000","message":"@garyk, probably you\u0027re right. It\u0027s a tiny/fast thing to fix.","commit_id":"baf6f22586213d1f6507ad99b3244987482ddf6d"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"bea084b7f2fd4a20e788a6b6a515c6816548b39d","unresolved":false,"context_lines":[{"line_number":927,"context_line":"        payload \u003d dict(port\u003dfake_port1)"},{"line_number":928,"context_line":"        payload[\u0027port\u0027][\u0027device_id\u0027] \u003d \u0027reserved_dhcp_port\u0027"},{"line_number":929,"context_line":"        network_befor_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":930,"context_line":"        network_befor_refresh[\u0027ports\u0027] \u003d [payload[\u0027port\u0027]]"},{"line_number":931,"context_line":""},{"line_number":932,"context_line":"        network_after_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":933,"context_line":"        updated_port \u003d copy.deepcopy(fake_port1)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_57e167fd","line":930,"in_reply_to":"ba3cc151_91306209","updated":"2015-07-06 14:24:32.000000000","message":"Done","commit_id":"baf6f22586213d1f6507ad99b3244987482ddf6d"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"bea084b7f2fd4a20e788a6b6a515c6816548b39d","unresolved":false,"context_lines":[{"line_number":927,"context_line":"        payload \u003d dict(port\u003dfake_port1)"},{"line_number":928,"context_line":"        payload[\u0027port\u0027][\u0027device_id\u0027] \u003d \u0027reserved_dhcp_port\u0027"},{"line_number":929,"context_line":"        network_befor_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":930,"context_line":"        network_befor_refresh[\u0027ports\u0027] \u003d [payload[\u0027port\u0027]]"},{"line_number":931,"context_line":""},{"line_number":932,"context_line":"        network_after_refresh \u003d copy.deepcopy(fake_network)"},{"line_number":933,"context_line":"        updated_port \u003d copy.deepcopy(fake_port1)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_f7e67b15","line":930,"in_reply_to":"ba3cc151_c3ff01a9","updated":"2015-07-06 14:24:32.000000000","message":"Done","commit_id":"baf6f22586213d1f6507ad99b3244987482ddf6d"}]}
