示例#1
0
文件: D2SCaller.py 项目: dvi31/PyDxS
 def __init__(self, keyStore, trustStore, wsUri, verbose):
     self.transport = HTTPSClientCertTransport(keyStore, keyStore, trustStore)
     self.c = Client(self.wsdl, location=wsUri, transport=self.transport)
     if verbose:
         logging.basicConfig(level=logging.INFO)
         logging.getLogger('suds.client').setLevel(logging.INFO)
         logging.getLogger('suds.transport').setLevel(logging.DEBUG)
示例#2
0
文件: D2SCaller.py 项目: dvi31/PyDxS
class D2SCaller():
    wsdl = "file:caller/wsdl/dxs/49/D2SInterfaceFrontEnd.wsdl"
    wsTime = -1

    def __init__(self, keyStore, trustStore, wsUri, verbose):
        self.transport = HTTPSClientCertTransport(keyStore, keyStore, trustStore)
        self.c = Client(self.wsdl, location=wsUri, transport=self.transport)
        if verbose:
            logging.basicConfig(level=logging.INFO)
            logging.getLogger('suds.client').setLevel(logging.INFO)
            logging.getLogger('suds.transport').setLevel(logging.DEBUG)

    def buildSignatureExParameter(self):
        return self.c.factory.create('signatureEx')

    def signatureEx(self, parameters):
        ts = time.time()
        response = self.c.service.signatureEx(parameters.requestId, parameters.transactionId, parameters.tag,
                                              parameters.dataToSign, parameters.detachedSignature,
                                              parameters.signatureFormat, parameters.signatureType,
                                              parameters.signatureParameter)
        wsTime = time.time() - ts
        self.wsTime = int(wsTime * 1000)
        return response

    def getExcetionTime(self):
        return self.wsTime

    def getpeercert(self):
        # print "pprint ", pprint.pprint(transport.getpeercert())
        cert = self.transport.getpeercert()
        return ", ".join(str(val[0][1]) for val in cert['subject'])
示例#3
0
文件: D3SCaller.py 项目: dvi31/PyDxS
 def __init__(self, keyStore, trustStore, wsUri, verbose=False):
     self.transport = HTTPSClientCertTransport(keyStore, keyStore, trustStore)
     self.secretPort = Client(self.wsdl, location=wsUri + "secret", transport=self.transport, plugins=[MyPlugin()])
     # self.secretPort.add_prefix('nsdcom', 'http://www.dictao.com/d3s/xsd/v2010_10/Common')
     if verbose:
         logging.basicConfig(level=logging.INFO)
         logging.getLogger('suds.client').setLevel(logging.INFO)
         logging.getLogger('suds.transport').setLevel(logging.DEBUG)
示例#4
0
文件: D3SCaller.py 项目: dvi31/PyDxS
 def __init__(self, keyStore, trustStore, wsUri, verbose=False):
     self.transport = HTTPSClientCertTransport(keyStore, keyStore, trustStore)
     self.transport2 = HTTPSClientCertTransport(keyStore, keyStore, trustStore)
     self.secretPort = Client(self.wsdl, location=wsUri + "SecretPort", port='SecretPort', transport=self.transport)
     self.depositPort = Client(self.wsdl, location=wsUri + "DepositPort", port='DepositPort',
                               transport=self.transport2)
     if verbose:
         logging.basicConfig(level=logging.INFO)
         logging.getLogger('suds.client').setLevel(logging.INFO)
         logging.getLogger('suds.transport').setLevel(logging.DEBUG)
示例#5
0
文件: D3SCaller.py 项目: dvi31/PyDxS
class D3SAuthorityCaller():
    wsdl = path2url("caller/wsdl/d3s/v2/v2_1_Authority.wsdl") + '#SecretPort'
    wsTime = -1

    def __init__(self, keyStore, trustStore, wsUri, verbose=False):
        self.transport = HTTPSClientCertTransport(keyStore, keyStore, trustStore)
        self.transport2 = HTTPSClientCertTransport(keyStore, keyStore, trustStore)
        self.secretPort = Client(self.wsdl, location=wsUri + "SecretPort", port='SecretPort', transport=self.transport)
        self.depositPort = Client(self.wsdl, location=wsUri + "DepositPort", port='DepositPort',
                                  transport=self.transport2)
        if verbose:
            logging.basicConfig(level=logging.INFO)
            logging.getLogger('suds.client').setLevel(logging.INFO)
            logging.getLogger('suds.transport').setLevel(logging.DEBUG)

    def buildAccessPermissions(self):
        return self.depositPort.factory.create('ns2:AccessPermissions')

    def setDeletable(self, applicantPath, motivation, resourcePath):
        response = None
        result = False
        ts = time.time()
        try:
            accessPermissions = self.buildAccessPermissions()
            accessPermissions.deletable = True
            response = self.depositPort.service.changeAccessPermissions(applicantPath,
                                                                        motivation, resourcePath, accessPermissions)
            result = True
        except Exception as e:
            response = e

        wsTime = time.time() - ts
        self.wsTime = int(wsTime * 1000)
        return result, self.wsTime, response

    def discard(self, applicantPath, motivation, resourcePath):
        response = None
        result = False
        ts = time.time()
        try:
            response = self.depositPort.service.discardDeposit(applicantPath, motivation, resourcePath)
            result = True
        except Exception as e:
            response = e

        wsTime = time.time() - ts
        self.wsTime = int(wsTime * 1000)
        return result, self.wsTime, response

    def grantWrite(self, applicantPath, motivation, resourcePath):
        response = None
        result = False
        ts = time.time()
        try:
            response = self.secretPort.service.grantWrite(applicantPath, motivation, resourcePath)
            if response is not None:
                result = True
        except Exception as e:
            response = e

        wsTime = time.time() - ts
        self.wsTime = int(wsTime * 1000)
        return result, self.wsTime, response

    def grantDelete(self, applicantPath, motivation, resourcePath):
        response = None
        result = False
        ts = time.time()
        try:
            response = self.secretPort.service.grantDelete(applicantPath, motivation, resourcePath)
            if response is not None:
                result = True
        except Exception as e:
            response = e

        wsTime = time.time() - ts
        self.wsTime = int(wsTime * 1000)
        return result, self.wsTime, response

    def grantRead(self, applicantPath, motivation, resourcePath):
        response = None
        result = False
        ts = time.time()
        try:
            response = self.secretPort.service.grantRead(applicantPath, motivation, resourcePath)
            if "DP_VALID_SIGNATURE" == response.status.code:
                result = True
        except Exception as e:
            response = e

        wsTime = time.time() - ts
        self.wsTime = int(wsTime * 1000)
        return result, self.wsTime, response

    def getpeercert(self):
        cert = self.transport.getpeercert()
        return ", ".join(str(val[0][1]) for val in cert['subject'])

    def getExcetionTime(self):
        return self.wsTime
示例#6
0
文件: D3SCaller.py 项目: dvi31/PyDxS
class D3SStorageCaller():
    wsdl = path2url("caller/wsdl/d3s/v2/v2_1_Storage.wsdl")
    wsTime = -1

    def __init__(self, keyStore, trustStore, wsUri, verbose=False):
        self.transport = HTTPSClientCertTransport(keyStore, keyStore, trustStore)
        self.secretPort = Client(self.wsdl, location=wsUri + "secret", transport=self.transport, plugins=[MyPlugin()])
        # self.secretPort.add_prefix('nsdcom', 'http://www.dictao.com/d3s/xsd/v2010_10/Common')
        if verbose:
            logging.basicConfig(level=logging.INFO)
            logging.getLogger('suds.client').setLevel(logging.INFO)
            logging.getLogger('suds.transport').setLevel(logging.DEBUG)

    def buildMetadatasParameter(self):
        return self.secretPort.factory.create('ns1:Metadatas')

    def buildSecurityTokenParameter(self):
        return self.secretPort.factory.create('ns1:securityToken')

    def buildStrMetadataParameter(self, name, value):
        metadata = self.secretPort.factory.create('ns1:Metadata')
        metadata.value.StringValue = value
        metadata._name = name
        metadata._type = "STRING_TYPE"
        return metadata

    def read(self, securityToken, depositProof):
        response = None
        result = False
        ts = time.time()
        try:
            response = self.secretPort.service.read(securityToken, depositProof)
            if "HASH_COMPARAISON_OK" == response.status.code:
                result = True
            response = base64.standard_b64decode(response.data)
        except Exception as e:
            response = e

        wsTime = time.time() - ts
        self.wsTime = int(wsTime * 1000)
        return result, self.wsTime, response

    def delete(self, applicantPath, motivation, depositPath, securityToken):
        response = None
        result = False
        ts = time.time()
        try:
            self.secretPort.service.delete(applicantPath, motivation, depositPath, securityToken)
            result = True
        except Exception as e:
            response = e

        wsTime = time.time() - ts
        self.wsTime = int(wsTime * 1000)
        return result, self.wsTime, response

    def write(self, applicantPath, motivation, containerPath, securityToken, certificates, metadatas, data):
        response = None
        result = False
        ts = time.time()
        try:
            response = self.secretPort.service.write(applicantPath, motivation, containerPath, securityToken,
                                                     certificates, metadatas, data)
            if response is not None:
                result = True
        except Exception as e:
            response = e

        wsTime = time.time() - ts
        self.wsTime = int(wsTime * 1000)
        return result, self.wsTime, response

    def getpeercert(self):
        cert = self.transport.getpeercert()
        return ", ".join(str(val[0][1]) for val in cert['subject'])

    def getExcetionTime(self):
        return self.wsTime