Example #1
0
    def plug_ivs_ethernet(self, instance, vif):
        super(LibvirtGenericVIFDriver, self).plug(instance, vif)

        iface_id = self.get_ovs_interfaceid(vif)
        dev = self.get_vif_devname(vif)
        linux_net.create_tap_dev(dev)
        linux_net.create_ivs_vif_port(dev, iface_id, vif["address"], instance["uuid"])
Example #2
0
    def plug_iovisor(self, instance, vif):
        """Plug using PLUMgrid IO Visor Driver

        Connect a network device to their respective
        Virtual Domain in PLUMgrid Platform.
        """
        super(LibvirtGenericVIFDriver, self).plug(instance, vif)
        dev = self.get_vif_devname(vif)
        iface_id = vif["id"]
        linux_net.create_tap_dev(dev)
        net_id = vif["network"]["id"]
        tenant_id = instance["project_id"]
        try:
            utils.execute("ifc_ctl", "gateway", "add_port", dev, run_as_root=True)
            utils.execute(
                "ifc_ctl",
                "gateway",
                "ifup",
                dev,
                "access_vm",
                vif["network"]["label"] + "_" + iface_id,
                vif["address"],
                "pgtag2=%s" % net_id,
                "pgtag1=%s" % tenant_id,
                run_as_root=True,
            )
        except processutils.ProcessExecutionError:
            LOG.exception(_("Failed while plugging vif"), instance=instance)
Example #3
0
    def plug_iovisor(self, instance, vif):
        """Plug using PLUMgrid IO Visor Driver

        Connect a network device to their respective
        Virtual Domain in PLUMgrid Platform.
        """
        dev = self.get_vif_devname(vif)
        iface_id = vif['id']
        linux_net.create_tap_dev(dev)
        net_id = vif['network']['id']
        tenant_id = instance.project_id
        try:
            utils.execute('ifc_ctl',
                          'gateway',
                          'add_port',
                          dev,
                          run_as_root=True)
            utils.execute('ifc_ctl',
                          'gateway',
                          'ifup',
                          dev,
                          'access_vm',
                          iface_id,
                          vif['address'],
                          'pgtag2=%s' % net_id,
                          'pgtag1=%s' % tenant_id,
                          run_as_root=True)
        except processutils.ProcessExecutionError:
            LOG.exception(_LE("Failed while plugging vif"), instance=instance)
Example #4
0
    def plug_vrouter(self, instance, vif):
        """Plug into Contrail's network port

        Bind the vif to a Contrail virtual port.
        """
        dev = self.get_vif_devname(vif)
        ip_addr = '0.0.0.0'
        ip6_addr = None
        subnets = vif['network']['subnets']
        for subnet in subnets:
            if not subnet['ips']:
                continue
            ips = subnet['ips'][0]
            if not ips['address']:
                continue
            if (ips['version'] == 4):
                if ips['address'] is not None:
                    ip_addr = ips['address']
            if (ips['version'] == 6):
                if ips['address'] is not None:
                    ip6_addr = ips['address']

        ptype = 'NovaVMPort'
        if (CONF.libvirt.virt_type == 'lxc'):
            ptype = 'NameSpacePort'

        try:
            multiqueue = self._is_multiqueue_enabled(instance.image_meta,
                                                     instance.flavor)
            linux_net.create_tap_dev(dev, multiqueue=multiqueue)
            nova.privsep.libvirt.plug_contrail_vif(instance, vif, ip_addr,
                                                   ip6_addr, ptype)
        except processutils.ProcessExecutionError:
            LOG.exception(_("Failed while plugging vif"), instance=instance)
    def plug(self, instance, vif):
        dev = self.get_vif_devname(vif)

        try:
            linux_net.create_tap_dev(dev)
        except processutils.ProcessExecutionError:
            LOG.exception(_LE("Failed while plugging vif"), instance=instance)

        if cfg.CONF.libvirt.virt_type == 'lxc':
            dev = self._create_bridge(dev, instance)

        kwargs = {
            'ip_address': vif['network']['subnets'][0]['ips'][0]['address'],
            'vn_id': vif['network']['id'],
            'display_name': instance['display_name'],
            'hostname': instance['hostname'],
            'host': instance['host'],
            'vm_project_id': instance['project_id'],
            'port_type': self.PORT_TYPE,
        }
        try:
            result = self._vrouter_client.add_port(instance['uuid'], vif['id'],
                                                   dev, vif['address'],
                                                   **kwargs)
            if not result:
                LOG.exception(_LE("Failed while plugging vif"),
                              instance=instance)
        except TApplicationException:
            LOG.exception(_LE("Failed while plugging vif"), instance=instance)
    def plug(self, instance, vif):
        dev = self.get_vif_devname(vif)

        try:
            linux_net.create_tap_dev(dev)
        except processutils.ProcessExecutionError:
            LOG.exception(_LE("Failed while plugging vif"), instance=instance)

        kwargs = {
            'ip_address': vif['network']['subnets'][0]['ips'][0]['address'],
            'vn_id': vif['network']['id'],
            'display_name': instance['display_name'],
            'hostname': instance['hostname'],
            'host': instance['host'],
            'vm_project_id': instance['project_id'],
            'port_type': self.PORT_TYPE,
        }
        try:
            result = self._vrouter_client.add_port(instance['uuid'],
                                                   vif['id'],
                                                   dev,
                                                   vif['address'],
                                                   **kwargs)
            if not result:
                LOG.exception(_LE("Failed while plugging vif"),
                              instance=instance)
        except TApplicationException:
            LOG.exception(_LE("Failed while plugging vif"), instance=instance)
