404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@18.221.217.100: ~ $
# Copyright (C) 2013-2014 Canonical Ltd.
#
# Author: Scott Moser <scott.moser@canonical.com>
# Author: Blake Rouse <blake.rouse@canonical.com>
#
# This file is part of cloud-init. See LICENSE file for license information.

import abc
import io
from typing import Optional

from cloudinit.net.network_state import NetworkState
from cloudinit.net.udev import generate_udev_rule


def filter_by_type(match_type):
    return lambda iface: match_type == iface["type"]


def filter_by_attr(match_name):
    return lambda iface: (match_name in iface and iface[match_name])


filter_by_physical = filter_by_type("physical")


class Renderer(abc.ABC):
    def __init__(self, config=None):
        pass

    @staticmethod
    def _render_persistent_net(network_state: NetworkState):
        """Given state, emit udev rules to map mac to ifname."""
        # TODO(harlowja): this seems shared between eni renderer and
        # this, so move it to a shared location.
        content = io.StringIO()
        for iface in network_state.iter_interfaces(filter_by_physical):
            # for physical interfaces write out a persist net udev rule
            if "name" in iface and iface.get("mac_address"):
                driver = iface.get("driver", None)
                content.write(
                    generate_udev_rule(
                        iface["name"], iface["mac_address"], driver=driver
                    )
                )
        return content.getvalue()

    @abc.abstractmethod
    def render_network_state(
        self,
        network_state: NetworkState,
        templates: Optional[dict] = None,
        target=None,
    ) -> None:
        """Render network state."""

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
netops Folder 0755
__init__.py File 42.24 KB 0644
activators.py File 8.77 KB 0644
bsd.py File 8.43 KB 0644
cmdline.py File 9.04 KB 0644
dhcp.py File 21.06 KB 0644
eni.py File 21.26 KB 0644
ephemeral.py File 14.33 KB 0644
freebsd.py File 3.25 KB 0644
netbsd.py File 1.41 KB 0644
netplan.py File 18.87 KB 0644
network_manager.py File 19.06 KB 0644
network_state.py File 35.77 KB 0644
networkd.py File 12.19 KB 0644
openbsd.py File 2.47 KB 0644
renderer.py File 1.64 KB 0644
renderers.py File 1.78 KB 0644
sysconfig.py File 42.8 KB 0644
udev.py File 1.39 KB 0644