)]}'
{"doc/source/guides/multinode-lab.rst":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"4954ee98fb8399de14f88bd25b1d3decdde25392","unresolved":false,"context_lines":[{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    sudo ip link set eth0.926 nomaster"},{"line_number":380,"context_line":"    sudo ip link set dev br100 down"},{"line_number":381,"context_line":"    sudo ip link delete br100 type bridge"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"Set MySQL Password"},{"line_number":384,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fdfeff1_b9c5f15d","line":381,"updated":"2019-03-01 11:29:18.000000000","message":"Only the final command is actually needed, but this section seems only to have been relevant for nova-network, which is the only place where I find a reference to \"br100\". So maybe we should just drop this completely?","commit_id":"cf8f9939ff2f9708a8d161522b005f4831320269"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"4456ed948e0b69131f880826fddff39e6676c7d1","unresolved":false,"context_lines":[{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    sudo ip link set eth0.926 nomaster"},{"line_number":380,"context_line":"    sudo ip link set dev br100 down"},{"line_number":381,"context_line":"    sudo ip link delete br100 type bridge"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"Set MySQL Password"},{"line_number":384,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fdfeff1_6f9c91bf","line":381,"in_reply_to":"9fdfeff1_b9c5f15d","updated":"2019-03-01 19:36:33.000000000","message":"Sure!  I did not realize the link to nova-network.","commit_id":"cf8f9939ff2f9708a8d161522b005f4831320269"}],"lib/neutron_plugins/linuxbridge_agent":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"decb798169fb3bc5e68241dc70cdb759cd437d87","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    sudo ip link set $PUBLIC_BRIDGE down"},{"line_number":12,"context_line":"    sudo ip link delete $PUBLIC_BRIDGE type bridge"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"    bridge_list\u003d`ls /sys/class/net/*/bridge/bridge_id | cut -f5 -d/`"},{"line_number":15,"context_line":"    if [[ \"$Q_ML2_TENANT_NETWORK_TYPE\" \u003d \"vxlan\" ]]; then"},{"line_number":16,"context_line":"        for port in $(echo $bridge_list | grep -o -e [a-zA-Z\\-]*tap[0-9a-f\\-]* -e vxlan-[0-9a-f\\-]*); do"},{"line_number":17,"context_line":"            sudo ip link delete $port"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3f79a3b5_9717b053","line":14,"updated":"2018-11-28 16:26:45.000000000","message":"Should probably detect the directory exists first, since if I hack things and remove it by hand this will generate an error.\n\n--\u003e ls /sys/class/net/*/bridge/bridge_id | cut -f5 -d/\nls: cannot access \u0027/sys/class/net/*/bridge/bridge_id\u0027: No such file or directory\n\nOr an \u0027if $bridge_list \u003d\u003d \"\"; return\u0027 if you ignore the error.","commit_id":"f504649191f6e4b2e94d1776c81ff24fbaa6831d"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"eb6e411b5bbd496e5cbd3b5a126f77496c401929","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    sudo ip link set $PUBLIC_BRIDGE down"},{"line_number":12,"context_line":"    sudo ip link delete $PUBLIC_BRIDGE type bridge"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"    bridge_list\u003d`ls /sys/class/net/*/bridge/bridge_id | cut -f5 -d/`"},{"line_number":15,"context_line":"    if [[ \"$Q_ML2_TENANT_NETWORK_TYPE\" \u003d \"vxlan\" ]]; then"},{"line_number":16,"context_line":"        for port in $(echo $bridge_list | grep -o -e [a-zA-Z\\-]*tap[0-9a-f\\-]* -e vxlan-[0-9a-f\\-]*); do"},{"line_number":17,"context_line":"            sudo ip link delete $port"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3f79a3b5_b8689856","line":14,"in_reply_to":"3f79a3b5_9717b053","updated":"2018-11-28 20:57:21.000000000","message":"We could just ignore the error, since all of the other logic here is in \u0027for\u0027 loops that would short circuit on an empty list.  But I also add in the return you suggested to save us a few ops.","commit_id":"f504649191f6e4b2e94d1776c81ff24fbaa6831d"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"4954ee98fb8399de14f88bd25b1d3decdde25392","unresolved":false,"context_lines":[{"line_number":8,"context_line":"set +o xtrace"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"function neutron_lb_cleanup {"},{"line_number":11,"context_line":"    sudo ip link set $PUBLIC_BRIDGE down"},{"line_number":12,"context_line":"    sudo ip link delete $PUBLIC_BRIDGE type bridge"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"    bridge_list\u003d`ls /sys/class/net/*/bridge/bridge_id 2\u003e/dev/null | cut -f5 -d/`"}],"source_content_type":"application/x-shellscript","patch_set":7,"id":"9fdfeff1_2a8c207e","line":11,"range":{"start_line":11,"start_character":4,"end_line":11,"end_character":40},"updated":"2019-03-01 11:29:18.000000000","message":"This doesn\u0027t seem to be needed if we delete the link immediately afterwards, so we could drop this.","commit_id":"cf8f9939ff2f9708a8d161522b005f4831320269"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"4456ed948e0b69131f880826fddff39e6676c7d1","unresolved":false,"context_lines":[{"line_number":8,"context_line":"set +o xtrace"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"function neutron_lb_cleanup {"},{"line_number":11,"context_line":"    sudo ip link set $PUBLIC_BRIDGE down"},{"line_number":12,"context_line":"    sudo ip link delete $PUBLIC_BRIDGE type bridge"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"    bridge_list\u003d`ls /sys/class/net/*/bridge/bridge_id 2\u003e/dev/null | cut -f5 -d/`"}],"source_content_type":"application/x-shellscript","patch_set":7,"id":"9fdfeff1_4f80ad4a","line":11,"range":{"start_line":11,"start_character":4,"end_line":11,"end_character":40},"in_reply_to":"9fdfeff1_2a8c207e","updated":"2019-03-01 19:36:33.000000000","message":"As you wish.","commit_id":"cf8f9939ff2f9708a8d161522b005f4831320269"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"4954ee98fb8399de14f88bd25b1d3decdde25392","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"function neutron_lb_cleanup {"},{"line_number":11,"context_line":"    sudo ip link set $PUBLIC_BRIDGE down"},{"line_number":12,"context_line":"    sudo ip link delete $PUBLIC_BRIDGE type bridge"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"    bridge_list\u003d`ls /sys/class/net/*/bridge/bridge_id 2\u003e/dev/null | cut -f5 -d/`"},{"line_number":15,"context_line":"    if [[ -z \"$bridge_list\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":7,"id":"9fdfeff1_0a8fdc75","line":12,"range":{"start_line":12,"start_character":38,"end_line":12,"end_character":50},"updated":"2019-03-01 11:29:18.000000000","message":"The \"type bridge\" doesn\u0027t seem to have any effect for the delete op, so better drop it.","commit_id":"cf8f9939ff2f9708a8d161522b005f4831320269"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"4456ed948e0b69131f880826fddff39e6676c7d1","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"function neutron_lb_cleanup {"},{"line_number":11,"context_line":"    sudo ip link set $PUBLIC_BRIDGE down"},{"line_number":12,"context_line":"    sudo ip link delete $PUBLIC_BRIDGE type bridge"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"    bridge_list\u003d`ls /sys/class/net/*/bridge/bridge_id 2\u003e/dev/null | cut -f5 -d/`"},{"line_number":15,"context_line":"    if [[ -z \"$bridge_list\" ]]; then"}],"source_content_type":"application/x-shellscript","patch_set":7,"id":"9fdfeff1_cf933da4","line":12,"range":{"start_line":12,"start_character":38,"end_line":12,"end_character":50},"in_reply_to":"9fdfeff1_0a8fdc75","updated":"2019-03-01 19:36:33.000000000","message":"OK","commit_id":"cf8f9939ff2f9708a8d161522b005f4831320269"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"4954ee98fb8399de14f88bd25b1d3decdde25392","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        done"},{"line_number":26,"context_line":"    fi"},{"line_number":27,"context_line":"    for bridge in $(echo $bridge_list |grep -o -e brq[0-9a-f\\-]*); do"},{"line_number":28,"context_line":"        sudo ip link set $bridge down"},{"line_number":29,"context_line":"        sudo ip link delete $bridge type bridge"},{"line_number":30,"context_line":"    done"},{"line_number":31,"context_line":"}"},{"line_number":32,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":7,"id":"9fdfeff1_0ac7dc66","line":29,"range":{"start_line":28,"start_character":0,"end_line":29,"end_character":47},"updated":"2019-03-01 11:29:18.000000000","message":"See above","commit_id":"cf8f9939ff2f9708a8d161522b005f4831320269"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"4456ed948e0b69131f880826fddff39e6676c7d1","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        done"},{"line_number":26,"context_line":"    fi"},{"line_number":27,"context_line":"    for bridge in $(echo $bridge_list |grep -o -e brq[0-9a-f\\-]*); do"},{"line_number":28,"context_line":"        sudo ip link set $bridge down"},{"line_number":29,"context_line":"        sudo ip link delete $bridge type bridge"},{"line_number":30,"context_line":"    done"},{"line_number":31,"context_line":"}"},{"line_number":32,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":7,"id":"9fdfeff1_ef908199","line":29,"range":{"start_line":28,"start_character":0,"end_line":29,"end_character":47},"in_reply_to":"9fdfeff1_0ac7dc66","updated":"2019-03-01 19:36:33.000000000","message":"Done","commit_id":"cf8f9939ff2f9708a8d161522b005f4831320269"}],"tools/worlddump.py":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"f999122fe6dca6eb99c89d63a3c5c1433bd43c9a","unresolved":false,"context_lines":[{"line_number":163,"context_line":"def network_dump():"},{"line_number":164,"context_line":"    _header(\"Network Dump\")"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    _dump_cmd(\"bridge link\")"},{"line_number":167,"context_line":"    ip_cmds \u003d [\"neigh\", \"addr\", \"link\", \"route\"]"},{"line_number":168,"context_line":"    for cmd in ip_cmds + [\u0027netns\u0027]:"},{"line_number":169,"context_line":"        _dump_cmd(\"ip %s\" % cmd)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_0262d2da","line":166,"updated":"2018-12-06 19:50:37.000000000","message":"\u003e  Calls to \"brctl show\" are not being replaced with calls to \"bridge link\" because the output format is very different and in testing some bridges were not listed.\n\nBut here it is?","commit_id":"5f564c6839744ac2232a937cf10f268c61c2e48d"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"4d9e23a02ae3993c717d4d28ef359b180bc3b10f","unresolved":false,"context_lines":[{"line_number":163,"context_line":"def network_dump():"},{"line_number":164,"context_line":"    _header(\"Network Dump\")"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    _dump_cmd(\"bridge link\")"},{"line_number":167,"context_line":"    ip_cmds \u003d [\"neigh\", \"addr\", \"link\", \"route\"]"},{"line_number":168,"context_line":"    for cmd in ip_cmds + [\u0027netns\u0027]:"},{"line_number":169,"context_line":"        _dump_cmd(\"ip %s\" % cmd)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_4f9312b1","line":166,"in_reply_to":"3f79a3b5_0262d2da","updated":"2018-12-06 21:30:10.000000000","message":"Indeed!  The information might be useful for someone else.  And of all the info in /sys/class/net/*/bridge I was not sure what to output.  If you have some thoughts on the matter I would love to hear them!","commit_id":"5f564c6839744ac2232a937cf10f268c61c2e48d"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ddc06cffabadde5946fd6ff321a4849643dffa03","unresolved":false,"context_lines":[{"line_number":163,"context_line":"def network_dump():"},{"line_number":164,"context_line":"    _header(\"Network Dump\")"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    _dump_cmd(\"bridge link\")"},{"line_number":167,"context_line":"    ip_cmds \u003d [\"neigh\", \"addr\", \"link\", \"route\"]"},{"line_number":168,"context_line":"    for cmd in ip_cmds + [\u0027netns\u0027]:"},{"line_number":169,"context_line":"        _dump_cmd(\"ip %s\" % cmd)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_84a792a4","line":166,"in_reply_to":"3f79a3b5_24f2699d","updated":"2018-12-10 19:34:12.000000000","message":"I was curious why there was a difference in output, running each under strace shows why - brctl opens /sys/class/net and pokes around, bridge opens a netlink socket and makes a call.  For some reason the netlink way doesn\u0027t return things like docker0 that brctl does.  In the end the below /sbin/ip output is going to show us all the interfaces, so the brctl show isn\u0027t getting us much anyways.","commit_id":"5f564c6839744ac2232a937cf10f268c61c2e48d"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"0ce571ee74896712cd69a6754461d17a71959d39","unresolved":false,"context_lines":[{"line_number":163,"context_line":"def network_dump():"},{"line_number":164,"context_line":"    _header(\"Network Dump\")"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    _dump_cmd(\"bridge link\")"},{"line_number":167,"context_line":"    ip_cmds \u003d [\"neigh\", \"addr\", \"link\", \"route\"]"},{"line_number":168,"context_line":"    for cmd in ip_cmds + [\u0027netns\u0027]:"},{"line_number":169,"context_line":"        _dump_cmd(\"ip %s\" % cmd)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_e5331d5e","line":166,"in_reply_to":"3f79a3b5_4f9312b1","updated":"2018-12-07 00:43:02.000000000","message":"Is the missing bridges OVS related?","commit_id":"5f564c6839744ac2232a937cf10f268c61c2e48d"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"339e4d2aae057bb114b7dd5f8c3786a825cdb343","unresolved":false,"context_lines":[{"line_number":163,"context_line":"def network_dump():"},{"line_number":164,"context_line":"    _header(\"Network Dump\")"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    _dump_cmd(\"bridge link\")"},{"line_number":167,"context_line":"    ip_cmds \u003d [\"neigh\", \"addr\", \"link\", \"route\"]"},{"line_number":168,"context_line":"    for cmd in ip_cmds + [\u0027netns\u0027]:"},{"line_number":169,"context_line":"        _dump_cmd(\"ip %s\" % cmd)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfdaf3ff_df0af288","line":166,"in_reply_to":"3f79a3b5_84a792a4","updated":"2019-01-11 18:37:42.000000000","message":"Thanks for the analysis, Brian.  Based on this, do you think it\u0027s just better to drop, Ian?","commit_id":"5f564c6839744ac2232a937cf10f268c61c2e48d"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"7a1b802b9c1086617cb43360bcce11c74749a63c","unresolved":false,"context_lines":[{"line_number":163,"context_line":"def network_dump():"},{"line_number":164,"context_line":"    _header(\"Network Dump\")"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    _dump_cmd(\"bridge link\")"},{"line_number":167,"context_line":"    ip_cmds \u003d [\"neigh\", \"addr\", \"link\", \"route\"]"},{"line_number":168,"context_line":"    for cmd in ip_cmds + [\u0027netns\u0027]:"},{"line_number":169,"context_line":"        _dump_cmd(\"ip %s\" % cmd)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_24f2699d","line":166,"in_reply_to":"3f79a3b5_e5331d5e","updated":"2018-12-07 16:31:46.000000000","message":"I think this is just a \u0027what is the state of the world?\u0027 kind of output so that an engineer can debug a problem after the fact.  I don\u0027t think there is any assumption that bridges are or are not missing.","commit_id":"5f564c6839744ac2232a937cf10f268c61c2e48d"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"266893dae164c6f12b2b472200cfa0de5f3c7ec0","unresolved":false,"context_lines":[{"line_number":163,"context_line":"def network_dump():"},{"line_number":164,"context_line":"    _header(\"Network Dump\")"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    _dump_cmd(\"bridge link\")"},{"line_number":167,"context_line":"    ip_cmds \u003d [\"neigh\", \"addr\", \"link\", \"route\"]"},{"line_number":168,"context_line":"    for cmd in ip_cmds + [\u0027netns\u0027]:"},{"line_number":169,"context_line":"        _dump_cmd(\"ip %s\" % cmd)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_d1e9a9e2","line":166,"in_reply_to":"bfdaf3ff_dd3bda99","updated":"2019-02-03 11:17:29.000000000","message":"I re-added brctl show in addition to bridge link since _dump_cmd() fails gracefully and will not break the worlddump.","commit_id":"5f564c6839744ac2232a937cf10f268c61c2e48d"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5197e3090fa528ec14ed2a8475bac5e7ecda423d","unresolved":false,"context_lines":[{"line_number":163,"context_line":"def network_dump():"},{"line_number":164,"context_line":"    _header(\"Network Dump\")"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    _dump_cmd(\"bridge link\")"},{"line_number":167,"context_line":"    ip_cmds \u003d [\"neigh\", \"addr\", \"link\", \"route\"]"},{"line_number":168,"context_line":"    for cmd in ip_cmds + [\u0027netns\u0027]:"},{"line_number":169,"context_line":"        _dump_cmd(\"ip %s\" % cmd)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfdaf3ff_ff2d76a8","line":166,"in_reply_to":"bfdaf3ff_df0af288","updated":"2019-01-11 18:58:44.000000000","message":"I hope you don\u0027t mean drop the change, IMO all the relevant information will still be there for debugging.  Eventually this will just throw an error when distros stop shipping brctl.","commit_id":"5f564c6839744ac2232a937cf10f268c61c2e48d"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"93dc77481dfc54828402ff6a2492afa7ac093e2a","unresolved":false,"context_lines":[{"line_number":163,"context_line":"def network_dump():"},{"line_number":164,"context_line":"    _header(\"Network Dump\")"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    _dump_cmd(\"bridge link\")"},{"line_number":167,"context_line":"    ip_cmds \u003d [\"neigh\", \"addr\", \"link\", \"route\"]"},{"line_number":168,"context_line":"    for cmd in ip_cmds + [\u0027netns\u0027]:"},{"line_number":169,"context_line":"        _dump_cmd(\"ip %s\" % cmd)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfdaf3ff_dd3bda99","line":166,"in_reply_to":"bfdaf3ff_ff2d76a8","updated":"2019-01-11 20:13:17.000000000","message":"Oh no, I just meant drop (i.e. delete) line 166.","commit_id":"5f564c6839744ac2232a937cf10f268c61c2e48d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8c52085147b3bde862ef5e30550df29967e4b83e","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    _header(\"Network Dump\")"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    _dump_cmd(\"bridge link\")"},{"line_number":167,"context_line":"    _dump_cmd(\"brctl show\")"},{"line_number":168,"context_line":"    ip_cmds \u003d [\"neigh\", \"addr\", \"link\", \"route\"]"},{"line_number":169,"context_line":"    for cmd in ip_cmds + [\u0027netns\u0027]:"},{"line_number":170,"context_line":"        _dump_cmd(\"ip %s\" % cmd)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_d9a44cbc","line":167,"updated":"2019-02-05 17:13:04.000000000","message":"I think we can add the information of the \"natural\" replacement of brctl show:\n  ip link show type bridge\n\nstack@osdev16:/opt/stack/os-vif$ ip link show type bridge\n7: management: \u003cNO-CARRIER,BROADCAST,MULTICAST,UP\u003e mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000\n    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff\n9: traffic: \u003cNO-CARRIER,BROADCAST,MULTICAST,UP\u003e mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000\n    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff","commit_id":"56413b0ae1d212fe323a45a25361189f205a66aa"}]}
