Exemplo n.º 1
0
    def _plug_os_vif(self, instance, vif, raw_vif):
        instance_info = os_vif_util.nova_to_osvif_instance(instance)

        try:
            os_vif.plug(vif, instance_info)
        except osv_exception.ExceptionBase as ex:
            msg = (_("Failure running os_vif plugin plug method: %(ex)s")
                   % {'ex': ex})
            raise exception.NovaException(msg)

        # TODO(johngarbutt) remove this hack once 1623876 is fixed in os-vif
        network = raw_vif.get('network')
        mtu = network.get_meta('mtu') if network else None
        if mtu is not None:
            linux_net._set_device_mtu(network["bridge"], mtu)

        if (type(vif) == os_vif.objects.vif.VIFBridge and
            hasattr(vif, "port_profile") and
            isinstance(vif.port_profile,
                       os_vif.objects.vif.VIFPortProfileOpenVSwitch)):
            veths = [
                ("qvb%s" % vif.id)[:network_model.NIC_NAME_LEN],
                ("qvo%s" % vif.id)[:network_model.NIC_NAME_LEN]]
            for veth in veths:
                linux_net._set_device_mtu(veth, mtu)
Exemplo n.º 2
0
Arquivo: vif.py Projeto: andymcc/nova
    def _unplug_os_vif(self, instance, vif):
        instance_info = os_vif_util.nova_to_osvif_instance(instance)

        try:
            os_vif.unplug(vif, instance_info)
        except osv_exception.ExceptionBase as ex:
            msg = (_("Failure running os_vif plugin unplug method: %(ex)s")
                   % {'ex': ex})
            raise exception.InternalError(msg)
Exemplo n.º 3
0
Arquivo: vif.py Projeto: zhbowei/nova
    def _plug_os_vif(self, instance, vif):
        instance_info = os_vif_util.nova_to_osvif_instance(instance)

        try:
            os_vif.plug(vif, instance_info)
        except osv_exception.ExceptionBase as ex:
            msg = (_("Failure running os_vif plugin plug method: %(ex)s")
                   % {'ex': ex})
            raise exception.InternalError(msg)
Exemplo n.º 4
0
    def test_nova_to_osvif_instance_minimal(self):
        inst = objects.Instance(id="1242",
                                uuid="d5b1090c-9e00-4fa4-9504-4b1494857970")

        actual = os_vif_util.nova_to_osvif_instance(inst)

        expect = osv_objects.instance_info.InstanceInfo(uuid=inst.uuid,
                                                        name=inst.name)

        self.assertObjEqual(expect, actual)
Exemplo n.º 5
0
 def unplug(self, instance, vif):
     vif_type = vif['type']
     if vif_type == model.VIF_TYPE_HYPERV:
         self._vif_plugin.unplug(instance, vif)
     elif vif_type == model.VIF_TYPE_OVS:
         vif = os_vif_util.nova_to_osvif_vif(vif)
         instance = os_vif_util.nova_to_osvif_instance(instance)
         os_vif.unplug(vif, instance)
     else:
         reason = _("unexpected vif_type=%s") % vif_type
         raise exception.VirtualInterfaceUnplugException(reason=reason)
Exemplo n.º 6
0
 def unplug(self, instance, vif):
     vif_type = vif['type']
     if vif_type == model.VIF_TYPE_HYPERV:
         self._vif_plugin.unplug(instance, vif)
     elif vif_type == model.VIF_TYPE_OVS:
         vif = os_vif_util.nova_to_osvif_vif(vif)
         instance = os_vif_util.nova_to_osvif_instance(instance)
         os_vif.unplug(vif, instance)
     else:
         reason = _("unexpected vif_type=%s") % vif_type
         raise exception.VirtualInterfaceUnplugException(reason=reason)
Exemplo n.º 7
0
    def test_nova_to_osvif_instance_minimal(self):
        inst = objects.Instance(
            id="1242",
            uuid="d5b1090c-9e00-4fa4-9504-4b1494857970")

        actual = os_vif_util.nova_to_osvif_instance(inst)

        expect = osv_objects.instance_info.InstanceInfo(
            uuid=inst.uuid,
            name=inst.name)

        self.assertObjEqual(expect, actual)
Exemplo n.º 8
0
    def test_nova_to_osvif_instance(self):
        inst = objects.Instance(
            id="1242",
            uuid="d5b1090c-9e00-4fa4-9504-4b1494857970",
            project_id="2f37d7f6-e51a-4a1f-8b6e-b0917ffc8390")

        info = os_vif_util.nova_to_osvif_instance(inst)

        expect = osv_objects.instance_info.InstanceInfo(
            uuid="d5b1090c-9e00-4fa4-9504-4b1494857970",
            name="instance-000004da",
            project_id="2f37d7f6-e51a-4a1f-8b6e-b0917ffc8390")

        self.assertObjEqual(info, expect)
    def test_nova_to_osvif_instance(self):
        inst = objects.Instance(
            id="1242",
            uuid="d5b1090c-9e00-4fa4-9504-4b1494857970",
            project_id="2f37d7f6-e51a-4a1f-8b6e-b0917ffc8390")

        info = os_vif_util.nova_to_osvif_instance(inst)

        expect = osv_objects.instance_info.InstanceInfo(
            uuid="d5b1090c-9e00-4fa4-9504-4b1494857970",
            name="instance-000004da",
            project_id="2f37d7f6-e51a-4a1f-8b6e-b0917ffc8390")

        self.assertObjEqual(info, expect)
Exemplo n.º 10
0
    def unplug(self, instance, vif):
        vif_type = vif['type']
        instance_info = os_vif_util.nova_to_osvif_instance(instance)

        # Try os-vif codepath first
        vif_obj = os_vif_util.nova_to_osvif_vif(vif)
        if vif_obj is not None:
            os_vif.unplug(vif_obj, instance_info)
            return

        # Legacy non-os-vif codepath
        func = getattr(self, 'unplug_%s' % vif_type, None)
        if not func:
            raise exception.InternalError("Unexpected vif_type=%s" % vif_type)
        func(instance, vif)
Exemplo n.º 11
0
    def plug(self, instance, vif):
        vif_type = vif['type']
        if vif_type == model.VIF_TYPE_HYPERV:
            self._vif_plugin.plug(instance, vif)
        elif vif_type == model.VIF_TYPE_OVS:
            vif = os_vif_util.nova_to_osvif_vif(vif)
            instance = os_vif_util.nova_to_osvif_instance(instance)

            # NOTE(claudiub): the vNIC has to be connected to a vSwitch
            # before the ovs port is created.
            self._netutils.connect_vnic_to_vswitch(CONF.hyperv.vswitch_name,
                                                   vif.id)
            os_vif.plug(vif, instance)
        else:
            reason = _("Failed to plug virtual interface: "
                       "unexpected vif_type=%s") % vif_type
            raise exception.VirtualInterfacePlugException(reason)
Exemplo n.º 12
0
    def plug(self, instance, vif):
        vif_type = vif['type']
        if vif_type == model.VIF_TYPE_HYPERV:
            self._vif_plugin.plug(instance, vif)
        elif vif_type == model.VIF_TYPE_OVS:
            vif = os_vif_util.nova_to_osvif_vif(vif)
            instance = os_vif_util.nova_to_osvif_instance(instance)

            # NOTE(claudiub): the vNIC has to be connected to a vSwitch
            # before the ovs port is created.
            self._netutils.connect_vnic_to_vswitch(CONF.hyperv.vswitch_name,
                                                   vif.id)
            os_vif.plug(vif, instance)
        else:
            reason = _("Failed to plug virtual interface: "
                       "unexpected vif_type=%s") % vif_type
            raise exception.VirtualInterfacePlugException(reason)
Exemplo n.º 13
0
    def unplug(self, instance, vif):
        vif_type = vif['type']
        instance_info = os_vif_util.nova_to_osvif_instance(instance)

        # Try os-vif codepath first
        vif_obj = os_vif_util.nova_to_osvif_vif(vif)
        if vif_obj is not None:
            os_vif.unplug(vif_obj, instance_info)
        else:
            # Legacy non-os-vif codepath
            func = getattr(self, 'unplug_%s' % vif_type, None)
            if not func:
                raise exception.InternalError(
                    "Unexpected vif_type=%s" % vif_type
                )
            func(instance, vif)

        _post_unplug_wiring(instance, vif)
Exemplo n.º 14
0
    def unplug(self, instance, vif):
        instance_info = os_vif_util.nova_to_osvif_instance(instance)
        vif_obj = os_vif_util.nova_to_osvif_vif(vif)

        os_vif.unplug(vif_obj, instance_info)