
    ~(                        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
 Ze	j$                   e	j&                  e	j(                  j*                         G d de	j,                                      Z e	j&                  e	j(                  j0                         G d de             Z e	j&                  e	j(                  j4                         G d de             Zy)zUpdates a Cloud NetApp Volume.    )absolute_import)division)unicode_literals)client)base)flags)labels_util)logc                 2    t        j                  | |       y )N)release_track)volumes_flagsAddVolumeUpdateArgs)parserr   s     $lib/surface/netapp/volumes/update.py_CommonArgsr      s    ##F-H    c                   \    e Zd ZdZej
                  j                  ZdddZe	d        Z
d Zy)UpdateUpdate a Cloud NetApp Volume.zN          Update a Cloud NetApp Volume and its specified parameters
          a            The following command updates a Volume named NAME and its specified parameters

              $ {command} NAME --location=us-central1 --capacity=4096 --description="new description" --enable-kerberos=false --storage-pool=sp3 --unix-permissions=0777
          )DESCRIPTIONEXAMPLESc                 8    t        | t        j                         y N)r   r   _RELEASE_TRACKr   s    r   ArgszUpdate.Args1   s    --.r   c                    |j                   j                  j                         }t        j                  | j
                        }t        j                  j                  |      }|j                  |      }|j                         rI|j                  |j                  j                  j                  |j                        j!                         }nd}g }|j"                  rB|j"                  D ]3  }t%        j&                  ||j                        }	|j)                  |	       5 |j*                  r|j*                  dz	  nd}
g }|j,                  rB|j,                  D ]3  }t%        j.                  ||j                        }|j)                  |       5 g }|j0                  rB|j0                  D ]3  }t%        j2                  ||j                        }|j)                  |       5 i }d|j4                  fd|j6                  fd|j8                  fd|j:                  ffD ]  \  }}|s	|||<    |sd}|j<                  r+t%        j>                  |j<                  |j                        }nd}| j
                  t@        jB                  jD                  t@        jB                  jF                  fv r|jH                  }|jJ                  }nd}d}|jL                  }g }| j
                  t@        jB                  jN                  t@        jB                  jD                  fv r|jP                  }|jR                  }|jU                  ||jV                  ||jX                  ||jZ                  |j\                  |
|j^                  |||j`                  |jb                  ||jd                  |jf                  ||||jh                  |||      }g }|jk                  d      r|j)                  d	       |jk                  d
      r|j)                  d       |jk                  d      r|j)                  d       |jk                  d      r|j)                  d       |jk                  d      r|j)                  d       |jk                  d      r|j)                  d       |jk                  d      r|j)                  d       |jk                  d      s3|jk                  d      s"|jk                  d      s|jk                  d      r|j)                  d       |jk                  d      r|j)                  d       |jk                  d      r|j)                  d       |jk                  d      r|j)                  d       |jk                  d       r|j)                  d!       |jk                  d"      r|j)                  d#       |jk                  d$      r|j)                  d%       |jk                  d&      r|j)                  d'       | j
                  t@        jB                  jD                  k(  s'| j
                  t@        jB                  jF                  k(  r|jk                  d(      r|j)                  d#       |f|jm                  d)      |j)                  d*       |jm                  d+      |j)                  d,       |jm                  d-      |j)                  d.       |jk                  d/      r|jh                  jm                  d0      |j)                  d1       |jh                  jm                  d2      |j)                  d3       | j
                  t@        jB                  jD                  k(  s'| j
                  t@        jB                  jN                  k(  r,|jh                  jm                  d4      |j)                  d5       |jk                  d6      r|j)                  d6       |jk                  d7      s"|jk                  d8      s|jk                  d9      r|j)                  d:       |jk                  d;      rQ|jL                  jm                  d<      6|jL                  jm                  d<      D ]  }d=|v s|j)                  d>        | j
                  t@        jB                  jN                  k(  s'| j
                  t@        jB                  jD                  k(  r"|jk                  d?      r|j)                  d@       dAjo                  |      }|jq                  ||||jr                        }|jr                  rWdBju                  | jC                         jv                        }tx        jz                  j}                  dCju                  |             |S )Dz4Update a Cloud NetApp Volume in the current project.N   hourly_snapshotdaily_snapshotweekly_snapshotmonthly_snapshot)descriptionlabelsstorage_pool	protocols
share_nameexport_policycapacityunix_permissionssmb_settingssnapshot_policysnap_reservesnapshot_directorysecurity_styleenable_kerberossnapshotbackuprestricted_actionsbackup_configtiering_policycache_parametersthroughput_mibpsblock_devicesr)   capacityGibr%   storagePoolr'   	shareNamer(   exportPolicyr&   r*   unixPermissionsr+   smbSettingssnapshot_hourlysnapshot_dailysnapshot_weeklysnapshot_monthlysnapshotPolicyr-   snapReserver.   snapshotDirectoryr/   securityStyler0   kerberosEnabledsource_snapshotrestoreParametersr3   restrictedActionsr7   throughputMibpssource_backupzbackup-policieszbackupConfig.backupPolicieszbackup-vaultzbackupConfig.backupVaultzenable-scheduled-backupsz#backupConfig.scheduledBackupEnabledr5   ztier-actionztieringPolicy.tierActionzcooling-threshold-daysz"tieringPolicy.coolingThresholdDayszenable-hot-tier-bypass-modez&tieringPolicy.hotTierBypassModeEnabledr#   update_labelsremove_labelsclear_labelsr$   r6   zcache-configzcifs-change-notify-enabledz3cacheParameters.cacheConfig.cifsChangeNotifyEnabledr8   blockDevices,zgcloud {} netapp volumes listzFCheck the status of the updated volume by listing all volumes:
  $ {} )?CONCEPTSvolumeParsevolumes_clientVolumesClientr   r	   DiffFromUpdateArgs	GetVolumeMayHaveUpdatesApplymessagesVolumeLabelsValuer$   	GetOrNoner&   r   GetVolumeProtocolEnumFromArgappendr)   r+   GetVolumeSmbSettingsEnumFromArgr3   %GetVolumeRestrictedActionsEnumFromArgr?   r@   rA   rB   r/   !GetVolumeSecurityStyleEnumFromArgr   ReleaseTrackBETAGAr4   rL   r6   ALPHAr8   r7   ParseUpdatedVolumeConfigr#   r%   r'   r(   r*   r-   r.   r0   rH   r5   IsSpecifiedgetjoinUpdateVolumeasync_formatprefixr
   statusPrint) selfargs
volume_refr   labels_difforiginal_volumer$   r&   protocolprotocol_enumcapacity_in_gibr+   smb_settingsmb_setting_enumr3   restricted_actionrestricted_action_enumr,   namesnapshot_scheduler/   r4   rL   r6   r8   r7   rS   updated_fieldsconfigupdate_maskresultcommands                                    r   Runz
Update.Run5   s5   %%++-J))$*=*=>F""11$7K&&z2O !!#  !7!7!C!C!0!7!799B  fI~~nn(%BBfoo
 	'	 %
 .2]]dmmr)OL**+(HH
 	,-	 +
 #66
??!6?? 	
 	!!"89  7 O	D001	4../	D001	T223	$ 
 1$  o$FF


vn nt0055t7H7H7K7KLL((m((mmm,,Mt00668I8I8N8NOO((m,,,,$$&&??(( ..!'&&22%,,%%-#**))#/ - F4 N 
#M*'M*%K((N+$K(*+-.'M**+)**++,,-'M*,-/0()O,)*-.)*/0,-/0*+-.t00555t00333			/	*12		"./;


 =
>^,8


 :
;78D


 E
F()				 	 	/	;89				 	 !9	:	FBC


!2!2!7!7
7  D$5$5$;$;;##$ABNFG&M*)O,N+H%+,!!%%n5A))--n=& (61


C > 	t00666$"3"3"8"88			/	*n-((>*K  V[$++NF{{/66




$
$g 
jj&/ Mr   N)__name__
__module____qualname____doc__r   re   rg   r   detailed_helpstaticmethodr   r    r   r   r   r      sC     &$$''.		- / /Ar   r   c                   L    e Zd ZdZej
                  j                  Zed        Z	y)
UpdateBetar   c                 8    t        | t        j                         y r   )r   r   r   r   s    r   r   zUpdateBeta.Args   s    
112r   N)
r   r   r   r   r   re   rf   r   r   r   r   r   r   r   r      s(    %$$)).3 3r   r   c                   L    e Zd ZdZej
                  j                  Zed        Z	y)UpdateAlphar   c                 8    t        | t        j                         y r   )r   r   r   r   s    r   r   zUpdateAlpha.Args
  s    223r   N)
r   r   r   r   r   re   rh   r   r   r   r   r   r   r   r     s(    %$$**.4 4r   r   N)r   
__future__r   r   r   %googlecloudsdk.api_lib.netapp.volumesr   rU   googlecloudsdk.callioper   )googlecloudsdk.command_lib.netapp.volumesr   r   $googlecloudsdk.command_lib.util.argsr	   googlecloudsdk.corer
   r   DefaultUniverseOnlyReleaseTracksre   rg   UpdateCommandr   rf   r   rh   r   r   r   r   <module>r      s    % &  ' J ( L < #I D%%(()UT U * Up D%%**+3 3 ,3 D%%++,4* 4 -4r   