)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76b4cc7c4ef69f883066b24ac79f2c6c8d52138d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Things are getting a little bit magic here. We don\u0027t want to store"},{"line_number":10,"context_line":"inventory in configuration and we _really_ don\u0027t want to do so with"},{"line_number":11,"context_line":"another JSON blob a la the various \u0027[pci]\u0027 options. Placement is not yet"},{"line_number":12,"context_line":"at a stage where we can avoid the former but we can certainly avoid the"},{"line_number":13,"context_line":"latter. Do so through adding some static opts and some dynamic filter"},{"line_number":14,"context_line":"configuration, similarly to what Cinder does for backend configuration"},{"line_number":15,"context_line":"using its \u0027enabled_backends\u0027 configuration option."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"5f7c97a3_612278bc","line":12,"range":{"start_line":11,"start_character":52,"end_line":12,"end_character":10},"updated":"2018-07-19 16:16:27.000000000","message":"I\u0027m not really sure it has anything to do with placement?","commit_id":"6e3c8197ccc27d010da1f1673eb421f7972dfa33"}],"nova/compute/manager.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"21f497af641916d8b7142a7029172ba01b7b76ed","unresolved":false,"context_lines":[{"line_number":1110,"context_line":"                         \u0027_sync_power_states periodic task.\u0027)"},{"line_number":1111,"context_line":""},{"line_number":1112,"context_line":"    @staticmethod"},{"line_number":1113,"context_line":"    def _register_dynamic_opts():"},{"line_number":1114,"context_line":"        \"\"\"Register dynamically-generated options and groups.\"\"\""},{"line_number":1115,"context_line":"        opt \u003d nova.conf.cfg.ListOpt(\u0027numa_nodes\u0027, default\u003d[],"},{"line_number":1116,"context_line":"                                    item_type\u003dnova.conf.cfg.types.Integer())"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_595cf17b","line":1113,"range":{"start_line":1113,"start_character":8,"end_line":1113,"end_character":30},"updated":"2018-06-01 21:38:03.000000000","message":"IMO it would be better for this method to live in nova.conf.neutron.  That will make it easier for future me to find where/how these options are defined.  (Especially since they\u0027re magic and not in the docs.)","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e5c66cdb8a4ec7cf81abaab057ed52fde6967807","unresolved":false,"context_lines":[{"line_number":1110,"context_line":"                         \u0027_sync_power_states periodic task.\u0027)"},{"line_number":1111,"context_line":""},{"line_number":1112,"context_line":"    @staticmethod"},{"line_number":1113,"context_line":"    def _register_dynamic_opts():"},{"line_number":1114,"context_line":"        \"\"\"Register dynamically-generated options and groups.\"\"\""},{"line_number":1115,"context_line":"        opt \u003d nova.conf.cfg.ListOpt(\u0027numa_nodes\u0027, default\u003d[],"},{"line_number":1116,"context_line":"                                    item_type\u003dnova.conf.cfg.types.Integer())"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_9c71c4ab","line":1113,"range":{"start_line":1113,"start_character":8,"end_line":1113,"end_character":30},"in_reply_to":"5f7c97a3_595cf17b","updated":"2018-06-06 15:46:02.000000000","message":"I can place them there but they need to be called here or somewhere like it. These rely on configuration being initialized so I can parse the value of \u0027CONF.neutron.physnets\u0027, which is only evaluated on service startup.\n\nWhat do you want to do?","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4c39af9723897a97c853a26c889ae728e38edee7","unresolved":false,"context_lines":[{"line_number":1110,"context_line":"                         \u0027_sync_power_states periodic task.\u0027)"},{"line_number":1111,"context_line":""},{"line_number":1112,"context_line":"    @staticmethod"},{"line_number":1113,"context_line":"    def _register_dynamic_opts():"},{"line_number":1114,"context_line":"        \"\"\"Register dynamically-generated options and groups.\"\"\""},{"line_number":1115,"context_line":"        opt \u003d nova.conf.cfg.ListOpt(\u0027numa_nodes\u0027, default\u003d[],"},{"line_number":1116,"context_line":"                                    item_type\u003dnova.conf.cfg.types.Integer())"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_fc7eb8ad","line":1113,"range":{"start_line":1113,"start_character":8,"end_line":1113,"end_character":30},"in_reply_to":"5f7c97a3_9c71c4ab","updated":"2018-06-06 16:16:48.000000000","message":"Right, I assumed you would still have to call it from here.  So yeah, I feel it would be better if this method lived in conf.neutron for the reasons stated.","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"21f497af641916d8b7142a7029172ba01b7b76ed","unresolved":false,"context_lines":[{"line_number":1117,"context_line":""},{"line_number":1118,"context_line":"        # Register the \u0027[neutron_tunnel] numa_nodes\u0027 opt, implicitly"},{"line_number":1119,"context_line":"        # registering the \u0027[neutron_tunnel]\u0027 group in the process. This could"},{"line_number":1120,"context_line":"        # be done statically but is done to avoid this group appearing in"},{"line_number":1121,"context_line":"        # nova.conf documentation while the other group does not."},{"line_number":1122,"context_line":"        CONF.register_opt(opt, group\u003d\u0027neutron_tunnel\u0027)"},{"line_number":1123,"context_line":""},{"line_number":1124,"context_line":"        # Register the \u0027[neutron_physnet_$PHYSNET] numa_nodes\u0027 opts, implicitly"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_3959f58c","line":1121,"range":{"start_line":1120,"start_character":44,"end_line":1121,"end_character":65},"updated":"2018-06-01 21:38:03.000000000","message":"Not sure why we care.","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67f2d1d085fd6ae5c083af0a213b97f3450ec2f2","unresolved":false,"context_lines":[{"line_number":1117,"context_line":""},{"line_number":1118,"context_line":"        # Register the \u0027[neutron_tunnel] numa_nodes\u0027 opt, implicitly"},{"line_number":1119,"context_line":"        # registering the \u0027[neutron_tunnel]\u0027 group in the process. This could"},{"line_number":1120,"context_line":"        # be done statically but is done to avoid this group appearing in"},{"line_number":1121,"context_line":"        # nova.conf documentation while the other group does not."},{"line_number":1122,"context_line":"        CONF.register_opt(opt, group\u003d\u0027neutron_tunnel\u0027)"},{"line_number":1123,"context_line":""},{"line_number":1124,"context_line":"        # Register the \u0027[neutron_physnet_$PHYSNET] numa_nodes\u0027 opts, implicitly"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_3c3d102c","line":1121,"range":{"start_line":1120,"start_character":44,"end_line":1121,"end_character":65},"in_reply_to":"5f7c97a3_3959f58c","updated":"2018-06-06 16:02:02.000000000","message":"My attention to detail cares :) If one group is there, the other one should be there too","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4c39af9723897a97c853a26c889ae728e38edee7","unresolved":false,"context_lines":[{"line_number":1117,"context_line":""},{"line_number":1118,"context_line":"        # Register the \u0027[neutron_tunnel] numa_nodes\u0027 opt, implicitly"},{"line_number":1119,"context_line":"        # registering the \u0027[neutron_tunnel]\u0027 group in the process. This could"},{"line_number":1120,"context_line":"        # be done statically but is done to avoid this group appearing in"},{"line_number":1121,"context_line":"        # nova.conf documentation while the other group does not."},{"line_number":1122,"context_line":"        CONF.register_opt(opt, group\u003d\u0027neutron_tunnel\u0027)"},{"line_number":1123,"context_line":""},{"line_number":1124,"context_line":"        # Register the \u0027[neutron_physnet_$PHYSNET] numa_nodes\u0027 opts, implicitly"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_1c7a94b9","line":1121,"range":{"start_line":1120,"start_character":44,"end_line":1121,"end_character":65},"in_reply_to":"5f7c97a3_3c3d102c","updated":"2018-06-06 16:16:48.000000000","message":"Just figured more showing up in the docs is better than less.  Not holding up on this, just a thought.","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"}],"nova/conf/neutron.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"26d94f397be15419c81b1b216c297ca56292c67a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"extensions that it has loaded.  Setting value to 0 will refresh the"},{"line_number":78,"context_line":"extensions with no wait."},{"line_number":79,"context_line":"\"\"\"),"},{"line_number":80,"context_line":"    cfg.ListOpt(\u0027physnets\u0027,"},{"line_number":81,"context_line":"        default\u003d[],"},{"line_number":82,"context_line":"        help\u003d\"\"\""},{"line_number":83,"context_line":"List of physnets present on this host."}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_24bbcde5","line":80,"range":{"start_line":80,"start_character":17,"end_line":80,"end_character":25},"updated":"2018-04-30 09:51:11.000000000","message":"what is the behavior when the neutron port is associated with a physnet not in this list.\n\nto keep the same behavior as today i would assume that we sould treat it as haveing non numa affinity.\n\nthis would be required to not change behavior on upgrade as we are not ment to required config change as part of upgrade.","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4f4f1c77adc1f6294a57490fb7a68f1744a223ec","unresolved":false,"context_lines":[{"line_number":77,"context_line":"extensions that it has loaded.  Setting value to 0 will refresh the"},{"line_number":78,"context_line":"extensions with no wait."},{"line_number":79,"context_line":"\"\"\"),"},{"line_number":80,"context_line":"    cfg.ListOpt(\u0027physnets\u0027,"},{"line_number":81,"context_line":"        default\u003d[],"},{"line_number":82,"context_line":"        help\u003d\"\"\""},{"line_number":83,"context_line":"List of physnets present on this host."}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_d193d14e","line":80,"range":{"start_line":80,"start_character":17,"end_line":80,"end_character":25},"in_reply_to":"9f6a8fd7_24bbcde5","updated":"2018-05-07 10:45:43.000000000","message":"Done","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"392d3dfe5ac15b3edc12cf0f17e5b38c09a9f676","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For each *{physnet}* listed, an additional section,"},{"line_number":86,"context_line":"``[neutron_physnet_{physnet}]``, will be added to the configuration file. Each"},{"line_number":87,"context_line":"section will take a single key, ``numa_nodes``, which should be a list of all"},{"line_number":88,"context_line":"NUMA nodes this physnet is associated with."},{"line_number":89,"context_line":"\"\"\"),"},{"line_number":90,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_6ce79f48","line":87,"range":{"start_line":87,"start_character":7,"end_line":87,"end_character":30},"updated":"2018-04-26 15:05:38.000000000","message":"what about the tunnelling bool?","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"14473f4d6177c24db3cc13d991ec811f7612072c","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For each *{physnet}* listed, an additional section,"},{"line_number":86,"context_line":"``[neutron_physnet_{physnet}]``, will be added to the configuration file. Each"},{"line_number":87,"context_line":"section will take a single key, ``numa_nodes``, which should be a list of all"},{"line_number":88,"context_line":"NUMA nodes this physnet is associated with."},{"line_number":89,"context_line":"\"\"\"),"},{"line_number":90,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_bc294ef3","line":87,"range":{"start_line":87,"start_character":7,"end_line":87,"end_character":30},"in_reply_to":"9f6a8fd7_6ce79f48","updated":"2018-04-27 14:27:02.000000000","message":"There is no spoon^?^?^? tunneling bool. More on this in a bit","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2b9de78892c0bed0030bf131df4d2a4ffbe516a7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"For each *{physnet}* listed, an additional section,"},{"line_number":86,"context_line":"``[neutron_physnet_{physnet}]``, will be added to the configuration file. Each"},{"line_number":87,"context_line":"section will take a single key, ``numa_nodes``, which should be a list of all"},{"line_number":88,"context_line":"NUMA nodes this physnet is associated with."},{"line_number":89,"context_line":"\"\"\"),"},{"line_number":90,"context_line":"]"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_a65dc1ea","line":88,"range":{"start_line":88,"start_character":0,"end_line":88,"end_character":10},"updated":"2018-04-27 12:20:38.000000000","message":"maybe \"NUMA node IDs\" is more specific. Also an example would be nice to have in the description as there are couple of dynamic pieces here.","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fb295b503bc0e7a748330ea06845d580fa4d04f7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"For each *{physnet}* listed, an additional section,"},{"line_number":86,"context_line":"``[neutron_physnet_{physnet}]``, will be added to the configuration file. Each"},{"line_number":87,"context_line":"section will take a single key, ``numa_nodes``, which should be a list of all"},{"line_number":88,"context_line":"NUMA nodes this physnet is associated with."},{"line_number":89,"context_line":"\"\"\"),"},{"line_number":90,"context_line":"]"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_40db7f4e","line":88,"updated":"2018-04-26 15:49:54.000000000","message":"should we raise an exception if at least one physnet is not getting numa_nodes set ? Is that blocking ? (I see the default to [] so I guess no).","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"14473f4d6177c24db3cc13d991ec811f7612072c","unresolved":false,"context_lines":[{"line_number":85,"context_line":"For each *{physnet}* listed, an additional section,"},{"line_number":86,"context_line":"``[neutron_physnet_{physnet}]``, will be added to the configuration file. Each"},{"line_number":87,"context_line":"section will take a single key, ``numa_nodes``, which should be a list of all"},{"line_number":88,"context_line":"NUMA nodes this physnet is associated with."},{"line_number":89,"context_line":"\"\"\"),"},{"line_number":90,"context_line":"]"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_fc1fc6b4","line":88,"in_reply_to":"9f6a8fd7_40db7f4e","updated":"2018-04-27 14:27:02.000000000","message":"\u003e should we raise an exception if at least one physnet is not getting\n \u003e numa_nodes set ? Is that blocking ? (I see the default to [] so I\n \u003e guess no).\n\nNo, I specifically do not want to do this. Some networks could be used for things like management networks where we don\u0027t care about NUMA affinity.\n\n...unless you mean if \u0027[neutron] physnets\u003dfoo,bar\u0027 and there\u0027s no \u0027[neutron_physnet_foo]\u0027 section defined, in which case that\u0027s a totally reasonable ask.","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"14473f4d6177c24db3cc13d991ec811f7612072c","unresolved":false,"context_lines":[{"line_number":85,"context_line":"For each *{physnet}* listed, an additional section,"},{"line_number":86,"context_line":"``[neutron_physnet_{physnet}]``, will be added to the configuration file. Each"},{"line_number":87,"context_line":"section will take a single key, ``numa_nodes``, which should be a list of all"},{"line_number":88,"context_line":"NUMA nodes this physnet is associated with."},{"line_number":89,"context_line":"\"\"\"),"},{"line_number":90,"context_line":"]"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_7c33b663","line":88,"range":{"start_line":88,"start_character":0,"end_line":88,"end_character":10},"in_reply_to":"9f6a8fd7_a65dc1ea","updated":"2018-04-27 14:27:02.000000000","message":"\u003e maybe \"NUMA node IDs\" is more specific. Also an example would be\n \u003e nice to have in the description as there are couple of dynamic\n \u003e pieces here.\n\nYeah, I can do both of these.","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"26d94f397be15419c81b1b216c297ca56292c67a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"For each *{physnet}* listed, an additional section,"},{"line_number":86,"context_line":"``[neutron_physnet_{physnet}]``, will be added to the configuration file. Each"},{"line_number":87,"context_line":"section will take a single key, ``numa_nodes``, which should be a list of all"},{"line_number":88,"context_line":"NUMA nodes this physnet is associated with."},{"line_number":89,"context_line":"\"\"\"),"},{"line_number":90,"context_line":"]"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_841739ee","line":88,"in_reply_to":"9f6a8fd7_fc1fc6b4","updated":"2018-04-30 09:51:11.000000000","message":"well if there was no neutron_physnet_foo you could treat it as a warning by pretending it exits and use the defaults of is not a tunnel provider and has no numa affinity.\n\nwheter this is a warning or error kindof depend on your answer to my question on line 80 above.","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"21f497af641916d8b7142a7029172ba01b7b76ed","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        help\u003d\"\"\""},{"line_number":83,"context_line":"List of physnets present on this host."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For each *physnet* listed, an additional section,"},{"line_number":86,"context_line":"``[neutron_physnet_$PHYSNET]``, will be added to the configuration file. Each"},{"line_number":87,"context_line":"section must be configured with a single configuration option, ``numa_nodes``,"},{"line_number":88,"context_line":"which should be a list of node IDs for all NUMA nodes this physnet is"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_39e7b5ae","line":85,"range":{"start_line":85,"start_character":30,"end_line":85,"end_character":48},"updated":"2018-06-01 21:38:03.000000000","message":"`Related options` section?","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4c39af9723897a97c853a26c889ae728e38edee7","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        help\u003d\"\"\""},{"line_number":83,"context_line":"List of physnets present on this host."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For each *physnet* listed, an additional section,"},{"line_number":86,"context_line":"``[neutron_physnet_$PHYSNET]``, will be added to the configuration file. Each"},{"line_number":87,"context_line":"section must be configured with a single configuration option, ``numa_nodes``,"},{"line_number":88,"context_line":"which should be a list of node IDs for all NUMA nodes this physnet is"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_3f966296","line":85,"range":{"start_line":85,"start_character":30,"end_line":85,"end_character":48},"in_reply_to":"5f7c97a3_39e7b5ae","updated":"2018-06-06 16:16:48.000000000","message":"Well, that was a confusing comment.  What I meant was that other options\u0027 docs have a \"Related options\" section where they list... related options like what you\u0027ve done here.  I\u0027m asking whether it would be appropriate to format this one thusly.","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2d290e820094f3a926d4e9480da0a20243e22e87","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        help\u003d\"\"\""},{"line_number":83,"context_line":"List of physnets present on this host."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For each *physnet* listed, an additional section,"},{"line_number":86,"context_line":"``[neutron_physnet_$PHYSNET]``, will be added to the configuration file. Each"},{"line_number":87,"context_line":"section must be configured with a single configuration option, ``numa_nodes``,"},{"line_number":88,"context_line":"which should be a list of node IDs for all NUMA nodes this physnet is"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_3fc42292","line":85,"range":{"start_line":85,"start_character":30,"end_line":85,"end_character":48},"in_reply_to":"5f7c97a3_3f966296","updated":"2018-06-07 09:02:51.000000000","message":"Yeah, that makes sense to me. Done.","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"21f497af641916d8b7142a7029172ba01b7b76ed","unresolved":false,"context_lines":[{"line_number":104,"context_line":"are instead configured using the ``[neutron_tunnel]`` group. For example::"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    [neutron_tunnel]"},{"line_number":107,"context_line":"    numa_nodes \u003d 1"},{"line_number":108,"context_line":"\"\"\"),"},{"line_number":109,"context_line":"]"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_f96dbd31","line":107,"range":{"start_line":107,"start_character":4,"end_line":107,"end_character":14},"updated":"2018-06-01 21:38:03.000000000","message":"Previous patch mentions that only one node can be a tunnel (whatever that means).  Is that a hard/permanent restriction?  If so, perhaps this would be better as its own (statically-defined, singular) opt:\n\n [neutron]\n tunnel_numa_node \u003d 1","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4c39af9723897a97c853a26c889ae728e38edee7","unresolved":false,"context_lines":[{"line_number":104,"context_line":"are instead configured using the ``[neutron_tunnel]`` group. For example::"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    [neutron_tunnel]"},{"line_number":107,"context_line":"    numa_nodes \u003d 1"},{"line_number":108,"context_line":"\"\"\"),"},{"line_number":109,"context_line":"]"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_1f8b6668","line":107,"range":{"start_line":107,"start_character":4,"end_line":107,"end_character":14},"in_reply_to":"5f7c97a3_7ca38801","updated":"2018-06-06 16:16:48.000000000","message":"Thanks for the explanation (here and IRC [1]).\n\n[1] http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2018-06-06.log.html#t2018-06-06T16:10:13","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e5c66cdb8a4ec7cf81abaab057ed52fde6967807","unresolved":false,"context_lines":[{"line_number":104,"context_line":"are instead configured using the ``[neutron_tunnel]`` group. For example::"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    [neutron_tunnel]"},{"line_number":107,"context_line":"    numa_nodes \u003d 1"},{"line_number":108,"context_line":"\"\"\"),"},{"line_number":109,"context_line":"]"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_7ca38801","line":107,"range":{"start_line":107,"start_character":4,"end_line":107,"end_character":14},"in_reply_to":"5f7c97a3_f96dbd31","updated":"2018-06-06 15:46:02.000000000","message":"Other way around - only one tunnel provider can exist on a compute host. I could use \u0027tunnel_numa_nodes\u0027 but that\u0027s different from how we do physnets for no good reason.","commit_id":"2a7207a144ae28fb3fa2d67e62896ed378bdcddb"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e6fcb76728ab7aad97e9bf176e4b5705e6f2b9d2","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Any *physnet* that is not listed using this option will be treated as having no"},{"line_number":101,"context_line":"particular NUMA node affinity."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Tunnelled networks (VXLAN, GRE, ...) cannot be accounted for in this way and"},{"line_number":104,"context_line":"are instead configured using the ``[neutron_tunnel]`` group. For example::"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    [neutron_tunnel]"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_f4e48810","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":9},"updated":"2018-06-06 22:04:08.000000000","message":"one \u0027l\u0027 or two; be consistent.","commit_id":"1b708f272128fed172966c01d17a57010350b65b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2d290e820094f3a926d4e9480da0a20243e22e87","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Any *physnet* that is not listed using this option will be treated as having no"},{"line_number":101,"context_line":"particular NUMA node affinity."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Tunnelled networks (VXLAN, GRE, ...) cannot be accounted for in this way and"},{"line_number":104,"context_line":"are instead configured using the ``[neutron_tunnel]`` group. For example::"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    [neutron_tunnel]"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_480cb493","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":9},"in_reply_to":"5f7c97a3_f4e48810","updated":"2018-06-07 09:02:51.000000000","message":"Missed this one. I\u0027ll address in a follow-up unless I need to respin","commit_id":"1b708f272128fed172966c01d17a57010350b65b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4e305c34d244113fe68cf0db541d51f1fc64848c","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    numa_nodes \u003d 0,1"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Any *physnet* that is not listed using this option will be treated as having no"},{"line_number":101,"context_line":"particular NUMA node affinity."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Tunnelled networks (VXLAN, GRE, ...) cannot be accounted for in this way and"},{"line_number":104,"context_line":"are instead configured using the ``[neutron_tunnel]`` group. For example::"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_06917f52","line":101,"updated":"2018-06-11 17:31:38.000000000","message":"This isn\u0027t true as of this patch.","commit_id":"857c9c4f71a41cd3188532243b39369fd1f7736d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76b4cc7c4ef69f883066b24ac79f2c6c8d52138d","unresolved":false,"context_lines":[{"line_number":77,"context_line":"extensions that it has loaded.  Setting value to 0 will refresh the"},{"line_number":78,"context_line":"extensions with no wait."},{"line_number":79,"context_line":"\"\"\"),"},{"line_number":80,"context_line":"    cfg.ListOpt(\u0027physnets\u0027,"},{"line_number":81,"context_line":"        default\u003d[],"},{"line_number":82,"context_line":"        help\u003d\"\"\""},{"line_number":83,"context_line":"List of physnets present on this host."}],"source_content_type":"text/x-python","patch_set":21,"id":"5f7c97a3_6448462d","line":80,"updated":"2018-07-19 16:16:27.000000000","message":"Docs look nice:\n\nhttp://logs.openstack.org/40/564440/21/check/build-openstack-sphinx-docs/c336913/html/configuration/config.html#neutron.physnets","commit_id":"6e3c8197ccc27d010da1f1673eb421f7972dfa33"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76b4cc7c4ef69f883066b24ac79f2c6c8d52138d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    cfg.ListOpt(\u0027physnets\u0027,"},{"line_number":81,"context_line":"        default\u003d[],"},{"line_number":82,"context_line":"        help\u003d\"\"\""},{"line_number":83,"context_line":"List of physnets present on this host."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"For each *physnet* listed, an additional section,"},{"line_number":86,"context_line":"``[neutron_physnet_$PHYSNET]``, will be added to the configuration file. Each"}],"source_content_type":"text/x-python","patch_set":21,"id":"5f7c97a3_011b847f","line":83,"range":{"start_line":83,"start_character":8,"end_line":83,"end_character":16},"updated":"2018-07-19 16:16:27.000000000","message":"nit: phsyical network names?","commit_id":"6e3c8197ccc27d010da1f1673eb421f7972dfa33"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76b4cc7c4ef69f883066b24ac79f2c6c8d52138d","unresolved":false,"context_lines":[{"line_number":109,"context_line":"Related options:"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* ``[neutron_tunnel] numa_nodes`` can be used to configure NUMA affinity for"},{"line_number":112,"context_line":"  all tunneled networks"},{"line_number":113,"context_line":"* ``[neutron_physnet_$PHYSNET] numa_nodes`` must be configured for each value"},{"line_number":114,"context_line":"  of ``$PHYSNET`` specified by this option"},{"line_number":115,"context_line":"\"\"\"),"}],"source_content_type":"text/x-python","patch_set":21,"id":"5f7c97a3_245d6e15","line":112,"range":{"start_line":112,"start_character":2,"end_line":112,"end_character":23},"updated":"2018-07-19 16:16:27.000000000","message":"all tunneled networks on this host","commit_id":"6e3c8197ccc27d010da1f1673eb421f7972dfa33"}],"nova/config.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fb295b503bc0e7a748330ea06845d580fa4d04f7","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def _register_neutron_numa_opts():"},{"line_number":34,"context_line":"    opt \u003d nova.conf.cfg.ListOpt(\u0027numa_nodes\u0027, default\u003d[],"},{"line_number":35,"context_line":"                                item_type\u003dnova.conf.cfg.types.Integer())"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    CONF.register_opt(opt, group\u003d\u0027neutron_tunnel\u0027)"},{"line_number":38,"context_line":"    for physnet in CONF.neutron.physnets:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_6012430c","line":35,"updated":"2018-04-26 15:49:54.000000000","message":"I\u0027d prefer to have that option defined in the config/compute.py module with some help.","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"14473f4d6177c24db3cc13d991ec811f7612072c","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def _register_neutron_numa_opts():"},{"line_number":34,"context_line":"    opt \u003d nova.conf.cfg.ListOpt(\u0027numa_nodes\u0027, default\u003d[],"},{"line_number":35,"context_line":"                                item_type\u003dnova.conf.cfg.types.Integer())"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    CONF.register_opt(opt, group\u003d\u0027neutron_tunnel\u0027)"},{"line_number":38,"context_line":"    for physnet in CONF.neutron.physnets:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_3c545e54","line":35,"in_reply_to":"9f6a8fd7_6012430c","updated":"2018-04-27 14:27:02.000000000","message":"Fair. I can move this","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"392d3dfe5ac15b3edc12cf0f17e5b38c09a9f676","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    opt \u003d nova.conf.cfg.ListOpt(\u0027numa_nodes\u0027, default\u003d[],"},{"line_number":35,"context_line":"                                item_type\u003dnova.conf.cfg.types.Integer())"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    CONF.register_opt(opt, group\u003d\u0027neutron_tunnel\u0027)"},{"line_number":38,"context_line":"    for physnet in CONF.neutron.physnets:"},{"line_number":39,"context_line":"        CONF.register_opt(opt, group\u003d\u0027neutron_physnet_%s\u0027 % physnet)"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_ecc3af89","line":37,"range":{"start_line":37,"start_character":27,"end_line":37,"end_character":50},"updated":"2018-04-26 15:05:38.000000000","message":"I\u0027m confused by the above. Why is the group \u0027neutron_tunnel\u0027 being added to? In fact, what is the \"neutron_tunnel\" group to begin with?","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4f4f1c77adc1f6294a57490fb7a68f1744a223ec","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    opt \u003d nova.conf.cfg.ListOpt(\u0027numa_nodes\u0027, default\u003d[],"},{"line_number":35,"context_line":"                                item_type\u003dnova.conf.cfg.types.Integer())"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    CONF.register_opt(opt, group\u003d\u0027neutron_tunnel\u0027)"},{"line_number":38,"context_line":"    for physnet in CONF.neutron.physnets:"},{"line_number":39,"context_line":"        CONF.register_opt(opt, group\u003d\u0027neutron_physnet_%s\u0027 % physnet)"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_71e99d7e","line":37,"range":{"start_line":37,"start_character":27,"end_line":37,"end_character":50},"in_reply_to":"9f6a8fd7_04b6c9da","updated":"2018-05-07 10:45:43.000000000","message":"\u003e well technincally overlay networks have the physnet set to none\n \u003e \n \u003e so you could use a neutron_physnet_none group for this if you did\n \u003e not want a sperate group. though it should be noted its teh object\n \u003e None not the stirng \"none\" so you should not set the physnet to non\n \u003e when dealing with them in the neutron api but for nova use it\n \u003e should work.\n \u003e \n \u003e treating it as a seperate group also works and has the benifit of\n \u003e being more expcitly but i guess we could use a config comment to to\n \u003e document that neutron_physnet_none means tunnel networks.\n\nTo be honest, I\u0027d rather not conflate the two things. This would be equivalent to being a shop stocking many types of apple and \"generic\" oranges using the following:\n\n  [fruit_apple_pinklady]\n  price \u003d 0.75\n\n  [fruit_apple_grannysmith]\n  price \u003d 0.50\n\n  [fruit_apple_none]\n  price \u003d 0.65\n\nwhere \u0027[fruit_apple_none]\u0027 is the orange. Oranges !\u003d apples and physnets !\u003d tunnelled networks :)","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"26d94f397be15419c81b1b216c297ca56292c67a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    opt \u003d nova.conf.cfg.ListOpt(\u0027numa_nodes\u0027, default\u003d[],"},{"line_number":35,"context_line":"                                item_type\u003dnova.conf.cfg.types.Integer())"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    CONF.register_opt(opt, group\u003d\u0027neutron_tunnel\u0027)"},{"line_number":38,"context_line":"    for physnet in CONF.neutron.physnets:"},{"line_number":39,"context_line":"        CONF.register_opt(opt, group\u003d\u0027neutron_physnet_%s\u0027 % physnet)"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_04b6c9da","line":37,"range":{"start_line":37,"start_character":27,"end_line":37,"end_character":50},"in_reply_to":"9f6a8fd7_77f19101","updated":"2018-04-30 09:51:11.000000000","message":"well technincally overlay networks have the physnet set to none\n\nso you could use a neutron_physnet_none group for this if you did not want a sperate group. though it should be noted its teh object None not the stirng \"none\" so you should not set the physnet to non when dealing with them in the neutron api but for nova use it should work.\n\ntreating it as a seperate group also works and has the benifit of being more expcitly but i guess we could use a config comment to to document that neutron_physnet_none means tunnel networks.","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"14473f4d6177c24db3cc13d991ec811f7612072c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    opt \u003d nova.conf.cfg.ListOpt(\u0027numa_nodes\u0027, default\u003d[],"},{"line_number":35,"context_line":"                                item_type\u003dnova.conf.cfg.types.Integer())"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    CONF.register_opt(opt, group\u003d\u0027neutron_tunnel\u0027)"},{"line_number":38,"context_line":"    for physnet in CONF.neutron.physnets:"},{"line_number":39,"context_line":"        CONF.register_opt(opt, group\u003d\u0027neutron_physnet_%s\u0027 % physnet)"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_77f19101","line":37,"range":{"start_line":37,"start_character":27,"end_line":37,"end_character":50},"in_reply_to":"9f6a8fd7_ecc3af89","updated":"2018-04-27 14:27:02.000000000","message":"\u003e I\u0027m confused by the above. Why is the group \u0027neutron_tunnel\u0027 being\n \u003e added to? In fact, what is the \"neutron_tunnel\" group to begin\n \u003e with?\n\nWhat gibi said. I\u0027m still trying to grasp this (neutron is confusing) but it seems you can have overlay networks (L3, VXLAN or GRE) and provider networks (L2, flat or VLAN) and they\u0027re different things. See:\n\n- https://docs.openstack.org/neutron/queens/admin/deploy-ovs-provider.html\n- https://docs.openstack.org/neutron/queens/admin/deploy-ovs-selfservice.html\n\nAs Sean has noted elsewhere, there\u0027s can be many overlay networks but they will always use the same, single endpoint IP (and therefore the same NIC(s)). As such, for NUMA affinity we can think of them as one thing and only need to consider the affinity of whatever NIC(s) the endpoint IP is associated with. Provider networks, on the other hand, must be mapped to physnets and these in turn are mapped to something like bridges (for OVS). As such, for NUMA affinity we think of it per physnet (as a physnet maps to a bridge, which in turn contains NICs)\n\nOverlay networks don\u0027t have a physnet so we can\u0027t put them in a \u0027neutron_physnet_xxx\u0027 group (because we couldn\u0027t populate \u0027xxx\u0027). However, we do still need some way to ensure overlay networks get NUMA affinity, hence the separate group.","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2b9de78892c0bed0030bf131df4d2a4ffbe516a7","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    opt \u003d nova.conf.cfg.ListOpt(\u0027numa_nodes\u0027, default\u003d[],"},{"line_number":35,"context_line":"                                item_type\u003dnova.conf.cfg.types.Integer())"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    CONF.register_opt(opt, group\u003d\u0027neutron_tunnel\u0027)"},{"line_number":38,"context_line":"    for physnet in CONF.neutron.physnets:"},{"line_number":39,"context_line":"        CONF.register_opt(opt, group\u003d\u0027neutron_physnet_%s\u0027 % physnet)"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_661d690e","line":37,"range":{"start_line":37,"start_character":27,"end_line":37,"end_character":50},"in_reply_to":"9f6a8fd7_ecc3af89","updated":"2018-04-27 12:20:38.000000000","message":"It is used as:\n\n  [neutron_tunnel]\n  numa_nodes \u003d 1\n\nDefined in the spec https://review.openstack.org/#/c/541290/8/specs/rocky/approved/numa-aware-vswitches.rst@205","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fb295b503bc0e7a748330ea06845d580fa4d04f7","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    opt \u003d nova.conf.cfg.ListOpt(\u0027numa_nodes\u0027, default\u003d[],"},{"line_number":35,"context_line":"                                item_type\u003dnova.conf.cfg.types.Integer())"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    CONF.register_opt(opt, group\u003d\u0027neutron_tunnel\u0027)"},{"line_number":38,"context_line":"    for physnet in CONF.neutron.physnets:"},{"line_number":39,"context_line":"        CONF.register_opt(opt, group\u003d\u0027neutron_physnet_%s\u0027 % physnet)"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_a0313ba5","line":37,"range":{"start_line":37,"start_character":27,"end_line":37,"end_character":50},"in_reply_to":"9f6a8fd7_ecc3af89","updated":"2018-04-26 15:49:54.000000000","message":"Yeah, it\u0027s bizarre.","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"392d3dfe5ac15b3edc12cf0f17e5b38c09a9f676","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        extra_default_log_levels \u003d [\u0027glanceclient\u003dDEBUG\u0027]"},{"line_number":49,"context_line":"    else:"},{"line_number":50,"context_line":"        extra_default_log_levels \u003d [\u0027glanceclient\u003dWARN\u0027]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    log.set_defaults(default_log_levels\u003dlog.get_default_log_levels() +"},{"line_number":53,"context_line":"                     extra_default_log_levels)"},{"line_number":54,"context_line":"    rpc.set_defaults(control_exchange\u003d\u0027nova\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_0cc14381","line":51,"updated":"2018-04-26 15:05:38.000000000","message":"unrelated change?","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fb295b503bc0e7a748330ea06845d580fa4d04f7","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        extra_default_log_levels \u003d [\u0027glanceclient\u003dDEBUG\u0027]"},{"line_number":49,"context_line":"    else:"},{"line_number":50,"context_line":"        extra_default_log_levels \u003d [\u0027glanceclient\u003dWARN\u0027]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    log.set_defaults(default_log_levels\u003dlog.get_default_log_levels() +"},{"line_number":53,"context_line":"                     extra_default_log_levels)"},{"line_number":54,"context_line":"    rpc.set_defaults(control_exchange\u003d\u0027nova\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_40585ff9","line":51,"in_reply_to":"9f6a8fd7_0cc14381","updated":"2018-04-26 15:49:54.000000000","message":"+1","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"14473f4d6177c24db3cc13d991ec811f7612072c","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        extra_default_log_levels \u003d [\u0027glanceclient\u003dDEBUG\u0027]"},{"line_number":49,"context_line":"    else:"},{"line_number":50,"context_line":"        extra_default_log_levels \u003d [\u0027glanceclient\u003dWARN\u0027]"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    log.set_defaults(default_log_levels\u003dlog.get_default_log_levels() +"},{"line_number":53,"context_line":"                     extra_default_log_levels)"},{"line_number":54,"context_line":"    rpc.set_defaults(control_exchange\u003d\u0027nova\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_f75281de","line":51,"in_reply_to":"9f6a8fd7_40585ff9","updated":"2018-04-27 14:27:02.000000000","message":"Whoops. I\u0027ll address.","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fb295b503bc0e7a748330ea06845d580fa4d04f7","unresolved":false,"context_lines":[{"line_number":62,"context_line":"         default_config_files\u003ddefault_config_files)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    # We register some dynamic options for physnet, tunnel affinity"},{"line_number":65,"context_line":"    _register_neutron_numa_opts()"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    if init_rpc:"},{"line_number":68,"context_line":"        rpc.init(CONF)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_a0637bb1","line":65,"updated":"2018-04-26 15:49:54.000000000","message":"that\u0027s only for a compute service, right? \nIf so, you should register those options in the compute_manager.init_host() method IMHO.","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"14473f4d6177c24db3cc13d991ec811f7612072c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"         default_config_files\u003ddefault_config_files)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    # We register some dynamic options for physnet, tunnel affinity"},{"line_number":65,"context_line":"    _register_neutron_numa_opts()"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    if init_rpc:"},{"line_number":68,"context_line":"        rpc.init(CONF)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_b75e49e7","line":65,"in_reply_to":"9f6a8fd7_a0637bb1","updated":"2018-04-27 14:27:02.000000000","message":"Sure","commit_id":"02c38d5488e0042e68135a3a51666483632ba181"}],"nova/tests/unit/conf/test_neutron.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"630d4aea5acb84ee13d1ce24e912961f3c3d91fb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"5f7c97a3_3ead7fe6","line":34,"updated":"2018-07-19 15:04:29.000000000","message":"you could check the [neutron_tunnel] numa_nodes as well","commit_id":"6e3c8197ccc27d010da1f1673eb421f7972dfa33"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76b4cc7c4ef69f883066b24ac79f2c6c8d52138d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"5f7c97a3_a453bedd","line":34,"in_reply_to":"5f7c97a3_3ead7fe6","updated":"2018-07-19 16:16:27.000000000","message":"++ - could do that in the follow up patch also.","commit_id":"6e3c8197ccc27d010da1f1673eb421f7972dfa33"}]}
