%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3/dist-packages/uaclient/entitlements/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3/dist-packages/uaclient/entitlements/__pycache__/__init__.cpython-312.pyc

�

�(�f/#����ddlZddlZddlmZddlmZmZmZmZddl	m
Z
ddlmZddl
mZddlmZddlmZdd	lmZdd
lmZddlmZddlmZmZdd
lmZddlmZddl m!Z!ddl"m#Z#ddl$m%Z%m&Z&ddl'm(Z(eeeeeejRejTejVeee!e%e&g
Z,				d0dede-de-de.de.deee-fd�Z/d1dede.dee-fd�Z0dedee-dee-fd�Z1ejdGd�d ejf��Z4dedee-fd!�Z5dedee-fd"�Z6ded#eed$e4d%ee-e.fd&ee-f
d'�Z7ded$e4dee-fd(�Z8d)ee-defd*�Z9dede
jtfd+�Z;d,�Z<dede.fd-�Z=d2ded.e-fd/�Z>y)3�N)�defaultdict)�Dict�List�Optional�Type)�
exceptions)�UAConfig)�fips)�AnboxEntitlement)�
UAEntitlement)�CommonCriteriaEntitlement)�CISEntitlement)�ApplicabilityStatus)�ESMAppsEntitlement�ESMInfraEntitlement)�LandscapeEntitlement)�LivepatchEntitlement)�RealtimeKernelEntitlement)�RepoEntitlement)�ROSEntitlement�ROSUpdatesEntitlement)�EntitlementNotFoundError�cfg�name�variant�purge�access_only�
extra_argsc���tD]X}||||||��}||jvs�|s|cS||jvr|j|||||��cSt|���t|���)a�Returns a UAEntitlement object based on the provided name.

    The return type is Optional[Type[UAEntitlement]].
    It cannot be explicit because of the Python version on Xenial (3.5.2).
    :param cfg: UAConfig instance
    :param name: The name of the entitlement to return
    :param  variant: The variant name to be used
    :param purge: If purge operation is enabled
    :param access_only: If entitlement should be set with access only
    :param extra_args: Extra parameters to create the entitlement

    :raise EntitlementNotFoundError: If not_found_okay is False and no
        entitlement with the given name is found, then raises this error.
    )rr�called_namerr)rr rr)�entitlement_name)�ENTITLEMENT_CLASSES�valid_names�variantsr)rrrrrr�entitlement�ents        �@/usr/lib/python3/dist-packages/uaclient/entitlements/__init__.py�entitlement_factoryr('s���.+�I����#���!�
���3�?�?�"���
��C�L�L�(�,�s�|�|�G�,�� $��)�	��/��H�H�'I�(#�D�
9�9��	all_names�returnc���t}|r6g}|D]$}|j||��j��&t|�St|D�cgc]}||��j��c}�Scc}w)z�Return a list of valid services.

    :param cfg: UAConfig instance
    :param all_names: if we should return all the names for a service instead
        of just the presentation_name
    �r)r"�extendr#�sorted�presentation_name)rr*�entitlements�names�entitlement_clss     r'�valid_servicesr4Usx��'�L����+�	?�O��L�L��S�1�=�=�>�	?��e�}���$0�	
��
��$�6�6�	
����	
s�A)�entsc�F���t|���fd��t|�fd���S)zR
    A function to sort entitlments for enabling that preserves invalid names
    c�\��	�j|�S#t$rt��cYSwxYw�N)�index�
ValueError�len)r&�valid_ents_ordereds �r'� sort_order_with_nonexistent_lastzIorder_entitlements_for_enabling.<locals>.sort_order_with_nonexistent_lastts4���	+�%�+�+�C�0�0���	+��)�*�*�	+�s��+�+c����|�Sr8�)r&r=s �r'�<lambda>z1order_entitlements_for_enabling.<locals>.<lambda>zs
���(H��(M�r))�key)�entitlements_enable_orderr/)rr5r=r<s  @@r'�order_entitlements_for_enablingrCls%���3�3�7��+��$�M�N�Nr)c�(�eZdZe�Ze�Zy)�	SortOrderN)�__name__�
__module__�__qualname__�object�REQUIRED_SERVICES�DEPENDENT_SERVICESr?r)r'rErE}s�������r)rEc�8�t|tj��S)zR
    Return the entitlements disable order based on dependent services logic.
    �r�
sort_order)�_sort_entitlementsrErKr-s r'�entitlements_disable_orderrP�s���#�)�2N�2N�O�Or)c�8�t|tj��S)zP
    Return the entitlements enable order based on required services logic.
    rM)rOrErJr-s r'rBrB�s���#�)�2M�2M�N�Nr)�ent_clsrN�visited�orderc��|j|vry||�}|tjk(r$|jD�cgc]}|j��}}nt|j�}|D]!}|j|vs�t|||||���#|jt|j��d|t|j�<ycc}w)N�rrRrNrSrTT)
