
                            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	S
S.rS r\R                  " \R                   R"                  5       " S S\R$                  5      5       r\\l        \R                  " \R                   R*                  5       " S S\5      5       r\\l        \R                  " \R                   R.                  5       " S S\5      5       r\\l        g)z0Command for starting async replication on disks.    )absolute_import)division)unicode_literals)base_classes)base)flagszBStart asynchronous replication on a Compute Engine persistent diskz        *{command}* starts async replication on a Compute Engine persistent
        disk. This command must be invoked on the primary disk and
        `--secondary-disk` must be provided.
        a          Start replication from the primary disk 'my-disk-1' in zone us-east1-a
        to the secondary disk 'my-disk-2' in zone us-west1-a:

          $ {command} my-disk-1 --zone=us-east1-a --secondary-disk=my-disk-2 --secondary-disk-zone=us-west1-a
        )briefDESCRIPTIONEXAMPLESc                     [         R                  R                  U SS9  Sn[         R                  R                  XSS9  [        R
                  " X5        g)z5Add arguments used for parsing in all command tracks.T)scope_requiredzSECONDARY DISK)categoryr   N)StartAsyncReplication	disks_argAddArgumentsecondary_disk_argdisks_flagsAddSecondaryDiskProject)parsersecondary_disk_categorys     4lib/surface/compute/disks/start_async_replication.py_CommonArgsr   -   sO    !!--fT-J,**66t 7  %%fF    c                   N    \ rS rSrSr\S 5       rS r\S
S j5       rS r	S r
Srg	)r   7   ;Start Async Replication on Compute Engine persistent disks.c                     [         R                  " SS9[        l        [         R                  " SS9[        l        [        U5        g NF)pluralT)requiredr   MakeDiskArgr   r   MakeSecondaryDiskArgr   r   clsr   s     r   ArgsStartAsyncReplication.Args;   5    &1&=&=U&K#/:/O/O0,r   c                     S nUR                   (       aH  [        USS 5      nU R                  R                  XR                  US9nU(       a  UR                  5       $ g )Nsecondary_disk_project)source_project)secondary_diskgetattrr   ResolveAsResource	resourcesSelfLink)selfargscompute_holdersecondary_disk_refr*   s        r   GetAsyncSecondaryDiskUri.StartAsyncReplication.GetAsyncSecondaryDiskUriB   sa    &t-EtL22DD
((9O E  
!**,,r   c                 L    [         R                  " U R                  5       U5      $ N)r   ComputeApiHolderReleaseTrack)r%   no_https     r   _GetApiHolder#StartAsyncReplication._GetApiHolderM   s    (()9)9);WEEr   c                 $    U R                  U5      $ r8   _Runr1   r2   s     r   RunStartAsyncReplication.RunQ       99T?r   c           	         U R                  5       nUR                  n[        R                  R	                  UUR
                  [        R                  " U5      S9nS nU R                  X5      nUR                  5       S:X  ao  UR                  R                  UR                  5       UR                  UR                  UR                  R                  US9S9nUR                   R"                  SU4nOUR                  5       S:X  an  UR                  R%                  UR                  5       UR                  UR&                  UR                  R)                  US9S9nUR                   R*                  SU4nUR-                  U/5      $ )N)scope_listerzcompute.disks)asyncSecondaryDisk)diskprojectzone!disksStartAsyncReplicationRequestr   zcompute.regionDisks)rH   rI   region'regionDisksStartAsyncReplicationRequest)r<   clientr   r   r.   r/   r   GetDefaultScopeListerr5   
Collectionmessages(ComputeDisksStartAsyncReplicationRequestNamerI   rJ   !DisksStartAsyncReplicationRequestapitools_clientdisks.ComputeRegionDisksStartAsyncReplicationRequestrL   'RegionDisksStartAsyncReplicationRequestregionDisksMakeRequests)r1   r2   r3   rN   disk_refrequestsecondary_disk_uris          r   r@   StartAsyncReplication._RunT   sr   '')N""F$..@@  008 A :H
 G66tL/HH}}""}},2OO,,!3 - 5 I 6g ''--/FPg				"7	7NN}}""28//22!3 3 5 O 6g ''335Lgy))r    N)F)__name__
__module____qualname____firstlineno____doc__classmethodr&   r5   r<   rB   r@   __static_attributes__r_   r   r   r   r   7   s<    C 	 F F*r   r   c                   .    \ rS rSrSr\S 5       rS rSrg)StartAsyncReplicationBetax   r   c                     [         R                  " SS9[        l        [         R                  " SS9[        l        [        U5        g r   r!   r$   s     r   r&   StartAsyncReplicationBeta.Args|   r(   r   c                 $    U R                  U5      $ r8   r?   rA   s     r   rB   StartAsyncReplicationBeta.Run   rD   r   r_   N	r`   ra   rb   rc   rd   re   r&   rB   rf   r_   r   r   rh   rh   x       C r   rh   c                   .    \ rS rSrSr\S 5       rS rSrg)StartAsyncReplicationAlpha   r   c                     [         R                  " SS9[        l        [         R                  " SS9[        l        [        U5        g r   r!   r$   s     r   r&   StartAsyncReplicationAlpha.Args   r(   r   c                 $    U R                  U5      $ r8   r?   rA   s     r   rB   StartAsyncReplicationAlpha.Run   rD   r   r_   Nrn   r_   r   r   rq   rq      ro   r   rq   N)rd   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   (googlecloudsdk.command_lib.compute.disksr   DETAILED_HELPr   ReleaseTracksr:   GACommandr   detailed_helpBETArh   ALPHArq   r_   r   r   <module>r      s    7 &  ' 7 ( 4 I 	M		&G D%%(():*DLL :* *:*z '4  # D%%**+ 5  , +8  ' D%%++,!6  - ,9  (r   