
                             S 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r
S	r " S
 S\R                  5      rS rS rS rSS jr " S S\R$                  5      rg)z-Utility functions for gcloud pubsub emulator.    N)util)
exceptions)execution_utils)log)	platformspubsubzGoogle Cloud Pub/Sub emulatorc                       \ rS rSrSrg)InvalidArgumentError    N)__name__
__module____qualname____firstlineno____static_attributes__r       7lib/googlecloudsdk/command_lib/emulators/pubsub_util.pyr
   r
      s    r   r
   c                  6    [         R                  " [        5      $ N)r   
GetDataDirPUBSUBr   r   r   r   r   "   s    		  r   c                 L   [         R                  " [        5      nU[        R                  R
                  L a7  [        R                  R                  US5      n[        R                  " U/U Q76 $ [        R                  R                  US5      n[        R                  " U/U Q76 $ )zBuilds the command for starting the pubsub emulator.

Args:
  args: (list of str) The arguments for the pubsub emulator, excluding the
    program binary.
  current_os: (platforms.OperatingSystem)

Returns:
  A list of command arguments.
zbin\cloud-pubsub-emulator.batzbin/cloud-pubsub-emulator)r   GetEmulatorRootr   r   OperatingSystemWINDOWSospathjoinr   ArgsForCMDToolArgsForExecutableTool)args
current_os
pubsub_dirpubsub_executables       r   BuildStartArgsr%   &   s     ##F+*9,,44446))*;CdCCggll:/JK		.	./@	H4	HHr   c                 h    SU R                   R                  < SU R                   R                  < 30$ )zCReturns an environment variable mapping from an argparse.Namespace.PUBSUB_EMULATOR_HOST:)	host_porthostport)r!   s    r   GetEnvr,   ;   s0    
 #'>>#6#68K8K#M 
N Nr   c                    [        [        R                  " U 5      [        R                  R                  5       5      n[        R                  R                  SR                  SR                  U5      5      5        [        R                  " X!S9$ )NzExecuting: {0} )log_file)r%   r   BuildArgsListr   r   Currentr   statusPrintformatr   Exec)r!   r/   pubsub_argss      r   Startr7   A   sb    
	 9 9 A A CE+**#**388K+@AB	;	22r   c                   ^    \ rS rSrSrS r\S 5       r\S 5       r\S 5       r	\S 5       r
Srg	)
PubsubEmulatorH   z:Represents the ability to start and route pubsub emulator.c                 j    [         R                  " SSUS.05      n[        X R                  5       5      $ )Nr)   z::1)r*   r+   )r   AttrDictr7   	_GetLogNo)selfr+   r!   s      r   r7   PubsubEmulator.StartK   s,    ==+t'DEFD~~'((r   c                 
    / SQ$ )N)zgoogle.pubsub.v1.Publisherzgoogle.pubsub.v1.Subscriberz#google.pubsub.v1.AcknowledgeRequestz*google.pubsub.v1.DeleteSubscriptionRequestz#google.pubsub.v1.DeleteTopicRequestz'google.pubsub.v1.GetSubscriptionRequestz google.pubsub.v1.GetTopicRequestz)google.pubsub.v1.ListSubscriptionsRequestz*google.pubsub.v1.ListSubscriptionsResponsez.google.pubsub.v1.ListTopicSubscriptionsRequestz/google.pubsub.v1.ListTopicSubscriptionsResponsez"google.pubsub.v1.ListTopicsRequestz#google.pubsub.v1.ListTopicsResponsez)google.pubsub.v1.ModifyAckDeadlineRequestz(google.pubsub.v1.ModifyPushConfigRequestzgoogle.pubsub.v1.PublishRequestz google.pubsub.v1.PublishResponsezgoogle.pubsub.v1.PubsubMessagezgoogle.pubsub.v1.PullRequestzgoogle.pubsub.v1.PullResponsezgoogle.pubsub.v1.PushConfigz google.pubsub.v1.ReceivedMessagezgoogle.pubsub.v1.Subscriptionzgoogle.pubsub.v1.Topicr   r>   s    r   prefixesPubsubEmulator.prefixesO   s     r   c                     [         $ r   )r   rA   s    r   service_namePubsubEmulator.service_namep   s    Mr   c                     [         $ r   )PUBSUB_TITLErA   s    r   emulator_titlePubsubEmulator.emulator_titlet   s    r   c                     g)Nzpubsub-emulatorr   rA   s    r   emulator_component!PubsubEmulator.emulator_componentx   s    r   r   N)r   r   r   r   __doc__r7   propertyrB   rE   rI   rL   r   r   r   r   r9   r9   H   s[    B)  @      r   r9   r   )rN   r   $googlecloudsdk.command_lib.emulatorsr   googlecloudsdk.corer   r   r   googlecloudsdk.core.utilr   r   rH   Errorr
   r   r%   r,   r7   Emulatorr9   r   r   r   <module>rU      s`    4 
 5 * / # .	.:++ 
!I*N32T]] 2r   