MOON
Server: Apache
System: Linux vps.erhabenn.com.br 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User: machen (1008)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyo
�
d�bc@s�ddlZddlZddlZddlZddljjZddljjj	Z	ddl
mZdefd��YZdS(i����N(tRDMAHandlertCentOSRDMAHandlercBs�eZdZdZdZdZdZdZdZ	d�Z
d�Zd�Ze
d��Zd	�Zd
�Zd�Ze
d��Ze
d
��Zd�Zd�Ze
d��Zd�Ze
d��Zd�Zd�ZRS(smicrosoft-hyper-v-rdmaskmod-microsoft-hyper-v-rdmasmsft-rdma-driverst
hypervkvpdsmicrosoft-hyper-vcCsS|jd�}t|�dkr4td|��n|d|d|_|_dS(Nt.isUnexpected centos version: %sii(tsplittlent	Exceptiont
version_majort
version_minor(tselftdistro_versiontv((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyt__init__(scCstjd�tj�}tjd|�|s=|j�ntjd�|j�}|sktd��ntjdj	|��|j
|�}|j�}|r�tjdj	|��|j||�r�tjd�dStjd�|j
|�ntjd	�|j
|�dS(
so
        Install the KVP daemon and the appropriate RDMA driver package for the
        RDMA firmware.
        i
sRDMA: kvp daemon running: %ss&Cannot determine RDMA firmware versions!RDMA: found firmware version: {0}s!RDMA: driver package present: {0}s"RDMA: driver package is up-to-dateNs#RDMA: driver package needs updatings%RDMA: driver package is NOT installed(ttimetsleepRtis_kvp_daemon_runningtloggertinfotcheck_or_install_kvp_daemontget_rdma_versionRtformattget_int_rdma_versiontget_rdma_package_infotis_rdma_package_up_to_datetupdate_rdma_package(R	tkvpd_runningt
fw_versiont
installed_pkg((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pytinstall_driver.s,





cCs%dj|j|�}tj||�S(Ns{0}-(\d+\.){{3,}}({1})-(Rtrdma_user_mode_package_nametretmatch(R	tpkgRtpattern((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyRQscCs<|jd�}t|�dkr4td|��n|dS(NRis&Unexpected RDMA firmware version: "%s"(RRR(tversionts((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyRXscCs6tjd|jdt�\}}|dkr2dS|S(sA
        Returns the installed rdma package name or None
        s	rpm -q %stchk_erriN(t	shellutiltrun_get_outputRtFalsetNone(R	trettoutput((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyR_s
cCs8tjd�|j�|j|j�|j|�dS(NsRDMA: updating RDMA packages(RRt
refresh_repostforce_install_packagetrdma_wrapper_package_nametinstall_rdma_drivers(R	R((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyRis

cCsxtjd|�|j|�dkr6tjd�n|j|�dkrctdj|���ntjd|�dS(sN
        Attempts to remove existing package and installs the package
        s"RDMA: Force installing package: %sis.RDMA: Erasing package failed but will continuesFailed to install package "{0}"s RDMA: installation completed: %sN(RRtuninstall_packagetinstall_packageRR(R	tpkg_name((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyR,oscCstjdj|��S(Nsyum erase -y -q {0}(R%trunR(R1((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyR/zscCstjdj|��S(Nsyum install -y -q {0}(R%R2R(R1((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyR0~scCsftjd�tjd�dkr1td��ntjd�dkrUtd��ntjd�dS(NsRDMA: refreshing yum reposs
yum clean allis Cleaning yum repositories failedsyum updateinfos,Failed to act on yum repo update informationsRDMA: repositories refreshed(RRR%R2R(R	((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyR+�s
cCs�dj|j|j�}tjdj|��tjj|�sStd|��ntj	|�}tjdt
|��|j�|j|d|j
|f�}|s�td��ntjj||�}|jd|j
|�|j|d|j|f�}|std��ntjj||�}|jd	|j|�tjd
�|j�sh|j�r�tjd�|j�n
tjd�d
S(s�
        Installs the drivers from /opt/rdma/rhel[Major][Minor] directory,
        particularly the microsoft-hyper-v-rdma-* kmod-* and (no debuginfo or
        src). Tries to uninstall them first.
        s/opt/microsoft/rdma/rhel{0}{1}sRDMA: pkgs dir: {0}s%RDMA packages directory %s is missings)RDMA: found %d files in package directorys$%s-(\d+\.){3,}(%s)-\d{8}\.x86_64.rpms"RDMA kernel mode package not foundskernel modes RDMA user mode package not founds	user modesRDMA: driver packages installeds2RDMA: driver module is not loaded; reboot requiredsRDMA: kernel module is loadedN(RRRRRtostpathtisdirRtlistdirRt&uninstall_kvp_driver_package_if_existstget_file_by_patterntrdma_kernel_mode_package_nametjointuninstall_pkg_and_install_fromRtload_driver_moduletis_driver_loadedt
reboot_system(R	Rtpkg_dirtpkgstkmod_pkgt
kmod_pkg_pathtumod_pkgt
umod_pkg_path((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyR.�s6



cCs+x$|D]}tj||�r|SqWdS(N(RRR((t	file_listR!tl((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyR8�s
cCs�tjdj||��tjd|�|j|�dkrStjd|�ntjdj||��|j|�dkr�tdj|���ndS(Ns RDMA: Processing {0} driver: {1}s+RDMA: Try to uninstall existing version: %sis RDMA: Successfully uninstaled %ss%RDMA: Installing {0} package from {1}s"Failed to install RDMA {0} package(RRRR/R0R(R	tpkg_typeR1tpkg_path((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyR;�scCstjd|dt�dkS(sPRuns rpm -q and checks return code to find out if a package
        is installeds	rpm -q %sR$i(R%R2R'(R ((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pytis_package_installed�scCs�tjd�|j|jg}x~|D]v}|j|�sOtjd|�q&tjd|�tjd|dt�dkr�tjd�q&tjd�q&WdS(	Ns+RDMA: deleting existing kvp driver packagess-RDMA: kvp package %s does not exist, skippingsRDMA: erasing kvp package "%s"syum erase -q -y %sR$is!RDMA: successfully erased packagesRDMA: failed to erase package(	RRthyper_v_package_namethyper_v_package_name_newRIR%R2R'terror(R	tkvp_pkgstkvp_pkg((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyR7�s

cCs�tjd�|j|jg}xG|D]?}tjd|�|j|�}|r&td|��q&q&W|j}tjd|�tjd|�|j|�dkr�td|��ntjd|�tjd	�|j�d
S(spChecks if kvp daemon package is installed, if not installs the
        package and reboots the machine.
        s#RDMA: Checking kvp daemon packages.s&RDMA: Checking if package %s installeds@RDMA: package %s is installed, but the kvp daemon is not runnings1RDMA: no kvp drivers installed, will install '%s's(RDMA: trying to install kvp package '%s'is/RDMA: failed to install kvp daemon package '%s's)RDMA: package '%s' successfully installeds#RDMA: Machine will now be rebooted.N(RRRJRKRIRR0R>(R	RMR t	installedtkvp_pkg_to_install((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyR�s 

	
N(t__name__t
__module__RR9R-RJRKR(RRRRRtstaticmethodRRRR,R/R0R+R.R8R;RIR7R(((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyRs.		#		
				+		(
tglobR3RR
tazurelinuxagent.common.loggertcommonRt&azurelinuxagent.common.utils.shellutiltutilsR%tazurelinuxagent.common.rdmaRR(((sB/usr/lib/python2.7/site-packages/azurelinuxagent/pa/rdma/centos.pyt<module>s