Delete a virtual link.

    Deletes a vlan device with the name {name}.
    Will raise an expection if the port is not already present.

    :param enode: Engine node to communicate with.
    :type enode: topology.platforms.base.BaseNode
    :param str name: specifies the name of the new
     virtual device.
    :param str shell: Shell name to execute commands. If ``None``, use the
     Engine Node default shell.

def remove_link_type_vlan(enode, name, shell=None):
    """
    Delete a virtual link.

    Deletes a vlan device with the name {name}.
    Will raise an expection if the port is not already present.

    :param enode: Engine node to communicate with.
    :type enode: topology.platforms.base.BaseNode
    :param str name: specifies the name of the new
     virtual device.
    :param str shell: Shell name to execute commands. If ``None``, use the
     Engine Node default shell.
    """
    assert name
    if name not in enode.ports:
        raise ValueError('Port {name} doesn\'t exists'.format(name=name))

    cmd = 'ip link del link dev {name}'.format(name=name)

    response = enode(cmd, shell=shell)
    assert not response, 'Cannot remove virtual link {name}'.format(name=name)

    del enode.ports[name]