
                         T   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	KJr  SS
KJr  SSKJr  \R,                  " \R.                  R0                  \R.                  R2                  5       " S S\R4                  \R4                  5      5       rg)z0The command to update Config Management Feature.    )absolute_import)division)unicode_literals)util)base)	resources)utils)convert)log)
console_ioc                   d    \ rS rSrSr\R                  r\R                  r\	S 5       r
S rS rSrg)Upgrade    a  Upgrade the version of the Config Management feature.

Upgrade a specified membership to any supported version of the Config
Management feature.

## EXAMPLES

To upgrade a membership named `MEMBERSHIP_NAME`, run:

  $ {command} --membership=MEMBERSHIP_NAME --version=VERSION
c                 \    [         R                  " U5        UR                  S[        SSS9  g )Nz	--versionz The version of ACM to change to.T)typehelprequired)r   AddMembershipResourceArgadd_argumentstr)clsparsers     8lib/surface/container/fleet/config_management/upgrade.pyArgsUpgrade.Args1   s/    &&v.
/	      c                 B   U R                  5       nUR                  n[        R                  " USSSS9n[        R
                  " X$5      u  pVU R                  XFU5      (       d  g [        R                  " SR                  U R                  R                  XFU5      SSS9  U R                  R                  5       nU R                  R                  UR                   5      R#                  5        H<  u  p[$        R&                  " U5      [$        R&                  " U5      :X  d  M5  U	c  M:  U	nM>     UR(                  c  U R                  R+                  5       Ul        X7R(                  l        Un
[,        R.                  " X
U R0                  U5      nU R3                  U
S/U5        g )NT)prompt
autoselectsearchz[You are about to change the {} feature for membership {} from version "{}" to version "{}".)throw_if_unattendedcancel_on_nospec)
GetFeatureversionfeatures_baseParseMembershipr	   versions_for_member_validate_versionsr   PromptContinueformatfeaturedisplay_namemessagesMembershipFeatureSpec	hubclientToPyDictmembershipSpecsitemsr   MembershipPartialNameconfigmanagementConfigManagementMembershipSpecr
   ToV2MembershipFeaturemf_nameUpdateV2)selfargsfnew_version
membership_	cluster_vpatch	full_namer#   membership_keymembershipfeatures               r   RunUpgrade.Run;   s`   A,,K..Td4J ,,Q;LA"":+FF	!!'LL%%zk"
 ! MM//1E>>2213D3DEKKM	

$
$Y
/''
34 N %#}}KKMe%0"N55dllE 	MM.6(,=>r   c                     X#:X  aD  [         R                  R                  SR                  XU R                  R
                  5      5        gg)NzAMembership {} already has version {} of the {} feature installed.FT)r   statusPrintr+   r,   r-   )r:   r>   r@   new_vs       r   r)   Upgrade._validate_versionsb   s;    	jj
M6*)B)BC r    N)__name__
__module____qualname____firstlineno____doc__r	   CONFIG_MANAGEMENT_FEATURE_NAMEfeature_namer8   classmethodr   rE   r)   __static_attributes__rL   r   r   r   r       s<    
 55,00' %?Nr   r   N)rQ   
__future__r   r   r   &googlecloudsdk.api_lib.container.fleetr   googlecloudsdk.callioper   *googlecloudsdk.command_lib.container.fleetr   <googlecloudsdk.command_lib.container.fleet.config_managementr	   3googlecloudsdk.command_lib.container.fleet.featuresr&   =googlecloudsdk.command_lib.container.fleet.membershipfeaturesmf_baser
   googlecloudsdk.corer   googlecloudsdk.core.consoler   ReleaseTracksReleaseTrackALPHABETAUpdateCommandr   rL   r   r   <module>re      s    7 &  ' 7 ( @ N U Y Q # 2 D%%++T->->-C-CDIm))7+@+@ I EIr   