
                         V   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ dZej2                   ej4                  ej6                  j8                         G d dej:                                      Z G d d      Zy)z"Command to resume a fleet rollout.    )absolute_import)division)unicode_literals)Any)encoding)core)client)util)base)parser_arguments)parser_extensions)flags)gkehub_v1alpha_messagesz0
To resume a rollout, run:

$ {command} ROLLOUT
c                   z    e Zd ZdZdeiZedej                  fd       Z	de
j                  dej                  fdZy)	ResumezResume a rollout resource.EXAMPLESparserc                     t        j                  |       }|j                          |j                          |j	                          |j                          y)z'Registers flags for the resume command.N)rollout_flagsRolloutFlagsAddRolloutResourceArgAddScheduleOffsetAddValidateOnlyAddAsync)r   r   s     .lib/surface/container/fleet/rollouts/resume.pyArgszResume.Args1   sB     &&v.E	!			NN    argsreturnc                 8   t        j                  |t        j                  j                        }t        j                  | j                               }t        j                  t        j                  j                        }t        j                  |      }t        |||      }|j                         rl|j                  |j                         |j                               }t        j                   j#                  dj%                  |j'                                      |S |j                         r4|j)                  |j                         d      }|j+                  ||       |S |j                         r|j)                  |j                         d      }|j+                  ||       t        j,                  j.                  j1                  ddd       |j)                  |j                         d      }t        j                   j#                  dj%                  |j'                                      |S |j)                  |j                         |j                               }t        j                   j#                  dj%                  |j'                                      |S )zRuns the resume command.)release_trackz)Resume in progress for Fleet rollout [{}]Tz>Do you want to resume the rollout with the displayed schedule?)messagethrow_if_unattendedcancel_on_noFzResumed Fleet rollout [{}].)r   RolloutFlagParserr   ReleaseTrackALPHAr	   FleetClientOperationClientr
   
RolloutRef_UtilsAsyncresume_rollout_asyncScheduleOffsetValidateOnlyr   logPrintformatSelfLinkresume_rollout_synclog_scheduleconsole
console_ioPromptContinue)	selfr   flag_parserfleet_clientoperation_clientrollout_refutils	operationcompleted_operations	            r   Runz
Resume.Run:   s@   11D--33K %%D4E4E4GHL--''-- //$'K4)<8E ,,

$
$
&

"
"
$i hhnn
5
<
<""$
 !!55

$
$
&.,k:> = 
	#	#	% "55

$
$
& ,k:
ll,,N" -  "55

$
$
& hhnn
'
.
.{/C/C/E
F  "55

$
$
&(@(@(B hhnn
'
.
.{/C/C/E
F r   N)__name__
__module____qualname____doc__	_EXAMPLESdetailed_helpstaticmethodr   ArgumentInterceptorr   r   	Namespacealpha_messages	OperationrA    r   r   r   r   *   sQ     #y)-#77  <'11 <n6N6N <r   r   c                       e Zd ZdZdej
                  dej                  fdZdede	de
fdZdede	de
fd	Zed
e
dej                  j                   ddfd       Zy)r+   z)Utility functions for the resume command.r<   r;   c                 T    t        j                  |      | _        || _        || _        y N)r
   RolloutNamerollout_namer<   r;   )r9   r   r<   r;   s       r   __init__z_Utils.__init__|   s'     ((.D,D$Dr   offsetvalidate_onlyr   c                     t        j                         }| j                  |_        t        j                  ||      |_        | j                  j                  |      S )N)scheduleOffsetvalidateOnly)rK   ,GkehubProjectsLocationsRolloutsResumeRequestrR   nameResumeRolloutRequestresumeRolloutRequestr;   ResumeRollout)r9   rT   rU   reqs       r   r-   z_Utils.resume_rollout_async   sO    

E
E
GC  CH-BB" C **3//r   c                     | j                  ||      }| j                  j                  t        j                  |            S rP   )r-   r<   Waitr
   OperationRef)r9   rT   rU   r?   s       r   r4   z_Utils.resume_rollout_sync   s6    ))&-@I  %%d&7&7	&BCCr   r@   r=   Nc           	         t        j                  |       }t        j                  j	                  dj                  |j                                      |d   d   D ci c]  }|d   |d   |d   f }}t        dt        |      dz         D ]>  }t        j                  j	                  dj                  |||   d	   ||   d                @ y
c c}w )z,Pretty prints the returned rollout schedule.z-Schedule after resume for fleet rollout [{}]:schedulewaves
waveNumberwaveStartTimewaveEndTime   zWave {}: [{}, {}]r   N)	r   MessageToDictr   r0   r1   r2   r3   rangelen)r@   r=   respwaverd   ns         r   r5   z_Utils.log_schedule   s    
 !!"56DHHNN7>>  "	
 $W--D 	\T/2D4GHH- 
  1c%j1n%
hhnn(//58A;aLM &	s   C)rB   rC   rD   rE   r	   r)   r(   rS   strboolr   r-   r4   rH   r   	resourcesResourcer5   rM   r   r   r+   r+   y   s    1% ..% &&	%0 0T 0c 0D DD DS D NN-1^^-D-DNN Nr   r+   N) rE   
__future__r   r   r   typingr   apitools.base.pyr   googlecloudsdkr   &googlecloudsdk.api_lib.container.fleetr	   r
   googlecloudsdk.callioper   r   r   3googlecloudsdk.command_lib.container.fleet.rolloutsr   r   4googlecloudsdk.generated_clients.apis.gkehub.v1alphar   rK   rF   DefaultUniverseOnlyReleaseTracksr&   r'   UpdateCommandr   r+   rM   r   r   <module>r~      s    ) '  '  %  9 7 ( 4 5 V j	 D%%++,JT J - JZ+N +Nr   