
                             S r SSKJr  SSKJr  SSKJr  SSK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\R&                  5      rg)z4The command to enable Multi-cluster Ingress Feature.    )absolute_import)division)unicode_literalsN)
enable_api)	resources)base)info)
exceptions)progress_tracker)retryc                   8    \ rS rSrSrSr\S 5       rS rS r	Sr
g)	Enable    zEnable Multi-cluster Ingress Feature.

This command enables Multi-cluster Ingress Feature in a fleet.

## EXAMPLES

To enable the Ingress Feature, run:

  $ {command} --config-membership=CONFIG_MEMBERSHIP
multiclusteringressc                 .    [         R                  " USS9  g )Nz--config-membership)flag_override)r   AddMembershipResourceArg)clsparsers     -lib/surface/container/fleet/ingress/enable.pyArgsEnable.Args.   s    &&35    c                    [         R                  " USSS9n[        R                  " S5      R                  n[
        R                  " U R                  5       U5        U R                  R                  U R                  R                  U R                  R                  US9S9S9nU R                  U5      nUb  U R                  5         g g )NTconfig_membership)promptr   multiclusterservicediscovery)configMembership)r   )spec)r   ParseMembershipr	   Getapir   EnableServiceIfDisabledProjectmessagesFeatureCommonFeatureSpecMultiClusterIngressFeatureSpecr   PollForUsability)selfargsr   mcsd_apifresults         r   Run
Enable.Run3   s    ,,T)<> xx67;;H&&t||~x@]],, $ L L!2 !M !4 - 5 	 	6A [[^F 
 r   c                   ^ ^	^
 SnSnSnSnT R                   R                  R                  R                  m	 [        R
                  " XS9 m
[        R                  " S5        U
4S jn[        R                  " USUS	9nU 4S
 jnU	4S jnUR                  XxSS9sS S S 5        $ ! , (       d  f       g = f! [        R                   a*    [        R                  " SR                  US-  U5      5      ef = f)Nz"Waiting for controller to start...z'Aborting wait for controller to start.
i zSPlease use the `describe` command to check Featurestate for debugging information.
)aborted_message   c                 &   > TR                  5         g N)Tick)unused_resultunused_statustrackers     r   _StatusUpdate.Enable.PollForUsability.<locals>._StatusUpdate[   s    
,,.r   i  )max_wait_mswait_ceiling_msstatus_update_funcc                  $   > T R                  5       $ r5   )
GetFeature)r*   s   r   	_PollFunc*Enable.PollForUsability.<locals>._PollFunce   s    "
"r   c                    > U R                   b  U R                   R                   c  gU R                   R                   R                  T:g  $ )NT)statecode)featureunused_stateok_codes     r   
_IsNotDone+Enable.PollForUsability.<locals>._IsNotDoneh   s:    ]]"gmm&9&9&A$$))W4
4r   i  )funcshould_retry_ifsleep_msz*Controller did not start in {} minutes. {}i`  )r%   FeatureStateCodeValueValuesEnumOKr   ProgressTrackertimesleepr   RetryerRetryOnResultWaitExceptionr
   Errorformat)r*   messager2   timeouttimeout_messager:   retryerrA   rI   rH   r9   s   `        @@r   r)   Enable.PollForUsabilityJ   s    2G@OG<Omm((<<??G!1++
47> 	

1	 -- ,.	#	5
 $$ % F54 4 4:  1
6
=
=o01 11s*   B4 AB#	B4 #
B1-B4 1B4 4>C2 N)__name__
__module____qualname____firstlineno____doc__feature_nameclassmethodr   r/   r)   __static_attributes__r^   r   r   r   r       s*    	 ',5 5.)1r   r   )rc   
__future__r   r   r   rR   googlecloudsdk.api_lib.servicesr   *googlecloudsdk.command_lib.container.fleetr   3googlecloudsdk.command_lib.container.fleet.featuresr   r	   googlecloudsdk.corer
   googlecloudsdk.core.consoler   googlecloudsdk.core.utilr   EnableCommandr   r^   r   r   <module>ro      s?    ; &  '  6 @ D D * 8 *S1T S1r   