
    de                         d dl 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
Z
 d dlmZ d dlmZ  G d de      Z G d de      Zy)	    N)OSUtilError)ustr)DefaultOSUtilc                   `     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Z xZS )SUSE11OSUtilc                 F    t         t        |           d| _        d| _        y )NTdhcpcd)superr   __init__jit_enableddhclient_nameself	__class__s    D/usr/lib/python3/dist-packages/azurelinuxagent/common/osutil/suse.pyr   zSUSE11OSUtil.__init__   s     lD*,%    c                 Z    t        j                  d|       | j                  d|gd       y )Nz/etc/HOSTNAMEhostnameF	log_error)fileutil
write_file_run_command_without_raisingr   r   s     r   set_hostnamezSUSE11OSUtil.set_hostname#   s*    OX6)):x*@E)Rr   c                 <    | j                  d| j                  g      S )Npidof)_get_dhcp_pidr   r   s    r   get_dhcp_pidzSUSE11OSUtil.get_dhcp_pid'   s    !!7D,>,>"?@@r   c                      y)NT r   s    r   is_dhcp_enabledzSUSE11OSUtil.is_dhcp_enabled*   s    r   c                 D    | j                  d| j                  dgd       y N/sbin/servicestopFr   r   r   r   s    r   stop_dhcp_servicezSUSE11OSUtil.stop_dhcp_service-   s$    ))?D<N<NPV*Wch)ir   c                 D    | j                  d| j                  dgd       y Nr&   startFr   r(   r   s    r   start_dhcp_servicezSUSE11OSUtil.start_dhcp_service0   s$    ))?D<N<NPW*Xdi)jr   c                 .    | j                  g dd       y )N)r&   networkr,   Fr   r   r   s    r   start_networkzSUSE11OSUtil.start_network3   s    ))*O[`)ar   c                 .    | j                  g dd       y )N)r&   sshdrestartFr   r0   r   s    r   restart_ssh_servicez SUSE11OSUtil.restart_ssh_service6   s    ))*NZ_)`r   c                 D    | j                  d| j                  dgd       y r%   r   service_namer   s    r   stop_agent_servicezSUSE11OSUtil.stop_agent_service9   s#    ))?D<M<Mv*Vbg)hr   c                 D    | j                  d| j                  dgd       y r+   r7   r   s    r   start_agent_servicez SUSE11OSUtil.start_agent_service<   s#    ))?D<M<Mw*Wch)ir   c                 B    | j                  d| j                  gd       y )N/sbin/insservFr   r7   r   s    r   register_agent_servicez#SUSE11OSUtil.register_agent_service?   s!    ))?D<M<M*NZ_)`r   c                 D    | j                  dd| j                  gd       y )Nr=   z-rFr   r7   r   s    r   unregister_agent_servicez%SUSE11OSUtil.unregister_agent_serviceB   s#    ))?D$BSBS*T`e)fr   )__name__
__module____qualname__r   r   r    r#   r)   r-   r1   r5   r9   r;   r>   r@   __classcell__r   s   @r   r   r      sI    &
SAjkbaijagr   r   c                   x     e Zd Z fdZd ZddZed        Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Z xZS )
SUSEOSUtilc                 8    t         t        |           d| _        y )Nzwickedd-dhcp4)r
   rG   r   r   r   s    r   r   zSUSEOSUtil.__init__G   s    j$(*,r   c                     | j                  |       | j                  |       | j                         }| j                  |       y )N)set_dhcp_hostnameset_hostname_recordget_if_nameifup)r   r   ifnames      r   publish_hostnamezSUSEOSUtil.publish_hostnameK   s:    x(  *!!# 			&r   c                 r   t        j                  dj                  |             |dz   }t        d|      D ]  }	 t	        j
                  d|gd        y # t        $ rW ||k  r:t        j                  dj                  |             t        j                  |       nt        j                  d       Y w xY w)NzInterface {0} bounce with ifup   rM   Tr   zretrying in {0} secondszexceeded restart retries)
loggerinfoformatrange	shellutilrun_command	Exceptiontimesleepwarn)r   rN   retrieswaitretry_limitattempts         r   rM   zSUSEOSUtil.ifupT   s    4;;FCDAIQ, 	<G<%%vv&6$G	<  <[(KK 9 @ @ FGJJt$KK :;<s   AAB65B6c                       y)Nz/usr/lib/systemd/systemr"   r"   r   r   "get_systemd_unit_file_install_pathz-SUSEOSUtil.get_systemd_unit_file_install_patha   s    (r   c                 0    | j                  dd|gd       y )Nhostnamectlzset-hostnameFr   r0   r   s     r   r   zSUSEOSUtil.set_hostnamee   s!    ))NH5 	* 	
r   c                    d}t        j                  d|      }|r|j                  d      d   }|dv s|dj                  |      k(  ry g }t        j                  |      j                  d      }|D ]E  }|j                  d      r!|j                  dj                  |             5|j                  |       G t        j                  |dj                  |             y t        j                  |dj                  |             y )	Nz/etc/sysconfig/network/dhcpDHCLIENT_HOSTNAME_OPTION=)z"AUTO"z'AUTO'AUTOz"{0}"
zDHCLIENT_HOSTNAME_OPTION="{0}")
r   get_line_startingwithsplitrT   	read_file
startswithappendr   joinappend_file)r   r   dhcp_config_file_pathhostname_send_settingvaluenew_conf	dhcp_confentrys           r   rJ   zSUSEOSUtil.set_dhcp_hostnamej   s    = ( > >&(=!
 !)//4R8E44PXAY8Y  $..)++05; & +E''(BC ;CCHM !OOE*+ ##$9499X;NO  %088Br   c                 b    | j                  dddj                  | j                        gd       y N	systemctlr'   
{}.serviceFr   r   rT   r   r   s    r   r)   zSUSEOSUtil.stop_dhcp_service   s3    ));@S@STXTfTf@g*h49 	* 	;r   c                 b    | j                  dddj                  | j                        gd       y Nry   r,   rz   Fr   r{   r   s    r   r-   zSUSEOSUtil.start_dhcp_service   s3    ));ATATUYUgUgAh*i49 	* 	;r   c                 .    | j                  g dd       y )N)ry   r,   znetwork.serviceFr   r0   r   s    r   r1   zSUSEOSUtil.start_network   s    ))*S_d)er   c                 .    | j                  g dd       y )N)ry   r4   zsshd.serviceFr   r0   r   s    r   r5   zSUSEOSUtil.restart_ssh_service   s    ))*R^c)dr   c                 b    | j                  dddj                  | j                        gd       y rx   r   rT   r8   r   s    r   r9   zSUSEOSUtil.stop_agent_service   s3    ));@S@STXTeTe@f*g49 	* 	;r   c                 b    | j                  dddj                  | j                        gd       y r}   r   r   s    r   r;   zSUSEOSUtil.start_agent_service   s3    ));ATATUYUfUfAg*h49 	* 	;r   c                 b    | j                  dddj                  | j                        gd       y )Nry   enablerz   Fr   r   r   s    r   r>   z!SUSEOSUtil.register_agent_service   s3    ));,BUBUVZVgVgBh*i49 	* 	;r   c                 b    | j                  dddj                  | j                        gd       y )Nry   disablerz   Fr   r   r   s    r   r@   z#SUSEOSUtil.unregister_agent_service   s3    ));	<CVCVW[WhWhCi*j49 	* 	;r   )      )rA   rB   rC   r   rO   rM   staticmethodra   r   rJ   r)   r-   r1   r5   r9   r;   r>   r@   rD   rE   s   @r   rG   rG   F   s[    -< ) )

@;;fe;;;;r   rG   )rY   azurelinuxagent.common.loggercommonrR   %azurelinuxagent.common.utils.fileutilutilsr   &azurelinuxagent.common.utils.shellutilrV    azurelinuxagent.common.exceptionr   azurelinuxagent.common.futurer   %azurelinuxagent.common.osutil.defaultr   r   rG   r"   r   r   <module>r      sB   &  . . 8 8 : : 8 . ?&g= &gR`; `;r   