)]}'
{"lib/neutron":[{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"59c97b00f7c478fafebe16be3d4e6b6128992dca","unresolved":false,"context_lines":[{"line_number":115,"context_line":"# The plugin supports L3. q-l3 implies this to be true below"},{"line_number":116,"context_line":"Q_L3_ENABLED\u003d${Q_L3_ENABLED:-False}"},{"line_number":117,"context_line":"# L3 routers exist per tenant"},{"line_number":118,"context_line":"Q_L3_ROUTER_PER_TENANT\u003d${Q_L3_ROUTER_PER_TENANT:-False}"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"# List of config file names in addition to the main plugin config file"},{"line_number":121,"context_line":"# See _configure_neutron_common() for details about setting it up"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAATn%2F%2BfWM%3D","line":118,"updated":"2013-11-25 15:13:14.000000000","message":"Q_L3_ROUTER_PER_TENANT is defined locally in _configure_neutron_l3_agent() as Q_USE_NAMESPACE. Why are we redefining it here, or not removing it from that function?","commit_id":"ea665f685f0c73a0a09f96def9f7ea20959df961"},{"author":{"_account_id":1935,"name":"Tomoe Sugihara","email":"tomoe.sugihara@gmail.com","username":"tomoe"},"change_message_id":"dacb28c261328e08894d19dae19447012357b178","unresolved":false,"context_lines":[{"line_number":115,"context_line":"# The plugin supports L3. q-l3 implies this to be true below"},{"line_number":116,"context_line":"Q_L3_ENABLED\u003d${Q_L3_ENABLED:-False}"},{"line_number":117,"context_line":"# L3 routers exist per tenant"},{"line_number":118,"context_line":"Q_L3_ROUTER_PER_TENANT\u003d${Q_L3_ROUTER_PER_TENANT:-False}"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"# List of config file names in addition to the main plugin config file"},{"line_number":121,"context_line":"# See _configure_neutron_common() for details about setting it up"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAATn%2F%2BcA0%3D","line":118,"in_reply_to":"AAAATn%2F%2BcDY%3D","updated":"2013-11-26 03:17:27.000000000","message":"Hi Kyle,\nAgreed. Maybe I should change  _configure_neutron_l3_agent so the global defined value takes precedence?\nAt least I\u0027ll add some comments to avoid possible confusion. Will think about it a bit more and send another patch\nThanks for your comments!","commit_id":"ea665f685f0c73a0a09f96def9f7ea20959df961"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"e91912604363bbdf9457230ce24a788077b215ed","unresolved":false,"context_lines":[{"line_number":115,"context_line":"# The plugin supports L3. q-l3 implies this to be true below"},{"line_number":116,"context_line":"Q_L3_ENABLED\u003d${Q_L3_ENABLED:-False}"},{"line_number":117,"context_line":"# L3 routers exist per tenant"},{"line_number":118,"context_line":"Q_L3_ROUTER_PER_TENANT\u003d${Q_L3_ROUTER_PER_TENANT:-False}"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"# List of config file names in addition to the main plugin config file"},{"line_number":121,"context_line":"# See _configure_neutron_common() for details about setting it up"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAATn%2F%2BcDY%3D","line":118,"in_reply_to":"AAAATn%2F%2BcHk%3D","updated":"2013-11-26 02:56:18.000000000","message":"Yes, thanks for explaining that Tomoe, makes perfect sense now. My only concern now is ensuring there isn\u0027t a case where Q_L3_ROUTER_PER_TENANT is set to \"True\" by the user, but it gets overriden in the l3 agent logic as False (for example), and then leaks after that in the devstack flow to being False. This could cause pain when trying to debug things here. I admit I haven\u0027t looked at the flow in detail to understand if anything uses Q_L3_ROUTER_PER_TENANT after it\u0027s (potentially) re-defined in _configure_neutron_l3_agent. Maybe a comment there to indicate it\u0027s set globally would make this clear for anyone changing this in the future?","commit_id":"ea665f685f0c73a0a09f96def9f7ea20959df961"},{"author":{"_account_id":1935,"name":"Tomoe Sugihara","email":"tomoe.sugihara@gmail.com","username":"tomoe"},"change_message_id":"35291b118c2a1e9240245c8f8b6c448f9ba0dd70","unresolved":false,"context_lines":[{"line_number":115,"context_line":"# The plugin supports L3. q-l3 implies this to be true below"},{"line_number":116,"context_line":"Q_L3_ENABLED\u003d${Q_L3_ENABLED:-False}"},{"line_number":117,"context_line":"# L3 routers exist per tenant"},{"line_number":118,"context_line":"Q_L3_ROUTER_PER_TENANT\u003d${Q_L3_ROUTER_PER_TENANT:-False}"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"# List of config file names in addition to the main plugin config file"},{"line_number":121,"context_line":"# See _configure_neutron_common() for details about setting it up"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAATn%2F%2BcHk%3D","line":118,"in_reply_to":"AAAATn%2F%2BfWM%3D","updated":"2013-11-26 02:28:44.000000000","message":"Hi Kyle,\n\nre: \tQ_L3_ROUTER_PER_TENANT is defined locally in _configure_neutron_l3_agent() as Q_USE_NAMESPACE. \n\nThat\u0027s l3 agent specific logic. l3_agent implementation happens to set Q_L3_ROUTER_PER_TENANT to true when namespace is used. \n\nBy defining the variable here, it makes it clear that we give a choice to plugin vendors to enable router-per-tenant configuration. In fact, some vendors define this in lib/neutron_plugins. So I thought it\u0027d make it clear if we had a definition here. \nDoes that make sense?","commit_id":"ea665f685f0c73a0a09f96def9f7ea20959df961"}],"lib/tempest":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"139fd40acd6bd935f69931982d0fa62d7fc7684a","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        tenant_networks_reachable\u003dtrue"},{"line_number":192,"context_line":"    fi"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    if is_service_enabled q-l3 || [ \"$Q_L3_ENABLED\" \u003d \"True\" ]; then"},{"line_number":195,"context_line":"        public_network_id\u003d$(neutron net-list | grep $PUBLIC_NETWORK_NAME | \\"},{"line_number":196,"context_line":"            awk \u0027{print $2}\u0027)"},{"line_number":197,"context_line":"        if [ \"$Q_USE_NAMESPACE\" \u003d\u003d \"False\" ]; then"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F%2B3Qk%3D","line":194,"updated":"2013-11-19 08:14:47.000000000","message":"q-l3 implies Q_L3_ENABLED\u003dTrue, so \"is_service_enabled q-l3\" is unnecessary.","commit_id":"63eca327f3caa694a66e4e72c0c25ec71d614972"},{"author":{"_account_id":1935,"name":"Tomoe Sugihara","email":"tomoe.sugihara@gmail.com","username":"tomoe"},"change_message_id":"5c39db830587cd185e04852189516cfdff488ffd","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        tenant_networks_reachable\u003dtrue"},{"line_number":192,"context_line":"    fi"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    if is_service_enabled q-l3 || [ \"$Q_L3_ENABLED\" \u003d \"True\" ]; then"},{"line_number":195,"context_line":"        public_network_id\u003d$(neutron net-list | grep $PUBLIC_NETWORK_NAME | \\"},{"line_number":196,"context_line":"            awk \u0027{print $2}\u0027)"},{"line_number":197,"context_line":"        if [ \"$Q_USE_NAMESPACE\" \u003d\u003d \"False\" ]; then"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAATn%2F%2B2Y4%3D","line":194,"in_reply_to":"AAAATn%2F%2B3Qk%3D","updated":"2013-11-19 11:33:38.000000000","message":"Hi Motoki-san,\n\nToo true. Thanks for the catch. Will address this shortly.\nThanks!","commit_id":"63eca327f3caa694a66e4e72c0c25ec71d614972"}]}
