
                            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S.r\
R$                  " \
R&                  R(                  \
R&                  R*                  5       " S S\5      5       r\
R$                  " \
R&                  R*                  5       " S S\\
R0                  5      5       r\
R$                  " \
R&                  R(                  5       " S S\\
R0                  5      5       rg)z:Command to update migration jobs for a database migration.    )absolute_import)division)unicode_literals)api_util)migration_jobs)resource_args)base)flags)loga  
        Update a Database Migration Service migration job.
        - Draft migration job: user can update all available flags.
        - Any other state can only update flags: `--display-name`,
        `--dump-path`, and connectivity method flags.
        a          To update the source and destination connection profiles of a draft
        migration job:

            $ {command} my-migration-job --region=us-central1 --source=new-src
            --destination=new-dest

        To update the display name of a running migration job:

            $ {command} my-migration-job --region=us-central1
            --display-name=new-name

        )DESCRIPTIONEXAMPLESc                   .    \ rS rSrSr\S 5       rS rSrg)_Update6   2Update a Database Migration Service migration job.c                 l   [         R                  " U S5        [        R                  " U 5        [        R                  " U 5        [        R
                  " U 5        [        R                  " U 5        [        R                  " U [        R                  R                  5        [        R                  " U 5        g)zArgs is called by calliope to gather arguments for this command.

Args:
  parser: An argparse parser that you can use to add arguments that go on
    the command line after this command. Positional arguments are allowed.
z	to updateN)r   AddMigrationJobResourceArgsmj_flagsAddNoAsyncFlagAddDisplayNameFlagAddTypeFlagAddDumpGroupFlagAddConnectivityGroupFlagApiTypeUPDATEr
   AddLabelsUpdateFlagsparsers    7lib/surface/database_migration/migration_jobs/update.pyArgs_Update.Args:   sv     --fkBF#' f%%%fh.>.>.E.EF	v&    c                 |   UR                   R                  R                  5       nUR                   R                  R                  5       nUR                   R                  R                  5       n[
        R                  " U R                  5       5      nUR                  UR                  5       X4U5      n[        R                  " U R                  5       5      n[        R                  " U R                  5       5      n[        R                  " U R                  5       5      n	UR                  S5      (       a  [        R                   R#                  SR%                  UR&                  UR(                  5      5        [        R*                  " XvUR,                  5        [        R                   R#                  SR%                  UR&                  UR(                  5      5        gU	R/                  SUR(                  UR0                  UR2                  S9n
UR4                  R7                  UR9                  U
R:                  S95      $ )a  Update a Database Migration Service migration job.

Args:
  args: argparse.Namespace, The arguments that this command was invoked
    with.

Returns:
  A dict object representing the operations resource describing the update
  operation if the update was successful.
no_asyncz6Waiting for migration job [{}] to be updated with [{}]zUpdated migration job {} [{}]Nz+datamigration.projects.locations.operations)operationsId
projectsIdlocationsId)name)CONCEPTSmigration_jobParsesourcedestinationr   MigrationJobsClientReleaseTrackUpdateRelativeNamer   GetClientInstanceGetMessagesModuleGetResourceParserIsKnownAndSpecifiedr   statusPrintformatmigrationJobsIdr(   	HandleLRO projects_locations_migrationJobsCreater&   r'   projects_locations_operationsGet2DatamigrationProjectsLocationsOperationsGetRequestr%   )selfargsmigration_job_ref
source_refdestination_ref	mj_clientresult_operationclientmessagesresource_parseroperation_refs              r   Run_Update.RunJ   s    3399;%%++-Jmm//557O2243D3D3FGI ''(9(F(F(H(2TK ''(9(9(;<F))$*;*;*=>H001B1B1DEO
++	jj
B
I
I//1A1F1FHI @@B 
jj6==

+
+-=-B-BD E#**5%**$//%11	 + 3M //33CC++ 	D 	-. .r"    N)	__name__
__module____qualname____firstlineno____doc__staticmethodr    rK   __static_attributes__rM   r"   r   r   r   6   s    :' ',.r"   r   c                   ,    \ rS rSrSr\r\S 5       rSr	g)UpdateGAy   r   c                 ^   [         R                  U 5        [        R                  " U 5        [        R                  " U 5        [        R
                  " U 5        [        R                  " U 5        [        R                  " U SS9  [        R                  " U 5        [        R                  " U SS9  g )NT)	is_update)
r   r    r   AddDumpParallelLevelFlagAddDumpTypeFlagAddFilterFlagAddCommitIdFlag*AddSqlServerHomogeneousMigrationConfigFlag2AddMigrationJobObjectsConfigFlagForCreateAndUpdate#AddHeterogeneousMigrationConfigFlagr   s    r   r    UpdateGA.Args   st    LL%%f-V$6"V$77$O??G004Hr"   rM   N
rN   rO   rP   rQ   rR   DETAILED_HELPdetailed_helprS   r    rT   rM   r"   r   rV   rV   y   s    :-I Ir"   rV   c                   ,    \ rS rSrSr\r\S 5       rSr	g)UpdateAlpha   r   c                 .    [         R                  U 5        g )N)r   r    r   s    r   r    UpdateAlpha.Args   s    LLr"   rM   Nrb   rM   r"   r   rf   rf      s    :- r"   rf   N)rR   
__future__r   r   r   )googlecloudsdk.api_lib.database_migrationr   r   r   googlecloudsdk.callioper	   -googlecloudsdk.command_lib.database_migrationr
   <googlecloudsdk.command_lib.database_migration.migration_jobsr   googlecloudsdk.corer   rc   ReleaseTracksr/   ALPHAGAobjectr   CommandrV   rf   rM   r"   r   <module>ru      s    A &  ' > D C ( ? Z #		2 D%%++T->->-A-AB?.f ?. C?.D D%%(()Iw I *I" D%%++,'4<<  -r"   