PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB` REDROOM
PHP 5.6.40
Preview: freebsd.py Size: 3.25 KB
/lib/python3.6/site-packages/cloudinit/net/freebsd.py

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

import logging

import cloudinit.net.bsd
from cloudinit import distros, net, subp, util

LOG = logging.getLogger(__name__)


class Renderer(cloudinit.net.bsd.BSDRenderer):
    def __init__(self, config=None):
        self._route_cpt = 0
        super(Renderer, self).__init__()

    def rename_interface(self, cur_name, device_name):
        self.set_rc_config_value("ifconfig_%s_name" % cur_name, device_name)

    def write_config(self):
        for device_name, v in self.interface_configurations.items():
            if isinstance(v, dict):
                net_config = "inet %s netmask %s" % (
                    v.get("address"),
                    v.get("netmask"),
                )
                mtu = v.get("mtu")
                if mtu:
                    net_config += " mtu %d" % mtu
            elif v == "DHCP":
                net_config = "DHCP"
            self.set_rc_config_value("ifconfig_" + device_name, net_config)

        for device_name, v in self.interface_configurations_ipv6.items():
            if isinstance(v, dict):
                net_config = "inet6 %s/%d" % (
                    v.get("address"),
                    v.get("prefix"),
                )
                mtu = v.get("mtu")
                if mtu:
                    net_config += " mtu %d" % mtu
            self.set_rc_config_value(
                "ifconfig_%s_ipv6" % device_name, net_config
            )

    def start_services(self, run=False):
        if not run:
            LOG.debug("freebsd generate postcmd disabled")
            return

        for dhcp_interface in self.dhcp_interfaces():
            # Observed on DragonFlyBSD 6. If we use the "restart" parameter,
            # the routes are not recreated.
            net.dhcp.IscDhclient.stop_service(
                dhcp_interface, distros.freebsd.Distro
            )

        subp.subp(["service", "netif", "restart"], capture=True)
        # On FreeBSD 10, the restart of routing and dhclient is likely to fail
        # because
        # - routing: it cannot remove the loopback route, but it will still set
        #   up the default route as expected.
        # - dhclient: it cannot stop the dhclient started by the netif service.
        # In both case, the situation is ok, and we can proceed.
        subp.subp(["service", "routing", "restart"], capture=True, rcs=[0, 1])

        for dhcp_interface in self.dhcp_interfaces():
            net.dhcp.IscDhclient.start_service(
                dhcp_interface, distros.freebsd.Distro
            )

    def set_route(self, network, netmask, gateway):
        if network == "0.0.0.0":
            self.set_rc_config_value("defaultrouter", gateway)
        elif network == "::":
            self.set_rc_config_value("ipv6_defaultrouter", gateway)
        else:
            route_name = f"net{self._route_cpt}"
            route_cmd = f"-net {network} -netmask {netmask} {gateway}"
            self.set_rc_config_value("route_" + route_name, route_cmd)
            self.route_names = f"{self.route_names} {route_name}"
            self.set_rc_config_value("static_routes", self.route_names.strip())
            self._route_cpt += 1


def available(target=None):
    return util.is_FreeBSD() or util.is_DragonFlyBSD()

Directory Contents

Dirs: 2 × Files: 18

Name Size Perms Modified Actions
netops DIR
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
- drwxr-xr-x 2026-01-24 23:01:14
Edit Download
8.77 KB lrw-r--r-- 2026-01-23 08:56:46
Edit Download
8.43 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
9.04 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
21.06 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
21.26 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
14.33 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
3.25 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
1.41 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
18.87 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
12.19 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
19.06 KB lrw-r--r-- 2026-01-23 08:56:46
Edit Download
35.77 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
2.47 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
1.64 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
1.78 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
42.80 KB lrw-r--r-- 2026-01-23 08:56:46
Edit Download
1.39 KB lrw-r--r-- 2023-12-04 11:47:40
Edit Download
42.24 KB lrw-r--r-- 2026-01-23 08:56:46
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 REDROOM — Secure File Manager. All rights reserved. Built with ❤️ & Red Dark UI