HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/uaclient/api/u/pro/services/disable/__pycache__/v1.cpython-310.pyc
o

��Jh��
@szddlZddlmZmZddlmZmZmZmZm	Z	ddl
mZmZm
Z
ddlmZddlmZddlmZddlmZdd	lmZdd
lmZmZmZmZmZe�e	�e ��Z!Gdd�de�Z"Gd
d�dee�Z#dedee$fdd�Z%	d'de"deede#fdd�Z&	d'de"dedeede#fdd�Z'edde'e"dd�Z(ddde#e
j)dfe
j*d fe
j+d!fe
j,d"fe
j-d#fgd$d%d&�Z.dS)(�N)�List�Optional)�entitlements�lock�messages�status�util)�AbstractProgress�ProgressWrapper�
exceptions)�APIEndpoint)�AdditionalInfo)�_enabled_services)�_is_attached)�UAConfig)�
BoolDataValue�
DataObject�Field�StringDataValue�	data_listc@sBeZdZededd�ededdd�gZdd�dedefdd	�Z	d
S)�DisableOptions�servicezPro service to disable��doc�purgeFzqAlso remove all packages that were installed from this service. Only supported by some services. (default: false))rcCs||_||_dS�N)rr)�selfrr�r�H/usr/lib/python3/dist-packages/uaclient/api/u/pro/services/disable/v1.py�__init__$s
zDisableOptions.__init__N)
�__name__�
__module__�__qualname__rrr�fields�str�boolrrrrrrs��
rc@s2eZdZedee�dd�gZdeefdd�Z	dS)�
DisableResult�disabledzList of services disabledrcCs
||_dSr�r')rr'rrrr2s
zDisableResult.__init__N)
r r!r"rrrr#rr$rrrrrr&)s��r&�cfg�returncCsdd�t|�jD�S)NcSsg|]}|j�qSr)�name)�.0�srrr�
<listcomp>7sz+_enabled_services_names.<locals>.<listcomp>)r�enabled_services�r)rrr�_enabled_services_names6sr1�options�progress_objectcCst|t�|d�S)N)r3)�_disabler)r2r3rrr�disable:sr5c
CsRt|�}t��st���t|�jst���tj	||j
|jd�}t|�}|j
|vr-t
gd�S|j}|dur6|}|��|_d}d}ztjdd��|�|�\}}Wd�n1sXwYWntyp}	zt��|	�d}	~	ww|s�|dur�|jdur�|j}
ntj}
tj|j
|
d��t|�}tj|d�|��t
ttt|��t|����d�S)	zt
    Disable a Pro service. This will automatically disable any services that
    depend on the target service.
    )r)r+rr(NFzu.pro.services.disable.v1)�lock_holder)r�reasonr0) r
r�we_are_currently_rootr�NonRootUserErrorr�is_attached�UnattachedErrorr�entitlement_factoryrrr1r&�enabled_variant�calculate_total_disable_steps�total_stepsr�	RetryLockr5�	Exception�clear_lock_file_if_present�messager�GENERIC_UNKNOWN_ISSUE�EntitlementNotDisabledErrorr�finish�sorted�list�set�
difference)r2r)r3�progress�entitlement�enabled_services_before�variant�success�fail_reason�er7�enabled_services_afterrrrr4@sh	
�
�
����������r4�v1�DisableServiceT)�versionr+�fn�options_cls�supports_progress�32z|
from uaclient.api.u.pro.services.disable.v1 import disable, DisableOptions
result = disable(DisableOptions(service="usg"))
zWhen called as non-root userzCWhen called on a machine that is not attached to a Pro subscriptionz9When the service argument is not a valid Pro service namez8When another Ubuntu Pro related operation is in progressz!When the service fails to disablez4pro api u.pro.services.disable.v1 --args service=usgz+
{
    "disabled": [
        "usg"
    ]
}
)�
introduced_in�requires_network�example_python�result_classr�example_cli�example_jsonr)/�logging�typingrr�uaclientrrrrr�uaclient.apir	r
r�uaclient.api.apir�uaclient.api.data_typesr
�-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 �LOGrr&r$r1r5r4�endpointr9r;�EntitlementNotFoundError�
LockHeldErrorrE�_docrrrr�<module>sx
���
�	����
�L�	�����
