)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"088048570ad17adbe391250a4b20606fc0a87fee","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add dhcp option which provides all agent IPs"},{"line_number":10,"context_line":"which will be used as nameserver entries when"},{"line_number":11,"context_line":"neutron uses multiple dhcp agent per network and"},{"line_number":12,"context_line":"when there is no dns nameserver provided by the"},{"line_number":13,"context_line":"neutron server."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F9HNU%3D","line":11,"updated":"2013-12-16 17:37:27.000000000","message":"can you elaborate on \u0027multiple dhcp agent per network\u0027? You mean, one agent per subnet? That\u0027s what it seems from the code, but I\u0027d rather hear it from you :)","commit_id":"0c837fcac7c138879b03617c074cd97269e9edf1"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"632be56ab36cf27210fb58186e9e9147e63a04ce","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add dhcp option which provides all agent IPs"},{"line_number":10,"context_line":"which will be used as nameserver entries when"},{"line_number":11,"context_line":"neutron uses multiple dhcp agent per network and"},{"line_number":12,"context_line":"when there is no dns nameserver provided by the"},{"line_number":13,"context_line":"neutron server."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F9GMs%3D","line":11,"in_reply_to":"AAAATn%2F9HAw%3D","updated":"2013-12-16 20:37:04.000000000","message":"gotcha, thanks!","commit_id":"0c837fcac7c138879b03617c074cd97269e9edf1"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"d7d286831f4541b6e2cc4f25985f9c3f5d3e2a0c","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add dhcp option which provides all agent IPs"},{"line_number":10,"context_line":"which will be used as nameserver entries when"},{"line_number":11,"context_line":"neutron uses multiple dhcp agent per network and"},{"line_number":12,"context_line":"when there is no dns nameserver provided by the"},{"line_number":13,"context_line":"neutron server."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F9HAw%3D","line":11,"in_reply_to":"AAAATn%2F9HNU%3D","updated":"2013-12-16 18:03:45.000000000","message":"I mean when we use this param of the neutron config file:\ndhcp_agents_per_network","commit_id":"0c837fcac7c138879b03617c074cd97269e9edf1"}],"neutron/agent/linux/dhcp.py":[{"author":{"_account_id":55,"name":"Édouard Thuleau","email":"ethuleau@juniper.net","username":"ethuleau"},"change_message_id":"f7aae04dae4cc28a9ff451cf492401410f502271","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                        continue"},{"line_number":504,"context_line":"                    ips \u003d dhcp_ips.get(i, [])"},{"line_number":505,"context_line":"                    ips.append(ip.ip_address)"},{"line_number":506,"context_line":"                    dhcp_ips[i] \u003d ips"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        for i, ips in dhcp_ips.items():"},{"line_number":509,"context_line":"            if len(ips) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9iLc%3D","line":506,"updated":"2013-12-10 14:22:07.000000000","message":"in one line ?\n\ndhcp_ips[i] \u003d dhcp_ips.get(i, []).append(ip.ip_address)","commit_id":"471c65cc74b330fa3f29ff06e1296e6a5a6f3f59"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"42b612db88045a8514cbdd4d629eca8c923bce2e","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                        continue"},{"line_number":504,"context_line":"                    ips \u003d dhcp_ips.get(i, [])"},{"line_number":505,"context_line":"                    ips.append(ip.ip_address)"},{"line_number":506,"context_line":"                    dhcp_ips[i] \u003d ips"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        for i, ips in dhcp_ips.items():"},{"line_number":509,"context_line":"            if len(ips) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9h4k%3D","line":506,"in_reply_to":"AAAATn%2F9iLc%3D","updated":"2013-12-10 15:05:36.000000000","message":"I can\u0027t since the append method return None, so with your line dhcp_ips[i] will be set to None.","commit_id":"471c65cc74b330fa3f29ff06e1296e6a5a6f3f59"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"088048570ad17adbe391250a4b20606fc0a87fee","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                    self._format_option(i, \u0027dns-server\u0027,"},{"line_number":454,"context_line":"                                        \u0027,\u0027.join(subnet.dns_nameservers)))"},{"line_number":455,"context_line":"            else:"},{"line_number":456,"context_line":"                # use the dnsmasq ip as nameservers only if there is no"},{"line_number":457,"context_line":"                # dns-server submitted by the server"},{"line_number":458,"context_line":"                subnet_idx_map[subnet.id] \u003d i"},{"line_number":459,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9HJk%3D","line":456,"updated":"2013-12-16 17:37:27.000000000","message":"I am opposed to the idea of sweeping something in magically. It\u0027s trying to be too clever when in reality it may cause more confusion than anything else. What if the lack of dns servers is a misconfiguration? With this \u0027fix\u0027 we won\u0027t be able to detect it. I think it would better if a) we always add \u0027i\u0027 or b) we make it configurable.","commit_id":"0c837fcac7c138879b03617c074cd97269e9edf1"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"632be56ab36cf27210fb58186e9e9147e63a04ce","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                    self._format_option(i, \u0027dns-server\u0027,"},{"line_number":454,"context_line":"                                        \u0027,\u0027.join(subnet.dns_nameservers)))"},{"line_number":455,"context_line":"            else:"},{"line_number":456,"context_line":"                # use the dnsmasq ip as nameservers only if there is no"},{"line_number":457,"context_line":"                # dns-server submitted by the server"},{"line_number":458,"context_line":"                subnet_idx_map[subnet.id] \u003d i"},{"line_number":459,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9GLE%3D","line":456,"in_reply_to":"AAAATn%2F9HBU%3D","updated":"2013-12-16 20:37:04.000000000","message":"understood, thanks for clarifying this.","commit_id":"0c837fcac7c138879b03617c074cd97269e9edf1"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"d7d286831f4541b6e2cc4f25985f9c3f5d3e2a0c","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                    self._format_option(i, \u0027dns-server\u0027,"},{"line_number":454,"context_line":"                                        \u0027,\u0027.join(subnet.dns_nameservers)))"},{"line_number":455,"context_line":"            else:"},{"line_number":456,"context_line":"                # use the dnsmasq ip as nameservers only if there is no"},{"line_number":457,"context_line":"                # dns-server submitted by the server"},{"line_number":458,"context_line":"                subnet_idx_map[subnet.id] \u003d i"},{"line_number":459,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9HBU%3D","line":456,"in_reply_to":"AAAATn%2F9HJk%3D","updated":"2013-12-16 18:03:45.000000000","message":"Without this patch It is already the case.\n\nIf don\u0027t provide a dns-server for the subnet, dnsmasq will send its own ip as name server.\nIf you provide a dns-server it will send the list provided\n\nWith the patch and with dhcp_agents_per_network(neutron.conf) \u003e 1(line 509)\n\nIf don\u0027t provide a dns-server for the subnet, all agent ips will be sent.\nIf you provide a dns-server it will send the list provided","commit_id":"0c837fcac7c138879b03617c074cd97269e9edf1"},{"author":{"_account_id":8674,"name":"Yves-Gwenael Bourhis","email":"ygbourhis@gmail.com","username":"yves"},"change_message_id":"35abfe866d2b884ef718300741fafaeea110460f","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                        continue"},{"line_number":504,"context_line":"                    ips \u003d dhcp_ips.get(i, [])"},{"line_number":505,"context_line":"                    ips.append(ip.ip_address)"},{"line_number":506,"context_line":"                    dhcp_ips[i] \u003d ips"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        for i, ips in dhcp_ips.items():"},{"line_number":509,"context_line":"            if len(ips) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9cQA%3D","line":506,"updated":"2013-12-11 14:04:43.000000000","message":"nit: if you replace line 446 by:\n\ndhcp_ips \u003d collections.defaultdict(list)  # requires importing the collections module\n\nyou could replace the 3 above lines (504 to 506) by only one:\n\ndhcp_ips[i].append(ip.ip_address)","commit_id":"0c837fcac7c138879b03617c074cd97269e9edf1"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"e5f148c87a7d0713eb9264fcbde297436d6611ba","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                        continue"},{"line_number":504,"context_line":"                    ips \u003d dhcp_ips.get(i, [])"},{"line_number":505,"context_line":"                    ips.append(ip.ip_address)"},{"line_number":506,"context_line":"                    dhcp_ips[i] \u003d ips"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"        for i, ips in dhcp_ips.items():"},{"line_number":509,"context_line":"            if len(ips) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F8rx8%3D","line":506,"in_reply_to":"AAAATn%2F9cQA%3D","updated":"2013-12-23 09:10:58.000000000","message":"Done","commit_id":"0c837fcac7c138879b03617c074cd97269e9edf1"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"5f284e72a464aa1d9919634e6ba524950f0907aa","unresolved":false,"context_lines":[{"line_number":505,"context_line":"                    dhcp_ips[i].append(ip.ip_address)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        for i, ips in dhcp_ips.items():"},{"line_number":508,"context_line":"            if len(ips) \u003e 1:"},{"line_number":509,"context_line":"                options.append(self._format_option(i,"},{"line_number":510,"context_line":"                                                   \u0027dns-server\u0027,"},{"line_number":511,"context_line":"                                                   \u0027,\u0027.join(ips)))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8ocE%3D","line":508,"updated":"2013-12-24 01:05:59.000000000","message":"I tried to figure out what happens to options if len(ips)\u003d\u003d1, but got lost. Can you explain?","commit_id":"2afff147c45f97a0809db40ad072332fb37ccd8d"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"46a63fbfb213820e8eabc043576e0f30083b094f","unresolved":false,"context_lines":[{"line_number":505,"context_line":"                    dhcp_ips[i].append(ip.ip_address)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        for i, ips in dhcp_ips.items():"},{"line_number":508,"context_line":"            if len(ips) \u003e 1:"},{"line_number":509,"context_line":"                options.append(self._format_option(i,"},{"line_number":510,"context_line":"                                                   \u0027dns-server\u0027,"},{"line_number":511,"context_line":"                                                   \u0027,\u0027.join(ips)))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8mBU%3D","line":508,"in_reply_to":"AAAATn%2F8nH4%3D","updated":"2013-12-24 16:44:52.000000000","message":"Got it, thanks!","commit_id":"2afff147c45f97a0809db40ad072332fb37ccd8d"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"79d69cc6be0240ab76edd3e31bdf7b6d3873d246","unresolved":false,"context_lines":[{"line_number":505,"context_line":"                    dhcp_ips[i].append(ip.ip_address)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        for i, ips in dhcp_ips.items():"},{"line_number":508,"context_line":"            if len(ips) \u003e 1:"},{"line_number":509,"context_line":"                options.append(self._format_option(i,"},{"line_number":510,"context_line":"                                                   \u0027dns-server\u0027,"},{"line_number":511,"context_line":"                                                   \u0027,\u0027.join(ips)))"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F8nH4%3D","line":508,"in_reply_to":"AAAATn%2F8ocE%3D","updated":"2013-12-24 10:43:53.000000000","message":"In that case this options will not be provided and dnsmasq will send its own address as nameserver, exactly as without this patch. \n\nThe goal here is to send all dnsmasq ips if there is more than one dhcp agent handling the network. So the clients are able to send requests to all dhcp agents. Useful if one of them fails. But if there is only one agent, the original behaviour happens.","commit_id":"2afff147c45f97a0809db40ad072332fb37ccd8d"}]}
