a )g @sdddlmZmZmZeZddlZddlmm m Z ddl m Z ddlmZGdddeZdS))absolute_importdivisionprint_functionN)PrefixFactNamespace)BaseFactCollectorcsNeZdZdZedgZd fdd ZddZddZd d Z dd d Z Z S)FacterFactCollectorfacterNcs$tddd}tt|j||ddS)NrZfacter_)Znamespace_nameprefix) collectors namespace)rsuperr__init__)selfr r  __class__K/usr/lib/python3.9/site-packages/ansible/module_utils/facts/other/facter.pyr s  zFacterFactCollector.__init__cCs0|jddgd}|jddgd}|dur,|}|S)Nrz/opt/puppetlabs/bin)Zopt_dirsZcfacter)Z get_bin_path)rmodule facter_pathZ cfacter_pathrrr find_facter&s zFacterFactCollector.find_factercCs||d\}}}|||fS)Nz --puppet --json)Z run_commandrrrrcouterrrrr run_facter0szFacterFactCollector.run_factercCs4||}|sdS|||\}}}|dkr0dS|S)Nr)rrrrrrget_facter_output6s z%FacterFactCollector.get_facter_outputcCsHi}|s |S||}|dur"|Szt|}WntyBYn0|S)N)rjsonloads Exception)rrZcollected_factsZ facter_dictZ facter_outputrrrcollectBs  zFacterFactCollector.collect)NN)NN) __name__ __module__ __qualname__namesetZ _fact_idsr rrrr __classcell__rrrrrs   r)Z __future__rrrtypeZ __metaclass__rZ"ansible.module_utils.compat.typingZ module_utilscompattypingtZ$ansible.module_utils.facts.namespacerZ$ansible.module_utils.facts.collectorrrrrrrs