
                         @   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Z G d dej                        Z e
j                   e
j"                  j$                  e
j"                  j&                         G d de
j(                               Zy
)z%`gcloud app services update` command.    )absolute_import)division)unicode_literals)appengine_api_client)operations_util)service_util)base)
exceptionsNc                       e Zd ZdZy)IngressSettingErrorz/Errors occurring when setting ingress settings.N)__name__
__module____qualname____doc__     "lib/surface/app/services/update.pyr   r      s    7r   r   c                   .    e Zd ZdZddiZed        Zd Zy)UpdatezPUpdate service-level settings.

  Update ingress traffic settings for an app.
  EXAMPLESzTo update ingress traffic settings for the default service, run:

              $ {command} default --ingress=internal-only
                  c                 \    | j                  ddd       | j                  dg dddd	
       y )Nservices*zThe services to modify.)nargshelpz	--ingress)allinternal-only!internal-and-cloud-load-balancingr   Tz'Control what traffic can reach the app.)choicesdefaultrequiredr   )add_argument)parsers    r   ArgszUpdate.Args1   s:    

#5NP
M6  8r   c                 >   t        j                  | j                               }|j                         }t	        j
                  ||j                        }i }|D ]  }|j                  j                  j                  j                  }|j                  dk(  r+|j                  j                  j                  j                  }n9|j                  dk(  r*|j                  j                  j                  j                  }	 t        j                  |j                   |j"                  |        |r3d}	|j+                         D ]  \  }}
|	d|d|
z  }	 t-        |	dz         y # t        j$                  $ r-}t'        j(                  |      ||j"                  <   Y d }~?d }~ww xY w)Nr   r   zError updating service(s): z
- z
  z

)r   GetApiClientForTrackReleaseTrackListServicesr   GetMatchingServicesr   messagesNetworkSettings$IngressTrafficAllowedValueValuesEnumINGRESS_TRAFFIC_ALLOWED_ALLingress%INGRESS_TRAFFIC_ALLOWED_INTERNAL_ONLY'INGRESS_TRAFFIC_ALLOWED_INTERNAL_AND_LBr   CallAndCollectOpErrorsSetIngressTrafficAllowedidMiscOperationErrorsix	text_typeitemsr   )selfargs
api_clientall_servicesr   errorsserviceingress_traffic_allowederrcombined_error_msg	error_msgs              r   Runz
Update.Run;   se   %::4;L;L;NOJ**,L//dmmLHF



-
-//0K0K  
	(//1122 	  <<>>//1144 	 0..//#	% ( 8 &
'9CC !/ 2V ;<<	  // 0 ]]3/wzz0s   9+EF/"FFN)r   r   r   r   detailed_helpstaticmethodr$   rB   r   r   r   r   r   "   s1      - 8 8=r   r   )r   
__future__r   r   r   googlecloudsdk.api_lib.appr   r   r   googlecloudsdk.callioper	   googlecloudsdk.corer
   r5   Errorr   ReleaseTracksr'   GABETACommandr   r   r   r   <module>rN      s~    , &  ' ; 6 3 ( * 
*** 
 D%%(($*;*;*@*@A7=T\\ 7= B7=r   