CasperSecurity

Current Path : /lib/python3/dist-packages/cloudinit/net/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/net/renderers.py

# This file is part of cloud-init. See LICENSE file for license information.

from typing import List, Tuple, Type

from cloudinit.net import (
    RendererNotFoundError,
    eni,
    freebsd,
    netbsd,
    netplan,
    network_manager,
    networkd,
    openbsd,
    renderer,
    sysconfig,
)

NAME_TO_RENDERER = {
    "eni": eni,
    "freebsd": freebsd,
    "netbsd": netbsd,
    "netplan": netplan,
    "network-manager": network_manager,
    "networkd": networkd,
    "openbsd": openbsd,
    "sysconfig": sysconfig,
}

DEFAULT_PRIORITY = [
    "eni",
    "sysconfig",
    "netplan",
    "network-manager",
    "freebsd",
    "netbsd",
    "openbsd",
    "networkd",
]


def search(
    priority=None, first=False
) -> List[Tuple[str, Type[renderer.Renderer]]]:
    if priority is None:
        priority = DEFAULT_PRIORITY

    available = NAME_TO_RENDERER

    unknown = [i for i in priority if i not in available]
    if unknown:
        raise ValueError(
            "Unknown renderers provided in priority list: %s" % unknown
        )

    found = []
    for name in priority:
        render_mod = available[name]
        if render_mod.available():
            cur = (name, render_mod.Renderer)
            if first:
                return [cur]
            found.append(cur)

    return found


def select(priority=None) -> Tuple[str, Type[renderer.Renderer]]:
    found = search(priority, first=True)
    if not found:
        if priority is None:
            priority = DEFAULT_PRIORITY
        raise RendererNotFoundError(
            "No available network renderers found. Searched through list: %s"
            % priority
        )
    return found[0]
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY