CasperSecurity

Current Path : /lib/python3/dist-packages/cloudinit/distros/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/distros/ubuntu.py

# Copyright (C) 2012 Canonical Ltd.
# Copyright (C) 2012 Hewlett-Packard Development Company, L.P.
# Copyright (C) 2012 Yahoo! Inc.
#
# Author: Scott Moser <scott.moser@canonical.com>
# Author: Juerg Haefliger <juerg.haefliger@hp.com>
# Author: Joshua Harlow <harlowja@yahoo-inc.com>
# Author: Ben Howard <ben.howard@canonical.com>
#
# This file is part of cloud-init. See LICENSE file for license information.

import copy
import logging

from cloudinit.distros import PREFERRED_NTP_CLIENTS, debian
from cloudinit.distros.package_management.snap import Snap
from cloudinit.net import activators
from cloudinit.net.netplan import CLOUDINIT_NETPLAN_FILE

LOG = logging.getLogger(__name__)


class Distro(debian.Distro):
    def __init__(self, name, cfg, paths):
        super().__init__(name, cfg, paths)
        # Ubuntu specific network cfg locations
        self.network_conf_fn = {
            "eni": "/etc/network/interfaces.d/50-cloud-init.cfg",
            "netplan": CLOUDINIT_NETPLAN_FILE,
        }
        self.renderer_configs = {
            "eni": {
                "eni_path": self.network_conf_fn["eni"],
                "eni_header": debian.NETWORK_FILE_HEADER,
            },
            "netplan": {
                "netplan_path": self.network_conf_fn["netplan"],
                "netplan_header": debian.NETWORK_FILE_HEADER,
                "postcmds": True,
            },
        }
        self.snap = Snap(self._runner)
        self.package_managers.append(self.snap)

    def package_command(self, command, args=None, pkgs=None):
        super().package_command(command, args, pkgs)
        if self.snap.available():
            self.snap.upgrade_packages()

    @property
    def preferred_ntp_clients(self):
        """The preferred ntp client is dependent on the version."""
        if not self._preferred_ntp_clients:
            self._preferred_ntp_clients = copy.deepcopy(PREFERRED_NTP_CLIENTS)
        return self._preferred_ntp_clients

    def wait_for_network(self) -> None:
        """Ensure that cloud-init's network service has network connectivity"""
        try:
            self.network_activator.wait_for_network()
        except activators.NoActivatorException:
            LOG.error("Failed to wait for network. No network activator found")
        except Exception as e:
            LOG.error("Failed to wait for network: %s", e)
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