Current File : //lib/python2.7/site-packages/cloudinit/config/cc_package_update_upgrade_install.pyc
�
oB�]c@sudZddlZddlZddlmZddlmZdZdgZd�Z	dd	d
d�Z
d�ZdS(
s�
Package Update Upgrade Install
------------------------------
**Summary:** update, upgrade, and install packages

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. A list of packages to install can
be provided. Each entry in the list can be either a package name or a list with
two entries, the first being the package name and the second being the specific
package version to install.

**Internal name:** ``cc_package_update_upgrade_install``

**Module frequency:** per instance

**Supported distros:** all

**Config keys**::

    packages:
        - pwgen
        - pastebinit
        - [libpython2.7, 2.7.3-0ubuntu3.1]
    package_update: <true/false>
    package_upgrade: <true/false>
    package_reboot_if_required: <true/false>

    apt_update: (alias for package_update)
    apt_upgrade: (alias for package_upgrade)
    apt_reboot_if_required: (alias for package_reboot_if_required)
i����N(tlog(tutils/var/run/reboot-requireds/sbin/rebootcGs.x'|D]}tj||t�rtSqWtS(N(Rtget_cfg_option_booltFalsetTrue(tcfgtkeystk((sV/usr/lib/python2.7/site-packages/cloudinit/config/cc_package_update_upgrade_install.pyt_multi_cfg_bool_get4s
iiicCs�tjt�tj�}|}xTtd|�D]C}tj|�||9}tj�|}|jdt|��q/Wtj�|}tdt|���dS(Nis,Rebooted, but still running after %s secondss'Reboot did not happen after %s seconds!(	Rtsubpt
REBOOT_CMDttimetrangetsleeptdebugtinttRuntimeError(Rt
wait_attemptst
initial_sleeptbackofftstartt	wait_timet_itelapsed((sV/usr/lib/python2.7/site-packages/cloudinit/config/cc_package_update_upgrade_install.pyt_fire_reboot;s


c
Cst|dd�}t|dd�}t|dd�}tj|dg�}g}	|sit|�si|r�y|jj�Wq�tk
r�}
tj|d�|	j|
�q�Xn|ry|jj	d	�Wqtk
r�}
tj|d
�|	j|
�qXnt|�rYy|jj
|�WqYtk
rU}
tj|d|�|	j|
�qYXntjj
t�}|sw|r�|r�|r�y+|jdt�tj|�t|�Wq�tk
r�}
tj|d
�|	j|
�q�Xnt|	�r|jdt|	��|	d�ndS(Nt
apt_updatetpackage_updatetpackage_upgradetapt_upgradetapt_reboot_if_requiredtpackage_reboot_if_requiredtpackagessPackage update failedtupgradesPackage upgrade failedsFailed to install packages: %ss)Rebooting after upgrade or install per %ss Requested reboot did not happen!s2%s failed with exceptions, re-raising the last onei����(RRtget_cfg_option_listtlentdistrotupdate_package_sourcest	Exceptiontlogexctappendtpackage_commandtinstall_packagestostpathtisfiletREBOOT_FILEtwarningtloggingtflushLoggersR(t_nameRtcloudRt_argstupdateR treboot_if_requiredtpkglistterrorstetreboot_fn_exists((sV/usr/lib/python2.7/site-packages/cloudinit/config/cc_package_update_upgrade_install.pythandleJsL			
	
(t__doc__R*Rt	cloudinitRR/RR-R
RRR:(((sV/usr/lib/python2.7/site-packages/cloudinit/config/cc_package_update_upgrade_install.pyt<module>(s