File: //proc/self/root/lib/python3/dist-packages/uaclient/files/__pycache__/machine_token.cpython-38.pyc
U
��Jh�# � @ s~ d dl Z d dlmZ d dlmZmZmZ d dlmZmZm Z m
Z
d dlmZ d dl
mZ daG dd� d�Zded �d
d�ZdS )
� N)�datetime)�Any�Dict�Optional)�defaults�
exceptions�system�util)�PublicMachineTokenData)�UAFilec @ sh e Zd Zejdfeee d�dd�Zed�dd�Z dd � Z
ee d
�dd�Zed
d� �Z
edd� �Zeee d
�dd��Zdd� Zeeeef d
�dd��Zd1ee d�dd�Zed2eeef ee d�dd��Zeee d
�dd��Zedd � �Zeee d
�d!d"��Zed#d
�d$d%��Zed#d
�d&d'��Zed(d
�d)d*��Zed+d,� �Zed-d.� �Z ed/d0� �Z!dS )3�MachineTokenFileN�� directory�machine_token_overlay_pathc C sF t j}t||d t j �| _t||d�| _|| _d | _d | _d | _ d S )N�/F)
r ZMACHINE_TOKEN_FILEr ZPRIVATE_SUBDIR�private_file�public_filer �_machine_token�
_entitlements�_contract_expiry_datetime)�selfr r � file_name� r �>/usr/lib/python3/dist-packages/uaclient/files/machine_token.py�__init__
s �zMachineTokenFile.__init__)�private_contentc C sr t �� rftj|t jd�}| j�|� t�|�j dd�}tj|t jd�}| j
�|� d| _d| _d| _
nt�� �dS )z8Update the machine_token file for both pub/private files��clsF)Z keep_noneN)r �we_are_currently_root�json�dumpsZDatetimeAwareJSONEncoderr �writer
Z from_dictZto_dictr r r r r �NonRootUserError)r r Zprivate_content_strZpublic_contentZpublic_content_strr r r r! s( ��� �zMachineTokenFile.writec C s<