HEX
Server: nginx/1.24.0
System: Linux webserver 6.8.0-90-generic #91-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 18 14:14:30 UTC 2025 x86_64
User: wpuser (1002)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/uaclient/cli/__pycache__/enable.cpython-312.pyc
�

���hAK���ddlZddlZddlmZmZmZmZmZddlm	Z	m
Z
mZmZm
Z
mZmZmZmZmZddlmZmZddlmZmZmZddlmZmZddlmZddlm Z dd	l!m"Z"m#Z#m$Z$dd
l%m&Z&ddl'm(Z(ejRejTe+��Z,edd
e-fde-fdeee.effg�Z/de
j`de.de-fd�Z1	d@de
j`de-dee	jdfd�Z3de
j`de.deedeede.de.de.fd�Z4de-dee.efdee.d ee.d!eee.efd"eee.efd
e-fd#�Z5de
j`d$e.de.de-de-de-d%eee.deedeed&e/fd'�Z6e jne jpe jre jt�d&e;fd(����Z<e$d)ejzej|e<e&j~d*e#e"dej�j�d+j�ej�e
j`��,���-�d.d/�0�e"d1ej�d2�3�e"d4ej�j�d)�5�d2�3�e"d6ej�d2�3�e"d7ej�d2�3�e"d8ej�j�d9�:�d.d9d;gd9�<�e"d=ej�d.�3�g�>�g�?�ZJy)A�N)�Any�Dict�List�
NamedTuple�Optional)
�api�config�contract�entitlements�event_logger�
exceptions�lock�messages�status�util)�ServiceWithDependencies�
_dependencies)�
EnableOptions�EnableResult�_enable)�EnabledService�_enabled_services)�_is_attached)�cli_util)�ProArgument�ProArgumentGroup�
ProCommand)�HelpCategory)�
machine_token�_EnableOneServiceResult�success�needs_reboot�error�cfg�variant�
assume_yesc�p�tj|�}tj|�}t	j
||j
��}|s|tj�yt|�j}t|�j}|D] }	t||	j|d||d||��	�"y)NF)	r$�ent_namer%�access_onlyr&�json_output�
extra_args�enabled_services�all_dependencies)r�&create_interactive_only_print_functionr�get_machine_token_filer
�get_enabled_by_default_servicesrr�NO_SERVICES_TO_AUTO_ENABLErr,r�services�_enable_one_service�name)
r$r%r&r*�interactive_only_print�machine_token_file�services_to_be_enabledr,r-�enable_by_default_services
          �5/usr/lib/python3/dist-packages/uaclient/cli/enable.py�_auto_enable_servicesr:0s���&�L�L����'�=�=�c�B��%�E�E��
�
,�
,�
.���"��x�B�B�C��(��-�>�>��$�S�)�2�2��%;�
�!���.�3�3���!�#��-�-�
	
�
�r)�progress_objectc���tj|�}tj|d||��}d}d}	t	j
d��5|j
|��\}}ddd�|sB|�|j�
|j}	ntj}	tjd|	���tdggdg�	�S#1swY�]xYw#t$r}t	j�|�d}~wwxYw)
a
    Landscape gets special treatment because it currently not supported by our
    enable API. This function is a temporary workaround until we have a proper
    API for enabling landscape, which will happen after Landscape is fully
    integrated with the contracts backend.
    �	landscape)�called_namer)r+FNzcli.enable._enable_landscape)�lock_holder)�progress)�service�reason)�enabled�disabled�reboot_requiredr)r�ProgressWrapperr�LandscapeEntitlementr�	RetryLock�enable�	Exception�clear_lock_file_if_present�messager�GENERIC_UNKNOWN_ISSUEr
�EntitlementNotEnabledErrorr)
r$r)r+r<rAr>r!�fail_reason�erCs
          r9�_enable_landscaperRSs���"�"�?�3�H��1�1�����	�I��G��K��
�^�^�6�
�	G�$-�#3�#3�X�#3�#F� �G�[�	G���"�{�':�':�'F� �(�(�F��3�3�F��3�3���
�	
���
��E�B���!	G�	G�����'�'�)�����s/�C�
B<� C�<C�C�	C,�C'�'C,rBr-r,r?�
service_titlec�����g}g}|D�	cgc]}	|	j��}
}	t�fd�|D�d�}|�b|jD�	cgc]}	|	j|
vr|	j��}}	|jD�	cgc]}	|	j|
vr|	j��}}	|D]�}t	j
|jd��}
tj||�}tjj||��}|
st	j|��r�ttj||���|D]f}tj||�}tjj||��}t	j|��r�Qtj ||���t��fd�|D�d�}|�����tj|���}tj|�|j"�}t	j
|jd��}
tjj||��}|
st	j|��stj||���yyycc}	wcc}	wcc}	w)Nc3�B�K�|]}|j�k(s�|���y�w�N)r4)�.0�srBs  �r9�	<genexpr>z1prompt_for_dependency_handling.<locals>.<genexpr>�s�����:�q����'�(9��:�s��z features.block_disable_on_enable)r	�
path_to_value)�service_being_enabled�incompatible_service)�msg)r[�required_servicec3�v�K�|]0}|j�k(r|jr|j�k7r|���2y�wrV�r4�variant_enabled�variant_name)rWrXrBr%s  ��r9rYz1prompt_for_dependency_handling.<locals>.<genexpr>�s:�����	
���v�v�� ��!�!����'�)�	
�	
�s�69)r4�next�incompatible_with�
depends_onr�is_config_value_truer$r�	get_titler�INCOMPATIBLE_SERVICE�format�prompt_for_confirmationr
�IncompatibleServiceStopsEnable�REQUIRED_SERVICE�RequiredServiceStopsEnablerb)r$rBr-r,r?r%rS�incompatible_services�required_servicesrX�enabled_service_names�dependenciesr\�cfg_block_disable_on_enable�incompatible_service_title�user_msgr^�required_service_titlera�to_be_enabled_title�enabled_variant_titles `   `               r9�prompt_for_dependency_handlingrxs��������-=�>��Q�V�V�>��>��:�$�:�D��L���"�3�3�!
���v�v�.�.�
�F�F�!
��!
�"�,�,�
���v�v�2�2�
�F�F�
��
�!6���&*�&?�&?��7�7�<�'
�#�&2�%;�%;��%�&
�"��0�0�7�7�"/�!;�8�
��'�d�.J�.J��/
��;�;�&3�%?��
��(.�
��!-�!7�!7��=M�!N���,�,�3�3�"/�3�4�
���+�+��9��7�7�&3�!7��
�
��	
�%�	
�	
�	�O��"�w�':�*�4�4�S�'�7�K�� ,� 6� 6���/�6�6�!
��'+�&?�&?��7�7�<�'
�#��0�0�7�7�"5�!6�8�
��'�d�.J�.J��/
��;�;�&9�%:��
�/
�(;�"��w?��!
��

s�I�!I�6!I"r*�
json_response�processed_services�failed_services�errors�warningsc���|rm|j�|j�|rdnd|d<||d<||d<||d<||d<ttj|tj
d�	��yy)
Nr!�failure�resultrzr{r|r}T)�cls�	sort_keys)�sort�print�json�dumpsr�DatetimeAwareJSONEncoder)r*ryrzr{r|r}r!s       r9�_print_json_outputr��s������!�����/6�)�I�
�h��.@�
�*�+�+:�
�'�(�"(�
�h��$,�
�j�!�
��J�J���1�1��
�	
�r;r(r+�returnc	����tj|�}	tj||�||��}
|
j�|
j
}t
��fd�|D�d�}|�tjj|��}
|	|
j�|	tjj|���tddd||
j|
jd���S|s	t|�|||�|��	|rd}ntj$|�	�}�d
k(rt'||||��}nt)t+|�|��||�
�}t-j,|��|r'|	tj.j|���n&|	tj0j|���|j2}|r&|	tj4jd���|jD]
}|	|��td|d��S#tj$re}t j#|�|	|j�|	tjj|���tddd��cYd}~Sd}~wwxYw#tj6$rj}|j8d}|d}|d}|d}|	|�|	tjj|���tddd||||d���cYd}~Sd}~wtj$rt}|	|j�|	tjj|���tddd||j|j:|j8d���cYd}~Sd}~wwxYw)N)r%r)r+c3�z�K�|]2}|j�k(r!�r|jr|j�k(r|���4y�wrVr`)rWrX�	real_namer%s  ��r9rYz&_enable_one_service.<locals>.<genexpr>s<�����	
���v�v��"���%�%�!�.�.�G�*C�
�	
�s�8;)�titleFrB)�typerBrM�message_code)r!r"r#)r?r%rS)r&r>)r+r<)rBr%r))r<�r$�install)�	operationTrC�coder��additional_info�r�rBrMr�r�)rr.r�entitlement_factoryr4r�rcr�ALREADY_ENABLEDrir]�
ENABLE_FAILEDr rxr
�UbuntuProError�LOG�	exception�CLIEnableDisableProgressrRrrr�ACCESS_ENABLED_TMPL�ENABLED_TMPLrF�ENABLE_REBOOT_REQUIRED_TMPLrOr��msg_code)r$r(r%r)r&r*r+r,r-r5�ent�	ent_title�already_enabledr]rQrA�
enable_resultr"rMrC�err_code�err_msg�err_infor�s  `                    @r9r3r3�s����&�L�L�����
*�
*�������C����I��	�	�I��	
�%�	
�	
��O��"��&�&�-�-�I�-�>���s�w�w�'��x�5�5�<�<�9�<�M�N�&���!�#��7�7� #���	�	
�		
��	�*��� � �$��'�
�*S
���H��8�8�J�O�H���#�-���%� (�	�M�$��$�#� +��
� (��M�	�
�
�#���"��,�,�3�3�)�3�D�
�
#��%�%�,�,�9�,�=�
�%�4�4���"��4�4�;�;�'�<��
�%�-�-�	,�G�"�7�+�	,�'��%��
�	
��u�(�(�
	��M�M�!��"�1�5�5�)�"��&�&�-�-�I�-�>�
�+��"���
��
	��@�0�0�
��"�"�8�,���&�>����/���+�,���w�'��x�5�5�<�<�9�<�M�N�&���!�#�"� (�#+��

�
	
���$�$�

��q�u�u�%��x�5�5�<�<�9�<�M�N�&���!�#��5�5� !�
�
�#$�#4�#4��

�
	
��

�sR�$H�7D	I<�I9�AI4�.I9�4I9�<M>�AK4�.M>�4M>�
A)M9�3M>�9M>c�d�g}g}g}g}tjdd�}|jdk(}tj|�}	t|dd�}
|j}|j}|j}
|
r|rtjdd���|
r|
rtjdd	���|r|
rtjdd	���|	tj�	tj|d�
�t/|�j0sbtj2�}|	|j*�|j'd|j*|j4d��t7||||||d��y|
rt9|dd|��St|dg�}|stj:��t=j>||�\}}tA|�jB}tE|�jF}d}t=jH||�D]�}tK|||
||||jMd�||�	}|jNr$|j'|�|jPs�Od|d<�Ud}|j'|�|jR��u|j'|jR���|red}||z
}t=jT||��}|	|j*�|j'dd|j*|j4|jVd��tjX|�}|j[�t7|||||||��|rdSdS#tjtj f$r`t"j%dd�
�|j'dtj(j*tj(j,d��Y���wxYw)z^Perform the enable action on a named entitlement.

    @return: 0 on success, 1 otherwise
    F)�_schema_versionr"r�r%��
--access-only�	--variant)�option1�option2�--auto)�verbosezFailed to refresh contractT)�exc_info�system)r�rMr�)r!�)r$r%r&r*rBr+r"Nr�r�r).r�JSON_SCHEMA_VERSIONrirr.�getattrr)r&�autor
�InvalidOptionCombinationr�REFRESH_CONTRACT_ENABLEr
�refresh�ConnectivityErrorr�r��warning�append�E_REFRESH_CONTRACT_FAILUREr]r4r�is_attached_and_contract_valid�ContractExpiredErrorr�r�r:�NoServicesToEnabler�get_valid_entitlement_namesrr,rr2�order_entitlements_for_enablingr3�getr!r"r#�*create_enable_entitlements_not_found_errorr��UAContractClient�update_activity_token)�argsr$�kwargsrzr{r|r}ryr*r5r%r)r&r��expired_err�names�entitlements_found�entitlements_not_foundr,r-�retr(r��err�contract_clients                         r9�
action_enabler��s������O�
�F��H�(�;�;���M�
�+�+��'�K�
&�L�L�����d�I�r�*�G��"�"�K����J��9�9�D��;��1�1�#�[�
�	
��4��1�1���
�	
��t��1�1�#�X�
�	
��8�;�;�<�
�����e�,����;�;� �5�5�7���{���/��
�
� �&�?�?� +� 4� 4�
�	
�	��������	
���$����#�	
�	
�
�D�)�R�(�E���+�+�-�-�
	�0�0���<����(��-�>�>��$�S�)�2�2��
�C� �@�@��
��,��%��������J�J�|�$���

���>�>��%�%�h�/��"�"�04�
�n�-��C��"�"�8�,��|�|�'��
�
�f�l�l�+�-,�0����1�1���E�E�"��
��	�s�w�w�'��
�
� ���7�7� #���#&�#6�#6�
�	
��/�/��4�O��)�)�+�����������1�����U
�(�(�*�*C�*C�D�	
����0�4��@���� �#�>�>�B�B� (� C� C� H� H�
�	
�	
�s�L,�,A?N/�.N/rJ�z, r�)�options�store�*)�help�action�nargsr��
store_true)r�r�z--assume-yes)�commandr�z--betaz--format�cli)�defaultr�)r�r��choicesr�r�)�	arguments)r��descriptionr��
help_category�
help_position�argument_groupsrV)Kr��logging�typingrrrrr�uaclientrr	r
rrr
rrrr�+uaclient.api.u.pro.services.dependencies.v1rr�%uaclient.api.u.pro.services.enable.v1rrr�-uaclient.api.u.pro.status.enabled_services.v1rr�(uaclient.api.u.pro.status.is_attached.v1r�uaclient.clir�uaclient.cli.commandsrrr�uaclient.cli.parserr�uaclient.filesr�	getLogger�replace_top_level_logger_name�__name__r��bool�strr �UAConfigr:�AbstractProgressrRrxr�r3�verify_json_format_args�assert_root�assert_attached�&_raise_enable_disable_unattached_error�intr��CLI_ROOT_ENABLE�CLI_ENABLE_DESC�
QUICKSTART�CLI_ENABLE_SERVICEri�join�valid_services�CLI_ENABLE_ACCESS_ONLY�CLI_ASSUME_YES�CLI_ENABLE_AUTO�CLI_ENABLE_BETA�CLI_FORMAT_DESC�CLI_ENABLE_VARIANT�enable_command�r;r9�<module>rs�����8�8�������
�B�!�K�K�,�(��g���:��:�:�8�D�E��$��	�D��	���	�(�4��S��>�*�+���� 
�	��� 
�
� 
�� 
�N7;�	)�	���)��)��c�2�2�3�	)�XY�	���Y�
�Y��2�3�Y��>�*�	Y�
�Y��
Y��Y�x
��
���S��>�
��S�	�
��#�Y�	
�

��c�3�h�� �
��4��S��>�"�

��
�8_
�	���_
��_
��_
��	_
�
�_
��
_
���c��#�_
��>�*�_
��2�3�_
��_
�D
�!�!�	�������(�I�I�J�Y�S�Y�K��"�Y�x��	�	!�	!��(�(���)�)�����!�4�4�;�;� $�	�	�7�L�7�7�O�F�O�O�<M�N�!�<��
#��	��#�!�8�8�'��
�"�!�0�0�7�7��7�I�'��
��!�1�1�'��
��!�1�1�'��
��!�1�1�8�8��8�G�"�"�F�O�!����!�4�4�"��M+�-	
�/�7�r;