
                         l    S r SSKrSSKr\R                  " \R                  5       " S S\5      5       rg)zLBase SSHTroubleshooter class for each category of ssh troubleshooting check.    Nc                       \ rS rSrSrSrSrSrS r\	R                  S 5       r\	R                  S 5       r\	R                  S 5       rS rS	 rS
rg)SshTroubleshooter   zA class whose instance is a ssh troubleshooter.

Test authors should subclass Troubleshooter for each troubleshooter
subcategory.
Nc                     [         e)z;Initialize with project and instance object, and zone.
    NotImplementedErrorselfs    <lib/googlecloudsdk/command_lib/compute/ssh_troubleshooter.py__init__SshTroubleshooter.__init__$   
         c                     [         e)zZHook method for checking prerequisite for troubleshooting before troubleshoot action.
    r   r	   s    r   check_prerequisite$SshTroubleshooter.check_prerequisite)   
     r   c                     [         e)zTHook method for cleaning troubleshooting resource after troubleshooting action.
    r   r	   s    r   cleanup_resources#SshTroubleshooter.cleanup_resources/   r   r   c                     [         e)z'Hook method for troubleshooting action.r   r	   s    r   troubleshootSshTroubleshooter.troubleshoot5   r   r   c                 $    U R                  5         g N)runr	   s    r   __call__SshTroubleshooter.__call__:   s    HHJr   c                 d    U R                  5         U R                  5         U R                  5         g r   )r   r   r   r	   s    r   r   SshTroubleshooter.run=   s&    r    )__name__
__module____qualname____firstlineno____doc__projectzoneinstancer   abcabstractmethodr   r   r   r   r   __static_attributes__r!   r   r   r   r      su     '	$(
  
  
  r   r   )r&   r*   sixadd_metaclassABCMetaobjectr   r!   r   r   <module>r1      s=     S  
 3;;' '  'r   