Anons79 Mini Shell

Directory : /proc/self/root/lib/python2.7/site-packages/ansible/module_utils/facts/system/
Upload File :
Current File : //proc/self/root/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyc

�
�B�ac@`s�ddlmZmZmZeZddlZddlZddlZddl	m
Z
mZmZddl
mZddlmZdd�Zed�Zd	fd
��YZdefd��YZd
efd��YZdS(i(tabsolute_importtdivisiontprint_functionN(tget_distributiontget_distribution_versiontget_distribution_codename(tget_file_content(tBaseFactCollectors-vcC`s`t|t�r|j�}ndg}|j|�|j|�\}}}|dkr\|SdS(Ntunamei(t
isinstancetstrtsplittextendtrun_commandtNone(tmoduletflagstcommandtrctoutterr((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyt	get_unames	
cC`s@tjj|�stS|r tStjj|�dkr<tStS(Ni(tostpathtexiststFalsetTruetgetsize(Rtallow_empty((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyt_file_existsstDistributionFilescB`s>eZdZidd6dd6idd6dd6idd6dd6id	d6d
d6idd6dd6ed
6idd6dd6idd6dd6idd6dd6idd6dd6ed
6idd6dd6idd6dd6idd6dd6idd6dd6idd6dd6idd6dd6idd6dd6idd6dd6id d6d!d6id"d6d#d6idd6d$d6fZid%d6d&d
6d'd6d(d6Zid)d6Zd*Zd+�Zd,�Z	e
d-�Zd.�Zd/�Z
d0�Zd1�Zd2�Zd3�Zd4�Zd5�Zd6�Zd7�Zd8�Zd9�Zd:�ZRS(;sXhas-a various distro file parsers (os-release, etc) and logic for finding the right one.s/etc/altlinux-releaseRtAltlinuxtnames/etc/oracle-releasetOracleLinuxs/etc/slackware-versiont	Slackwares/etc/redhat-releasetRedHats/etc/vmware-releaset	VMwareESXt
allowemptys/etc/openwrt_releasetOpenWrts/etc/system-releasetAmazons/etc/alpine-releasetAlpines/etc/arch-releaset	Archlinuxs/etc/os-releasetSUSEs/etc/SuSE-releases/etc/gentoo-releasetGentootDebians/etc/lsb-releasetMandrivas/etc/sourcemage-releasetSMGLs/usr/lib/os-releaset
ClearLinuxs/etc/coreos/update.conftCoreostNAsOracle LinuxsRed HattALTsSource Mage GNU/Linuxs
Arch Linuxs\'\"\\cC`s
||_dS(N(R(tselfR((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyt__init__]scC`s
t|�S(N(R(R3R((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyt_get_file_content`scC`s5t|d|�stdfS|j|�}t|fS(NR(RRRR5R(R3RRtdata((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyt_get_dist_file_contentcs
c
C`s-i}|jtj�}||jkrv|j||krX||d<|j||d<n|j�d|d<t|fS||jkr�|j||kr�||d<t|fSt|fSyBd|}t||�}|||||�\}}||fSWn(t	k
r"}	t
d|	�t|fSXt|fS(Ntdistributiontdistribution_file_search_stringitparse_distribution_file_sexc: %s(tstripRtSTRIP_QUOTESt
SEARCH_STRINGRRtOS_RELEASE_ALIASRtgetattrtAttributeErrortprint(
R3R tdist_file_contentRtcollected_factstdist_file_dictt
distfunc_nametdistfunctparsedtexc((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyt_parse_dist_fileks,





cC`s�t�t�t�f}i|dp(dd6|dp9dd6|ddkrSdn|dd6}|djd�dp{d|d	<|S(
NiR1R8itdistribution_versionitdistribution_releaset.tdistribution_major_version(RRRRR(R3tdisttdistribution_guess((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyt_guess_distribution�s$!cC`si}|j�}|j|�x�|jD]�}|d}|d}|jdt�}|j|d|�\}}|r�|r�||d<||d<||d<Pn|s�q)n|j||||�\}	}
|	r)||d<||d<||d<|	|d<|j|
�Pq)q)W|S(	NR RR%RR8tdistribution_file_pathtdistribution_file_varietytdistribution_file_parsed(RPtupdatetOSDIST_LISTtgetRR7RI(R3tdist_file_factst
dist_guesstddictR RRt
has_dist_fileRBtparsed_dist_filetparsed_dist_file_facts((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytprocess_dist_files�s0










cC`sYi}d|krt|fS||d<tjd|�}|rO|d|d<nt|fS(NR"R8s\w+[.]\w+\+?iRJ(RtretfindallR(R3R R6RRCtslackware_factstversion((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyt!parse_distribution_file_Slackware�s

cC`s{i}d|krt|fSd|d<g|j�D]}|j�r3|^q3}|ra|dnd}||d<t|fS(NR'R8iR1RJ(RRtisdigitR(R3R R6RRCtamazon_factstnRa((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytparse_distribution_file_Amazon�s

+
cC`s�i}d|krt|fS||d<tjd|�}|rU|j�d|d<ntjd|�}|r�|j�d|d<nt|fS(NR&R8sDISTRIB_RELEASE="(.*)"iRJsDISTRIB_CODENAME="(.*)"RK(RR^tsearchtgroupsR(R3R R6RRCt
openwrt_factsRatrelease((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytparse_distribution_file_OpenWrt�s

cC`s$i}d|d<||d<t|fS(NR(R8RJ(R(R3R R6RRCtalpine_facts((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytparse_distribution_file_Alpine�s

cC`si}d|j�kr"t|fS|dkrux�|j�D]3}tjd|�}|rx|jd�jd�|d<ntjd|�}|r�|jd�|d<|jd�jd	�d
|d<nd|j�kr
tjd
|�}	|	rn|	j�d
|d<qnq;d|j�kr;d|kr;tjd
|�}	|	jd�r[|	jd�}	nd}	|	|d<q;q;Wne|dkr�d|j�kr|j�}t	|�j�d
}
|
j�d
|d<x|D];}tjd|�}	|	r�|	j�d
j�|d<q�q�Wq�d|j�kr�|j�}|d
j�d
}d|kr]d|d<nd|krvd|d<nx^|D]S}tjd|�}	|	r}|	jd�|d<|dd	|	jd�|d<q}q}Wq�nt
jjd�rt
jj
d�jd�rd|d<nt|fS(Ntsuses/etc/os-releases
^NAME=(.*)it"R8s!^VERSION_ID="?([0-9]+\.?[0-9]*)"?RJRLiRMtopens!^VERSION_ID="?[0-9]+\.?([0-9]*)"?RKt
enterpriset
VERSION_IDt0s/etc/SuSE-releasesCODENAME *= *([^
]+)tServertSLEStDesktoptSLEDsPATCHLEVEL = ([0-9]+)s/etc/products.d/baseproducts
SLES_SAP.prodtSLES_SAP(tlowerRt
splitlinesR^RgtgroupR;RRhRRRtislinktrealpathtendswithR(R3R R6RRCt
suse_factstlineR8RJRjtdistdatatlines((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytparse_distribution_file_SUSE�s\
#
$


,-
cC`si}d|ksd|kr�d|d<tjd|�}|rW|j�d|d<n|ddkr�d|kr�|jjd�}|r�d	|}|jj|�\}	}
}|	dkr�|
j�|d<q�q�q�n!d
|kr�d
|d<nd|kr
d|d<n�|dkr^d
|kr^d
|d<tjd|�}|r�|j�d|d<q�n�d|kr�d|d<tjd|�}|r�|j�d|d<ntjd|�}|r�|jd�|d<|jd�|d<q�nd|kr�d|d<tjd|�}|rV|jd�jd�\}
}}|jd�|d<|
|d<ntjd|�}|r�|j�d|d<q�nqd|kr�d|d<tjd|�}|r�|jd�|d<|jd�jd�d|d<q�n
t	|fSt
|fS(NR,tRaspbianR8sPRETTY_NAME=[^(]+ \(?([^)]+?)\)iRKR1tdpkgs.%s --status tzdata|grep Provides|cut -f2 -d'-'tUbuntutSteamOSs/etc/lsb-releasetKalisDISTRIB_RELEASE=(.*)tDevuans'PRETTY_NAME=\"?[^(\"]+ \(?([^) \"]+)\)?sVERSION_ID=\"(.*)\"iRJRMtCumuluss
Cumulus LinuxsVERSION_ID=(.*)RLsVERSION="(.*)"tMints
Linux Mint(R^RgRhRtget_bin_pathR
R;R{RRR(R3R R6RRCtdebian_factsRjtdpkg_cmdtcmdRRRRatmajort_minort
_dummy_ver((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytparse_distribution_file_Debian-sb






!

&
cC`s�i}d|kr�d|d<tjd|�}|rK|j�d|d<ntjd|�}|rz|j�d|d<n||d<n
t|fSt|fS(NR-R8sDISTRIB_RELEASE="(.*)"iRJsDISTRIB_CODENAME="(.*)"RK(R^RgRhRR(R3R R6RRCtmandriva_factsRaRj((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyt parse_distribution_file_Mandrivags


c	C`s�i}x�|j�D]�}tjd|�}|r\|dkr\|jd�jd�|d<ntjd|�}|r|ddkr|jd�jd�|d<qqWt|fS(Ns
^NAME=(.*)R1iRoR8s
^VERSION=(.*)RJ(RzR^RgR{R;R(	R3R R6RRCtna_factsR�R8Ra((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytparse_distribution_file_NAws#cC`si}t�}|j�dkrk|s1t|fStjd|�}|ru|jd�jd�|d<qun
t|fSt|fS(Ntcoreoss^GROUP=(.*)iRoRK(RRyRR^RgR{R;R(R3R R6RRCtcoreos_factstdistroRj((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytparse_distribution_file_Coreos�s	
"
c	C`s�i}d|j�kr"t|fStjd|�}|rqd|j�dkrZt|fS|j�d|d<ntjd|�}|r�|j�d|d<|j�d|d<ntjd	|�}|r�|j�d|d
<nt|fS(Nt
clearlinuxsNAME="(.*)"sClear LinuxiR8sVERSION_ID=(.*)RMRJsID=(.*)RK(RyRR^RgRhR(	R3R R6RRCtclear_factstpnameRaRj((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyt"parse_distribution_file_ClearLinux�s 

(t__name__t
__module__t__doc__RRUR=R>R<R4R5RR7RIRPR]RbRfRkRmR�R�R�R�R�R�(((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyR/sZ

			,	
	,	
	
	
		6	:			tDistributioncB`sBeZdZidd6dd6idd6dd6idd6dd6id	d6d
d6ed6idd6d
d6idd6dd6idd6dd6idd6dd6ed6idd6dd6idd6dd6idd6dd6idd6dd6idd6dd6idd6dd6idd6dd6id d6d!d6id"d6d#d6idd6d$d6fZid%d6d&d6d'd6d(d!6d)d6Zidd*d+d,d-d.d/d0dd1d2dd3d4d5d6d7gd6dd8d9d:d;d<d=d>d?d@g
d6dAdBdCdDdEdFdGdHgdI6ddJdKgd6dLdgdL6dMdNdOdPdQgdM6dgd6dgd6dRgdR6ddSgd6dgd6dTgdT6dUgdV6dWgdX6dYdZgdY6d[d\gd!6ZiZx5ej�D]'\Z	Z
xe
D]Ze	ee<q�Wq�Wd]�Zd^�Z
d_�Zd`�Zda�Zdb�Zdc�Zdd�Zde�Zdf�Zdg�ZRS(hsH
    This subclass of Facts fills the distribution, distribution_version and distribution_release variables

    To do so it checks the existence and content of typical files in /etc containing distribution information

    This is unit tested. Please extend the tests to cover all distributions if you have them available.
    s/etc/oracle-releaseRR!R s/etc/slackware-versionR"s/etc/redhat-releaseR#s/etc/vmware-releaseR$R%s/etc/openwrt_releaseR&s/etc/system-releaseR's/etc/alpine-releaseR(s/etc/arch-releaseR)s/etc/os-releaseR*s/etc/SuSE-releases/etc/gentoo-releaseR+R,s/etc/lsb-releaseR-s/etc/altlinux-releaseRs/etc/sourcemage-releaseR.s/usr/lib/os-releaseR/s/etc/coreos/update.confR0R1sOracle LinuxsRed Hats	ALT Linuxs+Clear Linux Software for Intel ArchitecturesSource Mage GNU/LinuxtFedoratCentOSt
ScientifictSLCtAscendost
CloudLinuxtPSBMtOVStOELt	Virtuozzot	XenServertAlibabat	AlmaLinuxtRockyR�R�tNeonsKDE neons
Linux MintR�R�R�s
Cumulus LinuxtSuSERuRwtopenSUSEsopenSUSE TumbleweedRxt
SUSE_LINUXs
openSUSE LeaptSusetAntergostManjarotMandraketSolaristNexentatOmniOStOpenIndianatSmartOStSGMLtFuntootAIXtHPUXsHP-UXtMacOSXtDarwintFreeBSDtTrueOSsClear Linux OSsClear Linux MixcC`s
||_dS(N(R(R3R((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyR4�sc
C`s�i}tj�}||d<tj�|d<tj�|d<d}||kr�|jdd
�}t|d|�}|�}|j|�n:|dkr�td|j�}|j	�}|j|�n|d}	|j
j|	d�p�|	|d<|S(NR8RKRJR�sHP-UXR�R�tOpenBSDtSunOSt	DragonFlytNetBSDt-ttget_distribution_tLinuxRt	os_family(R�sHP-UXR�R�R�R�R�R�(
tplatformtsystemRjRatreplaceR?RTRRR]t	OS_FAMILYRVR(
R3tdistribution_factsR�tsystems_implementedtcleanednameRFtdist_func_factstdistribution_filesRWR�((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytget_distribution_facts�s$
	
cC`s�i}|jjd�\}}}|jd�}|d|d<t|�dkr}d|d|df|d<|d|d<n|d|d<|S(	Ns/usr/bin/oslevelRLiRMis%s.%sRJRK(RR
Rtlen(R3t	aix_factsRRRR6((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytget_distribution_AIXscC`sni}|jjddt�\}}}tjd|�}|rj|j�d|d<|j�d|d<n|S(Ns7/usr/sbin/swlist |egrep 'HPUX.*OE.*[AB].[0-9]+\.[0-9]+'tuse_unsafe_shells+HPUX.*OE.*([AB].[0-9]+\.[0-9]+)\.([0-9]+).*iRJiRK(RR
RR^RgRh(R3t
hpux_factsRRRR6((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytget_distribution_HPUXs!cC`sii}d|d<|jjd�\}}}|j�d}|re|jd�d|d<||d<n|S(	NR�R8s /usr/bin/sw_vers -productVersioni����RLiRMRJ(RR
R(R3tdarwin_factsRRRR6((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytget_distribution_Darwin(s

cC`s�i}tj�|d<tjd|d�}dtj�krKd|d<n|r�|jd�|d<d|jd�|jd	�f|d
<n|S(NRKs'(\d+)\.(\d+)-(RELEASE|STABLE|CURRENT).*ttrueosR�R8iRMs%s.%siRJ(R�RjR^RgRaR{(R3t
freebsd_factsR6((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytget_distribution_FreeBSD2s
)cC`sni}tj�|d<|jjd�\}}}tjd|�}|r`|j�d|d<n
d|d<|S(NRJs/sbin/sysctl -n kern.versions OpenBSD\s[0-9]+.[0-9]+-(\S+)\s.*iRKRj(R�RjRR
R^tmatchRh(R3t
openbsd_factsRRRR�((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytget_distribution_OpenBSD=s
cC`siS(N((R3((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytget_distribution_DragonFlyHscC`s-i}tj�}|jd�d|d<|S(NRLiRM(R�RjR(R3tnetbsd_factstplatform_release((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytget_distribution_NetBSDKscC`si}d|d<|S(NsSource Mage GNU/LinuxR8((R3t
smgl_facts((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytget_distribution_SMGLRs
c	C`sgi}td�j�d}d|kr�t|jddg�}d}d|krm|jdd�}d}n|j�d|d	<|j�d
|d<|||d<|jd
�d
j�|d<|St|jddg�}d}d|krud|d	<td�r�t	gtd�j�D]$}d|kr|jdd
�^q�}d|krr|j
d�j�d}qrq�n�d|kr�d|d	<ngd|kr�d|d	<|j�d}n>|dk	r�d|kr�d|d	<|j�djd�}n|j
d	d�dkrc|j�|d<|dk	r6||d<n)|dk	r_|j�dj�|d<n|S|S(Ns/etc/releaseiR�Rs-rR�sOracle SolarissOracle R8iRJRKRLRMs-vR�s/etc/products: tImagei����R�R�t
NexentaOS_R�tv(R�R�R�R�(
RRzRRR�RtrstripRRtdictRVtlstripR;(	R3tsunos_factsR6tuname_rt
ora_prefixtuname_vRJtltproduct_data((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytget_distribution_SunOSWsJ	
C"



(R�R�R�RRUR=t
OS_FAMILY_MAPR�titemstfamilytnamesR R4R�R�R�R�R�R�R�R�R�R�(((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyR��sz












		"				
					tDistributionFactCollectorcB`s5eZdZeddddg�Zddd�ZRS(R8RJRKRMR�cC`s;|p	i}i}|s|Std|�}|j�}|S(NR(R�R�(R3RRCt
facts_dictR8tdistro_facts((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pytcollect�sN(R�R�R tsett	_fact_idsRR(((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyR��s(t
__future__RRRttypet
__metaclass__RR�R^t$ansible.module_utils.common.sys_infoRRRt ansible.module_utils.facts.utilsRt$ansible.module_utils.facts.collectorRRRRRtobjectR�R�(((sR/usr/lib/python2.7/site-packages/ansible/module_utils/facts/system/distribution.pyt<module>s�z�

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]