)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"373498c618f286a23c09a5fe2b6b35f90b2eb259","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a new function that deletes a specific"},{"line_number":10,"context_line":"tap device. This bug fix is targeted for Havana."},{"line_number":11,"context_line":"Rebase"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I26be5d94550db35358caae642fb9000953346826"},{"line_number":14,"context_line":"fixes: bug #1138408"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAOn%2F%2Fz8M%3D","line":11,"updated":"2013-04-22 16:11:00.000000000","message":"I\u0027m not sure why \"Rebase.\" is here. Can you remove it?","commit_id":"d4f65d269d093eab6cb8fbb6d8584dcf3b8d39be"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"9bef885cae4342b307e1df77a85af9d1d2a2d188","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit adds a new function that deletes a specific"},{"line_number":10,"context_line":"tap device. This bug fix is targeted for Havana."},{"line_number":11,"context_line":"Rebase"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I26be5d94550db35358caae642fb9000953346826"},{"line_number":14,"context_line":"fixes: bug #1138408"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAOn%2F%2Fz1U%3D","line":11,"in_reply_to":"AAAAOn%2F%2Fz8M%3D","updated":"2013-04-22 17:01:34.000000000","message":"Done","commit_id":"d4f65d269d093eab6cb8fbb6d8584dcf3b8d39be"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"5e7ec013a50dc3278cfd5758a8ef86bd654d555f","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I26be5d94550db35358caae642fb9000953346826"},{"line_number":13,"context_line":"fixes: bug #1138408"},{"line_number":14,"context_line":"Recheck no bug"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"AAAAOn%2F%2FqQM%3D","line":14,"updated":"2013-04-30 06:26:10.000000000","message":"fyi you just need to post, \"recheck no bug\"  as a comment and jenkins will rerun it.","commit_id":"428214853b340feedb403c3ae194471b0581b5d7"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"c3d14e6e21c8ba1622b2c637dee4ddc0a6cbe9ea","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I26be5d94550db35358caae642fb9000953346826"},{"line_number":13,"context_line":"fixes: bug #1138408"},{"line_number":14,"context_line":"Recheck no bug"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"AAAAOn%2F%2Fp1A%3D","line":14,"in_reply_to":"AAAAOn%2F%2FqOk%3D","updated":"2013-04-30 14:45:20.000000000","message":"Ok, done!\nsorry for the mistake","commit_id":"428214853b340feedb403c3ae194471b0581b5d7"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"f893c275b315d92cad66e8f8008f3a24e37afcce","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I26be5d94550db35358caae642fb9000953346826"},{"line_number":13,"context_line":"fixes: bug #1138408"},{"line_number":14,"context_line":"Recheck no bug"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"AAAAOn%2F%2FqOk%3D","line":14,"in_reply_to":"AAAAOn%2F%2FqQM%3D","updated":"2013-04-30 06:52:14.000000000","message":"In fact, please remove this from the commit message. It should have been a review comment.","commit_id":"428214853b340feedb403c3ae194471b0581b5d7"}],"nova/network/linux_net.py":[{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"676243376ac0e77cee187008984edb60314a4ff1","unresolved":false,"context_lines":[{"line_number":1265,"context_line":"                          check_exit_code\u003d[0, 2, 254])"},{"line_number":1266,"context_line":"        except exception.ProcessExecutionError:"},{"line_number":1267,"context_line":"            LOG.error(_(\"Failed removing net device: \u0027%s\u0027\"), dev)"},{"line_number":1268,"context_line":"    LOG.debug(_(\"Net device removed: \u0027%s\u0027\"), dev)"},{"line_number":1269,"context_line":""},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"# Similar to compute virt layers, the Linux network node"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FwJA%3D","line":1268,"updated":"2013-03-13 19:53:11.000000000","message":"Do you want to move this line to inside the try block after the utils.execute statement?","commit_id":"5bf56c8fb4e6ba306ba7be69abafb1523c206773"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"95559b7c0d63bb81a5d83cc10ad06bd1aa30b9be","unresolved":false,"context_lines":[{"line_number":1265,"context_line":"                          check_exit_code\u003d[0, 2, 254])"},{"line_number":1266,"context_line":"        except exception.ProcessExecutionError:"},{"line_number":1267,"context_line":"            LOG.error(_(\"Failed removing net device: \u0027%s\u0027\"), dev)"},{"line_number":1268,"context_line":"    LOG.debug(_(\"Net device removed: \u0027%s\u0027\"), dev)"},{"line_number":1269,"context_line":""},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"# Similar to compute virt layers, the Linux network node"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FvfM%3D","line":1268,"in_reply_to":"AAAAN3%2F%2FwJA%3D","updated":"2013-03-14 07:27:14.000000000","message":"Done","commit_id":"5bf56c8fb4e6ba306ba7be69abafb1523c206773"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"c37c2694605db25807d0afdea3faf6f90449641c","unresolved":false,"context_lines":[{"line_number":1215,"context_line":"            try:"},{"line_number":1216,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, dev1_name,"},{"line_number":1217,"context_line":"                              run_as_root\u003dTrue, check_exit_code\u003d[0, 2, 254])"},{"line_number":1218,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1219,"context_line":"                LOG.exception(_(\"Error clearing stale veth %s\") % dev)"},{"line_number":1220,"context_line":""},{"line_number":1221,"context_line":"    utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027add\u0027, dev1_name, \u0027type\u0027, \u0027veth\u0027, \u0027peer\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F6y4%3D","side":"PARENT","line":1218,"updated":"2013-03-21 00:25:22.000000000","message":"Do you need this try/except for ProcessExecutionError any more?","commit_id":"00b5ec9a00d3d310ff8f924ab356a39215b6a528"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"106ba624ad5ec7f679ea1462295725e589af4b2e","unresolved":false,"context_lines":[{"line_number":1215,"context_line":"            try:"},{"line_number":1216,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, dev1_name,"},{"line_number":1217,"context_line":"                              run_as_root\u003dTrue, check_exit_code\u003d[0, 2, 254])"},{"line_number":1218,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1219,"context_line":"                LOG.exception(_(\"Error clearing stale veth %s\") % dev)"},{"line_number":1220,"context_line":""},{"line_number":1221,"context_line":"    utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027add\u0027, dev1_name, \u0027type\u0027, \u0027veth\u0027, \u0027peer\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F470%3D","side":"PARENT","line":1218,"in_reply_to":"AAAAOH%2F%2F6y4%3D","updated":"2013-04-02 22:35:06.000000000","message":"Done","commit_id":"00b5ec9a00d3d310ff8f924ab356a39215b6a528"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"c37c2694605db25807d0afdea3faf6f90449641c","unresolved":false,"context_lines":[{"line_number":1405,"context_line":"            try:"},{"line_number":1406,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, vlan_interface,"},{"line_number":1407,"context_line":"                              run_as_root\u003dTrue, check_exit_code\u003d[0, 2, 254])"},{"line_number":1408,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1409,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1410,"context_line":"                    LOG.error(_(\"Failed unplugging VLAN interface \u0027%s\u0027\"),"},{"line_number":1411,"context_line":"                              vlan_interface)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F6y0%3D","side":"PARENT","line":1408,"updated":"2013-03-21 00:25:22.000000000","message":"Ditto","commit_id":"00b5ec9a00d3d310ff8f924ab356a39215b6a528"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"106ba624ad5ec7f679ea1462295725e589af4b2e","unresolved":false,"context_lines":[{"line_number":1405,"context_line":"            try:"},{"line_number":1406,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, vlan_interface,"},{"line_number":1407,"context_line":"                              run_as_root\u003dTrue, check_exit_code\u003d[0, 2, 254])"},{"line_number":1408,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1409,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1410,"context_line":"                    LOG.error(_(\"Failed unplugging VLAN interface \u0027%s\u0027\"),"},{"line_number":1411,"context_line":"                              vlan_interface)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2FsLE%3D","side":"PARENT","line":1408,"in_reply_to":"AAAAOH%2F%2F6y0%3D","updated":"2013-04-02 22:35:06.000000000","message":"Done","commit_id":"00b5ec9a00d3d310ff8f924ab356a39215b6a528"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"c37c2694605db25807d0afdea3faf6f90449641c","unresolved":false,"context_lines":[{"line_number":1514,"context_line":"            try:"},{"line_number":1515,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, bridge, run_as_root\u003dTrue,"},{"line_number":1516,"context_line":"                              check_exit_code\u003d[0, 2, 254])"},{"line_number":1517,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1518,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1519,"context_line":"                    LOG.error(_(\"Failed unplugging bridge interface \u0027%s\u0027\"),"},{"line_number":1520,"context_line":"                              bridge)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F6yw%3D","side":"PARENT","line":1517,"updated":"2013-03-21 00:25:22.000000000","message":"Ditto","commit_id":"00b5ec9a00d3d310ff8f924ab356a39215b6a528"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"106ba624ad5ec7f679ea1462295725e589af4b2e","unresolved":false,"context_lines":[{"line_number":1514,"context_line":"            try:"},{"line_number":1515,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, bridge, run_as_root\u003dTrue,"},{"line_number":1516,"context_line":"                              check_exit_code\u003d[0, 2, 254])"},{"line_number":1517,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1518,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1519,"context_line":"                    LOG.error(_(\"Failed unplugging bridge interface \u0027%s\u0027\"),"},{"line_number":1520,"context_line":"                              bridge)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2FsLA%3D","side":"PARENT","line":1517,"in_reply_to":"AAAAOH%2F%2F6yw%3D","updated":"2013-04-02 22:35:06.000000000","message":"Done","commit_id":"00b5ec9a00d3d310ff8f924ab356a39215b6a528"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"c37c2694605db25807d0afdea3faf6f90449641c","unresolved":false,"context_lines":[{"line_number":1714,"context_line":"            try:"},{"line_number":1715,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, dev, run_as_root\u003dTrue,"},{"line_number":1716,"context_line":"                              check_exit_code\u003d[0, 2, 254])"},{"line_number":1717,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1718,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1719,"context_line":"                    LOG.error(_(\"Failed unplugging gateway interface \u0027%s\u0027\"),"},{"line_number":1720,"context_line":"                              dev)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F6yo%3D","side":"PARENT","line":1717,"updated":"2013-03-21 00:25:22.000000000","message":"Ditto","commit_id":"00b5ec9a00d3d310ff8f924ab356a39215b6a528"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"106ba624ad5ec7f679ea1462295725e589af4b2e","unresolved":false,"context_lines":[{"line_number":1714,"context_line":"            try:"},{"line_number":1715,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, dev, run_as_root\u003dTrue,"},{"line_number":1716,"context_line":"                              check_exit_code\u003d[0, 2, 254])"},{"line_number":1717,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1718,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1719,"context_line":"                    LOG.error(_(\"Failed unplugging gateway interface \u0027%s\u0027\"),"},{"line_number":1720,"context_line":"                              dev)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2FsK8%3D","side":"PARENT","line":1717,"in_reply_to":"AAAAOH%2F%2F6yo%3D","updated":"2013-04-02 22:35:06.000000000","message":"Done","commit_id":"00b5ec9a00d3d310ff8f924ab356a39215b6a528"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"8eea04d5a58c65becad4082c0a2c4d9f81d49737","unresolved":false,"context_lines":[{"line_number":1218,"context_line":"    deleting any previous devices with those names."},{"line_number":1219,"context_line":"    \"\"\""},{"line_number":1220,"context_line":"    for dev in [dev1_name, dev2_name]:"},{"line_number":1221,"context_line":"        if device_exists(dev):"},{"line_number":1222,"context_line":"            delete_net_dev(dev1_name)"},{"line_number":1223,"context_line":""},{"line_number":1224,"context_line":"    utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027add\u0027, dev1_name, \u0027type\u0027, \u0027veth\u0027, \u0027peer\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAOn%2F%2Fx0E%3D","line":1221,"updated":"2013-04-23 17:38:42.000000000","message":"Don\u0027t need this check.","commit_id":"35b0c844c0ba77228835267690ef59c60fc13cb4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"a725b529d5efb7e4d85a8c6697c33b97fe61064f","unresolved":false,"context_lines":[{"line_number":1218,"context_line":"    deleting any previous devices with those names."},{"line_number":1219,"context_line":"    \"\"\""},{"line_number":1220,"context_line":"    for dev in [dev1_name, dev2_name]:"},{"line_number":1221,"context_line":"        if device_exists(dev):"},{"line_number":1222,"context_line":"            delete_net_dev(dev1_name)"},{"line_number":1223,"context_line":""},{"line_number":1224,"context_line":"    utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027add\u0027, dev1_name, \u0027type\u0027, \u0027veth\u0027, \u0027peer\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAOn%2F%2FxzI%3D","line":1221,"in_reply_to":"AAAAOn%2F%2Fx0E%3D","updated":"2013-04-23 17:55:06.000000000","message":"Done","commit_id":"35b0c844c0ba77228835267690ef59c60fc13cb4"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"8eea04d5a58c65becad4082c0a2c4d9f81d49737","unresolved":false,"context_lines":[{"line_number":1412,"context_line":"    def remove_vlan(cls, vlan_num):"},{"line_number":1413,"context_line":"        \"\"\"Delete a vlan.\"\"\""},{"line_number":1414,"context_line":"        vlan_interface \u003d \u0027vlan%s\u0027 % vlan_num"},{"line_number":1415,"context_line":"        if not device_exists(vlan_interface):"},{"line_number":1416,"context_line":"            return"},{"line_number":1417,"context_line":"        else:"},{"line_number":1418,"context_line":"            delete_net_dev(vlan_interface)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAOn%2F%2Fx0w%3D","line":1415,"updated":"2013-04-23 17:38:42.000000000","message":"This isn\u0027t necessary anymore since it\u0027s checked in delete_net_dev.","commit_id":"35b0c844c0ba77228835267690ef59c60fc13cb4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"a725b529d5efb7e4d85a8c6697c33b97fe61064f","unresolved":false,"context_lines":[{"line_number":1412,"context_line":"    def remove_vlan(cls, vlan_num):"},{"line_number":1413,"context_line":"        \"\"\"Delete a vlan.\"\"\""},{"line_number":1414,"context_line":"        vlan_interface \u003d \u0027vlan%s\u0027 % vlan_num"},{"line_number":1415,"context_line":"        if not device_exists(vlan_interface):"},{"line_number":1416,"context_line":"            return"},{"line_number":1417,"context_line":"        else:"},{"line_number":1418,"context_line":"            delete_net_dev(vlan_interface)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAOn%2F%2Fxy0%3D","line":1415,"in_reply_to":"AAAAOn%2F%2Fx0w%3D","updated":"2013-04-23 17:55:06.000000000","message":"Done","commit_id":"35b0c844c0ba77228835267690ef59c60fc13cb4"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"8eea04d5a58c65becad4082c0a2c4d9f81d49737","unresolved":false,"context_lines":[{"line_number":1416,"context_line":"            return"},{"line_number":1417,"context_line":"        else:"},{"line_number":1418,"context_line":"            delete_net_dev(vlan_interface)"},{"line_number":1419,"context_line":"            LOG.debug(_(\"Unplugged VLAN interface \u0027%s\u0027\"), vlan_interface)"},{"line_number":1420,"context_line":""},{"line_number":1421,"context_line":"    @classmethod"},{"line_number":1422,"context_line":"    @lockutils.synchronized(\u0027lock_bridge\u0027, \u0027nova-\u0027, external\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAOn%2F%2Fx0o%3D","line":1419,"updated":"2013-04-23 17:38:42.000000000","message":"This can also be removed.","commit_id":"35b0c844c0ba77228835267690ef59c60fc13cb4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"a725b529d5efb7e4d85a8c6697c33b97fe61064f","unresolved":false,"context_lines":[{"line_number":1416,"context_line":"            return"},{"line_number":1417,"context_line":"        else:"},{"line_number":1418,"context_line":"            delete_net_dev(vlan_interface)"},{"line_number":1419,"context_line":"            LOG.debug(_(\"Unplugged VLAN interface \u0027%s\u0027\"), vlan_interface)"},{"line_number":1420,"context_line":""},{"line_number":1421,"context_line":"    @classmethod"},{"line_number":1422,"context_line":"    @lockutils.synchronized(\u0027lock_bridge\u0027, \u0027nova-\u0027, external\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAOn%2F%2Fxyw%3D","line":1419,"in_reply_to":"AAAAOn%2F%2Fx0o%3D","updated":"2013-04-23 17:55:06.000000000","message":"Done","commit_id":"35b0c844c0ba77228835267690ef59c60fc13cb4"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"8eea04d5a58c65becad4082c0a2c4d9f81d49737","unresolved":false,"context_lines":[{"line_number":1528,"context_line":"                                                (\u0027--out-interface %s -j %s\u0027"},{"line_number":1529,"context_line":"                                                 % (bridge, drop_action)))"},{"line_number":1530,"context_line":"            delete_net_dev(bridge)"},{"line_number":1531,"context_line":"        LOG.debug(_(\"Unplugged bridge interface \u0027%s\u0027\"), bridge)"},{"line_number":1532,"context_line":""},{"line_number":1533,"context_line":""},{"line_number":1534,"context_line":"@lockutils.synchronized(\u0027ebtables\u0027, \u0027nova-\u0027, external\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAOn%2F%2Fx0g%3D","line":1531,"updated":"2013-04-23 17:38:42.000000000","message":"This will duplicate the message in delete_net_dev.","commit_id":"35b0c844c0ba77228835267690ef59c60fc13cb4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"a725b529d5efb7e4d85a8c6697c33b97fe61064f","unresolved":false,"context_lines":[{"line_number":1528,"context_line":"                                                (\u0027--out-interface %s -j %s\u0027"},{"line_number":1529,"context_line":"                                                 % (bridge, drop_action)))"},{"line_number":1530,"context_line":"            delete_net_dev(bridge)"},{"line_number":1531,"context_line":"        LOG.debug(_(\"Unplugged bridge interface \u0027%s\u0027\"), bridge)"},{"line_number":1532,"context_line":""},{"line_number":1533,"context_line":""},{"line_number":1534,"context_line":"@lockutils.synchronized(\u0027ebtables\u0027, \u0027nova-\u0027, external\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAOn%2F%2Fxys%3D","line":1531,"in_reply_to":"AAAAOn%2F%2Fx0g%3D","updated":"2013-04-23 17:55:06.000000000","message":"Done","commit_id":"35b0c844c0ba77228835267690ef59c60fc13cb4"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"8eea04d5a58c65becad4082c0a2c4d9f81d49737","unresolved":false,"context_lines":[{"line_number":1748,"context_line":"            return None"},{"line_number":1749,"context_line":"        else:"},{"line_number":1750,"context_line":"            delete_net_dev(dev)"},{"line_number":1751,"context_line":"            LOG.debug(_(\"Unplugged gateway interface \u0027%s\u0027\"), dev)"},{"line_number":1752,"context_line":"            return dev"},{"line_number":1753,"context_line":""},{"line_number":1754,"context_line":"    def get_dev(self, network):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAOn%2F%2Fx0Q%3D","line":1751,"updated":"2013-04-23 17:38:42.000000000","message":"Don\u0027t need this log message.","commit_id":"35b0c844c0ba77228835267690ef59c60fc13cb4"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"a725b529d5efb7e4d85a8c6697c33b97fe61064f","unresolved":false,"context_lines":[{"line_number":1748,"context_line":"            return None"},{"line_number":1749,"context_line":"        else:"},{"line_number":1750,"context_line":"            delete_net_dev(dev)"},{"line_number":1751,"context_line":"            LOG.debug(_(\"Unplugged gateway interface \u0027%s\u0027\"), dev)"},{"line_number":1752,"context_line":"            return dev"},{"line_number":1753,"context_line":""},{"line_number":1754,"context_line":"    def get_dev(self, network):"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAOn%2F%2Fxyo%3D","line":1751,"in_reply_to":"AAAAOn%2F%2Fx0Q%3D","updated":"2013-04-23 17:55:06.000000000","message":"Done","commit_id":"35b0c844c0ba77228835267690ef59c60fc13cb4"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"e63bb32b95d207e85203b7267b1218369268b361","unresolved":false,"context_lines":[{"line_number":1752,"context_line":"    def unplug(self, network):"},{"line_number":1753,"context_line":"        dev \u003d self.get_dev(network)"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":"        if not device_exists(dev):"},{"line_number":1756,"context_line":"            return None"},{"line_number":1757,"context_line":"        else:"},{"line_number":1758,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAOn%2F%2FxxQ%3D","side":"PARENT","line":1755,"updated":"2013-04-23 18:09:01.000000000","message":"I don\u0027t think you want to remove this check - it changes the return value in the case where the device doesn\u0027t exist.","commit_id":"bfb8ca3e6e2bac3595db94de17c6b00caa5aaa4a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"db304ed51949670ccf9dfe00ba907c5bc4df6671","unresolved":false,"context_lines":[{"line_number":1752,"context_line":"    def unplug(self, network):"},{"line_number":1753,"context_line":"        dev \u003d self.get_dev(network)"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":"        if not device_exists(dev):"},{"line_number":1756,"context_line":"            return None"},{"line_number":1757,"context_line":"        else:"},{"line_number":1758,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAOn%2F%2Fxvg%3D","side":"PARENT","line":1755,"in_reply_to":"AAAAOn%2F%2FxxQ%3D","updated":"2013-04-23 18:22:25.000000000","message":"I missed the None return, reverting this change.\nDone","commit_id":"bfb8ca3e6e2bac3595db94de17c6b00caa5aaa4a"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"e63bb32b95d207e85203b7267b1218369268b361","unresolved":false,"context_lines":[{"line_number":1218,"context_line":"    deleting any previous devices with those names."},{"line_number":1219,"context_line":"    \"\"\""},{"line_number":1220,"context_line":"    for dev in [dev1_name, dev2_name]:"},{"line_number":1221,"context_line":"        if device_exists(dev):"},{"line_number":1222,"context_line":"            delete_net_dev(dev1_name)"},{"line_number":1223,"context_line":""},{"line_number":1224,"context_line":"    utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027add\u0027, dev1_name, \u0027type\u0027, \u0027veth\u0027, \u0027peer\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAOn%2F%2FxxM%3D","line":1221,"updated":"2013-04-23 18:09:01.000000000","message":"Still here. :-)","commit_id":"c49864f7175582a4626f81897c190f8e004c0f9e"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"db304ed51949670ccf9dfe00ba907c5bc4df6671","unresolved":false,"context_lines":[{"line_number":1218,"context_line":"    deleting any previous devices with those names."},{"line_number":1219,"context_line":"    \"\"\""},{"line_number":1220,"context_line":"    for dev in [dev1_name, dev2_name]:"},{"line_number":1221,"context_line":"        if device_exists(dev):"},{"line_number":1222,"context_line":"            delete_net_dev(dev1_name)"},{"line_number":1223,"context_line":""},{"line_number":1224,"context_line":"    utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027add\u0027, dev1_name, \u0027type\u0027, \u0027veth\u0027, \u0027peer\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAOn%2F%2Fxvk%3D","line":1221,"in_reply_to":"AAAAOn%2F%2FxxM%3D","updated":"2013-04-23 18:22:25.000000000","message":"Ups!!  it seems i did not save my changes the first time... my bad!!  :-)","commit_id":"c49864f7175582a4626f81897c190f8e004c0f9e"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"9d50b5340df442a5aa087fa5e3bb2542fc63f8f8","unresolved":false,"context_lines":[{"line_number":1218,"context_line":"    deleting any previous devices with those names."},{"line_number":1219,"context_line":"    \"\"\""},{"line_number":1220,"context_line":"    for dev in [dev1_name, dev2_name]:"},{"line_number":1221,"context_line":"        delete_net_dev(dev1_name)"},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027add\u0027, dev1_name, \u0027type\u0027, \u0027veth\u0027, \u0027peer\u0027,"},{"line_number":1224,"context_line":"                  \u0027name\u0027, dev2_name, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAOn%2F%2FwPM%3D","line":1221,"updated":"2013-04-24 18:55:29.000000000","message":"Looks like you should pass dev here not dev1_name.","commit_id":"1f0dcc6f3479831832f501f983eca295c8aa3878"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"f626c763d79d4769926e4c412f2889ed3d0ac9ec","unresolved":false,"context_lines":[{"line_number":1218,"context_line":"    deleting any previous devices with those names."},{"line_number":1219,"context_line":"    \"\"\""},{"line_number":1220,"context_line":"    for dev in [dev1_name, dev2_name]:"},{"line_number":1221,"context_line":"        delete_net_dev(dev1_name)"},{"line_number":1222,"context_line":""},{"line_number":1223,"context_line":"    utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027add\u0027, dev1_name, \u0027type\u0027, \u0027veth\u0027, \u0027peer\u0027,"},{"line_number":1224,"context_line":"                  \u0027name\u0027, dev2_name, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAOn%2F%2FwGE%3D","line":1221,"in_reply_to":"AAAAOn%2F%2FwPM%3D","updated":"2013-04-24 20:18:15.000000000","message":"Done","commit_id":"1f0dcc6f3479831832f501f983eca295c8aa3878"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"2b31225dfc8d80950c8d62e038f35de449c83696","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, vlan_interface,"},{"line_number":1415,"context_line":"                              run_as_root\u003dTrue, check_exit_code\u003d[0, 2, 254])"},{"line_number":1416,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1417,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1418,"context_line":"                    LOG.error(_(\"Failed unplugging VLAN interface \u0027%s\u0027\"),"},{"line_number":1419,"context_line":"                              vlan_interface)"},{"line_number":1420,"context_line":"            LOG.debug(_(\"Unplugged VLAN interface \u0027%s\u0027\"), vlan_interface)"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAOn%2F%2FvzI%3D","side":"PARENT","line":1417,"updated":"2013-04-28 18:07:07.000000000","message":"Should we add this line back after 1272 to your def delete_net_dev() ?","commit_id":"bfb8ca3e6e2bac3595db94de17c6b00caa5aaa4a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"f449e56392d384a9efee267bc1d0ed3595d62288","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, vlan_interface,"},{"line_number":1415,"context_line":"                              run_as_root\u003dTrue, check_exit_code\u003d[0, 2, 254])"},{"line_number":1416,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1417,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1418,"context_line":"                    LOG.error(_(\"Failed unplugging VLAN interface \u0027%s\u0027\"),"},{"line_number":1419,"context_line":"                              vlan_interface)"},{"line_number":1420,"context_line":"            LOG.debug(_(\"Unplugged VLAN interface \u0027%s\u0027\"), vlan_interface)"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAOn%2F%2FqkI%3D","side":"PARENT","line":1417,"in_reply_to":"AAAAOn%2F%2Fq5s%3D","updated":"2013-04-29 22:58:34.000000000","message":"Thank you for the feedback Aaron and Kevin. I have add that line back in the following patch.","commit_id":"bfb8ca3e6e2bac3595db94de17c6b00caa5aaa4a"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"322fe8e223dc81f4b7b29f528525882896530048","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, vlan_interface,"},{"line_number":1415,"context_line":"                              run_as_root\u003dTrue, check_exit_code\u003d[0, 2, 254])"},{"line_number":1416,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1417,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1418,"context_line":"                    LOG.error(_(\"Failed unplugging VLAN interface \u0027%s\u0027\"),"},{"line_number":1419,"context_line":"                              vlan_interface)"},{"line_number":1420,"context_line":"            LOG.debug(_(\"Unplugged VLAN interface \u0027%s\u0027\"), vlan_interface)"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAOn%2F%2Fq5s%3D","side":"PARENT","line":1417,"in_reply_to":"AAAAOn%2F%2Fr48%3D","updated":"2013-04-29 19:18:30.000000000","message":"Well, I\u0027m core, and I think this save_and_reraise_exception() should be used :)","commit_id":"bfb8ca3e6e2bac3595db94de17c6b00caa5aaa4a"},{"author":{"_account_id":704,"name":"Edgar Magana","email":"emagana@gmail.com","username":"emagana"},"change_message_id":"5daa990b4b7273ebde3c75e3eed2b55149179ce7","unresolved":false,"context_lines":[{"line_number":1414,"context_line":"                utils.execute(\u0027ip\u0027, \u0027link\u0027, \u0027delete\u0027, vlan_interface,"},{"line_number":1415,"context_line":"                              run_as_root\u003dTrue, check_exit_code\u003d[0, 2, 254])"},{"line_number":1416,"context_line":"            except exception.ProcessExecutionError:"},{"line_number":1417,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1418,"context_line":"                    LOG.error(_(\"Failed unplugging VLAN interface \u0027%s\u0027\"),"},{"line_number":1419,"context_line":"                              vlan_interface)"},{"line_number":1420,"context_line":"            LOG.debug(_(\"Unplugged VLAN interface \u0027%s\u0027\"), vlan_interface)"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAAOn%2F%2Fr48%3D","side":"PARENT","line":1417,"in_reply_to":"AAAAOn%2F%2FvzI%3D","updated":"2013-04-29 05:08:37.000000000","message":"nova core reviewers seems to be ok with the current proposal, if they are fine I will keep it as it is now.","commit_id":"bfb8ca3e6e2bac3595db94de17c6b00caa5aaa4a"}]}
