| Server IP : 3.96.16.70 / Your IP : 216.73.216.15 Web Server : Apache System : Linux ip-172-31-26-103.ca-central-1.compute.internal 6.1.163-186.299.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Feb 24 16:35:42 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/python3.9/site-packages/cfnbootstrap/__pycache__/ |
Upload File : |
a
��0i� � @ sZ d dl mZ d dlmZ d dlmZ d dlmZ d dlZee� d��Z
G dd� de�ZdS ) � )�RpmTool)�LoggingProcessHelper)� CfnLogger)� ToolErrorNzcfn.initc @ s2 e Zd ZdZddd�Zdd� Zdd� Zd d
� ZdS )�
ZypperToolz+Install packages use Zypper package managerNc
C s g }|st �d� |S g }g }|D �]}|| rXt|| t�rH|| }q\t�|| �}nd }|d urpd�||�n|}| �|�r�t �d�|�� q"| �|�s�t � d�|�� t
d�|���q"|d u r�|�|� |�|� q"t�|d�\} }
| �
||
��rt �d�||
�� |�|� nt �d�||
�� |�|� |�|� q"|�sPt �d � g S |�r�t �d
�|�� tg d�| ��� }|jdk�r�t � d
�|j�� t
d|j��|�r�t �d�|�� tg d�| ��� }|jdk�r�t � d
�|j�� t
d|j��t �d�|| �� |S )Nz No packages specified for Zypperz{}-{}z1{} will not be installed as it is already presentz#{} is not available to be installedz2Zypper does not have {} available for installationFz)Upgrading to {} from installed version {}z+Downgarding to {} from installed version {}z*All Zypper packages were already installedz!Installing/updating {} via zypper)�zypper�install�-yr zZypper failed. Output: {}z5Could not successfully install/update zypper packageszDowngrading {} via zypper)r r r z--oldpackagez--force-resolutionz0Could not successfully downgrade zypper packageszZypper installed {})�log�debug�
isinstance�strr Zmax_version�format�_is_package_installed�_is_package_available�errorr �appendZget_package_version�_should_upgrade�infor �call�
returncode�stdout)
�self�actionZauth_configZpackages_changedZpackage_specs_to_upgradeZpackage_specs_to_downgradeZpackage_nameZpackage_versionZ
package_specs�_�installed_versionZupgrade_resultZdowngrade_result� r �</usr/lib/python3.9/site-packages/cfnbootstrap/zypper_tool.py�apply s�
����
�
��
���
�
����
����zZypperTool.applyc C sh |st �d� dS |s$t �d� dS t�||�}|dkrNt �d�||�� dS t �d�||�� dS d S )Nz+No requested version passed, try to upgradeTz+No installed version passed, try to upgrader zGRequested version {} is greater than installed version {}, will upgradezMRequested version {} is NOT greater than installed version {}, will downgradeF)r
r r Zcompare_rpm_versionsr )r Zrequested_package_versionr Zversion_comparisonr r r r q s$
���zZypperTool._should_upgradec C s0 t �d�|�� tdddd|g��� }|jdkS )z�
Check if a package has been installed locally.
package_key: could be package_name such as "git" or a package name with version such as "git-2.15-2.1"
z check if {} is already installedr �search�
--match-exactz--installed-onlyr )r
r r r r r �r Zpackage_keyZquery_resultr r r r � s
�z ZypperTool._is_package_installedc C s t dddd|g��� }|jdkS )z�
Check if a package is available for installation.
package_key: could be package_name such as "git" or a package name with version such as "git-2.15-2.1"
r r r z--not-installed-onlyr )r r r r! r r r r � s �z ZypperTool._is_package_available)N)�__name__�
__module__�__qualname__�__doc__r r r r r r r r r s
U
r )
Zcfnbootstrap.rpm_toolsr Zcfnbootstrap.utilr Zcfnbootstrap.cfn_loggingr Z cfnbootstrap.construction_errorsr ZloggingZ getLoggerr
�objectr r r r r �<module> s