
                         *   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  \R"                  " S5      rS r\R(                  " \R*                  R,                  5       " S S\R.                  5      5       rSSSS.\l        \R(                  " \R*                  R4                  5       " S S\5      5       r\R(                  " \R*                  R8                  5       " S S\5      5       r\R2                  \l        g)z3Command for setting size of instance group manager.    )absolute_import)division)unicode_literalsN)base_classes)utils)arg_parsers)base)flags)
console_ioz
    This command increases disk size. This change is not reversible.
    For more information, see:
    https://cloud.google.com/sdk/gcloud/reference/compute/disks/resizec                     [         R                  R                  U 5        U R                  SS[        R
                  " SS9SS9  g )Nz--sizeT1GB)lower_boundaG          Indicates the new size of the disks. The value must be a whole
        number followed by a size unit of ``GB'' for gigabyte, or
        ``TB'' for terabyte. If no size unit is specified, GB is
        assumed. For example, ``10GB'' will produce 10 gigabyte disks.
        Disk size must be a multiple of 1 GB.
        )requiredtypehelp)Resize	DISKS_ARGAddArgumentadd_argumentr   
BinarySize)parsers    #lib/surface/compute/disks/resize.py_CommonArgsr   #   sB    v&!!e4	  
    c                   .    \ rS rSrSr\S 5       rS rSrg)r   2   zSet size of a persistent disk.c                 T    [         R                  " SS9[        l        [	        U5        g NT)pluraldisks_flagsMakeDiskArgr   r   r   clsr   s     r   ArgsResize.Args6       "..d;Fr   c           
         [         R                  " U R                  5       5      nUR                  n[        R
                  " UR                  5      n[        R                  R                  XR                  5      n[        R                  " [        SS9  / nU GH*  nUR                  5       S:X  a  UR                  R!                  UR#                  5       UR$                  UR&                  UR                  R)                  US9S9nUR+                  UR,                  R.                  SU45        M  UR                  5       S:X  d  M  UR                  R1                  UR#                  5       UR$                  UR2                  UR                  R5                  US9S9nUR+                  UR,                  R6                  SU45        GM-     UR9                  U5      $ )	z#Issues request for resizing a disk.T)messagecancel_on_nozcompute.disks)sizeGb)diskprojectzonedisksResizeRequestr   zcompute.regionDisks)r,   r-   regionregionDisksResizeRequest)r   ComputeApiHolderReleaseTrackclientr   	BytesToGbsizer   r   ResolveAsResource	resourcesr   PromptContinueCONTINUE_WITH_RESIZE_PROMPT
CollectionmessagesComputeDisksResizeRequestNamer-   r.   DisksResizeRequestappendapitools_clientdisksComputeRegionDisksResizeRequestr0   RegionDisksResizeRequestregionDisksMakeRequests)	selfargsholderr4   size_gb	disk_refsrequestsdisk_refrequests	            r   Run
Resize.Run;   s   **4+<+<+>?F]]Foodii(G  22 I + H				/	1//;;$$%AA  B   	 < ! 	//55xIJ $99//AA$$??%+__%M%M &N & 	 B ! 	//;;XwOP! $ x((r    N)	__name__
__module____qualname____firstlineno____doc__classmethodr%   rO   __static_attributes__rQ   r   r   r   r   2   s    & !)r   r   zResize a disk or disksz        *{command}* resizes a Compute Engine disk(s).

        Only increasing disk size is supported. Disks can be resized
        regardless of whether they are attached.

    at          To resize a disk called example-disk-1 to new size 6TB, run:

           $ {command} example-disk-1 --size=6TB

        To resize two disks called example-disk-2 and example-disk-3 to
        new size 6TB, run:

           $ {command} example-disk-2 example-disk-3 --size=6TB

        This assumes that original size of each of these disks is 6TB or less.
        )briefDESCRIPTIONEXAMPLESc                   $    \ rS rSr\S 5       rSrg)
ResizeBetau   c                 T    [         R                  " SS9[        l        [	        U5        g r   r    r#   s     r   r%   ResizeBeta.Argsx   r'   r   rQ   NrR   rS   rT   rU   rW   r%   rX   rQ   r   r   r]   r]   u         r   r]   c                   $    \ rS rSr\S 5       rSrg)ResizeAlpha~   c                 T    [         R                  " SS9[        l        [	        U5        g r   r    r#   s     r   r%   ResizeAlpha.Args   r'   r   rQ   Nra   rQ   r   r   rd   rd   ~   rb   r   rd   )rV   
__future__r   r   r   textwrapgooglecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   r	   (googlecloudsdk.command_lib.compute.disksr
   r!   googlecloudsdk.core.consoler   dedentr:   r   ReleaseTracksr3   GACommandr   detailed_helpBETAr]   ALPHArd   rQ   r   r   <module>ru      s   : &  '  7 0 / ( I 2&oo /J K  D%%(()))T\\ )) *))X & . D%%**+  , D%%++,&  - #00 r   