a ì)gÃã@shddlmZmZmZeZddlmZmZddl m Z ddl m Z ddl mZmZdgZGdd„dƒZdS) é)Úabsolute_importÚdivisionÚprint_function)ÚMappingÚMutableMapping)ÚGroup)Úpatterns)Ú combine_varsÚ get_unique_idÚHostc@s¤eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z d(dd„Z dd„Zd)dd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„ZdS)*r z a single ansible host cCs| ¡S©N)Ú serialize©Úself©rú:/usr/lib/python3.9/site-packages/ansible/inventory/host.pyÚ __getstate__%szHost.__getstate__cCs | |¡Sr )Ú deserialize)rÚdatarrrÚ __setstate__(szHost.__setstate__cCst|tƒsdS|j|jkS)NF)Ú isinstancer Ú_uuid©rÚotherrrrÚ__eq__+s z Host.__eq__cCs | |¡ Sr )rrrrrÚ__ne__0sz Host.__ne__cCs t|jƒSr )ÚhashÚnamerrrrÚ__hash__3sz Host.__hash__cCs| ¡Sr ©Úget_namerrrrÚ__str__6sz Host.__str__cCs| ¡Sr rrrrrÚ__repr__9sz Host.__repr__cCs@g}|jD]}| | ¡¡q t|j|j ¡|j|j||j dS)N)rÚvarsÚaddressÚuuidÚgroupsÚimplicit) r&Úappendr Údictrr#Úcopyr$rr')rr&Úgrouprrrr <s úzHost.serializecCsˆ|jdd| d¡|_| dtƒ¡|_| dd¡|_| dd¡|_| dd¡|_| d g¡}|D] }tƒ}|  |¡|j   |¡qbdS) NF)Úgen_uuidrr#r$Úr%r'r&) Ú__init__Úgetrr)r#r$rr'rrr&r()rrr&Z group_dataÚgrrrrJs    zHost.deserializeNTcCsHi|_g|_d|_||_||_|r2| dt|ƒ¡|r>tƒ|_d|_dS)NZ ansible_portF) r#r&rrr$Ú set_variableÚintr r')rrÚportr,rrrr.Ysz Host.__init__cCs|jSr ©rrrrrr isz Host.get_namecCsD|dur |jD]}| |¡qn |D]}||jvr$|j |¡q$dSr )r&Ú add_groupr()rZ additionsr+rrrÚpopulate_ancestorsls   zHost.populate_ancestorscCsFd}| ¡D]}||jvr |j |¡q ||jvrB|j |¡d}|S)NFT)Ú get_ancestorsr&r()rr+ZaddedÚoldgrrrr5vs    zHost.add_groupcCs`d}||jvr\|j |¡d}| ¡D]4}|jdkr&|jD]}|| ¡vr:q&q:| |¡q&|S)NFTÚall)r&Úremover7rÚ remove_group)rr+Zremovedr8Zchildgrrrr;ƒs       zHost.remove_groupcCsF||jvr8t|j|tƒr8t|tƒr8t|j||iƒ|_n ||j|<dSr )r#rrrr )rÚkeyÚvaluerrrr1“s$zHost.set_variablecCs|jSr )r&rrrrÚ get_groups™szHost.get_groupscCsli}|j|d<td |j¡s.td |j¡r:|j|d<n|j d¡d|d<tdd„| ¡Dƒƒ|d <|S) NZinventory_hostnameZipv4Zipv6Zinventory_hostname_shortÚ.rcSsg|]}|jdkr|j‘qS)r9r4)Ú.0r0rrrÚ ¤óz'Host.get_magic_vars..Z group_names)rrÚmatchÚsplitÚsortedr>)rÚresultsrrrÚget_magic_varsœs   zHost.get_magic_varscCst|j| ¡ƒSr )r r#rGrrrrÚget_vars¨sz Host.get_vars)NNT)N)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrrr!r"r rr.r r6r5r;r1r>rGrHrrrrr s&    N)Z __future__rrrÚtypeZ __metaclass__Úcollections.abcrrZansible.inventory.grouprZansible.parsing.utils.addressesrZansible.utils.varsr r Ú__all__r rrrrÚs