%PDF- %PDF-
Direktori : /proc/self/root/lib/python3/dist-packages/uaclient/files/__pycache__/ |
Current File : //proc/self/root/lib/python3/dist-packages/uaclient/files/__pycache__/machine_token.cpython-312.pyc |
� ��Jh�# � � � d dl Z d dlmZ d dlmZmZmZ d dlmZmZm Z m Z d dlmZ d dl mZ da G d� d� Zdd efd �Zy)� N)�datetime)�Any�Dict�Optional)�defaults� exceptions�system�util)�PublicMachineTokenData)�UAFilec � � e Zd Zej dfdedee fd�Zdefd�Z d� Z dee fd �Zed � � Z ed� � Zedee fd�� Zd � Zedeeef fd�� Zddee fd�Ze ddeeef dee fd�� Zedee fd�� Zed� � Zedee fd�� Zedd�� Zedd�� Zedd�� Zed� � Zed� � Z ed� � Z!y)�MachineTokenFileN� directory�machine_token_overlay_pathc �� � t j }t ||dz t j z � | _ t ||d� | _ || _ d | _ d | _ d | _ y )N�/F) r �MACHINE_TOKEN_FILEr �PRIVATE_SUBDIR�private_file�public_filer �_machine_token� _entitlements�_contract_expiry_datetime)�selfr r � file_names �>/usr/lib/python3/dist-packages/uaclient/files/machine_token.py�__init__zMachineTokenFile.__init__ sc � � �/�/� �"��y�3���)@�)@�@� ��� "�)�Y��>���*D��'�"���!���)-��&� �private_contentc �� � t j � r�t j |t j �� }| j j |� t j |� j d�� }t j |t j �� }| j j |� d| _ d| _ d| _ yt j � �)z8Update the machine_token file for both pub/private files��clsF)� keep_noneN)r �we_are_currently_root�json�dumps�DatetimeAwareJSONEncoderr �writer � from_dict�to_dictr r r r r �NonRootUserError)r r �private_content_str�public_content�public_content_strs r r( zMachineTokenFile.write s� � ��%�%�'�"&�*�*��T�%B�%B�#�� ���#�#�$7�8� 4�=�=����g��g�&� � "&����D�$A�$A�"�� ���"�"�#5�6�"&�D��!%�D��-1�D�*��-�-�/�/r c �� � t j � rJ| j j � | j j � d| _ d| _ d| _ yt j � �)z!Delete both pub and private filesN) r r$ r �deleter r r r r r+ �r s r r0 zMachineTokenFile.delete4 sY � ��%�%�'����#�#�%����$�$�&�"&�D��!%�D��-1�D�*��-�-�/�/r �returnc �� � t j � r | j }n| j }|j � }|sy t j |t j �� }|S # t $ r Y |S w xY w�Nr! ) r r$ r r �readr% �loads�DatetimeAwareJSONDecoder� Exception)r �file_handler�contents r r5 zMachineTokenFile.read@ ss � ��%�%�'��,�,�L��+�+�L��#�#�%���� ��j�j��d�.K�.K�L�G� ��� � ���� �s �%A) �) A6�5A6c � � t j � r.| j j xr | j j S | j j S �N)r r$ r � is_presentr r1 s r r= zMachineTokenFile.is_presentN sC � ��%�%�'��#�#�.�.�O�4�3D�3D�3O�3O�O��#�#�.�.�.r c �� � | j sY| j � }|r@| j r4| j | j � }|rt j ||�� || _ | j S )zAReturn the machine-token if cached in the machine token response.)� base_dict�overlay_dict)r r5 r �parse_machine_token_overlayr �depth_first_merge_overlay_dict)r r: �machine_token_overlays r � machine_tokenzMachineTokenFile.machine_tokenU sl � � �"�"��i�i�k�G��4�:�:�(,�(H�(H��3�3�)�%� )��7�7�")�%:�� #*�D���"�"�"r c � � | j r;| j j di � j di � j d� S y )N�machineTokenInfo�contractInfo�name�rD �getr1 s r � contract_namezMachineTokenFile.contract_nameg sA � �����"�"�&�&�'9�2�>���^�R�(���V�� � r c �v � t j |� }t j |t j �� S r4 )r � load_filer% r6 r r7 )r r �machine_token_overlay_contents r rA z,MachineTokenFile.parse_machine_token_overlayr s5 � �(.�(8�(8�&�) �%� �z�z�)��-�-� � r c �T � t | j � r| j d d S i S )NrF �accountInfo��boolrD r1 s r �accountzMachineTokenFile.account{ s, � ���"�"�#��%�%�&8�9�-�H�H�� r �seriesc � � | j r| j S | j si S | j | j |� | _ | j S )z9Return configured entitlements keyed by entitlement named)r rD �get_entitlements_from_token)r rT s r �entitlementszMachineTokenFile.entitlements� sQ � �����%�%�%��!�!��I�!�=�=����� ��� �!�!�!r rD c �^ � ddl m} | si S i }| j di � j d� }|si S t d� | j dg � D � � }t d� |j dg � D � � }|j � D ]$ \ }}d |i} ||v r|| | d <