)]}'
{"lib/neutron_plugins/services/l3":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d08ae6b53355595d84f4b772565b85dc9954867c","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    AUTO_ALLOCATE_EXT\u003d$(neutron --os-cloud devstack-admin --os-region \"$REGION_NAME\" ext-list | grep \u0027auto-allocated-topology\u0027 | get_field 1)"},{"line_number":179,"context_line":"    SUBNETPOOL_EXT\u003d$(neutron --os-cloud devstack-admin --os-region \"$REGION_NAME\" ext-list | grep \u0027subnet_allocation\u0027 | get_field 1)"},{"line_number":180,"context_line":"    L3_EXT\u003d$(neutron ext-list | grep \u0027router\u0027 | get_field 1)"},{"line_number":181,"context_line":"    if [[ -n $L3_EXT ]]; then"},{"line_number":182,"context_line":"        # Create a router, and add the private subnet as one of its interfaces"},{"line_number":183,"context_line":"        if [[ \"$Q_L3_ROUTER_PER_TENANT\" \u003d\u003d \"True\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"bab6814e_76b4e1f1","line":180,"updated":"2016-05-18 15:12:25.000000000","message":"this is reasonable but I am starting to think we may want to turn this into some sort of util method like \u0027check_extensions $EXT \u0026\u0026 echo True || echo False\u0027?","commit_id":"e7633b8d2f68ffcdca4e872a6cd75c43dfd9747e"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"fa3aa1748ad59f7ce487822d025180bbebb10124","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    AUTO_ALLOCATE_EXT\u003d$(neutron --os-cloud devstack-admin --os-region \"$REGION_NAME\" ext-list | grep \u0027auto-allocated-topology\u0027 | get_field 1)"},{"line_number":179,"context_line":"    SUBNETPOOL_EXT\u003d$(neutron --os-cloud devstack-admin --os-region \"$REGION_NAME\" ext-list | grep \u0027subnet_allocation\u0027 | get_field 1)"},{"line_number":180,"context_line":"    L3_EXT\u003d$(neutron ext-list | grep \u0027router\u0027 | get_field 1)"},{"line_number":181,"context_line":"    if [[ -n $L3_EXT ]]; then"},{"line_number":182,"context_line":"        # Create a router, and add the private subnet as one of its interfaces"},{"line_number":183,"context_line":"        if [[ \"$Q_L3_ROUTER_PER_TENANT\" \u003d\u003d \"True\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"bab6814e_e9e7563e","line":180,"in_reply_to":"bab6814e_76b4e1f1","updated":"2016-05-18 15:28:11.000000000","message":"and it might be useful if it accepted a list of extensions rather than a single one? And return True if *all* are supported?\n\nIn this case, we might want to check for both router and external_net\n\nThis would ensure that this conditional block would be executed based on whether Neutron supports this capability rather than having the developer say he/she wants to execute this block or not.","commit_id":"e7633b8d2f68ffcdca4e872a6cd75c43dfd9747e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3fb75cbeda69d67fe776b407e77d0a4a0ea44bb7","unresolved":false,"context_lines":[{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    AUTO_ALLOCATE_EXT\u003d$(neutron --os-cloud devstack-admin --os-region \"$REGION_NAME\" ext-list | grep \u0027auto-allocated-topology\u0027 | get_field 1)"},{"line_number":179,"context_line":"    SUBNETPOOL_EXT\u003d$(neutron --os-cloud devstack-admin --os-region \"$REGION_NAME\" ext-list | grep \u0027subnet_allocation\u0027 | get_field 1)"},{"line_number":180,"context_line":"    L3_EXT\u003d$(neutron ext-list | grep \u0027router\u0027 | get_field 1)"},{"line_number":181,"context_line":"    if [[ -n $L3_EXT ]]; then"},{"line_number":182,"context_line":"        # Create a router, and add the private subnet as one of its interfaces"},{"line_number":183,"context_line":"        if [[ \"$Q_L3_ROUTER_PER_TENANT\" \u003d\u003d \"True\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"bab6814e_67b0adf5","line":180,"in_reply_to":"bab6814e_e9e7563e","updated":"2016-05-18 15:59:40.000000000","message":"so we will need to list in the localconf the extension that we want to support and those that are l3 related. just the simple flag seems so much simpler.\nwhat in a plugin has a extension that has the word router and it does not support routers. That can lead to false positives. But maybe I am going on tangent here.","commit_id":"e7633b8d2f68ffcdca4e872a6cd75c43dfd9747e"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"fbfc237dadf38ccdb4de8db38cfba68751301baa","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"        # if the extension is available, then mark the external"},{"line_number":191,"context_line":"        # network as default, and provision default subnetpools"},{"line_number":192,"context_line":"        EXTERNAL_NETWORK_FLAGS\u003d\"--router:external\""},{"line_number":193,"context_line":"        if is_networking_extension_supported \"auto-allocated-topology\" \u0026\u0026 is_networking_extension_supported \"subnet_allocation\"; then"},{"line_number":194,"context_line":"            EXTERNAL_NETWORK_FLAGS\u003d\"$EXTERNAL_NETWORK_FLAGS --is-default\""},{"line_number":195,"context_line":"            if [[ \"$IP_VERSION\" \u003d~ 4.* ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"bab6814e_fca1b9aa","line":192,"range":{"start_line":192,"start_character":32,"end_line":192,"end_character":49},"updated":"2016-05-19 02:57:24.000000000","message":"check external-net?","commit_id":"ec858ef12bfb24d8ae0cf1200131d085ed3a7974"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"5cb23c854f61fb792e826e98538102c7ff84c3b9","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        fi"},{"line_number":176,"context_line":"    fi"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    if is_networking_extension_supported \"router\"; then"},{"line_number":179,"context_line":"        # Create a router, and add the private subnet as one of its interfaces"},{"line_number":180,"context_line":"        if [[ \"$Q_L3_ROUTER_PER_TENANT\" \u003d\u003d \"True\" ]]; then"},{"line_number":181,"context_line":"            # create a tenant-owned router."}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bab6814e_d92143a1","line":178,"updated":"2016-05-19 14:45:18.000000000","message":"my guess is that the failing job runs the l3 agent but does not have the router extension.\ni am not familiar with that job.","commit_id":"b34947d60d559abbd3835f70bbf8df78a04bf4b7"},{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"e435d19647068cc92e8803f6de0a874edb34a0cb","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        fi"},{"line_number":176,"context_line":"    fi"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    if is_networking_extension_supported \"router\"; then"},{"line_number":179,"context_line":"        # Create a router, and add the private subnet as one of its interfaces"},{"line_number":180,"context_line":"        if [[ \"$Q_L3_ROUTER_PER_TENANT\" \u003d\u003d \"True\" ]]; then"},{"line_number":181,"context_line":"            # create a tenant-owned router."}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bab6814e_0b69b28b","line":178,"in_reply_to":"bab6814e_d92143a1","updated":"2016-05-19 15:02:40.000000000","message":"I am not either, but honestly if it\u0027s not running the l3 agent it probably should not have the router API extension available. Yes it means a bit of work for them to unload the API extension, but really it\u0027s the right way to communicate that their deployment doesn\u0027t support any L3 API stuff.","commit_id":"b34947d60d559abbd3835f70bbf8df78a04bf4b7"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"450e90144d17166c61fe5a50c168e9ffb92eb19c","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        if is_networking_extension_supported \"external-net\"; then"},{"line_number":193,"context_line":"            EXTERNAL_NETWORK_FLAGS\u003d\"--router:external\""},{"line_number":194,"context_line":"        else"},{"line_number":195,"context_line":"            EXTERNAL_NETWORK_FLAGS\u003d\"\""},{"line_number":196,"context_line":"        fi"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        if is_networking_extension_supported \"auto-allocated-topology\" \u0026\u0026 is_networking_extension_supported \"subnet_allocation\"; then"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"bab6814e_32b885e5","line":195,"updated":"2016-05-19 06:46:50.000000000","message":"if external-net is not supported, there\u0027s little point to try to create public network or router.\ni guess you can move the check to L178.","commit_id":"b34947d60d559abbd3835f70bbf8df78a04bf4b7"}],"lib/tempest":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"fbfc237dadf38ccdb4de8db38cfba68751301baa","unresolved":false,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    # the public network (for floating ip access) is only available"},{"line_number":242,"context_line":"    # if the extension is enabled."},{"line_number":243,"context_line":"    if is_networking_extension_supported \u0027external-net\u0027; THEN"},{"line_number":244,"context_line":"        public_network_id\u003d$(neutron net-list | grep $PUBLIC_NETWORK_NAME | \\"},{"line_number":245,"context_line":"            awk \u0027{print $2}\u0027)"},{"line_number":246,"context_line":"    fi"}],"source_content_type":"application/x-shellscript","patch_set":5,"id":"bab6814e_9c16adef","line":243,"range":{"start_line":243,"start_character":57,"end_line":243,"end_character":61},"updated":"2016-05-19 02:57:24.000000000","message":"then","commit_id":"ec858ef12bfb24d8ae0cf1200131d085ed3a7974"}]}
