File: //lib/python3/dist-packages/uaclient/__pycache__/contract.cpython-310.pyc
o
�~c�m � @ s$ d dl Z d dlZd dlmZmZmZmZmZ d dlm Z m
Z
mZmZm
Z
mZmZ d dlmZ d dlmZ d dlmZ dZdZd Zd
ZdZdZd
ZdZdddd�Ze
�� Z G dd� de
j!�Z" d<dedee#ef dee#ef de$de$ddfdd�Z% d=dedee#ef d ee#ef de$de$deee$f fd!d"�Z&d#ej'dej(fd$d%�Z) d>d&ee# fd'd(�Z*dedee fd)d*�Z+ded+e#dee#ef fd,d-�Z,dede$fd.d/�Z-d0ee#e#f d1ee#e#f de.fd2d3�Z/d4ee#ef d5e#d6e#dee.ee#ef f fd7d8�Z0 d?dee#ef d9ee# ddfd:d;�Z1dS )@� N)�Any�Dict�List�Optional�Tuple)�clouds�event_logger�
exceptions�messages�
serviceclient�system�util)�UAConfig)�ATTACH_FAIL_DATE_FORMAT)�UserFacingStatusz/v1/context/machines/tokenz3/v1/contracts/{contract}/context/machines/{machine}z
/v1/resourcesz3/v1/resources/{resource}/context/machines/{machine}z/v1/clouds/{cloud_type}/tokenz3/v1/contracts/{contract}/machine-activity/{machine}z/v1/contractz/v1/magic-attach� � � )�series_overrides�series�cloudc @ s� e Zd ZdZejZeje j
g d�d�d.dd��Zdee
ef fdd �Zd
e
dee
ef fdd�Zeje j
g d�d�d
ejfdd��Z d.de
de
dee
dee
ef fdd�Z d.de
de
dee
defdd�Zdd� Zde
dee
ef fdd�Zdee
ef fdd�Zde
fdd �Z d.de
de
dee
dee
ef fd!d"�Z d.de
de
dee
defd#d$�Zd%ee
ef fd&d'�Zd(d)� Zd*d+� Zd.dee
fd,d-�Z dS )/�UAContractClient�contract_url)r r r )�retry_sleepsNc C s~ | � � }|�dd�|�i� | �|�}| jt||d�\}}| jj�|� t j
�� |�di ��d|�d��}| j�
d|� |S )a} Requests machine attach to the provided machine_id.
@param contract_token: Token string providing authentication to
ContractBearer service endpoint.
@param machine_id: Optional unique system machine id. When absent,
contents of /etc/machine-id will be used.
@return: Dict of the JSON response containing the machine-token.
�
Authorization� Bearer {})�data�headers�machineTokenInfo� machineId�
machine-id)r �update�format�_get_platform_data�request_url�API_V1_CONTEXT_MACHINE_TOKEN�cfg�machine_token_file�writer �get_machine_id�cache_clear�get�write_cache)�self�contract_token�
machine_idr r �
machine_token�_headers� r2 �3/usr/lib/python3/dist-packages/uaclient/contract.py�request_contract_machine_attach* s
�
�z0UAContractClient.request_contract_machine_attach�returnc C s | j t| �� d�\}}|S )z=Requests list of entitlements available to this machine type.)�query_params)r$ �API_V1_RESOURCES�_get_platform_basic_info)r- �resource_responser r2 r2 r3 �request_resourcesE s
�z"UAContractClient.request_resourcesr. c C s2 | � � }|�dd�|�i� | jt|d�\}}|S )Nr r �r )r r! r"