Ë
    GKÕiˆ  ã                   óh  — d dl mZmZmZmZmZmZmZmZ d dl	m
Z
 d dlmZmZmZ d dlmZ d dlmZ d dlmZmZ d dlmZ  ej0                  «       Ze
j4                  e
j6                   e
j8                  «        e
j:                  d«      d	efd
„«       «       «       «       Zdej@                  de!de!d	efd„Z" edejF                  ejH                  eejJ                   e edejL                  jO                  d¬«      d¬«       edejP                  jO                  d¬«      dddgd¬«      g¬«      g¬«      Z)y)é    )ÚconfigÚdaemonÚentitlementsÚevent_loggerÚ
exceptionsÚmessagesÚtimerÚutil)Úcli_util)ÚProArgumentÚProArgumentGroupÚ
ProCommand)Úperform_disable)ÚHelpCategory)Úmachine_tokenÚstate_files)Úupdate_motd_messagesz
pro detachÚreturnc                óÒ   — t        || j                  | j                  dk(  ¬«      }|dk(  r(t        j                  «        t        j                  «        t        j                  «        |S )zXPerform the detach action for this machine.

    @return: 0 on success, 1 otherwise
    Újson)Ú
assume_yesÚjson_outputr   )	Ú_detachr   Úformatr   Ústartr	   ÚstopÚeventÚprocess_events)ÚargsÚcfgÚkwargsÚrets       ú5/usr/lib/python3/dist-packages/uaclient/cli/detach.pyÚaction_detachr$      sN   € ô Ø˜Ÿ™°d·k±kÀVÑ6Kô€Cð ˆa‚xÜ�‰ŒÜ�
‰
ŒÜ	×ÑÔØ€Jó    r    r   r   c                 ó   — g }t        j                  | «      D ]C  }	 t        j                  | |¬«      }|j                  d¬«      \  }}|sŒ3|j                  |«       ŒE |rpt        j                  t        j                  j                  t        |«      «      «       |D ]0  }t        j                  dj                  |j                  «      «       Œ2 t        j                   |¬«      sy|D ]  }t#        || ||d¬«       Œ t%        j&                  | «      }|j)                  «        t+        j,                  «        t/        | «       t        j                  t        j0                  «       y	# t        j                  $ r Y �Œdw xY w)
aj  Detach the machine from the active Ubuntu Pro subscription,

    :param cfg: a ``config.UAConfig`` instance
    :param assume_yes: Assume a yes answer to any prompts requested.
         In this case, it means automatically disable any service during
         detach.
    :param json_output: output should be json only

    @return: 0 on success, 1 otherwise
    )r    ÚnameT)Úignore_dependent_servicesz    {})r   é   F)r   r   Úupdate_statusr   )r   Úentitlements_disable_orderÚentitlement_factoryr   ÚEntitlementNotFoundErrorÚcan_disableÚappendr   Úinfor   ÚDETACH_WILL_DISABLEÚ	pluralizeÚlenr   r'   r
   Úprompt_for_confirmationr   r   Úget_machine_token_fileÚdeleter   Údelete_state_filesr   ÚDETACH_SUCCESS)	r    r   r   Ú
to_disableÚent_nameÚentr"   Ú_Úmachine_token_files	            r#   r   r   (   sL  € ð €JÜ ×;Ñ;¸CÓ@ò #ˆð	Ü×2Ñ2ØØôˆCð —‘¸4�Ó@‰ˆˆQÚØ×Ñ˜cÕ"ð#ñ  Ü�
‰
”8×/Ñ/×9Ñ9¼#¸j»/ÓJÔKØò 	2ˆCÜ�J‰J�x—‘ s§x¡xÓ0Õ1ð	2ä×'Ñ'°:Õ>ØØò 
ˆÜØØØ#Ø!Øö	
ð
ô '×=Ñ=¸cÓBÐØ×ÑÔÜ×"Ñ"Ô$Ü˜ÔÜ	‡J�JŒx×&Ñ&Ô'Øøô= ×2Ñ2ò 	Úð	ús   œE&Å&E=Å<E=Údetachz--assume-yes)ÚcommandÚ
store_true)ÚhelpÚactionz--formatÚcli)ÚdefaultÚstorer   )rA   rB   ÚchoicesrD   )Ú	arguments)rA   ÚdescriptionrB   Úhelp_categoryÚargument_groupsN)*Úuaclientr   r   r   r   r   r   r	   r
   Úuaclient.clir   Úuaclient.cli.commandsr   r   r   Úuaclient.cli.disabler   Úuaclient.cli.parserr   Úuaclient.filesr   r   Úuaclient.timer.update_messagingr   Úget_event_loggerr   Úverify_json_format_argsÚassert_rootÚassert_attachedÚassert_lock_fileÚintr$   ÚUAConfigÚboolr   ÚCLI_ROOT_DETACHÚCLI_DETACH_DESCÚOTHERÚCLI_ASSUME_YESr   ÚCLI_FORMAT_DESCÚdetach_command© r%   r#   ú<module>ra      sM  ð÷	÷ 	ó 	õ "ß KÑ KÝ 0Ý ,ß 5Ý @à%ˆ×%Ñ%Ó'€ð 
×!Ñ!Ø	×ÑØ€×ÑÓØ€×Ñ˜<Ó(ð¨Sò ó )ó ó ó "ðð0�—‘ð 0¨dð 0Àð 0È#ó 0ñf ØØ	×	!Ñ	!Ø×(Ñ(ØØ×$Ñ$ááØ"Ø!×0Ñ0×7Ñ7ÀÐ7ÓIØ'ôñ
 ØØ!×1Ñ1×8Ñ8ÀÐ8ÓGØ"Ø" F˜OØ!ôðô	
ðô�r%   