)]}'
{"lib/neutron":[{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"b25a030cf0488bf71a1a17f12d334b4debf5cb07","unresolved":false,"context_lines":[{"line_number":435,"context_line":"    fi"},{"line_number":436,"context_line":"    # XXX(sc68cal) - Here\u0027s where plugins can wire up their own networks instead"},{"line_number":437,"context_line":"    # of the code in lib/neutron_plugins/services/l3"},{"line_number":438,"context_line":"    if is_service_enabled q-svc \u0026\u0026 [[ \"$NEUTRON_CREATE_INITIAL_NETWORKS\" \u003d\u003d \"True\" ]]; then"},{"line_number":439,"context_line":"        if type -p neutron_plugin_create_initial_networks \u003e /dev/null; then"},{"line_number":440,"context_line":"            neutron_plugin_create_initial_networks"},{"line_number":441,"context_line":"        else"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3ac371cc_eeec13f5","line":438,"updated":"2016-08-17 02:40:04.000000000","message":"q-svc is not the correct service in the new lib/neutron.","commit_id":"19ea863ebba1cfcdc696f7841ea1c8455fdd4b46"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7169812c1f36004c13b0dc3753548ee1bdd27cbb","unresolved":false,"context_lines":[{"line_number":435,"context_line":"    fi"},{"line_number":436,"context_line":"    # XXX(sc68cal) - Here\u0027s where plugins can wire up their own networks instead"},{"line_number":437,"context_line":"    # of the code in lib/neutron_plugins/services/l3"},{"line_number":438,"context_line":"    if is_service_enabled q-svc \u0026\u0026 [[ \"$NEUTRON_CREATE_INITIAL_NETWORKS\" \u003d\u003d \"True\" ]]; then"},{"line_number":439,"context_line":"        if type -p neutron_plugin_create_initial_networks \u003e /dev/null; then"},{"line_number":440,"context_line":"            neutron_plugin_create_initial_networks"},{"line_number":441,"context_line":"        else"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3ac371cc_d46f2129","line":438,"in_reply_to":"3ac371cc_eeec13f5","updated":"2016-08-17 06:15:11.000000000","message":"Done","commit_id":"19ea863ebba1cfcdc696f7841ea1c8455fdd4b46"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"4745f86a9e689a7c4b38db87ffa3c182886b7849","unresolved":false,"context_lines":[{"line_number":443,"context_line":"            source $TOP_DIR/lib/neutron_plugins/services/l3"},{"line_number":444,"context_line":"            # Create the networks using servic"},{"line_number":445,"context_line":"            create_neutron_initial_network"},{"line_number":446,"context_line":"        fi"},{"line_number":447,"context_line":"    fi"},{"line_number":448,"context_line":"    if is_service_enabled neutron-metadata-agent; then"},{"line_number":449,"context_line":"        run_process neutron-metadata-agent \"$NEUTRON_BIN_DIR/$NEUTRON_META_BINARY $NEUTRON_CONFIG_ARG\""}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"3ac371cc_3b08bd27","line":446,"updated":"2016-08-18 14:22:17.000000000","message":"ok, after looking through the review even more, this whole block is problematic, because it couples creating initial networks to starting services. Which means you can only start services once, which means this code would never work with grenade, and will have to be reworked later.\n\nstack.sh already has a block for running this, we should unconditionally call create_neutron_initial_network from there. And it should have any exclusion mechanisms about neutron-api embedded in it.","commit_id":"c0265b8d0a00e90688c594c84b7f40dedc02dcf8"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"9ed35dbb092aba4854d7872de57e77a4417bdf5d","unresolved":false,"context_lines":[{"line_number":306,"context_line":"    iniset $NOVA_CONF DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    # optionally set options in nova_conf"},{"line_number":309,"context_line":"    neutron_plugin_create_nova_conf"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    if is_service_enabled neutron-metadata-agent; then"},{"line_number":312,"context_line":"        iniset $NOVA_CONF neutron service_metadata_proxy \"True\""}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"fa7ab95a_a51028ad","line":309,"updated":"2016-08-30 23:38:54.000000000","message":"Why is this change needed?","commit_id":"88f8558d874072536e7660a233f24207a7089651"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"fec6f7c37c5ff2bb3bdc0b13e98f97c4dfb0d69b","unresolved":false,"context_lines":[{"line_number":306,"context_line":"    iniset $NOVA_CONF DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    # optionally set options in nova_conf"},{"line_number":309,"context_line":"    neutron_plugin_create_nova_conf"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    if is_service_enabled neutron-metadata-agent; then"},{"line_number":312,"context_line":"        iniset $NOVA_CONF neutron service_metadata_proxy \"True\""}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a89bdaa_f4fe5404","line":309,"in_reply_to":"9a89bdaa_11366a03","updated":"2016-09-03 16:44:20.000000000","message":"in addition to this this enabled additional plugins to add extra information to the nova configuration file.","commit_id":"88f8558d874072536e7660a233f24207a7089651"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"5cc73e90f9593a8c9c87e14c3983c2fc2e7818f0","unresolved":false,"context_lines":[{"line_number":306,"context_line":"    iniset $NOVA_CONF DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    # optionally set options in nova_conf"},{"line_number":309,"context_line":"    neutron_plugin_create_nova_conf"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"    if is_service_enabled neutron-metadata-agent; then"},{"line_number":312,"context_line":"        iniset $NOVA_CONF neutron service_metadata_proxy \"True\""}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"9a89bdaa_11366a03","line":309,"in_reply_to":"fa7ab95a_a51028ad","updated":"2016-09-03 16:32:26.000000000","message":"this is needed to make sure that the nova-compute has been configured to work correctly with neutron.","commit_id":"88f8558d874072536e7660a233f24207a7089651"}],"lib/neutron_plugins/services/l3":[{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"7497f2957a70086115d6a8165f8e7f04f2619e43","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"function create_neutron_initial_network {"},{"line_number":233,"context_line":"    # Only do creation if the neutron service is enabled"},{"line_number":234,"context_line":"    if is_service_enabled q-svc || is_service_enabled neutron-api; then"},{"line_number":235,"context_line":"        if [[ \"$NEUTRON_CREATE_INITIAL_NETWORKS\" \u003d\u003d \"True\" ]]; then"},{"line_number":236,"context_line":"            create_neutron_initial_network_on_controller"},{"line_number":237,"context_line":"        fi"}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"3ac371cc_8777c89e","line":234,"updated":"2016-08-18 17:03:14.000000000","message":"I\u0027d rather have all of this inside of create_neutron_initial_network. Having a brand new function just for this is a little excessive IMO","commit_id":"4727ac0967a7528cdbc9a46c1cc0153e8f1c8cac"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7226f254ab7e36ff0ed9ab3b0bd49ab99d2a1ebf","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"function create_neutron_initial_network {"},{"line_number":233,"context_line":"    # Only do creation if the neutron service is enabled"},{"line_number":234,"context_line":"    if is_service_enabled q-svc || is_service_enabled neutron-api; then"},{"line_number":235,"context_line":"        if [[ \"$NEUTRON_CREATE_INITIAL_NETWORKS\" \u003d\u003d \"True\" ]]; then"},{"line_number":236,"context_line":"            create_neutron_initial_network_on_controller"},{"line_number":237,"context_line":"        fi"}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"3ac371cc_d195da88","line":234,"in_reply_to":"3ac371cc_8777c89e","updated":"2016-08-19 08:00:26.000000000","message":"the purpose of the new function was to enable one to easily override create_neutron_initial_network and to be able to get the base support without having to copy the devstack code.","commit_id":"4727ac0967a7528cdbc9a46c1cc0153e8f1c8cac"},{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"dcb2bede307782c8aedcfeff99a2f03b181e57fe","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    fi"},{"line_number":140,"context_line":"}"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"function _neutron_create_initial_networks {"},{"line_number":143,"context_line":"    if is_service_enabled q-svc || is_service_enabled neutron-api; then"},{"line_number":144,"context_line":"        if [[ \"$NEUTRON_CREATE_INITIAL_NETWORKS\" \u003d\u003d \"True\" ]]; then"},{"line_number":145,"context_line":"            return 0"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"1ac06dbe_d07796d2","line":142,"updated":"2016-08-19 19:33:08.000000000","message":"Why not just place this body inside of create_neutron_initial_network? It seems superfluous","commit_id":"28bae49b4abc4a6683f5e0ad9990c669651ff987"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1a1e84fe5c38f6406e97f81a54fdfcd6699c5975","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    fi"},{"line_number":140,"context_line":"}"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"function _neutron_create_initial_networks {"},{"line_number":143,"context_line":"    if is_service_enabled q-svc || is_service_enabled neutron-api; then"},{"line_number":144,"context_line":"        if [[ \"$NEUTRON_CREATE_INITIAL_NETWORKS\" \u003d\u003d \"True\" ]]; then"},{"line_number":145,"context_line":"            return 0"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"1ac06dbe_d3ddce43","line":142,"in_reply_to":"1ac06dbe_d07796d2","updated":"2016-08-20 07:49:55.000000000","message":"does it not make it easier to read?","commit_id":"28bae49b4abc4a6683f5e0ad9990c669651ff987"},{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"9d9effcbd4eccdcef0724e17dcd69e667528558c","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    fi"},{"line_number":140,"context_line":"}"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"function _neutron_create_initial_networks {"},{"line_number":143,"context_line":"    if is_service_enabled q-svc || is_service_enabled neutron-api; then"},{"line_number":144,"context_line":"        if [[ \"$NEUTRON_CREATE_INITIAL_NETWORKS\" \u003d\u003d \"True\" ]]; then"},{"line_number":145,"context_line":"            return 0"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"1ac06dbe_e3c6bc66","line":142,"in_reply_to":"1ac06dbe_d3ddce43","updated":"2016-08-23 13:20:41.000000000","message":"Not really no. I dislike how we have lots of public methods, that then call into the same method prefixed with a _ - makes finding the code annoying.","commit_id":"28bae49b4abc4a6683f5e0ad9990c669651ff987"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d9359999a42b153c2fd2bbb6ae31aece39bf36b4","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    fi"},{"line_number":140,"context_line":"}"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"function _neutron_create_initial_networks {"},{"line_number":143,"context_line":"    if is_service_enabled q-svc || is_service_enabled neutron-api; then"},{"line_number":144,"context_line":"        if [[ \"$NEUTRON_CREATE_INITIAL_NETWORKS\" \u003d\u003d \"True\" ]]; then"},{"line_number":145,"context_line":"            return 0"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"1ac06dbe_379bb767","line":142,"in_reply_to":"1ac06dbe_e3c6bc66","updated":"2016-08-24 06:30:57.000000000","message":"a _ indicates that this is a private method. That is really common practice in the code. why do you think that its public?","commit_id":"28bae49b4abc4a6683f5e0ad9990c669651ff987"}],"stack.sh":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e2a7b9548ed027b1600da6b36c1deb2abe229754","unresolved":false,"context_lines":[{"line_number":1245,"context_line":"fi"},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"if is_service_enabled neutron; then"},{"line_number":1248,"context_line":"    if is_service_enabled q-svc || is_service_enabled neutron-api; then"},{"line_number":1249,"context_line":"        start_neutron"},{"line_number":1250,"context_line":"    fi"},{"line_number":1251,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3ac371cc_60dd3d42","line":1248,"updated":"2016-08-15 09:24:05.000000000","message":"start_neutron is responsible to launch all neutron related services.\nIf you add this condition, I think neutron services other than API (neutron-server) like agents are not started.\n\nI think what we need to do is to ensure create_neutron_initial_network is run only once (perhaps on a node where neutron-server runs).","commit_id":"0e4b7e6be674517790350335ef978f6107ac37c0"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"47000d47e178d1ec27637c711091d9c96b8fbc8d","unresolved":false,"context_lines":[{"line_number":1245,"context_line":"fi"},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"if is_service_enabled neutron; then"},{"line_number":1248,"context_line":"    if is_service_enabled q-svc || is_service_enabled neutron-api; then"},{"line_number":1249,"context_line":"        start_neutron"},{"line_number":1250,"context_line":"    fi"},{"line_number":1251,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":1,"id":"3ac371cc_4209212c","line":1248,"in_reply_to":"3ac371cc_60dd3d42","updated":"2016-08-15 11:39:19.000000000","message":"Done","commit_id":"0e4b7e6be674517790350335ef978f6107ac37c0"}]}
