
    Vh#
                    j    d dl mZ dZdZdZd dlZd dlmZ d dlm	Z	 d dl
mZ d d	lmZ  G d
 de      Zy)    )annotationsa  
    name: varnames
    author: Ansible Core Team
    version_added: "2.8"
    short_description: Lookup matching variable names
    description:
      - Retrieves a list of matching Ansible variable names.
    options:
      _terms:
        description: List of Python regex patterns to search for in variable names.
        required: True
    seealso:
        - plugin_type: lookup
          plugin: ansible.builtin.vars
a$  
- name: List variables that start with qz_
  ansible.builtin.debug: msg="{{ lookup('ansible.builtin.varnames', '^qz_.+') }}"
  vars:
    qz_1: hello
    qz_2: world
    qa_1: "I won't show"
    qz_: "I won't show either"

- name: Show all variables
  ansible.builtin.debug: msg="{{ lookup('ansible.builtin.varnames', '.+') }}"

- name: Show variables with 'hosts' in their names
  ansible.builtin.debug: msg="{{ q('varnames', 'hosts') }}"

- name: Find several related variables that end specific way
  ansible.builtin.debug: msg="{{ query('ansible.builtin.varnames', '.+_zone$', '.+_location$') }}"

- name: display values from variables found via varnames (note "*" is used to dereference the list to a 'list of arguments')
  debug: msg="{{ lookup('vars', *lookup('varnames', 'ansible_play_.+')) }}"

zQ
_value:
  description:
    - List of the variable names requested.
  type: list
N)AnsibleError)	to_native)string_types)
LookupBasec                      e Zd ZddZy)LookupModuleNc           
        |t        d      | j                  ||       g }t        |j                               }|D ]l  }t	        |t
              st        d|dt        |            	 t        j                  |      }|D ]%  }	|j                  |	      s|j                  |	       ' n |S # t        $ r}t        d|dt        |            d }~ww xY w)Nz No variables available to search)var_optionsdirectzInvalid setting identifier, "z" is not a string, it is a zUnable to use "z" as a search parameter: )r   set_optionslistkeys
isinstancer   typerecompile	Exceptionr   searchappend)
selfterms	variableskwargsretvariable_namestermnameevarnames
             O/home/dcms/DCMS/lib/python3.12/site-packages/ansible/plugins/lookup/varnames.pyrunzLookupModule.run=   s    ABBYv>inn./ 	(DdL1"eikoptku#vwwjzz$' * (;;w'JJw'(	( 
  j"UY[def[g#hiijs   ,B//	C8CC)N)__name__
__module____qualname__r"        r!   r	   r	   ;   s    r'   r	   )
__future__r   DOCUMENTATIONEXAMPLESRETURNr   ansible.errorsr   +ansible.module_utils.common.text.convertersr   ansible.module_utils.sixr   ansible.plugins.lookupr   r	   r&   r'   r!   <module>r0      s<    # .
 
 ' A 1 -: r'   