
    W'Fg                     d    S SK r S SKrS SKrS SKrS SKrSSKJr   " S S5      rS rS r	S r
S	 rg)
    N   )logc                   \    \ rS rSrSrSrSrSrSrSr	Sr
SrSrS rS rS rS rS rS rS	rg)
CloudInitData   Nc                     U R                   (       da  SU l         [        S5       HK  nU =R                   [        R                  " [        R
                  [        R                  -   5      -  sl         MM     U R                   $ )N    )generated_root_passwordrangerandomchoicestringascii_lettersdigits)selfdummys     5/usr/share/virt-manager/virtinst/install/cloudinit.py_generate_password CloudInitData._generate_password   s]    +++-D(r,,,,v}}<1> >, # +++    c                     [        US5       nUR                  5       R                  S5      sS S S 5        $ ! , (       d  f       g = f)Nrz
)openreadlinerstrip)r   pwdfilefobjs      r   _get_passwordCloudInitData._get_password"   s.    '34==?))&1  s	   6
Ac                 F    U R                   (       a  U R                  5       $ g N)root_password_generater   r   s    r   get_password_if_generated'CloudInitData.get_password_if_generated&   s    &&**,, 'r   c                 z    U R                   (       a  U R                  U R                   5      $ U R                  5       $ r"   )root_password_filer   r%   r$   s    r   get_root_passwordCloudInitData.get_root_password*   s1    ""%%d&=&=>>--//r   c                 \    U R                   (       a  U R                  U R                   5      $ g r"   )root_ssh_keyr   r$   s    r   get_root_ssh_keyCloudInitData.get_root_ssh_key/   s'    %%d&7&788 r   c                 \    U R                   (       a  U R                  U R                   5      $ g r"   )clouduser_ssh_keyr   r$   s    r   get_clouduser_ssh_key#CloudInitData.get_clouduser_ssh_key3   s'    !!%%d&<&<== "r   )r   )__name__
__module____qualname____firstlineno__disabler#   r(   r   r,   r0   	user_data	meta_datanetwork_configr   r   r%   r)   r-   r1   __static_attributes__ r   r   r   r      sQ    G!"LIIN,2-0
9>r   r   c                     SnU R                   (       aD  [        R                  " SU R                   5        [        U R                   5      R	                  5       nU$ )Nr	   z$Using meta-data content from path=%s)r9   r   debugr   readcloudinit_datacontents     r   _create_metadata_contentrC   8   sF    G		8((	*~//0557Nr   c                 >   U R                   (       aD  [        R                  " SU R                   5        [        U R                   5      R	                  5       $ SnU R
                  (       d  U R                  (       a"  U R                  5       nUS-  nUS-  nUSU-  -  nU R
                  (       a  US-  nOU R                  (       a  US-  nU R                  (       a,  U R                  5       nUS-  nUS	-  nUS
-  nUS-  nUSU-  -  nU R                  (       a  U R                  5       nUS-  nUSU-  -  nU R                  (       a
  US-  nUS-  n[        R                  " SSU5      nS[        R                   ;   a  [#        U5        [        R                  " SU5        U$ )Nz$Using user-data content from path=%sz#cloud-config
z
chpasswd:
z
  list: |
z    root:%s
z  expire: True
z  expire: False
zusers:
z  - default
z  - name: root
z    ssh_authorized_keys:
z      - %s
zssh_authorized_keys:
z  - %s
zruncmd:
zC- echo "Disabled by virt-install" > /etc/cloud/cloud-init.disabled
z	root:(.*)zroot:[SCRUBBLED]#VIRTINST_TEST_SUITE_PRINT_CLOUDINITz"Generated cloud-init userdata: 
%s)r8   r   r>   r   r?   r#   r(   r)   r,   r-   r0   r1   r7   resubosenvironprint)rA   rB   rootpassrootkeyuserkeyclean_contents         r   _create_userdata_contentrO   A   s   		8((	*N,,-2244G,,0Q0Q!335= = ?X--,,%%		*	*&&"" 113:?"%%//>G++'' 668++:''; 7 	8 FF<);WEM,

:mII3]CNr   c                     SnU R                   (       aD  [        R                  " SU R                   5        [        U R                   5      R	                  5       nU$ )Nr	   z)Using network-config content from path=%s)r:   r   r>   r   r?   r@   s     r   _create_network_config_contentrQ   n   sF    G$$		= //	1~445::<Nr   c                    [        U5      n[        U5      nUS4US4/n[        U5      nU(       a  UR                  US45        / n U Hc  u  px[        R
                  " SSU-  U SS9n	U	R                  n
UR                  X45        [        U
S5       nUR                  U5        S S S 5        Me     U$ ! , (       d  f       Mx  = f! [         a&    U H  n[        R                  " US	   5        M      U$ f = f)
Nz	meta-dataz	user-dataznetwork-configz	virtinst-z-%sF)prefixsuffixdirdeletezw+r   )rC   rO   rQ   appendtempfileNamedTemporaryFilenamer   write	ExceptionrH   unlink)
scratchdirrA   metadatauserdatadatar:   	filepairsrB   destfilefileobjfilenameffilepairs                r   create_filesrh   w   s    '7H'7H{#h%<=D3NCN^%567I#!%G11&0@"52G ||Hh12h%  &% "&  &% #!HIIhqk" " 	#s+   AC B2$C 2
C	<C ,C43C4)rH   r   rF   r   rX   loggerr   r   rC   rO   rQ   rh   r<   r   r   <module>rj      s9    
  	   &> &>R*Zr   