Example #7
0
    def plug_iovisor(self, instance, vif):
        """Plug using PLUMgrid IO Visor Driver

        Connect a network device to their respective
        Virtual Domain in PLUMgrid Platform.
        """
        super(LibvirtGenericVIFDriver, self).plug(instance, vif)
        network, mapping = vif
        dev = self.get_vif_devname(mapping)
        iface_id = mapping['vif_uuid']
        linux_net.create_tap_dev(dev)
        net_id = network['id']
        tenant_id = instance["project_id"]
        try:
            utils.execute('ifc_ctl',
                          'gateway',
                          'add_port',
                          dev,
                          run_as_root=True)
            utils.execute('ifc_ctl',
                          'gateway',
                          'ifup',
                          dev,
                          'access_vm',
                          mapping['label'] + "_" + iface_id,
                          mapping['mac'],
                          'pgtag2=%s' % net_id,
                          'pgtag1=%s' % tenant_id,
                          run_as_root=True)
        except exception.ProcessExecutionError:
            LOG.exception(_("Failed while plugging vif"), instance=instance)
Example #8
0
 def plug_routed(self, instance, vif):
     """Plug a routed virtual interface
     """
     super(LibvirtGenericVIFDriver,
           self).plug(instance, vif)
     dev = self.get_vif_devname(vif)
     linux_net.create_tap_dev(dev)
    def plug(self, instance, vif):
        iface_id = vif['id']
        dev = self.get_vif_devname(vif)
        linux_net.create_tap_dev(dev)

        br_name = self._get_br_name(dev)

        linux_net.LinuxBridgeInterfaceDriver.ensure_bridge(br_name, dev)
        linux_net._execute('ip', 'link', 'set', br_name, 'promisc', 'on', run_as_root=True)

        # port_id(tuuid), instance_id(tuuid), tap_name(string), 
        # ip_address(string), vn_id(tuuid)
        import socket
        from nova_contrail_vif.gen_py.instance_service import ttypes
        port = ttypes.Port(self._convert_to_bl(iface_id), 
                           self._convert_to_bl(instance['uuid']), 
                           br_name, 
                           vif['network']['subnets'][0]['ips'][0]['address'],
                           self._convert_to_bl(vif['network']['id']),
                           vif['address'],
                           instance['display_name'],
                           instance['hostname'],
                           instance['host'],
                           self._convert_to_bl(instance['project_id']))

        self._agent_inform(port, iface_id, True)
