GatewayService

The gateway service is used for forwarding service calls to the appropriate services.

For this to be used, the following CS option is required:

DIRAC
{
  Gateways
  {
    my.site.org = dips://thisIsAn.url.org:9159/Framework/Gateway
  }
}

At the same time, this same gateway service should be run with option /LocalInstallation/Site which is different from “my.site.org” or whatever is set in the option above, to avoid initialization loops.

class DIRAC.Core.DISET.private.GatewayService.GatewayService

Bases: DIRAC.Core.DISET.private.Service.Service

Inherits from Service so it can (and should) be run as a DIRAC service, but replaces several of the internal methods

GATEWAY_NAME = 'Framework/Gateway'
SVC_SECLOG_CLIENT = <DIRAC.FrameworkSystem.Client.SecurityLogClient.SecurityLogClient object>
SVC_VALID_ACTIONS = {'Connection': 'Message', 'FileTransfer': 'transfer', 'Message': 'msg', 'RPC': 'export'}
__init__()

Initialize like a real service

getConfig()
handleConnection(clientTransport)

This method may be called by ServiceReactor. The method stacks openened connection in a queue, another thread read this queue and handle connection.

Parameters:clientTransport – Object wich describe opened connection (PlainTransport or SSLTransport)
initialize()

This replaces the standard initialize from Service

setCloneProcessId(cloneId)
class DIRAC.Core.DISET.private.GatewayService.MessageForwarder(msgBroker)

Bases: object

__init__(msgBroker)

x.__init__(…) initializes x; see help(type(x)) for signature

addClient(cliTrid, destination, clientInitParams, connectParams)
cliDisconnect(cliTrid)
msgFromClient(cliTrid, msgObj)
msgFromSrv(srvEndCli, msgObj)
class DIRAC.Core.DISET.private.GatewayService.TransferRelay(serviceName, **kwargs)

Bases: DIRAC.Core.DISET.TransferClient.TransferClient

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_CERTIFICATES = 'useCertificates'
KW_VO = 'VO'
VAL_EXTRA_CREDENTIALS_HOST = 'hosts'
__init__(serviceName, **kwargs)

Constructor

Parameters:
  • 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)
errMsg(msg, dynMsg='')
forwardBulkFromClient(clientFileHelper, params)
forwardBulkToClient(clientFileHelper, params)
forwardFromClient(clientFileHelper, params)
forwardListBulk(clientFileHelper, params)
forwardToClient(clientFileHelper, params)
getDataFromClient(clientFileHelper)
getDataFromService(srvMethod, params)
getDestinationService()

Return service destination

Returns:str
getServiceName()

Return service name

Returns:str
infoMsg(msg, dynMsg='')
listBulk(bulkId, token='', compress=True)

List the contents of a bulk

Parameters:
  • bulkId (any) – Identification of the bulk to list
  • token (string) – Token for the bulk
  • compress (boolean) – Enable compression for the bulk. By default its True
Returns:

S_OK/S_ERROR

receiveBulk(destDir, bulkId, token='', compress=True)

Receive a bulk of files from server

Parameters:
  • destDir (list of ( string / file descriptor / file object )) – Files to receive from server
  • bulkId (any) – Identification of the files being received
  • token (string) – Token for the bulk
  • compress (boolean) – Enable compression for the bulk. By default its True
Returns:

S_OK/S_ERROR

receiveFile(filename, fileId, token='')

Receive a file from the server

Parameters:
  • filename (string / file descriptor / file object) – File to receive from server
  • fileId (any) – Identification of the file being received
  • token (string) – Optional token for the file
Returns:

S_OK/S_ERROR

sendBulk(fileList, bulkId, token='', compress=True, bulkSize=-1, onthefly=True)

Send a bulk of files to server

Parameters:
  • fileList (list of ( string / file descriptor / file object )) – Files to send to server
  • bulkId (any) – Identification of the files being sent
  • token (string) – Token for the bulk
  • compress (boolean) – Enable compression for the bulk. By default its True
  • bulkSize (integer) – Optional size of the bulk
Returns:

S_OK/S_ERROR

sendDataToClient(clientFileHelper, dataToSend)
sendDataToService(srvMethod, params, data)
sendFile(filename, fileId, token='')

Send a file to server

Parameters:
  • filename (string / file descriptor / file object) – File to send to server
  • fileId (any) – Identification of the file being sent
  • token (string) – Optional token for the file
Returns:

S_OK/S_ERROR

setTransferLimit(trLimit)