
    "                        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 Zd Z ej$                  ej&                  j(                        ej*                   G d dej,                                      Z ej$                  ej&                  j0                         G d de             Z ej$                  ej&                  j4                         G d de             Zd Zd Zy)zList worker pools command.    )absolute_import)division)unicode_literals)cloudbuild_util)client_util)base)
exceptions)
properties)	resourcesc                     t        | t              r| d   } t        j                  j	                  | j
                  dd      }|j                         S )Nwpz)cloudbuild.projects.locations.workerPoolsv1
collectionapi_version
isinstancedictr   REGISTRYParseRelativeNamenameSelfLinkresourcer   s     'lib/surface/builds/worker_pools/list.py_GetWorkerPoolURIr      sK    $~H++mm< , " 
    c                     t        | t              r| d   } t        j                  j	                  | j
                  dd      }|j                         S )Nr   z1cloudbuild.projects.locations.workerPoolSecondGenv2r   r   r   s     r   _GetWorkerPoolSecondGenURIr    '   sK    $~H++mmD , " 
r   c                   0    e Zd ZdZdddZed        Zd Zy)List0List all worker pools in a Google Cloud project.z{description}z          To fetch a list of worker pools running in region `us-central1`, run:

            $ {command} --region=us-central1
          )DESCRIPTIONEXAMPLESc                     | j                  dd       | j                  j                  d       | j                  j                  t               y)Register flags for this command.

    Args:
      parser: An argparse.ArgumentParser-like object. It is mocked out in order
        to capture some information, but behaves like an ArgumentParser.
    --region)The Cloud region to list worker pools in.help
          table(
            name.segment(-1),
            createTime.date('%Y-%m-%dT%H:%M:%S%Oz', undefined='-'),
            state
          )
        N)add_argumentdisplay_info	AddFormat
AddUriFuncr   parsers    r   Argsz	List.ArgsA   sO     8  : !! #  ""#45r   c                 |   |j                   }|j                  }|s2t        j                  j                  j                   j                         }t        j                  j                  j                  j                  d      }t        j                  j                  d||      }t        ||| j                               S )This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace. All the arguments that were provided to this
        command invocation.

    Returns:
      Some value that we want to have printed later.
    Trequiredcloudbuild.projects.locationsr   
projectsIdlocationsId)region	page_sizer
   VALUESbuilds	GetOrFailcoreprojectGetr   r   Create_ListWorkerPoolFirstGenReleaseTrackselfargs	wp_regionwp_page_sizeparentparent_resources         r   RunzList.RunV   s     I>>L##**11;;=i##++///>F  ((//2 0 O
 #t'8'8': r   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr3   rN    r   r   r"   r"   1   s1     9 		- 6 6(r   r"   c                   &    e Zd ZdZed        Zd Zy)ListBetar#   c                     | j                  dd       | j                  ddt        d       | j                  j                  d       y	
r'   r(   r)   r*   --generation   zGeneration of the worker pool.)defaulttyper+   r,   Nr-   intr.   r/   r1   s    r   r3   zListBeta.Argsv   Y     8  : .	  1
 !! # r   c                    |j                   }|j                  }|s2t        j                  j                  j                   j                         }t        j                  j                  j                  j                  d      }t        j                  j                  d||      }|j                  dk(  r>|j                         j                  t               t!        ||| j#                               S |j                  dk(  r.|j                         j                  t$               t'        |      S t)        j*                  dd      	r5   Tr6   r8   r9   r[      rZ   z=please use one of the following valid generation values: 1, 2r<   r=   r
   r>   r?   r@   rA   rB   rC   r   r   rD   
generationGetDisplayInfor0   r   rE   rF   r    _ListWorkerPoolSecondGenr	   InvalidArgumentExceptionrG   s         r   rN   zListBeta.Run   s    I>>L##**11;;=i##++///>F  ((//2 0 O
 !
&&'89$
<):):)<  !
&&'AB%o66

-
-G r   NrO   rP   rQ   rR   rT   r3   rN   rU   r   r   rW   rW   r   s    8 0#r   rW   c                   &    e Zd ZdZed        Zd Zy)	ListAlphar#   c                     | j                  dd       | j                  ddt        d       | j                  j                  d       y	rY   r^   r1   s    r   r3   zListAlpha.Args   r`   r   c                    |j                   }|j                  }|s2t        j                  j                  j                   j                         }t        j                  j                  j                  j                  d      }t        j                  j                  d||      }|j                  dk(  r>|j                         j                  t               t!        ||| j#                               S |j                  dk(  r.|j                         j                  t$               t'        |      S t)        j*                  dd      rb   rd   rG   s         r   rN   zListAlpha.Run   s    I>>L##**11;;=i##++///>F  ((//2 0 O !
&&'89$
<):):)<  !
&&'AB%o66

-
-G r   Nri   rU   r   r   rk   rk      s    8 0%r   rk   c                     t        j                         }|j                  }|j                  j	                  |j                  | j                                     j                  }|S )zList Worker Pool Second Generation.

  Args:
    parent_resource: The parent resource for Worker Pool Second Generation.

  Returns:
    A list of Worker Pool Second Generation resources.
  )rL   )cloudbuild_v2_utilGetClientInstanceMESSAGES_MODULE&projects_locations_workerPoolSecondGenr"   9CloudbuildProjectsLocationsWorkerPoolSecondGenListRequestRelativeNameworkerPoolSecondGen)rM   clientmessageswp_lists       r   rg   rg      se     //1&##( 99>>HH --/ I 122E2E 
 
.r   c                     t        j                  |      }t        j                  |      }|j                  j	                  |j                  | j                         |            j                  }|S )a[  List Worker Pool First Generation.

  Args:
    parent_resource: The parent resource for Worker Pool First Generation.
    page_size: The number of elements to return in each page.
    release_track: The desired value of the enum
      googlecloudsdk.calliope.base.ReleaseTrack.

  Returns:
    A list of Worker Pool First Generation resources.
  )rL   pageSize)r   rp   GetMessagesModuleprojects_locations_workerPoolsr"   1CloudbuildProjectsLocationsWorkerPoolsListRequestrt   workerPools)rM   r=   release_trackrv   rw   rx   s         r   rE   rE     so     ,,];&..}=( 1166@@ --/) A  K	 
 
.r   N)rR   
__future__r   r   r   !googlecloudsdk.api_lib.cloudbuildr   $googlecloudsdk.api_lib.cloudbuild.v2r   ro   googlecloudsdk.callioper   r	   googlecloudsdk.corer
   r   r   r    ReleaseTracksrF   GAUniverseCompatibleListCommandr"   BETArW   ALPHArk   rg   rE   rU   r   r   <module>r      s    ! &  ' = R ( . * ) D%%(()<4 <  *<~ D%%**+?t ? ,?D D%%++,A A -AH(r   