Example #10
0
    def plug_ivs_ethernet(self, instance, vif):
        super(LibvirtGenericVIFDriver, self).plug(instance, vif)

        iface_id = self.get_ovs_interfaceid(vif)
        dev = self.get_vif_devname(vif)
        linux_net.create_tap_dev(dev)
        linux_net.create_ivs_vif_port(dev, iface_id, vif['address'],
                                      instance['uuid'])
Example #11
0
 def plug(self, instance, vif):
     network, mapping = vif
     iface_id = self.get_ovs_interfaceid(mapping)
     dev = self.get_vif_devname(mapping)
     linux_net.create_tap_dev(dev)
     linux_net.create_ovs_vif_port(self.get_bridge_name(network), dev,
                                   iface_id, mapping['mac'],
                                   instance['uuid'])
Example #12
0
    def plug_ovs_ethernet(self, instance, vif):
        super(LibvirtGenericVIFDriver, self).plug(instance, vif)

        network, mapping = vif
        iface_id = self.get_ovs_interfaceid(mapping)
        dev = self.get_vif_devname(mapping)
        linux_net.create_tap_dev(dev)
        linux_net.create_ovs_vif_port(self.get_bridge_name(network), dev, iface_id, mapping["mac"], instance["uuid"])
Example #13
0
 def plug_tap(self, instance, vif):
     """Plug a VIF_TYPE_TAP virtual interface."""
     dev = self.get_vif_devname(vif)
     mac = vif['details'].get(network_model.VIF_DETAILS_TAP_MAC_ADDRESS)
     linux_net.create_tap_dev(dev, mac)
     network = vif.get('network')
     mtu = network.get_meta('mtu') if network else None
     linux_net._set_device_mtu(dev, mtu)
Example #14
0
 def plug(self, instance, vif):
     network, mapping = vif
     iface_id = self.get_ovs_interfaceid(mapping)
     dev = self.get_vif_devname(mapping)
     linux_net.create_tap_dev(dev)
     linux_net.create_ovs_vif_port(self.get_bridge_name(network),
                                   dev, iface_id, mapping['mac'],
                                   instance['uuid'])
Example #15
0
 def plug_tap(self, instance, vif):
     """Plug a VIF_TYPE_TAP virtual interface."""
     dev = self.get_vif_devname(vif)
     mac = vif['details'].get(network_model.VIF_DETAILS_TAP_MAC_ADDRESS)
     linux_net.create_tap_dev(dev, mac)
     network = vif.get('network')
     mtu = network.get_meta('mtu') if network else None
     linux_net._set_device_mtu(dev, mtu)
Example #16
0
    def plug(self, instance, vif):
        try:
            dev = self.get_vif_devname(vif)

            try:
                if not CONF.contrail.use_userspace_vhost:
                    linux_net.create_tap_dev(dev)
            except processutils.ProcessExecutionError:
                LOG.exception(_LE("Failed while plugging vif"),
                              instance=instance)

            try:
                virt_type = cfg.CONF.libvirt.virt_type
            except cfg.NoSuchOptError:
                virt_type = cfg.CONF.libvirt_type

            if virt_type == 'lxc':
                dev = self._create_bridge(dev, instance)

            ipv4_address = '0.0.0.0'
            ipv6_address = None
            subnets = vif['network']['subnets']
            for subnet in subnets:
                ips = subnet['ips'][0]
                if (ips['version'] == 4):
                    if ips['address'] is not None:
                        ipv4_address = ips['address']
                if (ips['version'] == 6):
                    if ips['address'] is not None:
                        ipv6_address = ips['address']

            kwargs = {
                'ip_address': ipv4_address,
                'vn_id': vif['network']['id'],
                'display_name': instance['display_name'],
                'hostname': instance['hostname'],
                'host': instance['host'],
                'vm_project_id': instance['project_id'],
                'port_type': self.PORT_TYPE,
                'ip6_address': ipv6_address,
            }
            try:
                result = self._vrouter_client.add_port(instance['uuid'],
                                                       vif['id'], dev,
                                                       vif['address'],
                                                       **kwargs)
                if not result:
                    LOG.exception(_LE("Failed while plugging vif"),
                                  instance=instance)
            except TApplicationException:
                LOG.exception(_LE("Failed while plugging vif"),
                              instance=instance)

        except Exception as e:
            from pprint import pformat
            LOG.error(
                _("Error in plug: %s locals: %s instance %s" %
                  (str(e), pformat(locals()), pformat(instance.__dict__))))
    def plug(self, instance, vif):
        try:
            dev = self.get_vif_devname(vif)

            try:
                if not CONF.contrail.use_userspace_vhost:
                    linux_net.create_tap_dev(dev)
            except processutils.ProcessExecutionError:
                LOG.exception(_LE("Failed while plugging vif"), instance=instance)

            try:
                virt_type = cfg.CONF.libvirt.virt_type
            except cfg.NoSuchOptError:
                virt_type = cfg.CONF.libvirt_type

            if virt_type == 'lxc':
                dev = self._create_bridge(dev, instance)

            ipv4_address = '0.0.0.0'
            ipv6_address = None
            subnets = vif['network']['subnets']
            for subnet in subnets:
                ips = subnet['ips'][0]
                if (ips['version'] == 4):
                    if ips['address'] is not None:
                        ipv4_address = ips['address']
                if (ips['version'] == 6):
                    if ips['address'] is not None:
                        ipv6_address = ips['address']

            kwargs = {
                'ip_address': ipv4_address,
                'vn_id': vif['network']['id'],
                'display_name': instance['display_name'],
                'hostname': instance['hostname'],
                'host': instance['host'],
                'vm_project_id': instance['project_id'],
                'port_type': self.PORT_TYPE,
                'ip6_address': ipv6_address,
            }
            try:
                result = self._vrouter_client.add_port(instance['uuid'],
                                                       vif['id'],
                                                       dev,
                                                       vif['address'],
                                                       **kwargs)
                if not result:
                    LOG.exception(_LE("Failed while plugging vif"),
                                  instance=instance)
            except TApplicationException:
                LOG.exception(_LE("Failed while plugging vif"), instance=instance)

        except Exception as e:
            from pprint import pformat
            LOG.error(_("Error in plug: %s locals: %s instance %s"
                       %(str(e), pformat(locals()),
                         pformat(instance) if isinstance(instance, dict) else pformat(instance.__dict__))))
Example #18
0
    def plug_ivs_ethernet(self, instance, vif):
        super(LibvirtGenericVIFDriver, self).plug(instance, vif)

        network, mapping = vif
        iface_id = self.get_ovs_interfaceid(mapping)
        dev = self.get_vif_devname(mapping)
        linux_net.create_tap_dev(dev)
        linux_net.create_ivs_vif_port(dev, iface_id, mapping['mac'],
                                      instance['uuid'])
Example #19
0
    def plug_ovs(self, container, instance, vif):
        iface_id = self._get_ovs_interfaceid(vif)
        dev = self._get_vif_devname(vif)
        linux_net.create_tap_dev(dev)
        linux_net.create_ovs_vif_port(self._get_vif_bridge(vif),
                                      dev, iface_id, vif['address'],
                                      instance['uuid'])

        self.setup_lxc_network(container, instance, vif)
Example #20
0
    def plug_ovs_ethernet(self, instance, vif):
        super(LibvirtGenericVIFDriver,
              self).plug(instance, vif)

        network = vif['network']
        iface_id = self.get_ovs_interfaceid(vif)
        dev = self.get_vif_devname(vif)
        linux_net.create_tap_dev(dev)
        linux_net.create_ovs_vif_port(self.get_bridge_name(vif),
                                      dev, iface_id, vif['address'],
                                      instance['uuid'])
Example #21
0
    def plug_midonet(self, instance, vif):
        """Plug into MidoNet's network port

        Bind the vif to a MidoNet virtual port.
        """
        dev = self.get_vif_devname(vif)
        port_id = vif['id']
        try:
            linux_net.create_tap_dev(dev)
            nova.privsep.libvirt.plug_midonet_vif(port_id, dev)
        except processutils.ProcessExecutionError:
            LOG.exception(_("Failed while plugging vif"), instance=instance)
