![]() Server : Apache/2.4.52 (Ubuntu) System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64 User : www-data ( 33) PHP Version : 8.1.2-1ubuntu2.21 Disable Function : NONE Directory : /lib/python3/dist-packages/cloudinit/net/netops/ |
from typing import Optional import cloudinit.net.netops as netops from cloudinit import subp class BsdNetOps(netops.NetOps): @staticmethod def link_up(interface: str) -> subp.SubpResult: return subp.subp(["ifconfig", interface, "up"]) @staticmethod def link_down(interface: str) -> subp.SubpResult: return subp.subp(["ifconfig", interface, "down"]) @staticmethod def add_route( interface: str, route: str, *, gateway: Optional[str] = None, source_address: Optional[str] = None ): subp.subp(["route", "add", route, "-interface", interface]) if gateway and gateway != "0.0.0.0": subp.subp( ["route", "change", route, gateway], ) @staticmethod def append_route(interface: str, address: str, gateway: str): return BsdNetOps.add_route(interface, route=address, gateway=gateway) @staticmethod def del_route( interface: str, address: str, *, gateway: Optional[str] = None, source_address: Optional[str] = None ): subp.subp( ["route", "del", address] + ([gateway] if gateway and gateway != "0.0.0.0" else []), ) @staticmethod def get_default_route() -> str: std, _ = subp.subp(["route", "-nv", "get", "0.0.0.0/0"]) return std.splitlines()[-1].strip() @staticmethod def add_addr( interface: str, address: str, broadcast: Optional[str] = None ): broadcast_args = [] if broadcast: broadcast_args = ["broadcast", broadcast] subp.subp( [ "ifconfig", interface, address, *broadcast_args, "alias", ], ) @staticmethod def del_addr(interface: str, address: str): subp.subp( [ "ifconfig", interface, address, "-alias", ], )