
                         t   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	rS
 rS rS rS rS rS r\R.                  " \R0                  R2                  5       " S S\R4                  5      5       r\R.                  " \R0                  R8                  5       " S S\5      5       rg)z<Implements command to list ongoing and completed patch jobs.    )absolute_import)division)unicode_literals)
list_pager)utils)base)
properties
   c                     SnU R                  SS5      (       a  U S   nO3U R                  SS5      (       a  [        R                  " U S   5      nOSn[        U5      U:  a  USU S-   $ U$ )z(Returns the display name of a patch job.   displayName patchDeploymentN..)getosconfig_command_utilsGetResourceNamelen)resourcemax_lennames      0lib/surface/compute/os_config/patch_jobs/list.py_TransformPatchJobDisplayNamer      sr     '\\-$$M"D||%r**!11(;L2MNDD$'I$7$x.4
ATA    c                 \    SnU R                  SS5      n[        U5      U:  a  US U S-   $ U$ )N   descriptionr   r   )r   r   )r   r   r   s      r   _TransformPatchJobDescriptionr   .   sE    ']B/+{#g- hw

 ?3>?r   c                     U R                  SS5      nSU ;   a+  [        U S   R                  SS5      5      nUS:X  a  US:  a  gU$ )	Nstater   instanceDetailsSummary instancesSucceededRebootRequired0	SUCCEEDEDr   "SUCCEEDED_INSTANCES_PENDING_REBOOT)r   int)r   r    num_instances_pending_reboots      r   _TransformStater(   5   sU    
,,w
#%)#&x0H'I'M'M*C(1 $2  <q @1	,r   c                 p    SU ;  a  gU S   nSnU H!  nU[        UR                  US5      5      -  nM#     U$ )z+Sums up number of instances in a patch job.r!   Nr   )r&   r   )r   instance_details_summarynum_instancesstatuss       r   _TransformNumInstancesr-   A   sK    X-%&>?-(fS155fa@AAM )	r   c                    ^  U 4S jnU$ )zFReturns a transformation function from a patch job resource to an URI.c                    > TR                  U R                  [        R                  R                  R
                  R                  U R                  S.SS9nUR                  5       $ )N)projects	patchJobszosconfig.projects.patchJobs)params
collection)Parser   r	   VALUEScoreproject	GetOrFailSelfLink)r   refregistrys     r   UriFunc _MakeGetUriFunc.<locals>.UriFuncP   sW    
.."))..66@@!
 1  2C <<>r    )r;   r<   s   ` r   _MakeGetUriFuncr?   M   s     
.r   c                 V   [         R                  R                  U [        5        U R                  R                  S5        U R                  R                  [        [        [        [        S.5        [        R                  " U5      nU R                  R                  [        U5      5        g)z.Parses input flags and sets up output formats.z
        table(
          name.basename():label=ID,
          display_name():label=NAME,
          description(),
          create_time,
          update_time,
          state(),
          targeted_instances()
        )
      )display_namer   r    targeted_instancesN)r   
LIMIT_FLAG
SetDefault_DEFAULT_LIMITdisplay_info	AddFormatAddTransformsr   r   r(   r-   osconfig_api_utilsGetRegistry
AddUriFuncr?   )parserrelease_trackr;   s      r   _ArgsrN   ]   s     //V^4 
!
 
 	##322	%   ++M:(  !:;r   c                   .    \ rS rSrSr\S 5       rS rSrg)Listv   yList ongoing and completed patch jobs.

## EXAMPLES

To list patch jobs in the current project, run:

      $ {command}

c                 L    [        U [        R                  R                  5        g N)rN   r   ReleaseTrackGArL   s    r   Args	List.Args   s    	&$##&&'r   c           	         [         R                  R                  R                  R	                  5       nU R                  5       n[        R                  " U5      n[        R                  " U5      nUR                  UR                  [        R                  " U5      S9n[        R                  " UR                  UUR                   [        R"                  " U5      SSS9$ )N)pageSizeparentr1   r[   )limit
batch_sizefieldbatch_size_attribute)r	   r5   r6   r7   r8   rU   rI   GetClientInstanceGetClientMessages$OsconfigProjectsPatchJobsListRequest	page_sizer   GetProjectUriPathr   YieldFromListprojects_patchJobsr]   GetListBatchSize)selfargsr7   rM   clientmessagesrequests          r   RunList.Run   s    $$,,668G%%'M11-@F!33MBH;;%77@ < BG ##!!jj)::4@' r   r>   N)	__name__
__module____qualname____firstlineno____doc__staticmethodrX   rn   __static_attributes__r>   r   r   rP   rP   v   s      ( (r   rP   c                   (    \ rS rSrSr\S 5       rSrg)ListBeta   rR   c                 L    [        U [        R                  R                  5        g rT   )rN   r   rU   BETArW   s    r   rX   ListBeta.Args   s    	&$##(()r   r>   N)rp   rq   rr   rs   rt   ru   rX   rv   r>   r   r   rx   rx      s     * *r   rx   N)rt   
__future__r   r   r   apitools.base.pyr   (googlecloudsdk.api_lib.compute.os_configr   rI   googlecloudsdk.callioper   ,googlecloudsdk.command_lib.compute.os_configr   googlecloudsdk.corer	   rE   r   r   r(   r-   r?   rN   ReleaseTracksrU   rV   ListCommandrP   r{   rx   r>   r   r   <module>r      s    C &  ' ' P ( X * B?		 <2 D%%(()!4 ! *!H D%%**+*t * ,*r   