Example #22
0
File: vif.py Project: isyippee/nova
    def plug_midonet(self, instance, vif):
        """Plug into MidoNet's network port

        Bind the vif to a MidoNet virtual port.
        """
        dev = self.get_vif_devname(vif)
        port_id = vif["id"]
        try:
            linux_net.create_tap_dev(dev)
            utils.execute("mm-ctl", "--bind-port", port_id, dev, run_as_root=True)
        except processutils.ProcessExecutionError:
            LOG.exception(_LE("Failed while plugging vif"), instance=instance)
Example #23
0
    def plug_midonet(self, instance, vif):
        """Plug into MidoNet's network port

        Bind the vif to a MidoNet virtual port.
        """
        dev = self.get_vif_devname(vif)
        port_id = vif['id']
        try:
            linux_net.create_tap_dev(dev)
            utils.execute('mm-ctl', '--bind-port', port_id, dev,
                          run_as_root=True)
        except processutils.ProcessExecutionError:
            LOG.exception(_LE("Failed while plugging vif"), instance=instance)
Example #24
0
File: vif.py Project: isyippee/nova
    def plug_vrouter(self, instance, vif):
        """Plug into Contrail's network port

        Bind the vif to a Contrail virtual port.
        """
        dev = self.get_vif_devname(vif)
        ip_addr = "0.0.0.0"
        ip6_addr = None
        subnets = vif["network"]["subnets"]
        for subnet in subnets:
            if not subnet["ips"]:
                continue
            ips = subnet["ips"][0]
            if not ips["address"]:
                continue
            if ips["version"] == 4:
                if ips["address"] is not None:
                    ip_addr = ips["address"]
            if ips["version"] == 6:
                if ips["address"] is not None:
                    ip6_addr = ips["address"]

        ptype = "NovaVMPort"
        if cfg.CONF.libvirt.virt_type == "lxc":
            ptype = "NameSpacePort"

        cmd_args = (
            "--oper=add --uuid=%s --instance_uuid=%s --vn_uuid=%s "
            "--vm_project_uuid=%s --ip_address=%s --ipv6_address=%s"
            " --vm_name=%s --mac=%s --tap_name=%s --port_type=%s "
            "--tx_vlan_id=%d --rx_vlan_id=%d"
            % (
                vif["id"],
                instance.uuid,
                vif["network"]["id"],
                instance.project_id,
                ip_addr,
                ip6_addr,
                instance.display_name,
                vif["address"],
                vif["devname"],
                ptype,
                -1,
                -1,
            )
        )
        try:
            linux_net.create_tap_dev(dev)
            utils.execute("vrouter-port-control", cmd_args, run_as_root=True)
        except processutils.ProcessExecutionError:
            LOG.exception(_LE("Failed while plugging vif"), instance=instance)
Example #25
0
    def plug_midonet(self, instance, vif):
        """Plug into MidoNet's network port

        Bind the vif to a MidoNet virtual port.
        """
        super(LibvirtGenericVIFDriver,
              self).plug(instance, vif)
        dev = self.get_vif_devname(vif)
        port_id = vif['id']
        try:
            linux_net.create_tap_dev(dev)
            utils.execute('mm-ctl', '--bind-port', port_id, dev,
                          run_as_root=True)
        except processutils.ProcessExecutionError:
            LOG.exception(_LE("Failed while plugging vif"), instance=instance)
Example #26
0
    def plug_iovisor(self, instance, vif):
        """Plug using PLUMgrid IO Visor Driver

        Connect a network device to their respective
        Virtual Domain in PLUMgrid Platform.
        """
        dev = self.get_vif_devname(vif)
        iface_id = vif['id']
        linux_net.create_tap_dev(dev)
        net_id = vif['network']['id']
        tenant_id = instance.project_id
        try:
            nova.privsep.libvirt.plug_plumgrid_vif(
                dev, iface_id, vif['address'], net_id, tenant_id)
        except processutils.ProcessExecutionError:
            LOG.exception(_("Failed while plugging vif"), instance=instance)