rrErJ�required_servicesr%�list�dependent_services�_sort_entitlements_visit�append�str)	rrRrNrSrTr&�e�cls_list�cls_dependencys	         r'rZrZ�s����|�|�w���
�#�,�C��Y�0�0�0�+.�+@�+@�A�a�A�M�M�A��A���.�.�/��"����<�<�w�&�$��&�%���
��
�L�L��W�\�\�"�#�!%�G�C�������Bs�Cc�D�g}i}tD]}t|||||���|S)NrV)r"rZ)rrNrTrSrRs     r'rOrO�s9���E��G�&�
�� ���!���	
�
��Lr)r2c��g}|D]#}|t|d��vs�|j|��%tt|�t|�z
�}||fS)z�Return a list of valid entitlement names.

    :param names: List of entitlements to validate
    :return: a tuple of List containing the valid and invalid entitlements
    T)rr*)r4r[r/�set)r2r�entitlements_found�ent_name�entitlements_not_founds     r'�get_valid_entitlement_namesrf�s^�����0���~�#��>�>��%�%�h�/�0�$�C��J��5G�1H�$H�I���5�5�5r)c���t|��}dj|�}djtjd|zdzddd���}t	j
d	dj|�|�
�S)z{
    Constructs the MESSAGE_INVALID_SERVICE_OP_FAILURE message
    based on the attempted services and valid services.
    r-�, �
zTry �.�PF)�width�break_long_words�break_on_hyphens�enable)�	operation�invalid_service�service_msg)r4�join�textwrap�wrapr�InvalidServiceOpError)rer�valid_services_namesr#rrs     r'�*create_enable_entitlements_not_found_errorrx�sv��*�c�2���)�)�0�1�K��)�)��
�
��[� �3�&��"�"�		
��K��+�+���	�	�"8�9���r)c�"�t|t�Sr8)�
isinstancer)r&s r'�_is_repo_entitlementr{�s���c�?�+�+r)c�`�tt�}t|�D�]}t||�}t	|�s�|j�\}}|tjk(rW|j}|jxsd}|D]6}|jj||�}	||	j|||d���8|j�D]e\}
}t|�dkDs�|dd}|dd}tj |j"dj%t'd�|D���||�	����y
)Nr?)�from�apt_url�suite�rr~rrhc3�&K�|]	}|d���y�w)r}Nr?)�.0r&s  r'�	<genexpr>z>check_entitlement_apt_directives_are_unique.<locals>.<genexpr>s����D�s�s�6�{�D�s�)�urlr2r~rT)rrXr4r(r{�applicability_statusr�
APPLICABLEr~�
apt_suites�repo_policy_check_tmpl�formatr[�itemsr;r�%EntitlementsAPTDirectivesAreNotUnique�contract_urlrsr/)r�entitlement_directivesrdr&r��_r~r�r�entitlement_directive�def_path�
ent_directives            r'�+check_entitlement_apt_directives_are_uniquer��sQ��)��.��"�3�'�$��!�#�x�0��#�C�(��"%�":�":�"<���a��#6�#A�#A�A��k�k�G����-�2�J�#�

��(+�(B�(B�(I�(I��U�)�%�'�'<�=�D�D� (�#*�!&���	

�(>�'C�'C�'E�	�#�H�m��=�!�A�%�'��*�9�5��%�a�(��1�� �F�F��(�(��)�)��D�m�D�D��$��
��	�1$�Lr)rdc�j�	t|||��jS#tj$r|cYSwxYw)N)r)r(�titler�UbuntuProError)rrdrs   r'�	get_titler�s6���"�3��'�B�H�H�H���$�$�����s��2�2)�FFN)F)r�)?�enumrt�collectionsr�typingrrrr�uaclientr�uaclient.configr	�uaclient.entitlementsr
�uaclient.entitlements.anboxr�uaclient.entitlements.baser�uaclient.entitlements.ccr
�uaclient.entitlements.cisr�(uaclient.entitlements.entitlement_statusr�uaclient.entitlements.esmrr�uaclient.entitlements.landscaper�uaclient.entitlements.livepatchr�uaclient.entitlements.realtimer�uaclient.entitlements.repor�uaclient.entitlements.rosrr�uaclient.exceptionsr�FIPSEntitlement�FIPSUpdatesEntitlement�FIPSPreviewEntitlementr"r\�boolr(r4rC�unique�EnumrErPrBrZrOrfr�rxr{r�r�r?r)r'�<module>r�s9����#�-�-��$�&�8�4�>�4�H�M�@�@�D�6�K�8����������������������(���&*�
+:�	�+:�

�+:��+:��	+:�
�+:���c��#�
+:�\���T��d�3�i��.O�	�O��c��O�	�#�Y�O�"���"��	�	�"�
�"�
P�H�P��c��P�O�8�O��S�	�O�&�	�&�
�-�
 �&��&��#�t�)�_�	&�
��9�&�>
�H�
�)�
��S�	�
� 6�t�C�y�6�x�6�"�!)������4,�+�	�+�	�+�\�8��s�r)

Zerion Mini Shell 1.0