File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/kernelpkg_linux_yum.cpython-310.pyc
Back
o ;j� � @ s� d Z ddlZddlZddlZddlZddlZddlZddlm Z ddl mZ e�e �ZdZejj�ejjje� �Zdd� Zdd � Zd d� Zdd � Zdd� Zdd� Zd dd�Zdd� Zdd� Zd!dd�Zdd� Z dd� Z!dS )"z3 Manage Linux kernel packages on YUM-based systems � N)�CommandExecutionError��LooseVersionZ kernelpkgc C s0 t �dd�dkr tS t �dd��� dv rtS dS )z7 Load this module on RedHat-based systems only Z os_family� ZRedHat�os)ZamazonZxcpZ xenserverZvirtuozzolinux)Fz8Module kernelpkg_linux_yum: no YUM based system detected)� __grains__�get�__virtualname__�lower� r r �T/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_yum.py�__virtual__ s r c C s dt v rt d td �S td S )z� Return the version of the running kernel. CLI Example: .. code-block:: bash salt '*' kernelpkg.active zpkg.normalize_nameZ kernelrelease)�__salt__r r r r r �active* s r c C s0 t d t� dd�} | du rg S t| t�t�d�S )z� Return a list of all installed kernels. CLI Example: .. code-block:: bash salt '*' kernelpkg.list_installed zpkg.versionT)Zversions_as_listN)�key)r � _package_name�sorted� functools� cmp_to_key�_cmp_version��resultr r r �list_installed: s r c C s t d t� �} | dkrt� } | S )z� Return the version of the latest kernel from the package repositories. CLI Example: .. code-block:: bash salt '*' kernelpkg.latest_available zpkg.latest_versionr )r r �latest_installedr r r r �latest_availableK s r c C s t � } | r | d S dS )a� Return the version of the latest installed kernel. CLI Example: .. code-block:: bash salt '*' kernelpkg.latest_installed .. note:: This function may not return the same value as :py:func:`~salt.modules.kernelpkg_linux_yum.active` if a new kernel has been installed and the system has not yet been rebooted. The :py:func:`~salt.modules.kernelpkg_linux_yum.needs_reboot` function exists to detect this condition. ���N)r )Zpkgsr r r r [ s r c C s t t� �t t� �k S )z� Detect if a new kernel version has been installed but is not running. Returns True if a new kernel is installed, False otherwise. CLI Example: .. code-block:: bash salt '*' kernelpkg.needs_reboot )r r r r r r r �needs_reboots � r Fc C sN t d t� d�}t� }|t� t� | |d�}| r%|r%t�d� t d |d� |S )a� Upgrade the kernel and optionally reboot the system. reboot : False Request a reboot if a new kernel is available. at_time : immediate Schedule the reboot at some point in the future. This argument is ignored if ``reboot=False``. See :py:func:`~salt.modules.system.reboot` for more details on this argument. CLI Example: .. code-block:: bash salt '*' kernelpkg.upgrade salt '*' kernelpkg.upgrade reboot=True at_time=1 .. note:: An immediate reboot often shuts down the system before the minion has a chance to return, resulting in errors. A minimal delay (1 minute) is useful to ensure the result is delivered to the master. zpkg.upgrade)�name)Zupgradesr r Zreboot_requestedZreboot_requiredz&Rebooting system due to kernel upgradez system.reboot)�at_time)r r r r r �log�warning)Zrebootr r Z _needs_reboot�retr r r �upgrade� s � r# c C s t t� �t t� �kS )z� Detect if a new kernel version is available in the repositories. Returns True if a new kernel is available, False otherwise. CLI Example: .. code-block:: bash salt '*' kernelpkg.upgrade_available )r r r r r r r �upgrade_available� r r$ c C s� | t � vr td| � d���| t� krtd��t� � d| � �}t�d|� td � }g }tjj � t�r@td dd �r@|�d dg� |�t � dd |g� td |ddd�}t�dd� td � }tjj�||�}|d dkrxtd|d g|d�d��d|giS )ai Remove a specific version of the kernel. release The release number of an installed kernel. This must be the entire release number as returned by :py:func:`~salt.modules.kernelpkg_linux_yum.list_installed`, not the package name. CLI Example: .. code-block:: bash salt '*' kernelpkg.remove 3.10.0-327.el7 zKernel release 'z' is not installedzActive kernel cannot be removed�-zRemoving kernel package %sz pkg.list_pkgsz config.getz systemd.scopeTzsystemd-runz--scopez-y�removezcmd.run_allZtraceF)Zoutput_loglevelZpython_shellN�retcoder z"Error occurred removing package(s)�stderr)�errorsZchanges)�info�removed)r r r r r r* r �salt�utilsZsystemdZ has_scope�__context__�extend�_yum�pop�dataZ compare_dicts)�release�target�old�cmd�out�newr"