a )g @shddlmZmZmZeZddlmZddlm Z m Z gdZ ddgZ GdddeZ GdddeZd S) )absolute_importdivisionprint_function)Mapping)TemplarAnsibleUndefined)Zansible_versionZansible_play_hostsZansible_dependent_role_namesZansible_play_role_namesZansible_role_namesZinventory_hostnameZinventory_hostname_shortZinventory_fileZ inventory_dirgroupsZ group_namesZomitZ playbook_dirZ play_hostsZ role_namesZ ungroupedHostVars HostVarsVarsc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd S)!r zO A special view of vars_cache that adds values from the inventory when needed. cCs||_||_||_||_dSN) _inventory_loader_variable_manager _hostvars)self inventoryvariable_managerloaderr9/usr/lib/python3.9/site-packages/ansible/vars/hostvars.py__init__4szHostVars.__init__cCs||_||_dSr )rr)rrrrrset_variable_manager:szHostVars.set_variable_managercCs ||_dSr )r )rrrrr set_inventory>szHostVars.set_inventorycCs |j|Sr )r Zget_hostr host_namerrr _find_hostAszHostVars._find_hostcCs0||}|dur td|dS|jj|ddS)z Similar to __getitem__, however the returned data is not run through the templating engine to expand variables in the hostvars. Nzhostvars['%s'])nameF)hostZinclude_hostvars)rrrZget_vars)rrrrrrraw_getEs zHostVars.raw_getcCs:|j||jjdur"|j|j_|jjdur6||j_dSr )__dict__updaterr r)rstaterrr __setstate__Ps     zHostVars.__setstate__cCs&||}t|tr|St||jdS)N)r)r isinstancerr r )rrdatarrr __getitem__]s  zHostVars.__getitem__cCs|j|||dSr )rset_host_variable)rrZvarnamevaluerrrr&cszHostVars.set_host_variablecCs|j||dSr )rset_nonpersistent_factsrrZfactsrrrr(fsz HostVars.set_nonpersistent_factscCs|j||dSr )rset_host_factsr)rrrr*iszHostVars.set_host_factscCs||duSr )rrrrr __contains__lszHostVars.__contains__ccs|jjD] }|VqdSr )r hosts)rrrrr__iter__ps zHostVars.__iter__cCs t|jjSr )lenr r,rrrr__len__tszHostVars.__len__cCs(i}|jjD]}||||<q t|Sr )r r,getrepr)routrrrr__repr__ws zHostVars.__repr__cCs|Sr r)rmemorrr __deepcopy__}szHostVars.__deepcopy__N)__name__ __module__ __qualname____doc__rrrrrr"r%r&r(r*r+r-r0r4r6rrrrr 1s   c@s<eZdZddZddZddZddZd d Zd d Zd S)r cCs||_||_dSr )_varsr )r variablesrrrrrszHostVarsVars.__init__cCs*t|j|jd}|j|j|dtd}|SN)r<rF)Zfail_on_undefinedZ static_vars)rr;r template STATIC_VARS)rvartemplarZfoorrrr%szHostVarsVars.__getitem__cCs ||jvSr )r;rr@rrrr+szHostVarsVars.__contains__ccs|jD] }|Vq dSr )r;keysrBrrrr-szHostVarsVars.__iter__cCst|jSr )r.r;rCr/rrrr0szHostVarsVars.__len__cCs&t|j|jd}t|j|jdtdSr=)rr;r r2r>r?)rrArrrr4szHostVarsVars.__repr__N) r7r8r9rr%r+r-r0r4rrrrr s N)Z __future__rrrtypeZ __metaclass__collections.abcrZansible.templaterrr?__all__r r rrrrs S