Example #27
0
File: vif.py Project: Juniper/nova
    def plug_vrouter(self, instance, vif):
        """Plug into Contrail's network port

        Bind the vif to a Contrail virtual port.
        """
        dev = self.get_vif_devname(vif)
        ip_addr = '0.0.0.0'
        ip6_addr = None
        subnets = vif['network']['subnets']
        for subnet in subnets:
            if not subnet['ips']:
                continue
            ips = subnet['ips'][0]
            if not ips['address']:
                continue
            if (ips['version'] == 4):
                if ips['address'] is not None:
                    ip_addr = ips['address']
            if (ips['version'] == 6):
                if ips['address'] is not None:
                    ip6_addr = ips['address']

        ptype = 'NovaVMPort'
        if (CONF.libvirt.virt_type == 'lxc'):
            ptype = 'NameSpacePort'

        cmd_args = (
            "--oper=add --uuid=%s --instance_uuid=%s --vn_uuid=%s "
            "--vm_project_uuid=%s --ip_address=%s --ipv6_address=%s"
            " --vm_name=%s --mac=%s --tap_name=%s --port_type=%s "
            "--tx_vlan_id=%d --rx_vlan_id=%d" %
            (vif['id'], instance.uuid, vif['network']['id'],
             instance.project_id, ip_addr, ip6_addr, instance.display_name,
             vif['address'], vif['devname'], ptype, -1, -1))
        try:
            if not CONF.contrail.use_userspace_vhost:
                multiqueue = self._is_multiqueue_enabled(
                    instance.image_meta, instance.flavor)
                linux_net.create_tap_dev(dev, multiqueue=multiqueue)

            utils.execute('vrouter-port-control', cmd_args, run_as_root=True)
        except processutils.ProcessExecutionError:
            LOG.exception(_("Failed while plugging vif"), instance=instance)
Example #28
0
File: vif.py Project: andymcc/nova
    def plug_iovisor(self, instance, vif):
        """Plug using PLUMgrid IO Visor Driver

        Connect a network device to their respective
        Virtual Domain in PLUMgrid Platform.
        """
        dev = self.get_vif_devname(vif)
        iface_id = vif['id']
        linux_net.create_tap_dev(dev)
        net_id = vif['network']['id']
        tenant_id = instance.project_id
        try:
            utils.execute('ifc_ctl', 'gateway', 'add_port', dev,
                          run_as_root=True)
            utils.execute('ifc_ctl', 'gateway', 'ifup', dev,
                          'access_vm', iface_id, vif['address'],
                          'pgtag2=%s' % net_id, 'pgtag1=%s' % tenant_id,
                          run_as_root=True)
        except processutils.ProcessExecutionError:
            LOG.exception(_LE("Failed while plugging vif"), instance=instance)
