
    d]                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmc mZ d dlmc mZ d dlmc mc mZ d dlmc mc mZ d dlmc mc mZ d dlmZ d dlmZ  G d de      Zy)    N)DefaultOSUtil)OSUtilErrorc                        e Zd Z fdZed        Zed        Zd Zd ZddZ	d Z
d Zd	 Zd
 Zd Zd Zd Zd Z xZS )ClearLinuxUtilc                 F    t         t        |           d| _        d| _        y )Nz(/usr/share/defaults/waagent/waagent.confT)superr   __init__agent_conf_file_pathjit_enabled)self	__class__s    J/usr/lib/python3/dist-packages/azurelinuxagent/common/osutil/clearlinux.pyr	   zClearLinuxUtil.__init__(   s     nd,.$N!    c                       y)Nz/usr/lib/systemd/system r   r   r   "get_systemd_unit_file_install_pathz1ClearLinuxUtil.get_systemd_unit_file_install_path-   s    (r   c                       y)Nz/usr/binr   r   r   r   get_agent_bin_pathz!ClearLinuxUtil.get_agent_bin_path1   s    r   c                      y)NTr   r   s    r   is_dhcp_enabledzClearLinuxUtil.is_dhcp_enabled5   s    r   c                 0    t        j                  dd      S Nz systemctl start systemd-networkdFchk_err	shellutilrunr   s    r   start_networkzClearLinuxUtil.start_network8       }}?OOr   c                 .    t        j                  d       y )Nz"systemctl restart systemd-networkdr   )r   ifnameretrieswaits       r   
restart_ifzClearLinuxUtil.restart_if;   s    :;r   c                      y Nr   r   s    r   restart_ssh_servicez"ClearLinuxUtil.restart_ssh_service>       r   c                 0    t        j                  dd      S )Nzsystemctl stop systemd-networkdFr   r   r   s    r   stop_dhcp_servicez ClearLinuxUtil.stop_dhcp_serviceB   s    }}>NNr   c                 0    t        j                  dd      S r   r   r   s    r   start_dhcp_servicez!ClearLinuxUtil.start_dhcp_serviceE   r    r   c                 b    t        j                  dj                  | j                        d      S )Nzsystemctl start {0}Fr   r   r   formatservice_namer   s    r   start_agent_servicez"ClearLinuxUtil.start_agent_serviceH   s&    }}299$:K:KLV[\\r   c                 b    t        j                  dj                  | j                        d      S )Nzsystemctl stop {0}Fr   r/   r   s    r   stop_agent_servicez!ClearLinuxUtil.stop_agent_serviceK   s&    }}1889J9JKUZ[[r   c                 (    | j                  ddg      S )Npidofzsystemd-networkd)_get_dhcp_pidr   s    r   get_dhcp_pidzClearLinuxUtil.get_dhcp_pidN   s    !!7,>"?@@r   c                      y r'   r   )r   disable_passwords     r   	conf_sshdzClearLinuxUtil.conf_sshdQ   r)   r   c                 B   	 t        j                         }	 t        j                  |      }|st	        t
        j                  d|      	 |j                  d      }|D cg c]  }|j                  d      r| }}|j                  dd       t        j                  |dj                  |             y c c}w # t        t        f$ r+}|j
                  t
        j                  k7  r dg}Y d }~`d }~ww xY w# t        $ r}t        dj                  |            d }~ww xY w)Nz
Empty File
zroot:r   zroot:*LOCK*:14600::::::z"Failed to delete root password:{0})confget_passwd_file_pathfileutil	read_fileIOErrorerrnoENOENTsplit
startswithinsertOSError
write_filejoinr   r0   )r   passwd_file_pathpasswd_contentpasswdx
new_passwdfile_read_erres           r   del_root_passwordz ClearLinuxUtil.del_root_passwordU   s   	N#88:@!)!3!34D!E%!%,,>NOO & (--d3)/MAq||G7LaM
M!!!%>? 0$))J2GH 	 N W% 9 &&%,,678
9  	NBII!LMM	NsX   C6 2B9 
C6 B46B4:9C6 4C6 9C3!C.)C6 .C33C6 6	D?DD)NNN)__name__
__module____qualname__r	   staticmethodr   r   r   r   r%   r(   r+   r-   r2   r4   r8   r;   rR   __classcell__)r   s   @r   r   r   &   sm     
 ) )  P<OP]\Ar   r   )osrepwdshutilsocketarraystructfcntltimebase64rC   azurelinuxagent.common.confcommonr>   azurelinuxagent.common.loggerlogger%azurelinuxagent.common.utils.fileutilutilsr@   &azurelinuxagent.common.utils.shellutilr   %azurelinuxagent.common.utils.textutiltextutil%azurelinuxagent.common.osutil.defaultr    azurelinuxagent.common.exceptionr   r   r   r   r   <module>rm      sZ   & 
 	 
         * * . . 8 8 : : 8 8 ? 8B] Br   