)]}'
{"nova/conf/compute.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"47e8227ffa36075cd3b16ef37262d7255f25b021","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        \u0027network_metadata_always_static_ip\u0027,"},{"line_number":228,"context_line":"        default\u003dFalse,"},{"line_number":229,"context_line":"        help\u003d\"\"\""},{"line_number":230,"context_line":"Populates network-metadata as if dhcp is disabled even"},{"line_number":231,"context_line":"if dhcp is enabled on the network."},{"line_number":232,"context_line":"\"\"\"),"},{"line_number":233,"context_line":"    cfg.StrOpt(\u0027preallocate_images\u0027,"},{"line_number":234,"context_line":"        default\u003d\u0027none\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_670a408b","line":231,"range":{"start_line":230,"start_character":0,"end_line":231,"end_character":34},"updated":"2017-04-13 21:59:06.000000000","message":"Could you expand on this a bit to provide more details or examples in which cases an operator might need to do this? I think this is more of a special case for private clouds, and you\u0027d want to avoid this for a public cloud since it could impact users moving workloads around between different clouds.","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"},{"author":{"_account_id":23882,"name":"Dan Peschman","email":"dpeschman@godaddy.com","username":"dtp"},"change_message_id":"2df5a9bb9e40697306979c994305d4d354f038a0","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        default\u003dFalse,"},{"line_number":229,"context_line":"        help\u003d\"\"\""},{"line_number":230,"context_line":"Populates network-metadata as if dhcp is disabled even"},{"line_number":231,"context_line":"if dhcp is enabled on the network."},{"line_number":232,"context_line":"\"\"\"),"},{"line_number":233,"context_line":"    cfg.StrOpt(\u0027preallocate_images\u0027,"},{"line_number":234,"context_line":"        default\u003d\u0027none\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_f6138fb7","line":231,"in_reply_to":"7ffa3b31_32eb58b1","updated":"2017-04-14 20:46:19.000000000","message":"I added our two main use cases for this option to its help text in the next patch.","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"},{"author":{"_account_id":9076,"name":"Kris Lindgren","email":"klindgren@godaddy.com","username":"klindgren"},"change_message_id":"d52b7baf95eae619e76a0ce30ff4df67776c4ec3","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        \u0027network_metadata_always_static_ip\u0027,"},{"line_number":228,"context_line":"        default\u003dFalse,"},{"line_number":229,"context_line":"        help\u003d\"\"\""},{"line_number":230,"context_line":"Populates network-metadata as if dhcp is disabled even"},{"line_number":231,"context_line":"if dhcp is enabled on the network."},{"line_number":232,"context_line":"\"\"\"),"},{"line_number":233,"context_line":"    cfg.StrOpt(\u0027preallocate_images\u0027,"},{"line_number":234,"context_line":"        default\u003d\u0027none\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_32eb58b1","line":231,"range":{"start_line":230,"start_character":0,"end_line":231,"end_character":34},"in_reply_to":"7ffa3b31_670a408b","updated":"2017-04-13 22:45:14.000000000","message":"All this change does is to always populate the network template into config_drive, I assume it also makes it available via metadata - but TBH config_drive is the only path we cared about/checked.  If we want to run a cloud that provides DHCP service as a backup, but we prefer to have instances statically ip\u0027d.  The current code path doesn\u0027t allow this to happen.  Because it checks to see if neutron support dhcp and  if it does, it doesn\u0027t create the template.  So this config option was to simply allow path of least surprise (retain original default functionality).  Also mirrors what is done with existing \"force_config_drive\" setting.\n\nAs someone else asked, is the config option even required. Why not just always provide the network template.  To which I would agree with.\n\nAs for examples.  Sure. \n1.) We want to not have a bunch of VM\u0027s dependent on a service, that if broken could cause VM\u0027s to drop offline (unable to get lease).  IE control plane failure results in dataplane outage.\n\n2.) For people who choose not to static ip, DHCP would be available for their stuff to work.  But all images from us default to static ip.  But for people to get this choice, they need the network template provided via config drive.\n\n3.) We had to actually stop providing dhcp services on our large provider networks because neutron would tip over when a dhcp agent moved.  Attempting to re-calculate port-security rules caused enough database load that agent health checks would fail, then all agents would report down.  Which caused a full neutron re-sync on all the agents....  putting more load on the database... Good times.\n\nBut because we preferred static_ip over DHCP, this change was non-impactful for the majority of our users.  Those that were using dhcp we were able to identify and give them a simple one-line command to run inside their instances to pivot from dhcp to static_ip.  Which would have been much harder to do without config_drive populated.\n\nThe assumption is that all public clouds allow end-users to create networks or provide dhcp.  Which I dont think is actually accurate.","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"4a8b4a7d53515be61b9c2bacac2d3e9061888d85","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"2. Deployments that provision Ironic nodes on their final network instead of"},{"line_number":239,"context_line":"an intermediate provisioning one, and who prefer those nodes to use static"},{"line_number":240,"context_line":"network configuration.  DHCP is required for the intial PXE boot, and this"},{"line_number":241,"context_line":"setting ensures the presence of static network configuration for final state."},{"line_number":242,"context_line":"\"\"\"),"},{"line_number":243,"context_line":"    cfg.StrOpt(\u0027preallocate_images\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"df140735_8491ac55","line":240,"updated":"2017-05-30 05:51:23.000000000","message":"Nit: initial","commit_id":"155b997909a4b9911552ccaacf68a89aaf779d13"}],"nova/conf/virt.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"dc00acb585bcbcbb4ca9ebb75ebd4e05d49727d6","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        help\u003d\"\"\""},{"line_number":218,"context_line":"Populates network-metadata as if dhcp is disabled even"},{"line_number":219,"context_line":"if dhcp is enabled on the network."},{"line_number":220,"context_line":"\"\"\"),"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"# NOTE(yamahata): ListOpt won\u0027t work because the command may include a comma."},{"line_number":223,"context_line":"# For example:"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a1ced50_c02b3f32","line":220,"updated":"2017-03-16 21:36:40.000000000","message":"So, why does this need to be a config flag? I\u0027m not really sure why the code ever didn\u0027t provide the metadata if dhcp was configured.\n\nIf there\u0027s a reason, then that\u0027s fine, but if nobody would ever specifically want this disabled, why not just do it and don\u0027t add another config flag?","commit_id":"2609a5cf5486e8c5a8893ba897bd55f90b388c81"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"003434c8557a3d82060b2127e5fc39cf1578729b","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        help\u003d\"\"\""},{"line_number":218,"context_line":"Populates network-metadata as if dhcp is disabled even"},{"line_number":219,"context_line":"if dhcp is enabled on the network."},{"line_number":220,"context_line":"\"\"\"),"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"# NOTE(yamahata): ListOpt won\u0027t work because the command may include a comma."},{"line_number":223,"context_line":"# For example:"}],"source_content_type":"text/x-python","patch_set":8,"id":"ffe62b97_860c4e94","line":220,"in_reply_to":"1a1ced50_111127ad","updated":"2017-03-29 15:18:24.000000000","message":"The change of behavior might not be a bad thing though. It\u0027ll be surplus information in a lot of cases, but surely that means it\u0027ll just get ignored?","commit_id":"2609a5cf5486e8c5a8893ba897bd55f90b388c81"},{"author":{"_account_id":23882,"name":"Dan Peschman","email":"dpeschman@godaddy.com","username":"dtp"},"change_message_id":"082b308d371deef7705990adf5b91769e918b0e7","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        help\u003d\"\"\""},{"line_number":218,"context_line":"Populates network-metadata as if dhcp is disabled even"},{"line_number":219,"context_line":"if dhcp is enabled on the network."},{"line_number":220,"context_line":"\"\"\"),"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"# NOTE(yamahata): ListOpt won\u0027t work because the command may include a comma."},{"line_number":223,"context_line":"# For example:"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a1ced50_111127ad","line":220,"in_reply_to":"1a1ced50_c02b3f32","updated":"2017-03-16 23:57:39.000000000","message":"It\u0027s a new flag to preserve the way it used to work.  I haven\u0027t been around long enough to know why it is the way it is...hopefully someone else can comment.","commit_id":"2609a5cf5486e8c5a8893ba897bd55f90b388c81"},{"author":{"_account_id":23882,"name":"Dan Peschman","email":"dpeschman@godaddy.com","username":"dtp"},"change_message_id":"c561d24ce7e85eb8862827f695312c342158d9f3","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        help\u003d\"\"\""},{"line_number":218,"context_line":"Populates network-metadata as if dhcp is disabled even"},{"line_number":219,"context_line":"if dhcp is enabled on the network."},{"line_number":220,"context_line":"\"\"\"),"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"# NOTE(yamahata): ListOpt won\u0027t work because the command may include a comma."},{"line_number":223,"context_line":"# For example:"}],"source_content_type":"text/x-python","patch_set":8,"id":"dfeb2761_44d060ca","line":220,"in_reply_to":"ffe62b97_860c4e94","updated":"2017-03-30 17:44:33.000000000","message":"Got some info on this from a coworker.  When DHCP is enabled and a static network template is provided (as when this option is turned on, or as would be if we always did it w/o an option) the default behavior of some in-instance configurators (cloud-init) will prefer the static network and configure the instance thus.  Deployments relying on the fact that if DHCP is enabled, their instances will boot using DHCP, would break if the static network template were now always written out.","commit_id":"2609a5cf5486e8c5a8893ba897bd55f90b388c81"}],"nova/tests/unit/network/test_network_info.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"47e8227ffa36075cd3b16ef37262d7255f25b021","unresolved":false,"context_lines":[{"line_number":859,"context_line":"        self.assertEqual(expected, template)"},{"line_number":860,"context_line":""},{"line_number":861,"context_line":"    def test_always_static_ip_override_network_injected_meta(self):"},{"line_number":862,"context_line":"        cfg.CONF.set_override(\u0027network_metadata_always_static_ip\u0027, True)"},{"line_number":863,"context_line":"        expected \u003d \"\"\"\\"},{"line_number":864,"context_line":"# Injected by Nova on instance boot"},{"line_number":865,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_07f93c7f","line":862,"range":{"start_line":862,"start_character":8,"end_line":862,"end_character":29},"updated":"2017-04-13 21:59:06.000000000","message":"Please use self.flags(network_metadata_always_static_ip\u003dTrue) instead.","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"},{"author":{"_account_id":23882,"name":"Dan Peschman","email":"dpeschman@godaddy.com","username":"dtp"},"change_message_id":"2df5a9bb9e40697306979c994305d4d354f038a0","unresolved":false,"context_lines":[{"line_number":859,"context_line":"        self.assertEqual(expected, template)"},{"line_number":860,"context_line":""},{"line_number":861,"context_line":"    def test_always_static_ip_override_network_injected_meta(self):"},{"line_number":862,"context_line":"        cfg.CONF.set_override(\u0027network_metadata_always_static_ip\u0027, True)"},{"line_number":863,"context_line":"        expected \u003d \"\"\"\\"},{"line_number":864,"context_line":"# Injected by Nova on instance boot"},{"line_number":865,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_96120bb1","line":862,"in_reply_to":"7ffa3b31_07f93c7f","updated":"2017-04-14 20:46:19.000000000","message":"Done","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"47e8227ffa36075cd3b16ef37262d7255f25b021","unresolved":false,"context_lines":[{"line_number":884,"context_line":"        self.assertEqual(expected, template)"},{"line_number":885,"context_line":""},{"line_number":886,"context_line":"    def test_always_static_ip_override_dhcp_server(self):"},{"line_number":887,"context_line":"        cfg.CONF.set_override(\u0027network_metadata_always_static_ip\u0027, True)"},{"line_number":888,"context_line":"        expected \u003d \"\"\"\\"},{"line_number":889,"context_line":"# Injected by Nova on instance boot"},{"line_number":890,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_e7f53085","line":887,"updated":"2017-04-13 21:59:06.000000000","message":"same","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"},{"author":{"_account_id":23882,"name":"Dan Peschman","email":"dpeschman@godaddy.com","username":"dtp"},"change_message_id":"2df5a9bb9e40697306979c994305d4d354f038a0","unresolved":false,"context_lines":[{"line_number":884,"context_line":"        self.assertEqual(expected, template)"},{"line_number":885,"context_line":""},{"line_number":886,"context_line":"    def test_always_static_ip_override_dhcp_server(self):"},{"line_number":887,"context_line":"        cfg.CONF.set_override(\u0027network_metadata_always_static_ip\u0027, True)"},{"line_number":888,"context_line":"        expected \u003d \"\"\"\\"},{"line_number":889,"context_line":"# Injected by Nova on instance boot"},{"line_number":890,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_d61893d4","line":887,"in_reply_to":"7ffa3b31_e7f53085","updated":"2017-04-14 20:46:19.000000000","message":"Done","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"47e8227ffa36075cd3b16ef37262d7255f25b021","unresolved":false,"context_lines":[{"line_number":908,"context_line":"        self.assertEqual(expected, template)"},{"line_number":909,"context_line":""},{"line_number":910,"context_line":"    def test_always_static_ip_override_ipv6_dhcp_server(self):"},{"line_number":911,"context_line":"        cfg.CONF.set_override(\u0027network_metadata_always_static_ip\u0027, True)"},{"line_number":912,"context_line":"        expected \u003d \"\"\"\\"},{"line_number":913,"context_line":"# Injected by Nova on instance boot"},{"line_number":914,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_c7f2349b","line":911,"updated":"2017-04-13 21:59:06.000000000","message":"derp","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"},{"author":{"_account_id":23882,"name":"Dan Peschman","email":"dpeschman@godaddy.com","username":"dtp"},"change_message_id":"2df5a9bb9e40697306979c994305d4d354f038a0","unresolved":false,"context_lines":[{"line_number":908,"context_line":"        self.assertEqual(expected, template)"},{"line_number":909,"context_line":""},{"line_number":910,"context_line":"    def test_always_static_ip_override_ipv6_dhcp_server(self):"},{"line_number":911,"context_line":"        cfg.CONF.set_override(\u0027network_metadata_always_static_ip\u0027, True)"},{"line_number":912,"context_line":"        expected \u003d \"\"\"\\"},{"line_number":913,"context_line":"# Injected by Nova on instance boot"},{"line_number":914,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_b60d0792","line":911,"in_reply_to":"7ffa3b31_c7f2349b","updated":"2017-04-14 20:46:19.000000000","message":"Done","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"47e8227ffa36075cd3b16ef37262d7255f25b021","unresolved":false,"context_lines":[{"line_number":1068,"context_line":"        self.assertEqual(expected_net, net)"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"    def test__get_nets_always_static_ip_overrides_dhcp_server(self):"},{"line_number":1071,"context_line":"        cfg.CONF.set_override(\u0027network_metadata_always_static_ip\u0027, True)"},{"line_number":1072,"context_line":"        ipv4_subnet \u003d fake_network_cache_model.new_subnet("},{"line_number":1073,"context_line":"            subnet_dict\u003ddict(dhcp_server\u003d\u00271.1.1.1\u0027), version\u003d4)"},{"line_number":1074,"context_line":"        self.netinfo[0][\u0027network\u0027][\u0027subnets\u0027][0] \u003d ipv4_subnet"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_a7ef28af","line":1071,"updated":"2017-04-13 21:59:06.000000000","message":"oh yeah","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"},{"author":{"_account_id":23882,"name":"Dan Peschman","email":"dpeschman@godaddy.com","username":"dtp"},"change_message_id":"2df5a9bb9e40697306979c994305d4d354f038a0","unresolved":false,"context_lines":[{"line_number":1068,"context_line":"        self.assertEqual(expected_net, net)"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"    def test__get_nets_always_static_ip_overrides_dhcp_server(self):"},{"line_number":1071,"context_line":"        cfg.CONF.set_override(\u0027network_metadata_always_static_ip\u0027, True)"},{"line_number":1072,"context_line":"        ipv4_subnet \u003d fake_network_cache_model.new_subnet("},{"line_number":1073,"context_line":"            subnet_dict\u003ddict(dhcp_server\u003d\u00271.1.1.1\u0027), version\u003d4)"},{"line_number":1074,"context_line":"        self.netinfo[0][\u0027network\u0027][\u0027subnets\u0027][0] \u003d ipv4_subnet"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_76277f14","line":1071,"in_reply_to":"7ffa3b31_a7ef28af","updated":"2017-04-14 20:46:19.000000000","message":"Done","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"}],"nova/virt/netutils.py":[{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"5ef861aab07fdd66c2b4008c84e455d845867728","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        attached to"},{"line_number":278,"context_line":"    \"\"\""},{"line_number":279,"context_line":"    if subnet.get_meta(\u0027dhcp_server\u0027) is not None:"},{"line_number":280,"context_line":"        if not CONF.network_template_ignore_dhcp:"},{"line_number":281,"context_line":"            net_info \u003d {"},{"line_number":282,"context_line":"                \u0027id\u0027: \u0027network%d\u0027 % net_num,"},{"line_number":283,"context_line":"                \u0027type\u0027: \u0027ipv%d_dhcp\u0027 % version,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_01992379","line":280,"updated":"2016-06-30 21:37:37.000000000","message":"Different conf name than above?","commit_id":"75799848ed6e5c8a8864c6aa4afcdc9eb90474e2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"dc00acb585bcbcbb4ca9ebb75ebd4e05d49727d6","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        ifc_num +\u003d 1"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        if not network.get_meta(\u0027injected\u0027):"},{"line_number":98,"context_line":"            if not CONF.network_metadata_always_static_ip:"},{"line_number":99,"context_line":"                continue"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        hwaddress \u003d vif.get(\u0027address\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a1ced50_a069e38d","line":98,"updated":"2017-03-16 21:36:40.000000000","message":"Can you collapse these? The reason we want to skip is if metadata is not injected and the flag is set. This does that, but not as clearly as using an  \u0027and\u0027 IMHO. Same for all the rest in here.","commit_id":"2609a5cf5486e8c5a8893ba897bd55f90b388c81"},{"author":{"_account_id":23882,"name":"Dan Peschman","email":"dpeschman@godaddy.com","username":"dtp"},"change_message_id":"082b308d371deef7705990adf5b91769e918b0e7","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        ifc_num +\u003d 1"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        if not network.get_meta(\u0027injected\u0027):"},{"line_number":98,"context_line":"            if not CONF.network_metadata_always_static_ip:"},{"line_number":99,"context_line":"                continue"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        hwaddress \u003d vif.get(\u0027address\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a1ced50_b17853fa","line":98,"in_reply_to":"1a1ced50_a069e38d","updated":"2017-03-16 23:57:39.000000000","message":"Yes.","commit_id":"2609a5cf5486e8c5a8893ba897bd55f90b388c81"},{"author":{"_account_id":23882,"name":"Dan Peschman","email":"dpeschman@godaddy.com","username":"dtp"},"change_message_id":"3a0c9e5b460d4b974262384717a179e0b98367db","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        ifc_num +\u003d 1"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        if not network.get_meta(\u0027injected\u0027):"},{"line_number":98,"context_line":"            if not CONF.network_metadata_always_static_ip:"},{"line_number":99,"context_line":"                continue"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        hwaddress \u003d vif.get(\u0027address\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a1ced50_58957f3e","line":98,"in_reply_to":"1a1ced50_b17853fa","updated":"2017-03-17 01:19:27.000000000","message":"Done","commit_id":"2609a5cf5486e8c5a8893ba897bd55f90b388c81"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"47e8227ffa36075cd3b16ef37262d7255f25b021","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        dns \u003d None"},{"line_number":102,"context_line":"        routes \u003d []"},{"line_number":103,"context_line":"        if subnet_v4:"},{"line_number":104,"context_line":"            if (subnet_v4.get_meta(\u0027dhcp_server\u0027) is not None"},{"line_number":105,"context_line":"                and not CONF.network_metadata_always_static_ip):"},{"line_number":106,"context_line":"                    continue"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            if subnet_v4[\u0027ips\u0027]:"},{"line_number":109,"context_line":"                ip \u003d subnet_v4[\u0027ips\u0027][0]"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_073edc28","line":106,"range":{"start_line":104,"start_character":12,"end_line":106,"end_character":28},"updated":"2017-04-13 21:59:06.000000000","message":"Now that I look at this, why isn\u0027t this something to configure on the neutron side so that dhcp_server is disabled or not allowed? Because this is one of those things where someone could be wondering what\u0027s going on when their tenant subnet has a dhcp_server set but they don\u0027t get this information in their guests?","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"},{"author":{"_account_id":23882,"name":"Dan Peschman","email":"dpeschman@godaddy.com","username":"dtp"},"change_message_id":"2df5a9bb9e40697306979c994305d4d354f038a0","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        if subnet_v4:"},{"line_number":104,"context_line":"            if (subnet_v4.get_meta(\u0027dhcp_server\u0027) is not None"},{"line_number":105,"context_line":"                and not CONF.network_metadata_always_static_ip):"},{"line_number":106,"context_line":"                    continue"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            if subnet_v4[\u0027ips\u0027]:"},{"line_number":109,"context_line":"                ip \u003d subnet_v4[\u0027ips\u0027][0]"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_2963d8de","line":106,"in_reply_to":"7ffa3b31_073edc28","updated":"2017-04-14 20:46:19.000000000","message":"For our use cases - DHCP as backup and Ironic PXE boot - DHCP needs to be enabled on the network.  And instances will still have access to DHCP on the real network, so they can still take advantage of it even if this setting is on.","commit_id":"bed0e626083452be5b2228878a8ddd2bef8b5107"}]}
