3 \me, @ s U d Z ddlZddlZddlZddlmZ ddlmZmZ ddl m Z ddlmZ ddl mZmZ ddlmZ dd lmZ dd lmZ dZdgZd ZdddeegeedgdddddgdZeeeZ ejeZdd Zd"ddZeee e ddd d!Z!dS )#zEPackage Update Upgrade Install: update, upgrade, and install packages N)dedent)subputil)Cloud)Config) MetaSchemaget_meta_doc)ALL_DISTROS) flush_loggers)PER_INSTANCEz/var/run/reboot-requiredz/sbin/rebootaH This module allows packages to be updated, upgraded or installed during boot. If any packages are to be installed or an upgrade is to be performed then the package cache will be updated first. If a package installation or upgrade requires a reboot, then a reboot can be performed if ``package_reboot_if_required`` is specified. Z!cc_package_update_upgrade_installzPackage Update Upgrade Installz%Update, upgrade, and install packagesa packages: - pwgen - pastebinit - [libpython3.8, 3.8.10-0ubuntu1~20.04.2] - snap: - certbot - [juju, --edge] - [lxd, --channel=5.15/stable] - apt: - mg package_update: true package_upgrade: true package_reboot_if_required: true apt_updatepackage_updateapt_upgradepackage_upgradepackages)idnametitledescriptionZdistrosZ frequencyZexamplesZactivate_by_schema_keysc G s$ x|D ]}t j| |drdS qW dS )NFT)r Zget_cfg_option_bool)cfgkeysk r 7/usr/lib/python3.6/cc_package_update_upgrade_install.py_multi_cfg_bool_getH s r c C sv t j t tj }|}x>t| D ]2}tj| ||9 }tj | }tjdt| q W tj | }tdt| d S )Nz,Rebooted, but still running after %s secondsz'Reboot did not happen after %s seconds!) r REBOOT_CMDtimerangeZsleepLOGdebugintRuntimeError)Z wait_attemptsZ initial_sleepZbackoffstartZ wait_timeZ_ielapsedr r r _fire_rebootO s r' )r r cloudargsreturnc <