)]}'
{"ironic/common/neutron.py":[{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"caeb00c4dae30eaf2f96d26d1b0a1a79c1ca0efd","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from ironic.common import exception"},{"line_number":19,"context_line":"from ironic.common.i18n import _"},{"line_number":20,"context_line":"from ironic.common import keystone"},{"line_number":21,"context_line":"from ironic.common.pxe_utils import DHCP_CLIENT_ID"},{"line_number":22,"context_line":"from ironic.conf import CONF"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d log.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f4e5783_ac499ab7","line":21,"updated":"2017-10-16 11:19:15.000000000","message":"I am surprised this isn\u0027t failing our hacking rule \"Do not import objects, only modules\"","commit_id":"228a2a7885e1b04d4180fe8daa2992884decaf6d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9ce0ac01d29915f06546aa49556bc5bac5ad14bf","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from ironic.common import exception"},{"line_number":19,"context_line":"from ironic.common.i18n import _"},{"line_number":20,"context_line":"from ironic.common import keystone"},{"line_number":21,"context_line":"from ironic.common.pxe_utils import DHCP_CLIENT_ID"},{"line_number":22,"context_line":"from ironic.conf import CONF"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"LOG \u003d log.getLogger(__name__)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f4e5783_297c6e1d","line":21,"in_reply_to":"5f4e5783_ac499ab7","updated":"2017-10-16 18:53:22.000000000","message":"Hmm. Sigh. Well, it passed so...","commit_id":"228a2a7885e1b04d4180fe8daa2992884decaf6d"}],"ironic/common/pxe_utils.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"dad4f01271a12ebfd84178a9d6fd84e46583922a","unresolved":false,"context_lines":[{"line_number":353,"context_line":"    # understand option 150. server-ip-address is internal to dnsmasq option"},{"line_number":354,"context_line":"    # http://thekelleys.org.uk/gitweb/?p\u003ddnsmasq.git;a\u003dblob;f\u003dsrc/dhcp-common.c;h\u003deae9ae3567fe16eb979a484976c270396322efea;hb\u003da3303e196e5d304ec955c4d63afb923ade66c6e8#l572 # noqa"},{"line_number":355,"context_line":"    # It allows to set siaddr field in dhcp reply which is recognized by PXE"},{"line_number":356,"context_line":"    # client as next step in boot process (tftp server) for more details please"},{"line_number":357,"context_line":"    # see (page 9 https://tools.ietf.org/html/rfc2131)."},{"line_number":358,"context_line":"    # Otherwords without setting server-ip-address dnsmasq will set siaddr to"},{"line_number":359,"context_line":"    # dnsmasq\u0027s IP, which means that client try to get pxe images from dnsmasq"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_f84216ab","line":356,"updated":"2017-10-05 15:19:16.000000000","message":"nit s/server) for/server). For/","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f9ed2000ea4463fbae085dbed8b1bb64d65501ae","unresolved":false,"context_lines":[{"line_number":353,"context_line":"    # understand option 150. server-ip-address is internal to dnsmasq option"},{"line_number":354,"context_line":"    # http://thekelleys.org.uk/gitweb/?p\u003ddnsmasq.git;a\u003dblob;f\u003dsrc/dhcp-common.c;h\u003deae9ae3567fe16eb979a484976c270396322efea;hb\u003da3303e196e5d304ec955c4d63afb923ade66c6e8#l572 # noqa"},{"line_number":355,"context_line":"    # It allows to set siaddr field in dhcp reply which is recognized by PXE"},{"line_number":356,"context_line":"    # client as next step in boot process (tftp server) for more details please"},{"line_number":357,"context_line":"    # see (page 9 https://tools.ietf.org/html/rfc2131)."},{"line_number":358,"context_line":"    # Otherwords without setting server-ip-address dnsmasq will set siaddr to"},{"line_number":359,"context_line":"    # dnsmasq\u0027s IP, which means that client try to get pxe images from dnsmasq"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_d4149850","line":356,"in_reply_to":"7f515b1d_f84216ab","updated":"2017-10-13 10:41:23.000000000","message":"Done","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"dad4f01271a12ebfd84178a9d6fd84e46583922a","unresolved":false,"context_lines":[{"line_number":354,"context_line":"    # http://thekelleys.org.uk/gitweb/?p\u003ddnsmasq.git;a\u003dblob;f\u003dsrc/dhcp-common.c;h\u003deae9ae3567fe16eb979a484976c270396322efea;hb\u003da3303e196e5d304ec955c4d63afb923ade66c6e8#l572 # noqa"},{"line_number":355,"context_line":"    # It allows to set siaddr field in dhcp reply which is recognized by PXE"},{"line_number":356,"context_line":"    # client as next step in boot process (tftp server) for more details please"},{"line_number":357,"context_line":"    # see (page 9 https://tools.ietf.org/html/rfc2131)."},{"line_number":358,"context_line":"    # Otherwords without setting server-ip-address dnsmasq will set siaddr to"},{"line_number":359,"context_line":"    # dnsmasq\u0027s IP, which means that client try to get pxe images from dnsmasq"},{"line_number":360,"context_line":"    # host but we run tftp on ironic-condcutor node."}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_5827ea13","line":357,"updated":"2017-10-05 15:19:16.000000000","message":"nit s/see (page ....)/see page .../","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f9ed2000ea4463fbae085dbed8b1bb64d65501ae","unresolved":false,"context_lines":[{"line_number":354,"context_line":"    # http://thekelleys.org.uk/gitweb/?p\u003ddnsmasq.git;a\u003dblob;f\u003dsrc/dhcp-common.c;h\u003deae9ae3567fe16eb979a484976c270396322efea;hb\u003da3303e196e5d304ec955c4d63afb923ade66c6e8#l572 # noqa"},{"line_number":355,"context_line":"    # It allows to set siaddr field in dhcp reply which is recognized by PXE"},{"line_number":356,"context_line":"    # client as next step in boot process (tftp server) for more details please"},{"line_number":357,"context_line":"    # see (page 9 https://tools.ietf.org/html/rfc2131)."},{"line_number":358,"context_line":"    # Otherwords without setting server-ip-address dnsmasq will set siaddr to"},{"line_number":359,"context_line":"    # dnsmasq\u0027s IP, which means that client try to get pxe images from dnsmasq"},{"line_number":360,"context_line":"    # host but we run tftp on ironic-condcutor node."}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_940e2039","line":357,"in_reply_to":"7f515b1d_5827ea13","updated":"2017-10-13 10:41:23.000000000","message":"Done","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"dad4f01271a12ebfd84178a9d6fd84e46583922a","unresolved":false,"context_lines":[{"line_number":355,"context_line":"    # It allows to set siaddr field in dhcp reply which is recognized by PXE"},{"line_number":356,"context_line":"    # client as next step in boot process (tftp server) for more details please"},{"line_number":357,"context_line":"    # see (page 9 https://tools.ietf.org/html/rfc2131)."},{"line_number":358,"context_line":"    # Otherwords without setting server-ip-address dnsmasq will set siaddr to"},{"line_number":359,"context_line":"    # dnsmasq\u0027s IP, which means that client try to get pxe images from dnsmasq"},{"line_number":360,"context_line":"    # host but we run tftp on ironic-condcutor node."},{"line_number":361,"context_line":"    # There is an informational RFC which describes how options related to"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_3822ee02","line":358,"updated":"2017-10-05 15:19:16.000000000","message":"nit s/Otherwords/In other words, /","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f9ed2000ea4463fbae085dbed8b1bb64d65501ae","unresolved":false,"context_lines":[{"line_number":355,"context_line":"    # It allows to set siaddr field in dhcp reply which is recognized by PXE"},{"line_number":356,"context_line":"    # client as next step in boot process (tftp server) for more details please"},{"line_number":357,"context_line":"    # see (page 9 https://tools.ietf.org/html/rfc2131)."},{"line_number":358,"context_line":"    # Otherwords without setting server-ip-address dnsmasq will set siaddr to"},{"line_number":359,"context_line":"    # dnsmasq\u0027s IP, which means that client try to get pxe images from dnsmasq"},{"line_number":360,"context_line":"    # host but we run tftp on ironic-condcutor node."},{"line_number":361,"context_line":"    # There is an informational RFC which describes how options related to"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_7409642f","line":358,"in_reply_to":"7f515b1d_3822ee02","updated":"2017-10-13 10:41:23.000000000","message":"Done","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":6637,"name":"Sam Betts","email":"sam@code-smash.net","username":"sambetts"},"change_message_id":"bee443c2c83166c947bdee71fb61a0822a18ea7e","unresolved":false,"context_lines":[{"line_number":361,"context_line":"    # There is an informational RFC which describes how options related to"},{"line_number":362,"context_line":"    # tftp 150,66 and siaddr should be used https://tools.ietf.org/html/rfc5859"},{"line_number":363,"context_line":"    dhcp_opts.append({\u0027opt_name\u0027: \u0027server-ip-address\u0027,"},{"line_number":364,"context_line":"                      \u0027opt_value\u0027: CONF.pxe.tftp_server})"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    # Append the IP version for all the configuration options"},{"line_number":367,"context_line":"    for opt in dhcp_opts:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_ee1c8cc2","line":364,"updated":"2017-09-25 17:37:26.000000000","message":"I\u0027d be interested to see what other DHCP backends do with this option when its sent to them, right now we\u0027re just hoping that they don\u0027t blow up... Part of me wonders if we should make it possible to hide this behind a default True config option like:\n\n boolopt(\"neutron_dhcp_dnsmasq\",\n        help\u003d\"True if you are using DNSmasq DHCP in neutron\"\n        default\u003dTrue) \n\n...\n\n if CONF.neutron_dhcp_dnsmasq:\n    dhcp_opts.append({\u0027opt_name\u0027: \u0027server-ip-address\u0027,\n                      \u0027opt_value\u0027: CONF.pxe.tftp_server})\n\nThis way if someone does load a DHCP backend that does have a problem with this DHCP option then at least they can disable this.","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"fbfaea6e24060e99857997892e755077777fbb2b","unresolved":false,"context_lines":[{"line_number":361,"context_line":"    # There is an informational RFC which describes how options related to"},{"line_number":362,"context_line":"    # tftp 150,66 and siaddr should be used https://tools.ietf.org/html/rfc5859"},{"line_number":363,"context_line":"    dhcp_opts.append({\u0027opt_name\u0027: \u0027server-ip-address\u0027,"},{"line_number":364,"context_line":"                      \u0027opt_value\u0027: CONF.pxe.tftp_server})"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    # Append the IP version for all the configuration options"},{"line_number":367,"context_line":"    for opt in dhcp_opts:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_2b8f362f","line":364,"in_reply_to":"7f515b1d_0b1b5a1b","updated":"2017-10-05 15:25:18.000000000","message":"Also, if we are about to deprecate the dhcp providers, it doesn\u0027t make sense to add a config here. We should fix it \u0027correctly\u0027 in the new world... :)\n\nI guess we\u0027ll hear if something blows up, but will we hear it before the Queens release. Maybe another reason for getting this change merged sooner rather than later...","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8795de431fde68850505288a8ec11d1e0853f64c","unresolved":false,"context_lines":[{"line_number":361,"context_line":"    # There is an informational RFC which describes how options related to"},{"line_number":362,"context_line":"    # tftp 150,66 and siaddr should be used https://tools.ietf.org/html/rfc5859"},{"line_number":363,"context_line":"    dhcp_opts.append({\u0027opt_name\u0027: \u0027server-ip-address\u0027,"},{"line_number":364,"context_line":"                      \u0027opt_value\u0027: CONF.pxe.tftp_server})"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    # Append the IP version for all the configuration options"},{"line_number":367,"context_line":"    for opt in dhcp_opts:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_0b1b5a1b","line":364,"in_reply_to":"7f515b1d_662c2a02","updated":"2017-10-05 15:21:44.000000000","message":"So, to some extent, it seems to me that this idea of a new config is outside the scope of this patch. I don\u0027t know if we have any out-of-tree dhcp providers that could be affected by this. wrt the neutron case, it\u0027d be better if it can be fixed in neutron, as Vasyl suggests. We should definitely open a bug (and Vasyl can add the bug link to his large comment above, heh.)","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"09588a08b46fdbf348b28a39d8a8c16246c9d2c9","unresolved":false,"context_lines":[{"line_number":361,"context_line":"    # There is an informational RFC which describes how options related to"},{"line_number":362,"context_line":"    # tftp 150,66 and siaddr should be used https://tools.ietf.org/html/rfc5859"},{"line_number":363,"context_line":"    dhcp_opts.append({\u0027opt_name\u0027: \u0027server-ip-address\u0027,"},{"line_number":364,"context_line":"                      \u0027opt_value\u0027: CONF.pxe.tftp_server})"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    # Append the IP version for all the configuration options"},{"line_number":367,"context_line":"    for opt in dhcp_opts:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_662c2a02","line":364,"in_reply_to":"7f515b1d_9b81c392","updated":"2017-09-26 10:05:49.000000000","message":"We discover bug that exited for a years starting from ironic introduction. This commit was created to fix completely different thing - fix usage of contrail neutron backend.\nAt the moment we have at least three dhcp providers - dnsmasq/contrail and dhcpd (see L322) that silently ignore unknown options. We can open a bug here and fix it separately by introducing new config option or by using network interfaces or by reporting this bug to Neutron and trying to fix it on Neutron side (which is more appropriate place to fix as Neutron is a proxy between our requests and dhcp providers).","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"f11b69f518ae86bfb5e57ebe44718400443e5858","unresolved":false,"context_lines":[{"line_number":361,"context_line":"    # There is an informational RFC which describes how options related to"},{"line_number":362,"context_line":"    # tftp 150,66 and siaddr should be used https://tools.ietf.org/html/rfc5859"},{"line_number":363,"context_line":"    dhcp_opts.append({\u0027opt_name\u0027: \u0027server-ip-address\u0027,"},{"line_number":364,"context_line":"                      \u0027opt_value\u0027: CONF.pxe.tftp_server})"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"    # Append the IP version for all the configuration options"},{"line_number":367,"context_line":"    for opt in dhcp_opts:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_9b81c392","line":364,"in_reply_to":"7f515b1d_ee1c8cc2","updated":"2017-09-26 09:36:03.000000000","message":"I agree with Sam, however my feeling is that we better move this logic to a specific method of a networking interface (since we are about to deprecate the DHCP providers any way).\n\nThen the default \u0027neutron\u0027would in fact be \u0027neutron-dnsmasq\u0027, and there would be a possibility to easily extend it for other neutron DHCP backends overriding only a single method, for example \u0027neutron-contrail\u0027.","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"}],"releasenotes/notes/use-dhcp-option-numbers-8b0b0efae912ff5f.yaml":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"4b4497db8ce063698eca80ba2e5bf8e347eb0e6e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixes compatibility with Neutron DHCP backends other than dnsmasq by using"},{"line_number":5,"context_line":"    standard DHCP option codes instead of dnsmasq-specific option names."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"7f515b1d_c77d55e8","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":69},"updated":"2017-09-23 04:10:01.000000000","message":"This gives me impression that the fix is not applicable to dnsmasq, which is not the case. This fix takes care of dnsmasq as well. May be:\n\"Fixes compatibility with Neutron all DHCP backends by using\nstandard DHCP option codes instead of dnsmasq-specific option names.\"","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f296881aa1263cca2b56f525c3c1b704f6c0915e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7f515b1d_4b0dd23c","line":6,"updated":"2017-10-05 15:40:52.000000000","message":"Wow, I hate writing release notes. Do we need to mention the exception \u0027server-ip-address\u0027 ? Or maybe not cuz it was in the original code.\n\nWould it make more sense as something like\n\nUses standard DHCP option codes instead of dnsmasq-specific option names, because different backends use different option names. This fixes the `compatibility issues with neutron\u0027s DHCP backends \u003chttps://bugs.launchpad.net/ironic/+bug/1717236\u003e`.","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f9ed2000ea4463fbae085dbed8b1bb64d65501ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5f4e5783_2169678a","line":6,"in_reply_to":"7f515b1d_2e450416","updated":"2017-10-13 10:41:23.000000000","message":"I don\u0027t think we need to mention behaviour that already exist. We just discovered it and don\u0027t know for sure if it really may break some dhcp servers. We using dnsmasq/isc and contrail and they silently ignore unknown options.","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f9ed2000ea4463fbae085dbed8b1bb64d65501ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5f4e5783_e1ec6f2a","line":6,"in_reply_to":"7f515b1d_4b0dd23c","updated":"2017-10-13 10:41:23.000000000","message":"Done","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"59d44d6aa9fa739812591c96a689318393cdde0d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7f515b1d_2e450416","line":6,"in_reply_to":"7f515b1d_4b0dd23c","updated":"2017-10-05 15:42:08.000000000","message":"Or maybe we should mention \u0027server-ip-address\u0027 in case that does break some dhcp backend... (someone else offer some words for this please!)","commit_id":"b10398197aa1c54abc2028b3c617821006d01e7d"}]}
