示例#1
0
 def unplug_vhostuser(self, instance, vif):
     ovs_plug = vif['details'].get(
         network_model.VIF_DETAILS_VHOSTUSER_OVS_PLUG, False)
     if ovs_plug:
         port_name = os.path.basename(
             vif['details'][network_model.VIF_DETAILS_VHOSTUSER_SOCKET])
         linux_net.delete_ovs_vif_port(self.get_bridge_name(vif), port_name)
示例#2
0
    def unplug_ovs_hybrid(self, instance, vif):
        """UnPlug using hybrid strategy

        Unhook port from OVS, unhook port from bridge, delete
        bridge, and delete both veth devices.
        """
        try:
            br_name = self.get_br_name(vif['id'])
            v1_name, v2_name = self.get_veth_pair_names(vif['id'])

            if linux_net.device_exists(br_name):
                utils.execute('brctl',
                              'delif',
                              br_name,
                              v1_name,
                              run_as_root=True)
                utils.execute('ip',
                              'link',
                              'set',
                              br_name,
                              'down',
                              run_as_root=True)
                utils.execute('brctl', 'delbr', br_name, run_as_root=True)

            linux_net.delete_ovs_vif_port(self.get_bridge_name(vif), v2_name)
        except processutils.ProcessExecutionError:
            LOG.exception(_LE("Failed while unplugging vif"),
                          instance=instance)
示例#3
0
文件: vif.py 项目: hsluoyz/patron
 def unplug_vhostuser(self, instance, vif):
     ovs_plug = vif['details'].get(
                     network_model.VIF_DETAILS_VHOSTUSER_OVS_PLUG,
                     False)
     if ovs_plug:
         port_name = os.path.basename(
                 vif['details'][network_model.VIF_DETAILS_VHOSTUSER_SOCKET])
         linux_net.delete_ovs_vif_port(self.get_bridge_name(vif),
                                       port_name)
示例#4
0
文件: vif.py 项目: hsluoyz/patron
    def unplug_ovs_hybrid(self, instance, vif):
        """UnPlug using hybrid strategy

        Unhook port from OVS, unhook port from bridge, delete
        bridge, and delete both veth devices.
        """
        try:
            br_name = self.get_br_name(vif['id'])
            v1_name, v2_name = self.get_veth_pair_names(vif['id'])

            if linux_net.device_exists(br_name):
                utils.execute('brctl', 'delif', br_name, v1_name,
                              run_as_root=True)
                utils.execute('ip', 'link', 'set', br_name, 'down',
                              run_as_root=True)
                utils.execute('brctl', 'delbr', br_name,
                              run_as_root=True)

            linux_net.delete_ovs_vif_port(self.get_bridge_name(vif),
                                          v2_name)
        except processutils.ProcessExecutionError:
            LOG.exception(_LE("Failed while unplugging vif"),
                          instance=instance)