)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3d02c871393d8e64184130c947f56809a412939b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move calls to ovs-vsctl to privsep."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The exception handling isn\u0027t perfect, but it keeps the interface"},{"line_number":10,"context_line":"unchanged. Its quite hard to include the command in the exception"},{"line_number":11,"context_line":"like we did before, so I am hoping we can just not do that thing."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I9d46e0dc228ed2df9f681c1a2f4dca3c018c7822"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"7faddb67_81131401","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":10},"updated":"2019-08-19 16:42:53.000000000","message":"Sorry, why can\u0027t the exception handling happen within the method?","commit_id":"536af89b11ea69f3a13c4692301432290a1d0690"}],"nova/network/linux_net.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f62f6b0869af318e3987f169f0c4bac8eb90abe3","unresolved":false,"context_lines":[{"line_number":1178,"context_line":"            return int(f.read())"},{"line_number":1179,"context_line":""},{"line_number":1180,"context_line":""},{"line_number":1181,"context_line":"def _ovs_vsctl(args):"},{"line_number":1182,"context_line":"    full_args \u003d [\u0027ovs-vsctl\u0027, \u0027--timeout\u003d%s\u0027 % CONF.ovs_vsctl_timeout] + args"},{"line_number":1183,"context_line":"    try:"},{"line_number":1184,"context_line":"        return utils.execute(*full_args, run_as_root\u003dTrue)"},{"line_number":1185,"context_line":"    except Exception as e:"},{"line_number":1186,"context_line":"        LOG.error(\"Unable to execute %(cmd)s. Exception: %(exception)s\","},{"line_number":1187,"context_line":"                  {\u0027cmd\u0027: full_args, \u0027exception\u0027: e})"},{"line_number":1188,"context_line":"        raise exception.OvsConfigurationFailure(inner_exception\u003de)"},{"line_number":1189,"context_line":""},{"line_number":1190,"context_line":""},{"line_number":1191,"context_line":"def delete_bridge_dev(dev):"}],"source_content_type":"text/x-python","patch_set":22,"id":"7faddb67_49cc3e88","line":1188,"range":{"start_line":1181,"start_character":0,"end_line":1188,"end_character":66},"updated":"2019-08-06 07:00:18.000000000","message":"It should be removed.","commit_id":"82c61a80e4ce185493a742d0a82b1a6ec3e9307a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b7e2f3a1cb5fb88441f5ba6e1b11089900eb3ff","unresolved":false,"context_lines":[{"line_number":1178,"context_line":"            return int(f.read())"},{"line_number":1179,"context_line":""},{"line_number":1180,"context_line":""},{"line_number":1181,"context_line":"def _ovs_vsctl(args):"},{"line_number":1182,"context_line":"    full_args \u003d [\u0027ovs-vsctl\u0027, \u0027--timeout\u003d%s\u0027 % CONF.ovs_vsctl_timeout] + args"},{"line_number":1183,"context_line":"    try:"},{"line_number":1184,"context_line":"        return utils.execute(*full_args, run_as_root\u003dTrue)"},{"line_number":1185,"context_line":"    except Exception as e:"},{"line_number":1186,"context_line":"        LOG.error(\"Unable to execute %(cmd)s. Exception: %(exception)s\","},{"line_number":1187,"context_line":"                  {\u0027cmd\u0027: full_args, \u0027exception\u0027: e})"},{"line_number":1188,"context_line":"        raise exception.OvsConfigurationFailure(inner_exception\u003de)"},{"line_number":1189,"context_line":""},{"line_number":1190,"context_line":""},{"line_number":1191,"context_line":"def delete_bridge_dev(dev):"}],"source_content_type":"text/x-python","patch_set":22,"id":"7faddb67_e3eb0ca1","line":1188,"range":{"start_line":1181,"start_character":0,"end_line":1188,"end_character":66},"in_reply_to":"7faddb67_49cc3e88","updated":"2019-08-16 10:26:20.000000000","message":"Done","commit_id":"82c61a80e4ce185493a742d0a82b1a6ec3e9307a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3d02c871393d8e64184130c947f56809a412939b","unresolved":false,"context_lines":[{"line_number":1587,"context_line":"        if not nova.privsep.linux_net.device_exists(dev):"},{"line_number":1588,"context_line":"            bridge \u003d CONF.linuxnet_ovs_integration_bridge"},{"line_number":1589,"context_line":""},{"line_number":1590,"context_line":"            try:"},{"line_number":1591,"context_line":"                nova.privsep.linux_net.ovs_plug(CONF.ovs_vsctl_timeout,"},{"line_number":1592,"context_line":"                                                bridge, dev, mac_address)"},{"line_number":1593,"context_line":"            except Exception as e:"},{"line_number":1594,"context_line":"                LOG.error(\u0027Unable to execute ovs-plug. Exception: \u0027"},{"line_number":1595,"context_line":"                          \u0027%(exception)s\u0027,"},{"line_number":1596,"context_line":"                          {\u0027exception\u0027: e})"},{"line_number":1597,"context_line":"                raise exception.OvsConfigurationFailure(inner_exception\u003de)"},{"line_number":1598,"context_line":""},{"line_number":1599,"context_line":"            nova.privsep.linux_net.set_device_macaddr("},{"line_number":1600,"context_line":"                dev, mac_address)"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_41d75c24","line":1597,"range":{"start_line":1590,"start_character":0,"end_line":1597,"end_character":74},"updated":"2019-08-19 16:42:53.000000000","message":"I don\u0027t understand why this try/except can\u0027t be within the privsep method","commit_id":"536af89b11ea69f3a13c4692301432290a1d0690"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b1fb4286fc974a67852612b5ce8bd747b9b60558","unresolved":false,"context_lines":[{"line_number":1587,"context_line":"        if not nova.privsep.linux_net.device_exists(dev):"},{"line_number":1588,"context_line":"            bridge \u003d CONF.linuxnet_ovs_integration_bridge"},{"line_number":1589,"context_line":""},{"line_number":1590,"context_line":"            try:"},{"line_number":1591,"context_line":"                nova.privsep.linux_net.ovs_plug(CONF.ovs_vsctl_timeout,"},{"line_number":1592,"context_line":"                                                bridge, dev, mac_address)"},{"line_number":1593,"context_line":"            except Exception as e:"},{"line_number":1594,"context_line":"                LOG.error(\u0027Unable to execute ovs-plug. Exception: \u0027"},{"line_number":1595,"context_line":"                          \u0027%(exception)s\u0027,"},{"line_number":1596,"context_line":"                          {\u0027exception\u0027: e})"},{"line_number":1597,"context_line":"                raise exception.OvsConfigurationFailure(inner_exception\u003de)"},{"line_number":1598,"context_line":""},{"line_number":1599,"context_line":"            nova.privsep.linux_net.set_device_macaddr("},{"line_number":1600,"context_line":"                dev, mac_address)"}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_32bce204","line":1597,"range":{"start_line":1590,"start_character":0,"end_line":1597,"end_character":74},"in_reply_to":"7faddb67_41d75c24","updated":"2019-08-20 11:14:01.000000000","message":"Neither do I, actually, seeing as we have exception code in \u0027nova/privsep/path.py\u0027. Addressed in the follow-up.","commit_id":"536af89b11ea69f3a13c4692301432290a1d0690"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3d02c871393d8e64184130c947f56809a412939b","unresolved":false,"context_lines":[{"line_number":1625,"context_line":"    def unplug(self, network):"},{"line_number":1626,"context_line":"        dev \u003d self.get_dev(network)"},{"line_number":1627,"context_line":"        bridge \u003d CONF.linuxnet_ovs_integration_bridge"},{"line_number":1628,"context_line":"        try:"},{"line_number":1629,"context_line":"            nova.privsep.linux_net.ovs_unplug(CONF.ovs_vsctl_timeout,"},{"line_number":1630,"context_line":"                                              bridge, dev)"},{"line_number":1631,"context_line":"        except Exception as e:"},{"line_number":1632,"context_line":"            LOG.error(\u0027Unable to execute ovs-unplug. Exception: %(exception)s\u0027,"},{"line_number":1633,"context_line":"                      {\u0027exception\u0027: e})"},{"line_number":1634,"context_line":"            raise exception.OvsConfigurationFailure(inner_exception\u003de)"},{"line_number":1635,"context_line":""},{"line_number":1636,"context_line":"        return dev"},{"line_number":1637,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"7faddb67_01dde43f","line":1634,"range":{"start_line":1628,"start_character":0,"end_line":1634,"end_character":70},"updated":"2019-08-19 16:42:53.000000000","message":"ditto","commit_id":"536af89b11ea69f3a13c4692301432290a1d0690"}],"nova/privsep/linux_net.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"f62f6b0869af318e3987f169f0c4bac8eb90abe3","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                         \u0027external-ids:attached-mac\u003d%s\u0027 % mac_address)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":367,"context_line":"def ovs_drop_nondhcp(bridge, mac_address):"},{"line_number":368,"context_line":"    processutils.execute("},{"line_number":369,"context_line":"        \u0027ovs-ofctl\u0027, \u0027add-flow\u0027, bridge, \u0027priority\u003d1,actions\u003ddrop\u0027)"},{"line_number":370,"context_line":"    processutils.execute("},{"line_number":371,"context_line":"        \u0027ovs-ofctl\u0027, \u0027add-flow\u0027, bridge,"},{"line_number":372,"context_line":"        \u0027udp,tp_dst\u003d67,dl_dst\u003d%s,priority\u003d2,actions\u003dnormal\u0027 % mac_address)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"}],"source_content_type":"text/x-python","patch_set":22,"id":"7faddb67_6981fafa","line":372,"range":{"start_line":366,"start_character":0,"end_line":372,"end_character":74},"updated":"2019-08-06 07:00:18.000000000","message":"This function should be added in https://review.opendev.org/#/c/639283/, shouldn\u0027t it?","commit_id":"82c61a80e4ce185493a742d0a82b1a6ec3e9307a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b7e2f3a1cb5fb88441f5ba6e1b11089900eb3ff","unresolved":false,"context_lines":[{"line_number":363,"context_line":"                         \u0027external-ids:attached-mac\u003d%s\u0027 % mac_address)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":367,"context_line":"def ovs_drop_nondhcp(bridge, mac_address):"},{"line_number":368,"context_line":"    processutils.execute("},{"line_number":369,"context_line":"        \u0027ovs-ofctl\u0027, \u0027add-flow\u0027, bridge, \u0027priority\u003d1,actions\u003ddrop\u0027)"},{"line_number":370,"context_line":"    processutils.execute("},{"line_number":371,"context_line":"        \u0027ovs-ofctl\u0027, \u0027add-flow\u0027, bridge,"},{"line_number":372,"context_line":"        \u0027udp,tp_dst\u003d67,dl_dst\u003d%s,priority\u003d2,actions\u003dnormal\u0027 % mac_address)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"}],"source_content_type":"text/x-python","patch_set":22,"id":"7faddb67_a32f54f4","line":372,"range":{"start_line":366,"start_character":0,"end_line":372,"end_character":74},"in_reply_to":"7faddb67_6981fafa","updated":"2019-08-16 10:26:20.000000000","message":"Done","commit_id":"82c61a80e4ce185493a742d0a82b1a6ec3e9307a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"be1d9cbcdebb4cffc53c4bfc63a4d316783965f5","unresolved":false,"context_lines":[{"line_number":352,"context_line":""},{"line_number":353,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":354,"context_line":"def ovs_plug(timeout, bridge, dev, mac_address):"},{"line_number":355,"context_line":"    processutils.execute(\u0027ovs-vsctl\u0027, \u0027--timeout\u003d%s\u0027 % timeout,"},{"line_number":356,"context_line":"                         \u0027--\u0027, \u0027--may-exist\u0027, \u0027add-port\u0027, bridge, dev,"},{"line_number":357,"context_line":"                         \u0027--\u0027, \u0027set\u0027, \u0027Interface\u0027, dev, \u0027type\u003dinternal\u0027,"},{"line_number":358,"context_line":"                         \u0027--\u0027, \u0027set\u0027, \u0027Interface\u0027, dev,"}],"source_content_type":"text/x-python","patch_set":24,"id":"7faddb67_a7096731","line":355,"updated":"2019-08-20 19:14:00.000000000","message":"kinda looks like we never had coverage for the specific args here :(","commit_id":"2c29d54fb72c4d77dcfef7f00ffbc465057b18ff"}]}