Example #29
0
File: vif.py Project: andymcc/nova
    def plug_vrouter(self, instance, vif):
        """Plug into Contrail's network port

        Bind the vif to a Contrail virtual port.
        """
        dev = self.get_vif_devname(vif)
        ip_addr = '0.0.0.0'
        ip6_addr = None
        subnets = vif['network']['subnets']
        for subnet in subnets:
            if not subnet['ips']:
                continue
            ips = subnet['ips'][0]
            if not ips['address']:
                continue
            if (ips['version'] == 4):
                if ips['address'] is not None:
                    ip_addr = ips['address']
            if (ips['version'] == 6):
                if ips['address'] is not None:
                    ip6_addr = ips['address']

        ptype = 'NovaVMPort'
        if (CONF.libvirt.virt_type == 'lxc'):
            ptype = 'NameSpacePort'

        cmd_args = ("--oper=add --uuid=%s --instance_uuid=%s --vn_uuid=%s "
                    "--vm_project_uuid=%s --ip_address=%s --ipv6_address=%s"
                    " --vm_name=%s --mac=%s --tap_name=%s --port_type=%s "
                    "--tx_vlan_id=%d --rx_vlan_id=%d" % (vif['id'],
                    instance.uuid, vif['network']['id'],
                    instance.project_id, ip_addr, ip6_addr,
                    instance.display_name, vif['address'],
                    vif['devname'], ptype, -1, -1))
        try:
            multiqueue = self._is_multiqueue_enabled(instance.image_meta,
                                                     instance.flavor)
            linux_net.create_tap_dev(dev, multiqueue=multiqueue)
            utils.execute('vrouter-port-control', cmd_args, run_as_root=True)
        except processutils.ProcessExecutionError:
            LOG.exception(_LE("Failed while plugging vif"), instance=instance)
    def plug(self, instance, vif):
        iface_id = vif['id']
        dev = self.get_vif_devname(vif)
        linux_net.create_tap_dev(dev)

        # port_id(tuuid), instance_id(tuuid), tap_name(string), 
        # ip_address(string), vn_id(tuuid)
        import socket
        from gen_py.instance_service import ttypes
        port = ttypes.Port(self._convert_to_bl(iface_id), 
                           self._convert_to_bl(instance['uuid']), 
                           dev, 
                           vif['network']['subnets'][0]['ips'][0]['address'],
                           self._convert_to_bl(vif['network']['id']),
                           vif['address'],
	                   instance['display_name'],
	                   instance['hostname'],
	                   instance['host'],
	                   self._convert_to_bl(instance['project_id']))

        self._agent_inform(port, iface_id, True)
    def plug(self, instance, vif):
        iface_id = vif['id']
        dev = self.get_vif_devname(vif)
        linux_net.create_tap_dev(dev)

        # port_id(tuuid), instance_id(tuuid), tap_name(string), 
        # ip_address(string), vn_id(tuuid)
        import socket
        from gen_py.instance_service import ttypes
        port = ttypes.Port(self._convert_to_bl(iface_id), 
                           self._convert_to_bl(instance['uuid']), 
                           dev, 
                           vif['network']['subnets'][0]['ips'][0]['address'],
                           self._convert_to_bl(vif['network']['id']),
                           vif['address'],
	                   instance['display_name'],
	                   instance['hostname'],
	                   instance['host'],
	                   self._convert_to_bl(instance['project_id']))

        self._agent_inform(port, iface_id, True)
Example #32
0
    def plug_iovisor(self, instance, vif):
        """Plug using PLUMgrid IO Visor Driver

        Connect a network device to their respective
        Virtual Domain in PLUMgrid Platform.
        """
        super(LibvirtGenericVIFDriver,
              self).plug(instance, vif)
        network, mapping = vif
        dev = self.get_vif_devname(mapping)
        iface_id = mapping['vif_uuid']
        linux_net.create_tap_dev(dev)
        net_id = network['id']
        tenant_id = instance["project_id"]
        try:
            utils.execute('ifc_ctl', 'gateway', 'add_port', dev,
                          run_as_root=True)
            utils.execute('ifc_ctl', 'gateway', 'ifup', dev,
                          'access_vm', mapping['label'] + "_" + iface_id,
                          mapping['mac'], 'pgtag2=%s' % net_id,
                          'pgtag1=%s' % tenant_id, run_as_root=True)
        except exception.ProcessExecutionError:
            LOG.exception(_("Failed while plugging vif"), instance=instance)
Example #33
0
 def plug_ivs_ethernet(self, instance, vif):
     iface_id = self.get_ovs_interfaceid(vif)
     dev = self.get_vif_devname(vif)
     linux_net.create_tap_dev(dev)
     linux_net.create_ivs_vif_port(dev, iface_id, vif['address'],
                                   instance.uuid)
Example #34
0
 def plug_ivs_ethernet(self, instance, vif):
     iface_id = self.get_ovs_interfaceid(vif)
     dev = self.get_vif_devname(vif)
     linux_net.create_tap_dev(dev)
     linux_net.create_ivs_vif_port(dev, iface_id, vif['address'],
                                   instance.uuid)
Example #35
0
File: vif.py Project: isyippee/nova
 def plug_tap(self, instance, vif):
     """Plug a VIF_TYPE_TAP virtual interface."""
     dev = self.get_vif_devname(vif)
     mac = vif["details"].get(network_model.VIF_DETAILS_TAP_MAC_ADDRESS)
     linux_net.create_tap_dev(dev, mac)
     linux_net._set_device_mtu(dev)