TornadoClient is equivalent of the RPCClient but in HTTPS. Usage of TornadoClient is the same as RPCClient, you can instantiate TornadoClient with complete url (https://host:port/System/Component) or just “System/Component”. Like RPCClient you can use all method defined in your service, your call will be automatically transformed in RPC.

It also exposes the same interface for receiving file as the TransferClient.

Main changes:

  • KeepAliveLapse is removed, requests library manages it itself.

  • nbOfRetry (defined as private attribute) is removed, requests library manage it itself.

  • Underneath it uses HTTP POST protocol and JSON. See HTTPS Services with Tornado for details


from DIRAC.Core.Tornado.Client.TornadoClient import TornadoClient
myService = TornadoClient("Framework/MyService")
myService.doSomething() #Returns S_OK/S_ERROR
class DIRAC.Core.Tornado.Client.TornadoClient.TornadoClient(serviceName, **kwargs)

Bases: TornadoBaseClient

Client for calling tornado services Interface is based on RPCClient interface

KW_DELEGATED_DN = 'delegatedDN'
KW_DELEGATED_GROUP = 'delegatedGroup'
KW_EXTRA_CREDENTIALS = 'extraCredentials'
KW_IGNORE_GATEWAYS = 'ignoreGateways'
KW_KEEP_ALIVE_LAPSE = 'keepAliveLapse'
KW_PROXY_CHAIN = 'proxyChain'
KW_PROXY_LOCATION = 'proxyLocation'
KW_PROXY_STRING = 'proxyString'
KW_SETUP = 'setup'
KW_SKIP_CA_CHECK = 'skipCACheck'
KW_TIMEOUT = 'timeout'
KW_USE_ACCESS_TOKEN = 'useAccessToken'
KW_USE_CERTIFICATES = 'useCertificates'
KW_VO = 'VO'
__init__(serviceName, **kwargs)
  • serviceName – URL of the service (proper uri or just System/Component)

  • useCertificates – If set to True, use the server certificate

  • extraCredentials

  • timeout – Timeout of the call (default 600 s)

  • setup – Specify the Setup

  • VO – Specify the VO

  • delegatedDN – Not clear what it can be used for.

  • delegatedGroup – Not clear what it can be used for.

  • ignoreGateways – Ignore the DIRAC Gatways settings

  • proxyLocation – Specify the location of the proxy

  • proxyString – Specify the proxy string

  • proxyChain – Specify the proxy chain

  • skipCACheck – Do not check the CA

  • keepAliveLapse – Duration for keepAliveLapse (heartbeat like) (now managed by requests)

executeRPC(method, *args)

Calls a remote service

  • method (str) – remote procedure name

  • args – list of arguments


decoded response from server, server may return S_OK or S_ERROR


Returns the url the service.


Returns the name of the service, if you had given a url at init, returns the URL.

receiveFile(destFile, *args)

Equivalent of receiveFile()

In practice, it calls the remote method streamToClient and stores the raw result in a file

  • destFile – file (or path) where to store the result

  • args – list of arguments



sendFile(filename, fileID)

Equivalent of sendFile()

In practice, it calls the remote method streamFromClient and transfers the file as a string type value

  • filename (str) – file (or path) where to store the result

  • fileID (any) – tuple if file identifiers


S_OK/S_ERROR result of the remote RPC call


Playback a stub # Copy-paste from DIRAC.Core.DISET.RPCClient with RPCClient changed into TornadoClient