o >fF @sddlZddlmZmZddlmZddlmZddlm Z ddl m Z ddl m Z mZmZmZdZGd d d e ZGd d d e eZd edefddZd ede defddZeddeedZdS)N) exceptionssecret_manager) APIEndpoint)AdditionalInfo)UAConfig)UAContractClient) DataObjectField IntDataValueStringDataValueFc@s&eZdZedegZdefddZdS)MagicAttachWaitOptions magic_tokencCs ||_dSNr)selfrrI/usr/lib/python3/dist-packages/uaclient/api/u/pro/attach/magic/wait/v1.py__init__s zMagicAttachWaitOptions.__init__N)__name__ __module__ __qualname__r r fieldsstrrrrrrr sr c @sbeZdZedeedeedeedeedeedegZdedededededef ddZ d S) MagicAttachWaitResult user_codetokenexpires expires_in contract_idcontract_tokencCs(||_||_||_||_||_||_dSrrrrrrr )rrrrrrr rrrr%s   zMagicAttachWaitResult.__init__N) rrrr r r rrintrrrrrrs* roptionsreturncCs t|tSr)_waitr)r#rrrwait6s r&cfgc Cst|}d}d}d}tj|j|tkrd}z |j|jd}d}Wn5tjy/Yttj y:d}Yntj yW}z|dkrK|d7}n|WYd}~nd}~ww|ry| dduryt |d|d |d t |d |d |dd S|r}d}t||d7}|tkst)Nr r contractTokenuserCoderr expiresIn contractIDr!)rrsecrets add_secretrMAXIMUM_ATTEMPTSget_magic_attach_token_inforMagicAttachTokenErrorMagicAttachUnavailableConnectivityErrorgetrr"timesleep)r#r'contract num_attemptsnum_connection_errors wait_time wait_resperrrr%<sN     )r%v1MagicAttachWait)versionnamefn options_cls)r8uaclientrruaclient.api.apiruaclient.api.data_typesruaclient.configruaclient.contractruaclient.data_typesrr r r r2r rr&r%endpointrrrrs8       6