
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
\me                 @   sT   d dl mZ d dlmZmZmZ G dd deZG dd deZG dd deZd	S )
    )BootProtoEnum)NicBaseStaticIpv4BaseStaticIpv6Basec               @   s   e Zd ZdZdd Zdd Zdd Zedd	 Zed
d Z	edd Z
edd Zedd Zedd Zedd Zedd ZdS )Niczd
    Holds the information about each NIC specified
    in the customization specification file
    c             C   s   || _ || _d S )N)_name_configFile)selfnameZ
configFile r   /usr/lib/python3.6/nic.py__init__   s    zNic.__init__c             C   s   | j j| jd | d S )N|)r   getr
   )r	   Zwhatr   r   r   _get   s    zNic._getc             C   s   | j j| j| S )N)r   Zget_count_with_prefixr
   )r	   prefixr   r   r   _get_count_with_prefix   s    zNic._get_count_with_prefixc             C   s   | j S )N)r   )r	   r   r   r   r
       s    zNic.namec             C   s   | j dj S )NZMACADDR)r   lower)r	   r   r   r   mac$   s    zNic.macc             C   s.   | j d}|r&|j }|dkp$|dkS dS d S )NZPRIMARYyestrueF)r   r   )r	   valuer   r   r   primary(   s
    
zNic.primaryc             C   s.   | j d}|r&|j }|dkp$|dkS dS d S )NZONBOOTr   r   F)r   r   )r	   r   r   r   r   onboot1   s
    
z
Nic.onbootc             C   s   | j d}|r|j S dS d S )NZ	BOOTPROTO )r   r   )r	   r   r   r   r   	bootProto:   s    
zNic.bootProtoc             C   s   | j d}|r|j S dS d S )NZ	IPv4_MODEr   )r   r   )r	   r   r   r   r   	ipv4_modeB   s    
zNic.ipv4_modec             C   s   | j tjkrt| gS dS dS )z
        Checks the BOOTPROTO property and returns StaticIPv4Addr
        configuration object if STATIC configuration is set.
        N)r   r   ZSTATICStaticIpv4Addr)r	   r   r   r   
staticIpv4J   s    
zNic.staticIpv4c             C   sB   | j d}|sd S g }x&td|d D ]}|jt| | q&W |S )Nz
|IPv6ADDR|   )r   rangeappendStaticIpv6Addr)r	   Zcntresultindexr   r   r   
staticIpv6U   s    
zNic.staticIpv6N)__name__
__module____qualname____doc__r   r   r   propertyr
   r   r   r   r   r   r   r%   r   r   r   r   r      s   		r   c               @   s<   e Zd ZdZdd Zedd Zedd Zedd	 Zd
S )r   zStatic IPV4  Setting.c             C   s
   || _ d S )N)_nic)r	   nicr   r   r   r   f   s    zStaticIpv4Addr.__init__c             C   s   | j jdS )NZIPADDR)r+   r   )r	   r   r   r   ipi   s    zStaticIpv4Addr.ipc             C   s   | j jdS )NZNETMASK)r+   r   )r	   r   r   r   netmaskm   s    zStaticIpv4Addr.netmaskc             C   s,   | j jd}|r$dd |jdD S d S d S )NZGATEWAYc             S   s   g | ]}|j  qS r   )strip).0xr   r   r   
<listcomp>u   s    z+StaticIpv4Addr.gateways.<locals>.<listcomp>,)r+   r   split)r	   r   r   r   r   gatewaysq   s    zStaticIpv4Addr.gatewaysN)	r&   r'   r(   r)   r   r*   r-   r.   r5   r   r   r   r   r   c   s
   r   c               @   s<   e Zd ZdZdd Zedd Zedd Zedd	 Zd
S )r"   zStatic IPV6 Address.c             C   s   || _ || _d S )N)r+   _index)r	   r,   r$   r   r   r   r   }   s    zStaticIpv6Addr.__init__c             C   s   | j jdt| j S )Nz	IPv6ADDR|)r+   r   strr6   )r	   r   r   r   r-      s    zStaticIpv6Addr.ipc             C   s   | j jdt| j S )NzIPv6NETMASK|)r+   r   r7   r6   )r	   r   r   r   r.      s    zStaticIpv6Addr.netmaskc             C   s   | j jdt| j S )NzIPv6GATEWAY|)r+   r   r7   r6   )r	   r   r   r   gateway   s    zStaticIpv6Addr.gatewayN)	r&   r'   r(   r)   r   r*   r-   r.   r8   r   r   r   r   r"   z   s
   r"   N)	Z/cloudinit.sources.helpers.vmware.imc.boot_protor   Z-cloudinit.sources.helpers.vmware.imc.nic_baser   r   r   r   r   r"   r   r   r   r   <module>   s   S