
                            S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  SS	KJr  SSKJr  SS
 jr\
R$                  " \
R&                  R(                  5       " S S\
R*                  5      5       r\
R$                  " \
R&                  R.                  \
R&                  R0                  5       " S S\5      5       rSSS.\l        \R4                  \l        g)zGCommand for waiting until managed instance group reaches desired state.    )absolute_import)division)unicode_literals)base_classes)
wait_utils)base)flags)scopec                    U R                  S[        SS9  U R                  SS9nUR                  SSSS	S
9  U(       a  UR                  SSSSS
9  UR                  SSSSS
9  [        R                  R                  U 5        g)z
Adds args.z	--timeoutzAWaiting time in seconds for the group to reach the desired state.)typehelpT)requiredz--version-target-reached
store_trueFz%Wait until version target is reached.)actiondefaultr   z --all-instances-config-effectivezVWait until the group's all-instances configuration is applied to all VMs in the group.z--stablezWait until the group is stable.N)add_argumentintadd_mutually_exclusive_groupinstance_groups_flags%MULTISCOPE_INSTANCE_GROUP_MANAGER_ARGAddArgument)parserbeta
event_types      9lib/surface/compute/instance_groups/managed/wait_until.py_AddArgsr      s    $  % 22D2A*4!-"'F  H 
*(	  ) *!-"'@  B ==II    c                   4    \ rS rSrSr\S 5       rS rS rSr	g)WaitUntilGA:   @Wait until the managed instance group reaches the desired state.c                     [        U S9  g )Nr   r   r#   s    r   ArgsWaitUntilGA.Args>   s
    Fr   c                     [         R                  R                  UU[        R                  R
                  [        R                  " U5      S9$ )N)default_scopescope_lister)r   r   ResolveAsResourcecompute_scope	ScopeEnumZONEr	   GetDefaultScopeLister)selfclient	resourcesargss       r   CreateGroupReference WaitUntilGA.CreateGroupReferenceB   sE    !GG+55::"88@	  BBr   c                    [         R                  " U R                  5       5      nUR                  nU R	                  X2R
                  U5      nUR                  (       a  [        R                  R                  nOWUR                  (       a  [        R                  R                  nO+UR                  (       a  [        R                  R                  n[        R                  " X4WUR                  5        g)z8Issues requests necessary to wait until stable on a MIG.N)r   ComputeApiHolderReleaseTrackr0   r3   r1   stabler   IgmStateSTABLEversion_target_reachedVERSION_TARGET_REACHEDall_instances_config_effectiveALL_INSTANCES_CONFIG_EFFECTIVEWaitForIgmStatetimeout)r/   r2   holderr0   	group_ref	igm_states         r   RunWaitUntilGA.RunJ   s    **4+<+<+>?F]]F))&2B2BDII{{%%,,i		$	$%%<<i		,	,%%DDiv)T\\Jr    N)
__name__
__module____qualname____firstlineno____doc__staticmethodr%   r3   rD   __static_attributes__rF   r   r   r   r   :   s#    H BKr   r   c                   (    \ rS rSrSr\S 5       rSrg)WaitUntilBetaZ   r!   c                     [        U SS9  g )NT)r   r   r$   r#   s    r   r%   WaitUntilBeta.Args^   s    F&r   rF   N)rG   rH   rI   rJ   rK   rL   r%   rM   rF   r   r   rO   rO   Z   s    H' 'r   rO   r!   z        To wait until the managed instance group ``instance-group-1'' is stable,
        run:

          $ {command} --stable instance-group-1
        )briefEXAMPLESN)F)rK   
__future__r   r   r   googlecloudsdk.api_lib.computer   6googlecloudsdk.api_lib.compute.instance_groups.managedr   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   r
   r+   2googlecloudsdk.command_lib.compute.instance_groupsr   r   ReleaseTracksr7   GACommandr   BETAALPHArO   detailed_helprF   r   r   <module>ra      s    N &  ' 7 M ( 4 E ]: D%%(()K$,, K *K> D%%**D,=,=,C,CD'K ' E' 	K		
  *77 r   