܍~c UdZddlZddlZddlmZddlmZddlmZddlm Z m Z ddl m Z ddl mZdd lmZmZdd lmZdd lmZd Zd gZdZdddeegeedggddZeed<eeZdZd"dZdedede deded df d!ZdS)#zEPackage Update Upgrade Install: update, upgrade, and install packagesN)Logger)dedent)log)subputil)Cloud)Config) MetaSchema get_meta_doc) ALL_DISTROS) PER_INSTANCEz/var/run/reboot-requiredz /sbin/rebootaHThis 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. !cc_package_update_upgrade_installzPackage Update Upgrade Installz%Update, upgrade, and install packagesz packages: - pwgen - pastebinit - [libpython3.8, 3.8.10-0ubuntu1~20.04.2] package_update: true package_upgrade: true package_reboot_if_required: true ) apt_updatepackage_update apt_upgradepackage_upgradepackages)idnametitle descriptiondistros frequencyexamplesactivate_by_schema_keysmetacB|D]}tj||drdSdS)NFT)rget_cfg_option_bool)cfgkeysks T/usr/lib/python3/dist-packages/cloudinit/config/cc_package_update_upgrade_install.py_multi_cfg_bool_getr#As9   #CE 2 2 44  5ctjttj}|}t|D]T}tj|||z}tj|z }|dt |Utj|z }tdt |z)Nz,Rebooted, but still running after %s secondsz'Reboot did not happen after %s seconds!)r REBOOT_CMDtimerangesleepdebugint RuntimeError)r wait_attempts initial_sleepbackoffstart wait_time_ielapseds r" _fire_rebootr7HsIj IKKEIM""PP 9W )++% @#g,,OOOOikkE!G 1S\\B  r$rrcloudrargsreturnct|dd}t|dd}t|dd}tj|dg}g} |st|s|r\ |jnA#t $r4} tj|d| | Yd} ~ nd} ~ wwxYw|r] |j d nA#t $r4} tj|d | | Yd} ~ nd} ~ wwxYwt|r^ |j |nB#t $r5} tj|d || | Yd} ~ nd} ~ wwxYwtj t} |s|r|r| r |d tt!j|t%|nA#t $r4} tj|d | | Yd} ~ nd} ~ wwxYwt| r+|dt| | ddS)Nrrrrapt_reboot_if_requiredpackage_reboot_if_requiredrzPackage update failedupgradezPackage upgrade failedzFailed to install packages: %sz)Rebooting after upgrade or install per %sz Requested reboot did not happen!z2%s failed with exceptions, re-raising the last one)r#rget_cfg_option_listlendistroupdate_package_sources Exceptionlogexcappendpackage_commandinstall_packagesospathisfile REBOOT_FILEwarninglogging flushLoggersr7) rrr8rr9updater>reboot_if_requiredpkglisterrorsereboot_fn_existss r"handlerVXs!l4D E EF!#'8-HHG, %'C&sJ;;G F W  L / / 1 1 1 1    K4 5 5 5 MM!           L ( ( 3 3 3 3    K5 6 6 6 MM!          7||  L ) )' 2 2 2 2    K=w G G G MM!         w~~k22 7  2 7G   KK;[      % % %         K? @ @ @ MM!          6{{ @#f++   Rj s` A:: B8*B33B8>C D#*DD*E F+E??F4>G33 H1=*H,,H1)r%r&r') __doc__rIr*rNrtextwrapr cloudinitrrrcloudinit.cloudrcloudinit.configr cloudinit.config.schemar r cloudinit.distrosr cloudinit.settingsr rLr)MODULE_DESCRIPTIONr__annotations__r#r7strlistrVr$r"rdsLKK $$$$$$ !!!!!!######<<<<<<<<))))))++++++(    . , 4%}      )j: ,t       6 66#(6/56=A6 666666r$