
                  	          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d
lmZ ddlmZ  e
j                   e
j"                  j$                  e
j"                  j&                  e
j"                  j(                         G d de
j*                               Zdddj/                  ddddd      de_        y)zCImplements the command to import GooGet packages into a repository.    )absolute_import)division)unicode_literals)apis)waiter)arg_parsers)base)
exceptions)flags)	resourcesc                   &    e Zd ZdZed        Zd Zy)Import?Import one or more GooGet packages into an artifact repository.c                     t        j                         j                  |        t        j                  j                  |        | j                  dddt        j                         d       y)z\Set up arguements for this command.

    Args:
      parser: An argparse.ArgumentPaser.
    z--gcs-source
GCS_SOURCETz            The Google Cloud Storage location of a package to import.
            Wildcards may be added at the end to import multiple packages.)metavarrequiredtypehelpN)r   GetRepoArgFromBetaAddToParserr	   
ASYNC_FLAGadd_argumentr   ArgList)parsers    &lib/surface/artifacts/googet/import.pyArgszImport.Args$   s\     
**62OO'
  "N  O    c                    t        j                  dd      }|j                  }d}|j                  D ]0  }d|v sd}|j	                  d      rt        j                  dd       |j                  j                  j                         }|j                  |j                  |j                  |j                  |      	      |j                         
      }|j                  j                  |      }t         j"                  j%                  |j&                  d      }	|j(                  r|	S t+        j,                  t+        j.                  |j0                        |	d      }
|
S )zRun package import command.artifactregistryv1F*Tr   z-Wildcards must be at the end of the GCS path.)urisuseWildcards)	gcsSource)importGoogetArtifactsRequestparentz.artifactregistry.projects.locations.operations)
collectionzImporting package(s))r   GetClientInstanceMESSAGES_MODULE
gcs_sourceendswithr
   InvalidArgumentExceptionCONCEPTS
repositoryParseIArtifactregistryProjectsLocationsRepositoriesGoogetArtifactsImportRequestImportGoogetArtifactsRequestImportGoogetArtifactsGcsSourceRelativeName/projects_locations_repositories_googetArtifactsr   r   REGISTRYParseRelativeNamenameasync_r   WaitForCloudOperationPollerNoResourcesprojects_locations_operations)selfargsclientmessagesuse_wildcardr+   repo_refrequestopop_refresults              r   Runz
Import.Run7   sV   ##$6=F%%HLoo
	
	""3'33KM M	 & }}''--/H``%-%J%J==__) >  &K &
 $$& a (G 
	?	?	F	Fw	OB11
L 2 NF {{m~~

0
0224
(*f
 mr   N)__name__
__module____qualname____doc__staticmethodr   rG    r   r   r   r      s!     HO O$%r   r   r   zy
      *{command}* imports GooGet packages from Google Cloud Storage into the specified
      artifact repository.
      a  
      To import the package `my-package.goo` from Google Cloud Storage into
      `my-repo`, run:

        $ {0} my-repo --location=us-central1 --gcs-source={1}

      To import the packages `my-package.goo` and `other-package.goo` into
      `my-repo`, run:

        $ {0} my-repo --location=us-central1 --gcs-source={1},{2}

      To import all packages from `my-directory` into `my-repo`, run:

        $ {0} my-repo --location=us-central1 --gcs-source={3}

      To import all packages in all subdirectories from a Google Cloud
      Storage bucket into `my-repo`, run:

        $ {0} my-repo --location=us-central1 --gcs-source={4}
    z	{command}z%gs://my-bucket/path/to/my-package.gooz(gs://my-bucket/path/to/other-package.goozgs://my-bucket/my-directory/*zgs://my-bucket/**)briefDESCRIPTIONEXAMPLESN)rK   
__future__r   r   r   googlecloudsdk.api_lib.utilr   r   googlecloudsdk.callioper   r	   r
   $googlecloudsdk.command_lib.artifactsr   googlecloudsdk.corer   ReleaseTracksReleaseTrackALPHABETAGACommandr   formatdetailed_helprM   r   r   <module>r^      s     J &  ' , . / ( . 6 ) D%%++T->->-C-C%%((*;T\\ ;*;~ O
& 	{C9."	$3 r   