)]}'
{"neutron/agent/dhcp/agent.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"05e622923e85018f21dab1d75333e420a81218f4","unresolved":false,"context_lines":[{"line_number":385,"context_line":"                orig \u003d self.cache.get_port_by_id(updated_port[\u0027id\u0027])"},{"line_number":386,"context_line":"                # assume IP change if not in cache"},{"line_number":387,"context_line":"                orig \u003d orig or {\u0027fixed_ips\u0027: []}"},{"line_number":388,"context_line":"                old_ips \u003d {i[\u0027ip_address\u0027] for i in orig[\u0027fixed_ips\u0027] or []}"},{"line_number":389,"context_line":"                new_ips \u003d {i[\u0027ip_address\u0027] for i in updated_port[\u0027fixed_ips\u0027]}"},{"line_number":390,"context_line":"                if old_ips !\u003d new_ips:"},{"line_number":391,"context_line":"                    driver_action \u003d \u0027restart\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8ec9b2_40ff0767","line":388,"updated":"2016-09-14 18:07:07.000000000","message":"you could get rid of or [] no?","commit_id":"9d24490da8552542309dc7b9d6cbc695af4c6de6"}],"neutron/agent/linux/dhcp.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"daee9e0e55995424d53218ea78c0a32d218645de","unresolved":false,"context_lines":[{"line_number":475,"context_line":"            LOG.debug(\u0027Killing dnsmasq for network since all subnets have \u0027"},{"line_number":476,"context_line":"                      \u0027turned off DHCP: %s\u0027, self.network.id)"},{"line_number":477,"context_line":"            return"},{"line_number":478,"context_line":"        if not self.interface_name:"},{"line_number":479,"context_line":"            # we land here if above has been called and we receive port"},{"line_number":480,"context_line":"            # delete notifications for the network"},{"line_number":481,"context_line":"            LOG.debug(\u0027Agent does not have an interface on this network \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_93e44e3c","line":478,"updated":"2016-09-13 19:50:10.000000000","message":"isn\u0027t there still a chance that self.interface_name becomes None right after this check or before the update operation?","commit_id":"29350f52fa0e3396f5ad7e45a4f4dcd29fa787e0"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"aab1fe496bda17f8f789afd18e3616a5497a6ff8","unresolved":false,"context_lines":[{"line_number":475,"context_line":"            LOG.debug(\u0027Killing dnsmasq for network since all subnets have \u0027"},{"line_number":476,"context_line":"                      \u0027turned off DHCP: %s\u0027, self.network.id)"},{"line_number":477,"context_line":"            return"},{"line_number":478,"context_line":"        if not self.interface_name:"},{"line_number":479,"context_line":"            # we land here if above has been called and we receive port"},{"line_number":480,"context_line":"            # delete notifications for the network"},{"line_number":481,"context_line":"            LOG.debug(\u0027Agent does not have an interface on this network \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8ec9b2_2f406656","line":478,"in_reply_to":"7a8ec9b2_93e44e3c","updated":"2016-09-13 23:22:51.000000000","message":"currently no, everything at this point is guarded by a semaphore on the event it\u0027s reacting two. The DHCP agent doesn\u0027t call into the driver concurrently.","commit_id":"29350f52fa0e3396f5ad7e45a4f4dcd29fa787e0"}],"neutron/api/rpc/handlers/dhcp_rpc.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"71665380b81a6f688e0e9f27efcd66a86fa9182b","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            LOG.debug(\u0027Host %(host)s tried to update port \u0027"},{"line_number":279,"context_line":"                      \u0027%(port_id)s which no longer exists.\u0027,"},{"line_number":280,"context_line":"                      {\u0027host\u0027: host, \u0027port_id\u0027: port[\u0027id\u0027]})"},{"line_number":281,"context_line":"            return None"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    @db_api.retry_db_errors"},{"line_number":284,"context_line":"    def dhcp_ready_on_ports(self, context, port_ids):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a8ec9b2_a210fd4f","line":281,"updated":"2016-09-14 07:56:22.000000000","message":"this is not really needed. by default a method returns None","commit_id":"9d24490da8552542309dc7b9d6cbc695af4c6de6"}]}
