관리-도구
편집 파일: ansible_collector.cpython-39.pyc
a �)g� � @ s� d dl mZmZmZ eZd dlZd dlZd dlm m mZ d dl mZ d dl mZ d dlmZ G dd� dej�ZG dd � d ej�Zdd d�ZdS ) � )�absolute_import�division�print_functionN)�timeout)� collector)� is_stringc s4 e Zd ZdZd � fdd� Zdd� Zd dd�Z� ZS )�AnsibleFactCollectoram A FactCollector that returns results under 'ansible_facts' top level key. If a namespace if provided, facts will be collected under that namespace. For ex, a ansible.module_utils.facts.namespace.PrefixFactNamespace(prefix='ansible_') Has a 'from_gather_subset() constructor that populates collectors based on a gather_subset specifier.Nc s t t| �j||d� || _d S )N)� collectors� namespace)�superr �__init__�filter_spec)�selfr r r �� __class__� �P/usr/lib/python3.9/site-packages/ansible/module_utils/facts/ansible_collector.pyr 3 s �zAnsibleFactCollector.__init__c C s� |r|dkr|S t |�r|g}g }|D ]b}|�� D ]T\}}|rJt�||�rZ|�||f� q2|�d�s2d| }t�||�r2|�||f� q2q&|S )N�*)Zansible_ZfacterZohaiz ansible_%s)r �items�fnmatch�append� startswith)r � facts_dictr �found�f�x�y�gr r r �_filter: s zAnsibleFactCollector._filterc C s� |pi }i }| j D ]~}i }z|j||d�}W n@ tyl } z(tj�t|�� tj�d� W Y d }~n d }~0 0 |�|�� � |�| � || j �� q|S )N)�module�collected_facts� )r Zcollect_with_namespace� Exception�sys�stderr�write�repr�update�copyr r )r r r r � collector_objZ info_dict�er r r �collectN s � "zAnsibleFactCollector.collect)NNN)NN)�__name__� __module__�__qualname__�__doc__r r r+ � __classcell__r r r r r * s r c s6 e Zd ZdZdZe� Zd� fdd� Zd dd�Z� Z S ) �CollectorMetaDataCollectorz@Collector that provides a facts with the gather_subset metadata.� gather_subsetNc s"