Current File : //usr/lib/python3/dist-packages/uaclient/api/u/pro/services/enable/__pycache__/v1.cpython-312.pyc
�

Uٵg&���ddlZddlmZmZmZmZmZddlmZm	Z	m
Z
mZmZddl
mZmZmZddlmZddlmZmZddlmZddlmZdd	lmZdd
lmZmZmZm Z m!Z!ejDejFe$��Z%Gd�de�Z&Gd
�dee�Z'dededejPdeeejPde)deejPeeffd�Z*dedee+fd�Z,	d*de&deede'fd�Z-	d*de&dedeede'fd�Z.edde.e&d��Z/ddd e'ej`d!fejbd"fejdd#fejfd$fejhd%fejjd&fgd'd(d)�Z6y)+�N)�Iterable�List�Optional�Tuple�Type)�entitlements�lock�messages�status�util)�AbstractProgress�ProgressWrapper�
exceptions)�APIEndpoint)�AdditionalInfo�ErrorWarningObject)�_enabled_services)�_is_attached)�UAConfig)�
BoolDataValue�
DataObject�Field�StringDataValue�	data_listc�r�eZdZeded��ededd��ededd��gZd	dd
�dedeede	fd�Z
y	)�
EnableOptions�servicezPro service to be enabled��doc�variantFz2Optional variant of the Pro service to be enabled.�access_onlyz^If true and the target service supports it, only enable access to the service (default: false)N)r r!c�.�||_||_||_y�N)rr r!)�selfrr r!s    �G/usr/lib/python3/dist-packages/uaclient/api/u/pro/services/enable/v1.py�__init__zEnableOptions.__init__*s��������&���)�__name__�
__module__�__qualname__rrr�fields�strr�boolr&�r'r%rrsq��
�i��.I�J�
����D�		
�	����:�	
��F�."&�!�	'��	'��#��		'�
�	'r'rc	��eZdZedee�d��edee�d��eded��edee�d	��gZdee	dee	de
dee	fd
�Zy)�EnableResult�enabledz#List of services that were enabled.r�disabledz$List of services that were disabled.�reboot_requiredz?True if one of the services that was enabled requires a reboot.r
zaList of information message strings about the service that was just enabled. Possibly translated.c�<�||_||_||_||_yr#�r1r2r3r
)r$r1r2r3r
s     r%r&zEnableResult.__init__Ts!����� ��
�.��� ��
r'N)r(r)r*rrrrr+rr,r-r&r.r'r%r0r06s���
���o�&�5�	
�
	���o�&�6�	
�
	����		
�	���o�&�:�		
�'�F�:!��c��!��s�)�	!�
�!��s�)�
!r'r0�cfg�progress�entitlement�available_variantsr!�returnc	��d}|D]O}|||��}|j�dtjjk(s�<|j	�s�M|}n|�|j
�|j||��}|��|j
dtjdtjjtjj|jztjjz��ifg�tj j|j��}|t#|j$|j&d|ji��fS|dfS)	N)r6r!r�message_operation�msg)r )�variant_namer>)�title�code�meta)�applicability_statusr�ApplicabilityStatus�
APPLICABLE�variant_auto_select�default_variant�emitr�prompt_for_confirmationr
�AUTO_SELECTING_VARIANT�format�TxtColor�BOLDr>�ENDC�AUTO_SELECTED_VARIANT_WARNINGrr=�name)	r6r7r8r9r!r �v_cls�v�warnings	         r%�_auto_select_variantrSbsg���G�#����c�{�3��
�"�"�$�Q�'��/�/�:�:�
;��%�%�'��G�����;�6�6�B��-�-�#�;�-�O�����
�
���0�0��x�>�>�E�E�$,�$5�$5�$:�$:�%�2�2�%3�&�/�/�4�4�%5� F� ��	�
�	
��8�8�?�?� �-�-�@�
���*��+�+���� �'�"6�"6�7�
�
�	
��D� � r'c�f�t|�jD�cgc]}|j��c}Scc}wr#)r�enabled_servicesrO)r6�ss  r%�_enabled_services_namesrW�s%��-�c�2�C�C�D�q�A�F�F�D�D��Ds�.�options�progress_objectc�.�t|t�|��S)N)rY)�_enabler)rXrYs  r%�enabler\�s���7�H�J��H�Hr'c����t|�}g}tj�stj��t|�jstj���jdk(rtj��t|�}t�fd�t|�jD�d�}|rtggdg��Stj |�j�j"xsd�j$��}|j'�\}}	|j(}
t+|tj,j.k(|j0|
g�r>t3||||
j5��j$��\}}|r|j7|�|j9�|_d}d}
	t=j>d	�
�5|jA|�\}}
ddd�|sL|
�|
jF�
|
jF}ntHjJ}tjL�j|���t|�}|jNjQdg�xsgD�cgc]}tS|tT�r|��}}tWjV|�
�|jY�tt[t]t_|�jat_|����t[t]t_|�jat_|����|jc�|��}||_2|S#1swY��RxYw#tB$r}t=jD�|�d}~wwxYwcc}w)z�
    Enable a Pro service. This will automatically disable incompatible services
    and enable required services that that target service depends on.
    �	landscapec3��K�|]P}|j�jk(r5�jr%|jr|j�jk(r|���Ry�wr#)rOrr �variant_enabledr>)�.0rVrXs  �r%�	<genexpr>z_enable.<locals>.<genexpr>�sH�����	
���v�v����(��O�O��%�%�!�.�.�G�O�O�*K�
�	
�s�AANFr5�)r6rOr r!)r6r7r8r9r!zu.pro.services.enable.v1)�lock_holder)r�reason�post_enable)r6)3rr�we_are_currently_rootr�NonRootUserErrorr�is_attached�UnattachedErrorr�NotSupportedrW�nextrrUr0r�entitlement_factoryr r!rB�variants�allrCrD�
is_variantrS�values�append�calculate_total_enable_steps�total_stepsr	�	RetryLockr\�	Exception�clear_lock_file_if_present�messager
�GENERIC_UNKNOWN_ISSUE�EntitlementNotEnabledError�	messaging�get�
isinstancer,r�finish�sorted�list�set�
difference�_check_for_reboot�warnings)rXr6rYr7r��enabled_services_before�already_enabledr8�
applicability�_r9�auto_select_warning�success�fail_reason�ere�enabled_services_afterr=�post_enable_messages�results`                   r%r[r[�s6�����/�H��H��%�%�'��)�)�+�+����(�(��(�(�*�*����+�%��%�%�'�'�5�c�:���	
�&�s�+�<�<�	
�	
��O�����!��	
�	
��2�2��
�_�_����%�2��'�'�	�K�#�7�7�9��M�1�$�-�-��
��\�=�=�H�H�H��&�&�&��	
��,@���#�1�8�8�:��+�+�,
�(��(���O�O�/�0�&�C�C�E�H���G��K��
�^�^�2�
�	@�$/�#5�#5�h�#?� �G�[�	@���"�{�':�':�'F� �(�(�F��3�3�F��3�3��O�O�F�
�	
�5�S�9�� �)�)�-�-�m�R�@�F�B����c�3��	�����M�M�c���O�O��
����*�+�6�6��/�0��
�
����+�,�7�7��.�/��
�
�$�5�5�7�%�!�F�$�F�O��M�_	@�	@�����'�'�)������s6�-L5�L(�L5�M�(L2�-L5�5	M�>M�M�v1�
EnableServiceT)�versionrO�fn�options_cls�supports_progress�32zw
from uaclient.api.u.pro.services.enable.v1 import enable, EnableOptions
result = enable(EnableOptions(service="usg"))
zWhen called as non-root userzCWhen called on a machine that is not attached to a Pro subscriptionz_When called for a service that doesn't support being enabled via API (currently only Landscape)zxWhen the service argument is not a valid Pro service name or if the variant is not a valid variant of the target servicez8When another Ubuntu Pro related operation is in progressz When the service fails to enablez3pro api u.pro.services.enable.v1 --args service=usgzp
{
    "disabled": [],
    "enabled": [
        "usg"
    ],
    "messages": [],
    "reboot_required": false
}
)�
introduced_in�requires_network�example_python�result_classr�example_cli�example_jsonr#)7�logging�typingrrrrr�uaclientrr	r
rr�uaclient.apir
rr�uaclient.api.apir�uaclient.api.data_typesrr�-uaclient.api.u.pro.status.enabled_services.v1r�(uaclient.api.u.pro.status.is_attached.v1r�uaclient.configr�uaclient.data_typesrrrrr�	getLogger�replace_top_level_logger_namer(�LOGrr0�
UAEntitlementr-rSr,rWr\r[�endpointrhrjrk�EntitlementNotFoundError�
LockHeldErrorrz�_docr.r'r%�<module>r�s���8�8�?�?�F�F�(�F�K�A�$����g���:��:�:�8�D�E��'�J�'�@)!�:�~�)!�X,!�	�,!��,!��+�+�,!�!��l�&@�&@�!A�B�	,!�
�,!��<�%�%�x�0B�'C�C�D�
,!�^E��E�d�3�i�E�
KO�I�
�I�-5�6F�-G�I��I�37�{�
�{�	�{��.�/�{��	{�|��	���������!�	�	$�	$�&D�E��&�&� �	
�
�#�#�6�	
�
�/�/�O�	
�
�$�$�F�	
�

�1�1�.�	
�7�@I�	�S3�r'