a ì)g£ã@s\ddlmZmZmZeZddlZddlmZddl m Z Gdd„de ƒZ Gdd„deƒZ dS) é)Úabsolute_importÚdivisionÚprint_functionN)ÚNetworkCollector)ÚGenericBsdIfconfigNetworkc@s.eZdZdZdZdd„Zd dd„Zdd „Zd S) Ú AIXNetworkz] This is the AIX Network Class. It uses the GenericBsdIfconfigNetwork unchanged. ÚAIXc CsÎtiid}|j d¡}|r¾|j |dg¡\}}}| ¡}|D]~}| ¡} t| ƒdkr>| ddkr>d| dvr| d|dd <| d |dd <q>d | dvr>| d|d d <| d |d d <q>|d|d fS)N)Úv4Úv6Znetstatz-nrérÚdefaultÚ.r ZgatewayéÚ interfaceú:r )ÚdictÚmoduleÚ get_bin_pathÚ run_commandÚ splitlinesÚsplitÚlen) ÚselfZ route_pathrZ netstat_pathÚrcÚoutÚerrÚlinesÚlineÚwords©rúJ/usr/lib/python3.9/site-packages/ansible/module_utils/facts/network/aix.pyÚget_default_interfaces s    z!AIXNetwork.get_default_interfacesú-acCsêi}i}tggd}d}d}d}|j d¡} | rF|j | dg¡\}}}|j ||g¡\} } } |  ¡D]z} | r–|  ¡}t d| ¡rœ| |¡}|||d<nú|d  d¡rº|  |||¡nÜ|ddkrÖ|  |||¡nÀ|dd krò|  |||¡n¤|dd kr|  |||¡n†|dd kr.| |||¡nh|dd krL| |||¡nJ|dd krj| |||¡n,|ddkrˆ| |||¡n| |||¡|sd| ¡ddkrd|ddkrdt d|d¡rd|j d¡}|rd|j ||dg¡\} } } | dkrqâ|  ¡D]T} | st d| ¡}|r8| d¡|d<t d| ¡}|rt d| ¡rd |d<qd|vrd|j d¡}|rd|j |d|dg¡\} } } | dkr¨qâ|  ¡D].} | r°|  ¡}|ddkr°|d|d<q°qd||fS)N)Zall_ipv4_addressesZall_ipv6_addressesÚunamez-Wz^\w*\d*:Údevicerzoptions=Znd6Zetherzmedia:zstatus:ZlladdrZinetZinet6Ú0Ú macaddressÚunknownz^enZentstatz^Hardware Address: (.*)r z ^Device Type:z .*EthernetÚtypeZmtuZlsattrz-El)rrrrrrÚreÚmatchÚparse_interface_lineÚ startswithZparse_options_lineZparse_nd6_lineZparse_ether_lineZparse_media_lineZparse_status_lineZparse_lladdr_lineZparse_inet_lineZparse_inet6_lineZparse_unknown_lineÚgroup)rZ ifconfig_pathZifconfig_optionsZ interfacesÚ current_ifÚipsZuname_rcZ uname_outZ uname_errZ uname_pathrrrrrZ entstat_pathZbuffZ lsattr_pathrrr Úget_interfaces_info6s~þ               zAIXNetwork.get_interfaces_infocCs<|ddd…}|ggddœ}| |d¡|d<d|d<|S)Nréÿÿÿÿr')r$Zipv4Zipv6r(r Úflagsr&)Z get_options)rrr$r.rrr r+‡s zAIXNetwork.parse_interface_lineN)r")Ú__name__Ú __module__Ú __qualname__Ú__doc__Úplatformr!r0r+rrrr rs  Qrc@seZdZeZdZdS)ÚAIXNetworkCollectorrN)r3r4r5rZ _fact_classZ _platformrrrr r8sr8) Z __future__rrrr(Z __metaclass__r)Z'ansible.module_utils.facts.network.baserZ.ansible.module_utils.facts.network.generic_bsdrrr8rrrr Ús   v