
    Vh>                    L    d dl mZ d dlmZmZ  G d de      Z G d de      Zy)    )annotations)NetworkNetworkCollectorc                  (    e Zd ZdZdZddZd Zd Zy)HPUXNetworkz
    HP-UX-specific subclass of Network. Defines networking facts:
    - default_interface
    - interfaces (a list of interface names)
    - interface_<name> dictionary of ipv4 address information.
    HP-UXNc                    i }| j                   j                  ddg      }||S | j                         }|j                  |       | j	                         }|j                         |d<   |D ]
  }||   ||<    |S )Nnetstat/usr/binopt_dirs
interfaces)moduleget_bin_pathget_default_interfacesupdateget_interfaces_infokeys)selfcollected_factsnetwork_factsnetstat_pathdefault_interfaces_factsr   ifaces          W/home/dcms/DCMS/lib/python3.12/site-packages/ansible/module_utils/facts/network/hpux.pypopulatezHPUXNetwork.populate   s    {{// \ 0 

   #'#>#>#@ 56--/
&0oo&7l# 	5E#-e#4M% 	5     c                0   i }| j                   j                  ddg      }||S | j                   j                  d|z        \  }}}|j                         }|D ]:  }|j	                         }t        |      dkD  s"|d   dk(  s+|d   |d	<   |d   |d
<   < |S )Nr
   r   r   z%s -nr   r   default   default_interfacedefault_gateway)r   r   run_command
splitlinessplitlen)	r   default_interfacesr   rcouterrlineslinewordss	            r   r   z"HPUXNetwork.get_default_interfaces2   s    {{// \ 0 

 %%{{..x,/FGC  	EDJJLE5zA~8y(>CAh&':;<A!H&'89	E "!r   c                   i }| j                   j                  ddg      }||S | j                   j                  d|z        \  }}}|j                         }|D ]l  }|j	                         }t        t        |      dz
        D ]@  }	||	   d d dk(  s||	   }
d|
i||
<   ||	dz      }d	|i||
   d
<   ||	dz      }||
|d||
   d
<   B n |S )Nr
   r   r   z%s -niwr      landeviceaddressipv4   )network	interfacer3   )r   r   r$   r%   r&   ranger'   )r   r   r   r)   r*   r+   r,   r-   r.   ir2   r3   r6   s                r   r   zHPUXNetwork.get_interfaces_infoF   s   
{{// \ 0 

 {{..y</GHC  	FDJJLE3u:>* 	F8BQ<5("1XF*2F);Jv&#AElG2;W1EJv&v.#AElG=D?E=D2FJv&v.	F	F r   )N)__name__
__module____qualname____doc__platformr   r   r    r   r   r   r      s     H("(r   r   c                      e Zd ZeZdZy)HPUXNetworkCollectorr   N)r:   r;   r<   r   _fact_class	_platformr?   r   r   rA   rA   `   s    KIr   rA   N)
__future__r   'ansible.module_utils.facts.network.baser   r   r   rA   r?   r   r   <module>rF      s)     # MH' HV+ r   