
                             S r SSKJr  SSKJr  SSKJr  SSK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\R                   5      r " S S\
R$                  5      rg)z:Command for tailing the serial port output of an instance.    )absolute_import)division)unicode_literalsN)base_classes)arg_parsers)base)flags)
exceptions)logc                       \ rS rSrSrSrg)TailSerialPortOutputException   z0An error occurred while tailing the serial port. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r       8lib/surface/compute/instances/tail_serial_port_output.pyr   r      s    8r   r   c                   :    \ rS rSrSrSS0rSr\S 5       rS r	Sr
g	)
TailSerialPortOutput#   a]  Periodically fetch new output from a virtual machine instance's serial port and display it as it becomes available.

{command} is used to tail the output from a Compute
Engine virtual machine instance's serial port. The serial port output
from the instance will be printed to standard output. This
information can be useful for diagnostic purposes.
EXAMPLESz
  To fetch new output from instance's serial port and display it, run:

    $ {command} example-instance --zone=us-central1-b
  
   c                     [         R                  R                  U 5        U R                  S[        R
                  " SS5      SS9  g )Nz--port      a          Instances can support up to four serial port outputs, numbered 1 through
        4. By default, this command will return the output of the first serial
        port. Setting this flag will return the output of the requested serial
        port.
        )typehelp)r	   INSTANCE_ARGAddArgumentadd_argumentr   
BoundedInt)parsers    r   ArgsTailSerialPortOutput.Args5   sA    	""6*
##Aq)  r   c           
      V   [         R                  " U R                  5       5      nUR                  n[        R
                  R                  XR                  [        R                  " U5      S9nS n UR                  R                  SUR                  R                  UR                  5       UR                  UR                  UUR                   S94n/ nUR#                  U/US9nU(       a0  [%        SSR'                  U V	s/ s H  oS   PM	     sn	5      -   5      eUS   n
[(        R*                  R-                  U
R.                  5        [(        R*                  R1                  5         U
R2                  nU
R.                  (       d   [4        R6                  " U R8                  5        GM6  s  sn	f )	N)scope_listerGetSerialPortOutput)instanceprojectportstartzone)requestserrors_to_collectz$Could not fetch serial port output: ,r   r   )r   ComputeApiHolderReleaseTrackclientr	   r"   ResolveAsResource	resourcesGetInstanceZoneScopeListerapitools_client	instancesmessages*ComputeInstancesGetSerialPortOutputRequestNamer-   r.   r0   MakeRequestsr   joinr   outwritecontentsflushnexttimesleepPOLL_SLEEP_SECS)selfargsholderr6   instance_refr/   requesterrorsobjectserrorresults              r   RunTailSerialPortOutput.RunB   sn   **4+<+<+>?F]]F%%7755f= 8 ?L E
''11&KK*//1)11)) &++ L -.g f##9" $ $g 
+2HHF3F5AhF3456 	6 qzf	ggmmFOO$	ggmmokke __

4''(7 " 4s   ?F&r   N)r   r   r   r   r   detailed_helprH   staticmethodr'   rR   r   r   r   r   r   r   #   s6      - /
 
$)r   r   )r   
__future__r   r   r   rF   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   r   ,googlecloudsdk.command_lib.compute.instancesr	   googlecloudsdk.corer
   r   Errorr   Commandr   r   r   r   <module>r]      sM    A &  '  7 / ( > * #9J$4$4 9C)4<< C)r   