
                            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	Ze	j                  j                  d
e	j                  j                  diZd ZddZddZddZddZ G d dej,                        Zy)z)Utility functions for GCE OS Config APIs.    )absolute_import)division)unicode_literals)apis)waiter)base)	resourcesosconfigv1betav1c                     t         |    S N)_API_CLIENT_VERSION_MAP)release_tracks    5lib/googlecloudsdk/api_lib/compute/os_config/utils.pyGetApiVersionr   "   s    	 	//    Nc                 L    t        j                  t        |xs	 t        |          S r   )r   GetClientClass_API_CLIENT_NAMEr   r   api_version_overrides     r   r   r   &   s(    			, -m,
. .r   c                 L    t        j                  t        |xs	 t        |          S r   )r   GetClientInstancer   r   r   s     r   r   r   ,   (    			, -m,
. .r   c                 L    t        j                  t        |xs	 t        |          S r   )r   GetMessagesModuler   r   r   s     r   GetClientMessagesr   2   r   r   c                     t         j                  j                         }|j                  t        |xs	 t
        |           |S r   )r	   REGISTRYCloneRegisterApiByNamer   r   )r   r   registrys      r   GetRegistryr$   8   s>    %%'(
, -m,. 
/r   c                   (    e Zd ZdZd Zd Zd Zd Zy)Pollerz+Poller for synchronous patch job execution.c                 v   || _         || _        | j                  j                  j                  j                  | j                  j                  j                  j
                  | j                  j                  j                  j                  | j                  j                  j                  j                  g| _        y)zInitializes poller for patch job execution.

    Args:
      client: API client of the OsConfig service.
      messages: API messages of the OsConfig service.
    N)	clientmessagesPatchJobStateValueValuesEnum	SUCCEEDEDCOMPLETED_WITH_ERRORS	TIMED_OUTCANCELEDpatch_job_terminal_states)selfr(   r)   s      r   __init__zPoller.__init__C   s     DKDM33==33II33==33<<	&D"r   c                 2    |j                   | j                  v S z
Overrides.)stater0   r1   	patch_jobs     r   IsDonezPoller.IsDoneS   s    ??d<<<<r   c                 L    | j                   j                  j                  |      S r4   )r(   projects_patchJobsGet)r1   requests     r   PollzPoller.PollW   s    ;;))--g66r   c                     |S r4    r6   s     r   	GetResultzPoller.GetResult[   s    r   N)__name__
__module____qualname____doc__r2   r8   r=   r@   r?   r   r   r&   r&   @   s    3 =7r   r&   r   )rD   
__future__r   r   r   googlecloudsdk.api_lib.utilr   r   googlecloudsdk.callioper   googlecloudsdk.corer	   r   ReleaseTrackBETAGAr   r   r   r   r   r$   OperationPollerr&   r?   r   r   <module>rM      s|    0 &  ' , . ( )  H$ 0...V## r   