diff options
Diffstat (limited to 'cloudinit/net/renderers.py')
-rw-r--r-- | cloudinit/net/renderers.py | 51 |
1 files changed, 35 insertions, 16 deletions
diff --git a/cloudinit/net/renderers.py b/cloudinit/net/renderers.py index e2de4d55..c755f04c 100644 --- a/cloudinit/net/renderers.py +++ b/cloudinit/net/renderers.py @@ -1,27 +1,43 @@ # This file is part of cloud-init. See LICENSE file for license information. -from . import eni -from . import freebsd -from . import netbsd -from . import netplan -from . import RendererNotFoundError -from . import openbsd -from . import sysconfig +from typing import List, Tuple, Type + +from . import ( + RendererNotFoundError, + eni, + freebsd, + netbsd, + netplan, + networkd, + openbsd, + renderer, + sysconfig, +) NAME_TO_RENDERER = { "eni": eni, "freebsd": freebsd, "netbsd": netbsd, "netplan": netplan, + "networkd": networkd, "openbsd": openbsd, "sysconfig": sysconfig, } -DEFAULT_PRIORITY = ["eni", "sysconfig", "netplan", "freebsd", - "netbsd", "openbsd"] +DEFAULT_PRIORITY = [ + "eni", + "sysconfig", + "netplan", + "freebsd", + "netbsd", + "openbsd", + "networkd", +] -def search(priority=None, target=None, first=False): +def search( + priority=None, target=None, first=False +) -> List[Tuple[str, Type[renderer.Renderer]]]: if priority is None: priority = DEFAULT_PRIORITY @@ -30,7 +46,8 @@ def search(priority=None, target=None, first=False): unknown = [i for i in priority if i not in available] if unknown: raise ValueError( - "Unknown renderers provided in priority list: %s" % unknown) + "Unknown renderers provided in priority list: %s" % unknown + ) found = [] for name in priority: @@ -38,13 +55,13 @@ def search(priority=None, target=None, first=False): if render_mod.available(target): cur = (name, render_mod.Renderer) if first: - return cur + return [cur] found.append(cur) return found -def select(priority=None, target=None): +def select(priority=None, target=None) -> Tuple[str, Type[renderer.Renderer]]: found = search(priority, target=target, first=True) if not found: if priority is None: @@ -53,8 +70,10 @@ def select(priority=None, target=None): if target and target != "/": tmsg = " in target=%s" % target raise RendererNotFoundError( - "No available network renderers found%s. Searched " - "through list: %s" % (tmsg, priority)) - return found + "No available network renderers found%s. Searched through list: %s" + % (tmsg, priority) + ) + return found[0] + # vi: ts=4 expandtab |