
    x[h                     f    d dl mZ d dlmZmZmZ  G d de      Z G d de      Z G d de      Zy	)
    )BootProtoEnum)NicBaseStaticIpv4BaseStaticIpv6Basec                       e Zd ZdZd Zd Zd Zed        Zed        Z	ed        Z
ed        Zed	        Zed
        Zed        Zed        Zy)Niczd
    Holds the information about each NIC specified
    in the customization specification file
    c                      || _         || _        y N)_name_configFile)selfname
configFiles      J/usr/lib/python3/dist-packages/cloudinit/sources/helpers/vmware/imc/nic.py__init__zNic.__init__   s    
%    c                 Z    | j                   j                  | j                  dz   |z   d       S )N|)r   getr   )r   whats     r   _getzNic._get   s(    ##DIIOd$:DAAr   c                 R    | j                   j                  | j                  |z         S r
   )r   get_count_with_prefixr   )r   prefixs     r   _get_count_with_prefixzNic._get_count_with_prefix   s"    55dii&6HIIr   c                     | j                   S r
   )r   r   s    r   r   zNic.name    s    zzr   c                 @    | j                  d      j                         S )NMACADDRr   lowerr   s    r   maczNic.mac$   s    yy#))++r   c                 b    | j                  d      }|r|j                         }|dk(  xs |dk(  S y)NPRIMARYyestrueFr    r   values     r   primaryzNic.primary(   s4    		)$KKMEE>4Uf_4r   c                 b    | j                  d      }|r|j                         }|dk(  xs |dk(  S y)NONBOOTr%   r&   Fr    r'   s     r   onbootz
Nic.onboot1   s4    		(#KKMEE>4Uf_4r   c                 J    | j                  d      }|r|j                         S y)N	BOOTPROTO r    r'   s     r   	bootProtozNic.bootProto:   "    		+&;;= r   c                 J    | j                  d      }|r|j                         S y)N	IPv4_MODEr/   r    r'   s     r   	ipv4_modezNic.ipv4_modeB   r1   r   c                 V    | j                   t        j                  k(  rt        |       gS y)z
        Checks the BOOTPROTO property and returns StaticIPv4Addr
        configuration object if STATIC configuration is set.
        N)r0   r   STATICStaticIpv4Addrr   s    r   
staticIpv4zNic.staticIpv4J   s'     >>]111"4())r   c                     | j                  d      }|sy g }t        d|dz         D ]  }|j                  t        | |              |S )Nz
|IPv6ADDR|   )r   rangeappendStaticIpv6Addr)r   cntresultindexs       r   
staticIpv6zNic.staticIpv6U   sQ    )),71cAg& 	7EMM.u56	7 r   N)__name__
__module____qualname____doc__r   r   r   propertyr   r"   r)   r,   r0   r4   r8   rA    r   r   r   r      s    
&BJ   , ,           
 
r   r   c                   F    e Zd ZdZd Zed        Zed        Zed        Zy)r7   zStatic IPV4  Setting.c                     || _         y r
   )_nic)r   nics     r   r   zStaticIpv4Addr.__init__f   s	    	r   c                 8    | j                   j                  d      S )NIPADDRrJ   r   r   s    r   ipzStaticIpv4Addr.ipi   s    yy~~h''r   c                 8    | j                   j                  d      S )NNETMASKrN   r   s    r   netmaskzStaticIpv4Addr.netmaskm   s    yy~~i((r   c                     | j                   j                  d      }|r-|j                  d      D cg c]  }|j                          c}S y c c}w )NGATEWAY,)rJ   r   splitstrip)r   r(   xs      r   gatewayszStaticIpv4Addr.gatewaysq   s?    		y)',{{3'78!AGGI88 9s   AN)	rB   rC   rD   rE   r   rF   rO   rR   rY   rG   r   r   r7   r7   c   sF     ( ( ) )  r   r7   c                   F    e Zd ZdZd Zed        Zed        Zed        Zy)r=   zStatic IPV6 Address.c                      || _         || _        y r
   )rJ   _index)r   rK   r@   s      r   r   zStaticIpv6Addr.__init__}   s    	r   c                 d    | j                   j                  dt        | j                        z         S )Nz	IPv6ADDR|rJ   r   strr\   r   s    r   rO   zStaticIpv6Addr.ip   s#    yy~~kC,<<==r   c                 d    | j                   j                  dt        | j                        z         S )NzIPv6NETMASK|r^   r   s    r   rR   zStaticIpv6Addr.netmask   #    yy~~ns4;;/??@@r   c                 d    | j                   j                  dt        | j                        z         S )NzIPv6GATEWAY|r^   r   s    r   gatewayzStaticIpv6Addr.gateway   ra   r   N)	rB   rC   rD   rE   r   rF   rO   rR   rc   rG   r   r   r=   r=   z   sJ     > > A A A Ar   r=   N)	/cloudinit.sources.helpers.vmware.imc.boot_protor   -cloudinit.sources.helpers.vmware.imc.nic_baser   r   r   r   r7   r=   rG   r   r   <module>rf      s>    J P' Pf^ .A^ Ar   