
    d
                         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Z dZdZd Z G d de      Zy)    N)
get_osutilzlinuxosconfiguration.xmlinstallc                      t               S N)ScvmmHandler     >/usr/lib/python3/dist-packages/azurelinuxagent/daemon/scvmm.pyget_scvmm_handlerr       s
    >r	   c                   (    e Zd Zd ZddZddZd Zy)r   c                 "    t               | _        y r   )r   osutilselfs    r
   __init__zScvmmHandler.__init__$   s     lr	   c           
         t        j                  d       d}| j                  j                          t	        j
                         }t        d t        j                  |      D cg c]  }t        j                  d|       c}      D ]  }t        j                  j                  ||j                  d            }| j                  j                  dd||       t        j                  j                  t        j                  j                  |t                     }|r| j#                  |        |S | j                  j%                  d|	        |S c c}w )
Nz1Detecting Microsoft System Center VMM EnvironmentFc                 
    | d uS r   r   )xs    r
   <lambda>z/ScvmmHandler.detect_scvmm_env.<locals>.<lambda>0   s
     r	   z&(sr[0-9]|hd[c-z]|cdrom[0-9]?|cd[0-9]+)r      )	max_retrychk_err
dvd_devicemount_point)r   )r   r   )loggerinfor   try_load_atapiix_modconfget_dvd_mount_pointfilteroslistdirrematchpathjoingroup	mount_dvdisfileVMM_CONF_FILE_NAMEstart_scvmm_agent
umount_dvd)r   dev_dirfoundr   devdevicesr   s          r
   detect_scvmm_envzScvmmHandler.detect_scvmm_env'   s-   GH 	((* ..05|~  }G  }G  HO  }P  8QuxAjlo8p  8Q  R 	OGgw}}Q/?@JKK!!Aual!mGGNN277<<=O#PQE&&;&?  &&u+&N	O  8Qs   $E
Nc                 <   t        j                  d       |t        j                         }t        j
                  j                  |t              }t        t        j                  d      5 }t        j                  d|d|z   g||       d d d        y # 1 sw Y   y xY w)Nz;Starting Microsoft System Center VMM Initialization Processwz	/bin/bashz-p )stdoutstderr)r   r   r   r   r!   r%   r&   VMM_STARTUP_SCRIPT_NAMEopendevnull
subprocessPopen)r   r   startup_scriptr8   s       r
   r+   zScvmmHandler.start_scvmm_agent<   s      	224Kk3JK"**c" 	=gk>5;;NO$+G=	= 	= 	=s   *BBc                     | j                         r@t        j                  d       t        j                  d       t        j                  d       y y )NExitingi,  r   )r1   r   r   timesleepsysexitr   s    r
   runzScvmmHandler.runF   s5      "KK	"JJsOHHQK #r	   )z/devr   )__name__
__module____qualname__r   r1   r+   rB   r   r	   r
   r   r   #   s    #*=r	   r   )r#   r!   r@   r9   r>   azurelinuxagent.common.loggercommonr   azurelinuxagent.common.confr   azurelinuxagent.common.osutilr   r*   r6   r   objectr   r   r	   r
   <module>rK      sB   ( 
 	 
   . . * * 4/ " '6 'r	   