0 ;ˆl–ß=¿J ClÊq@;q§.*bѿ „ á ¿Áa–Ãa¾”*j"Tâ€Á;q–TÅ£À?÷a ì)gýã@s¾ddlmZmZmZeZddlZddlZddlZddl m m m Z ddlmZmZmZddlmZmZddlmZddd„Zdd d „ZGd d „d ƒZGdd„deƒZGdd„deƒZdS)é)Úabsolute_importÚdivisionÚprint_functionN)Úget_distributionÚget_distribution_versionÚget_distribution_codename)Úget_file_contentÚget_file_lines)ÚBaseFactCollectorú-vcCsBt|tƒr| ¡}dg}| |¡| |¡\}}}|dkr>|SdS)NÚunamer)Ú isinstanceÚstrÚsplitÚextendÚ run_command)ÚmoduleÚflagsZcommandÚrcÚoutÚerr©rúR/usr/lib/python3.9/site-packages/ansible/module_utils/facts/system/distribution.pyÚ get_unames  rFcCs0tj |¡sdS|rdStj |¡dkr,dSdS)NFTr)ÚosÚpathÚexistsÚgetsize)rÚ allow_emptyrrrÚ _file_exists s rc@s|eZdZdZdddœdddœdddœd d dœd d dœd dddœdddœdddœdddœdddœddddœdddœdddœdddœdddœdddœdddœdd dœd!d"dœd#d$dœd%d&dœdd'dœdd(dœfZd)d*d+d,d-œZdd.iZd/Zd0d1„Zd2d3„Z dVd5d6„Z d7d8„Z d9d:„Z d;d<„Z d=d>„Zd?d@„ZdAdB„ZdCdD„ZdEdF„ZdGdH„ZdIdJ„ZdKdL„ZdMdN„ZdOdP„ZdQdR„ZdSdT„ZdUS)WÚDistributionFileszXhas-a various distro file parsers (os-release, etc) and logic for finding the right one.z/etc/altlinux-releaseÚAltlinux)rÚnamez/etc/oracle-releaseÚ OracleLinuxz/etc/slackware-versionÚ Slackwarez/etc/centos-releaseÚCentOSz/etc/redhat-releaseÚRedHatz/etc/vmware-releaseZ VMwareESXT)rr"Ú allowemptyz/etc/openwrt_releaseÚOpenWrtú/etc/os-releaseÚAmazonz/etc/system-releasez/etc/alpine-releaseÚAlpinez/etc/arch-releaseÚ ArchlinuxZSUSEú/etc/SuSE-releasez/etc/gentoo-releaseÚGentooÚDebianú/etc/lsb-releaseÚMandrivaz/etc/sourcemage-releaseÚSMGLz/usr/lib/os-releaseÚ ClearLinuxz/etc/coreos/update.confZCoreosZFlatcarÚNAz Oracle LinuxzRed HatZALTúSource Mage GNU/Linux)r#r&r!r2z Arch Linuxz\'\"\\cCs ||_dS©N©r©ÚselfrrrrÚ__init__bszDistributionFiles.__init__cCst|ƒSr6)r)r9rrrrÚ_get_file_contentesz#DistributionFiles._get_file_contentFcCs"t||d�sdS| |¡}d|fS)N©r)FNT)rr;)r9rrÚdatarrrÚ_get_dist_file_contenths  z(DistributionFiles._get_dist_file_contentc Csþi}| tj¡}||jvrX|j||vr@||d<|j||d<n| ¡d|d<d|fS||jvrˆ|j||vr€||d<d|fSd|fSz.d|}t||ƒ}|||||ƒ\}}||fWSt�yô} z$|j  d| ¡d|fWYd} ~ Sd} ~ 00d|fS)NÚ distributionZdistribution_file_search_stringrTFZparse_distribution_file_zexc: %s) Ústripr Ú STRIP_QUOTESÚ SEARCH_STRINGrÚOS_RELEASE_ALIASÚgetattrÚAttributeErrorrÚdebug) r9r"Údist_file_contentrÚcollected_factsZdist_file_dictZ distfunc_nameÚdistfuncÚparsedÚexcrrrÚ_parse_dist_fileps,     z"DistributionFiles._parse_dist_filecCs^tƒtƒtƒf}|dpd|dp$d|ddur4dn|ddœ}|d d¡dpTd|d<|S) Nrr4éé)r?Údistribution_versionÚdistribution_releaserOÚ.Údistribution_major_version)rrrr)r9ZdistZdistribution_guessrrrÚ_guess_distributionœs  üz%DistributionFiles._guess_distributionc CsÄi}| ¡}| |¡|jD]¢}|d}|d}| dd¡}|j||d�\}}|rr|rr||d<||d<||d<qÀ|sxq| ||||¡\} } | r||d<||d<||d<| |d <| | ¡qÀq|S) Nr"rr'Fr<r?Zdistribution_file_pathZdistribution_file_varietyZdi