Ë
    ÇVh
  ã                   ó„   — d dl mZmZmZ eZddgddœZdZdZdZ	d d	l
mZ d d
lmZmZ d„ Zd„ Zd„ Zd„ Zedk(  r e«        yy)é    )Úabsolute_importÚdivisionÚprint_functionz1.1ÚpreviewÚ	community)Úmetadata_versionÚstatusÚsupported_byaÿ  
---
module: ucs_query

short_description: Queries UCS Manager objects by class or distinguished name

description:
  -Queries UCS Manager objects by class or distinguished name.

extends_documentation_fragment: cisco.ucs.ucs

options:
    class_ids:
        description:
        - One or more UCS Manager Class IDs to query.
        - As a comma separated list
        type: str

    distinguished_names:
        description:
        - One or more UCS Manager Distinguished Names to query.
        - As a comma separated list
        type: str

    delegate_to:
        description:
        - Where the module will be run
        default: localhost
        type: str

requirements:
    - ucsmsdk

author:
    - John McDonough (@movinalot)
    - CiscoUcs (@CiscoUcs)
a¢  
- name: Query UCS Class ID
  cisco.ucs.ucs_query:
    hostname: "{{ ucs_hostname }}"
    username: "{{ ucs_username }}"
    password: "{{ ucs_password }}"
    class_ids: computeBlade
    delegate_to: localhost

- name: Query UCS Class IDs
  cisco.ucs.ucs_query:
    hostname: "{{ ucs_hostname }}"
    username: "{{ ucs_username }}"
    password: "{{ ucs_password }}"
    class_ids: computeBlade, fabricVlan
    delegate_to: localhost

- name: Query UCS Distinguished Name
  cisco.ucs.ucs_query:
    hostname: "{{ ucs_hostname }}"
    username: "{{ ucs_username }}"
    password: "{{ ucs_password }}"
    distinguished_names: org-root
    delegate_to: localhost

- name: Query UCS Distinguished Names
  cisco.ucs.ucs_query:
    hostname: "{{ ucs_hostname }}"
    username: "{{ ucs_username }}"
    password: "{{ ucs_password }}"
    distinguished_names: org-root, sys/rack-unit-1, sys/chassis-1/blade-2
    delegate_to: localhost
zU
objects:
    description: results JSON encodded
    returned: always
    type: dict
)ÚAnsibleModule)Ú	UCSModuleÚucs_argument_specc                 ó8   — |j                   j                  | «      S ©N)Úlogin_handleÚquery_classid)Úclass_idÚucss     úg/home/dcms/DCMS/lib/python3.12/site-packages/ansible_collections/cisco/ucs/plugins/modules/ucs_query.pyÚretrieve_class_idr   `   s   € Ø×Ñ×)Ñ)¨(Ó3Ð3ó    c                 ó8   — |j                   j                  | «      S r   )r   Úquery_dn)Údistinguished_namer   s     r   Úretrieve_distinguished_namer   d   s   € Ø×Ñ×$Ñ$Ð%7Ó8Ð8r   c                 óf   — i }| j                   j                  «       D ]  }t        | |«      ||<   Œ |S r   )Úprop_mapÚvaluesÚgetattr)Úucs_moÚobj_dictÚmo_propertys      r   Úmake_mo_dictr"   h   s9   € Ø€HØ—‘×-Ñ-Ó/ò =ˆÜ '¨°Ó <ˆÒð=à€Or   c                  óð  — t        j                  «       } | j                  t        d¬«      t        d¬«      t        dd¬«      ¬«       t	        | dddgg¬	«      }t        |«      }d}i }	 |j                  d   rˆ|j                  d   j                  d
«      D cg c]  }|j                  «       ‘Œ }}|D ]:  }g ||<   t        ||«      }|sŒ|D ]  }	||   j                  t        |	«      «       Œ! Œ< ||j                  d<   n€|j                  d   rq|j                  d   j                  d
«      D cg c]  }|j                  «       ‘Œ }
}|
D ]$  }i ||<   t        ||«      }	|	sŒt        |	«      ||<   Œ& ||j                  d<   |r |j                   di |j                  ¤Ž  |j"                  di |j                  ¤Ž y c c}w c c}w # t        $ r'}d}dt        |«      z  |j                  d<   Y d }~Œpd }~ww xY w)NÚstr)ÚtypeÚ	localhost)r%   Údefault)Ú	class_idsÚdistinguished_namesÚdelegate_toFr(   r)   )Úsupports_check_modeÚmutually_exclusiveú,ÚobjectsTzsetup error: %s Úmsg© )r   ÚcopyÚupdateÚdictr   r   ÚparamsÚsplitÚstripr   Úappendr"   Úresultr   Ú	Exceptionr$   Ú	fail_jsonÚ	exit_json)Úargument_specÚmoduler   ÚerrÚquery_resultÚxr(   r   Úucs_mosr   r)   r   Úes                r   ÚmainrC   o   s   € Ü%×*Ñ*Ó,€MØ×ÑÜ˜EÔ"Ü  eÔ,Ü˜e¨[Ô9ð ô ô ØØ!àÐ/Ð0ð
ô€Fô FÓ
€CØ
€CØ€Lð8Ø=‰=˜Ò%à#)§=¡=°Ñ#=×#CÑ#CÀCÓ#HöØ—‘•	ðˆIð ð &ò LØ)+˜XÑ&Ü+¨H°cÓ:ÚØ")ò L˜Ø$ XÑ.×5Ñ5´lÀ6Ó6JÕKñLð	Lð %1ˆCJ‰JyÒ!à]‰]Ð0Ò1ð  Ÿ™Ð'<Ñ=×CÑCÀCÓHö#àð —‘•	ð#Ðð #ð ':ò LÐ"Ø35Ð/Ñ0Ü4Ð5GÈÓMâÜ7CÀFÓ7KLÐ!3Ò4ðLð %1ˆCJ‰JyÑ!ñ Øˆ×ÑÑ&˜3Ÿ:™:Ò&à€F×ÑÑ"s—z‘zÓ"ùòCùò#øô ò 8ØˆØ.´°Q³Ñ7ˆ
‰
5Öûð8úsC   Á)/G ÂF;Â/G Ã
A%G Ä/G ÅG Å!G Æ;
G Ç	G5ÇG0Ç0G5Ú__main__N)Ú
__future__r   r   r   r%   Ú__metaclass__ÚANSIBLE_METADATAÚDOCUMENTATIONÚEXAMPLESÚRETURNÚansible.module_utils.basicr   Ú6ansible_collections.cisco.ucs.plugins.module_utils.ucsr   r   r   r   r"   rC   Ú__name__r0   r   r   ú<module>rN      sn   ð÷ AÑ @Ø€à(-Ø(˜kØ$/ñ1Ð ð$€ðL €ðD
€õ 5ß _ò4ò9òò9#ðx ˆzÒÙ…Fð r   