Current Dir: /snap/core22/2955/usr/share/subiquity/console_conf/controllers/__pycache__/

[FILE] chooser.cpython-310.pyc [ edit | delete | rename ]
[FILE] identity.cpython-310.pyc [ edit | delete | rename ]
[FILE] welcome.cpython-310.pyc [ edit | delete | rename ]
[FILE] __init__.cpython-310.pyc [ edit | delete | rename ]

Viewing: /snap/core22/2955/usr/share/subiquity/console_conf/controllers/__pycache__/identity.cpython-310.pyc

o

K��^�@s�ddlZddlZddlZddlZddlZddlZddlmZmZddl	m
Z
ddlmZddl
mZddlmZmZe�d�Zdd	�Zd
d�Zdd
�Zdd�ZdZdZdd�Zdd�ZGdd�de�ZdS)�N)�
host_key_info�get_ips_standalone)�SnapdConnection)�
TuiController)�run_command)�IdentityView�	LoginViewz!console_conf.controllers.identitycCs�d}zt|d��}|��}Wd�n1swYWn
ty'YdSwd}t�|�D]}|�d�\}}}|dkrD|dkrDdS|dkrM|}|Sq/|S)z6 For a ubuntu-core system, return its version or None z/usr/lib/os-release�rN�=�IDzubuntu-core�
VERSION_ID)�open�read�FileNotFoundError�shlex�split�	partition)�path�fp�content�version�line�key�_�value�r�9/usr/share/subiquity/console_conf/controllers/identity.py�get_core_version s(
����rcCs tdd�}|�d���ddS)z Check if device is managed ��/run/snapd.socketzv2/system-info�result�managed)r�get�json)�conrrr�get_managed6s
r%cCs6zt�|�}Wn
tyYdSw|j�dd�dS)Nr�,�r)�pwd�getpwnam�KeyError�pw_gecosr)�username�inforrr�get_realname<s�r.cCs`tdd�}|�d���dD]}d|vrq|d}d|}tj�|�r-|t|�|d�SqdS)	z Get device owner, if any rrzv2/usersr r,z/home/)r,�realname�homedirN)rr"r#�osr�isdirr.)r$�userr,r0rrr�get_device_ownerDs

��r4z�Ubuntu Core {version} on {first_ip} ({tty_name})
{host_key_info}

To login:
{sshcommands}
Personalize your account at https://login.ubuntu.com.
z�Ubuntu Core {version} on <no ip address> ({tty_name})

You cannot log in until the system has an IP address. (Is there
supposed to be a DHCP server running on your network?)

Personalize your account at https://login.ubuntu.com.
c	Cs�d}|D]
}|d||f7}qt�d�dd�}t�pd}t|�dkr0|�tj|||d��dS|d}|�tj|t�|||d��dS)N�
z    ssh %s@%s
r��16)�sshcommands�tty_namer)r8rr9�first_ipr)	r1�ttynamer�len�write�login_details_tmpl_no_ip�format�login_details_tmplr)rr,�ipsr8�ipr9rr:rrr�write_login_detailsis 
�
�rCcCs�t�}t�}t|�dkr/|durtd�dSt�d�dd�}t�p#d}ttj||d��dS|dur?td�d�	|���dSt
tj|d	|�dS)
Nrzdevice managed without user�r6r7)r9rz device managed without user @ {}z, r,)
r4rr<�printr1r;rr>r?�joinrC�sys�stdout)�ownerrAr9rrrr�write_login_details_standalone{s"
��rJcsLeZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	�Z
S)�IdentityControllercst��|�|jj|_dS�N)�super�__init__�
base_model�identity�model)�self�app��	__class__rrrN�szIdentityController.__init__cCsht�r.t�}|r*|j�|�tj�|dd�}tdd|g�}|j�	dd��
�|jj_|�
�St|j|�S)Nr0z.ssh/authorized_keysz
ssh-keygenz-lf�
r)r%r4rQ�add_userr1rrFrrH�replace�
splitlinesr3�fingerprints�make_login_viewr)rR�device_owner�key_file�cprrr�make_ui�s��zIdentityController.make_uic
Cs|jjr||d�}|j�|�|jjd}nB|jj��tdddd|g�}|j	dkr<t
|jjt
�r:|jj�d|j�dSt�|j�}||d	d�}tjd
dd�d
}|j�|�g}|jjj}|��D]}|�|j�qct|d��}	t|	|d	|�Wd�n1s�wY|��dS)N)r/r,z/login-details.txt�snapzcreate-userz--sudoerz--jsonrzCreating user failed:r,z/run/console-confT)�exist_okz#/run/console-conf/login-details.txt�w)�opts�dry_runrQrW�output_baserS�
urwid_loop�draw_screenr�
returncode�
isinstance�ui�bodyr�snap_create_user_failed�stderrr#�loadsrHr1�makedirsrO�network�get_all_netdevs�extend�actual_global_ip_addressesr
rC�login)
rR�emailr �login_details_pathr^�datarA�	net_model�devrrrr�
identity_done�s>��
��
�z IdentityController.identity_donecCs|jjdur
|j��dSdSrL)rQr3rS�prev_screen�rRrrr�cancel�s�zIdentityController.cancelcCs@d}|j�|�|jjj}|��}t|j|j||�}d|j	_
|S)NzConfiguration CompleterD)rj�
set_headerrSrOrprqrrcrQ�_w�focus_position)rR�titlerx�ifaces�
login_viewrrrr[�s
z"IdentityController.make_login_viewcCs|j�|���dSrL)rj�set_bodyr[r|rrrrt�szIdentityController.logincCs|j��dSrL)rS�exitr|rrr�
login_done�szIdentityController.login_done)�__name__�
__module__�__qualname__rNr_rzr}r[rtr��
__classcell__rrrTrrK�s"
rK)r#�loggingr1r(rrG�subiquitycore.sshrr�subiquitycore.snapdr�subiquitycore.tuicontrollerr�subiquitycore.utilsr�console_conf.ui.viewsrr�	getLogger�logrr%r.r4r@r>rCrJrKrrrr�<module>s*



Upload File: