
    
                     |    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	Zd
Zd Zd Zd Zd Zy)zFCommon utility functions for Cloud Filestore update snapshot commands.    )absolute_import)division)unicode_literals)filestore_client)base)util)labels_utilsnapshotbackupc                      t        j                  d      } | j                  t        j                                | j                  t        j
                  d             t        j                  d      | gS )NT)mutex )r   ArgumentGroupAddArgumentr	   GetClearLabelsFlagGetRemoveLabelsFlagGetUpdateLabelsFlag)remove_groups    7lib/googlecloudsdk/command_lib/filestore/update_util.pyUpdateLabelsFlagsr      sX    ##$/,;99;<;::2>?

)
)"
-|	<<    c                 v    |j                   }|r#|j                  |       dk(  r|dz   | z   |_         |S | |_         |S )Nr   ,)
updateMaskcount)fieldpatch_requestupdate_masks      r   AddFieldToUpdateMaskr   &   sM    ((+1$!,s!2U!:m 
  %M	r   c                    t         j                  j                  |       }|j                         rt	        d|      }t        j                  |       }t        j                  |      }|t        k(  rH|j                  |j                  j                  |j                  j                        j                         S |t         k(  rH|j                  |j"                  j                  |j$                  j                        j                         S y)zReturn updated resource labels.labelsN)r	   DiffFromUpdateArgsMayHaveUpdatesr   r   GetApiVersionFromArgsr   GetMessagessnapshot_feature_nameApplySnapshotLabelsValuer
   r!   	GetOrNonebackup_feature_nameBackupr   )argsreqfeature_namelabels_diffapi_versionmessagess         r   GetUpdatedLabelsr4   0   s      //5+!
x
-C,,T2K++K8H,,x00<<"||2244=IK@**x::"zz0022;)+>	r   c                     ~ |j                  d      rT|t        k(  r|j                  |j                  _        |t        k(  r|j                  |j
                  _        t        d|      }|S )Ndescription)IsSpecifiedr'   r6   r
   r,   r   r   )unused_instance_refr.   r   r0   s       r   AddDescriptionr9   @   s_    	m$,,+/+;+;m(**)-)9)9m&(FM	r   N)__doc__
__future__r   r   r    googlecloudsdk.api_lib.filestorer   googlecloudsdk.callioper   $googlecloudsdk.command_lib.filestorer   $googlecloudsdk.command_lib.util.argsr	   r'   r,   r   r   r4   r9    r   r   <module>rA      sB    M &  ' = ( 5 < #  = r   