Example #1
0
def step_impl(context, userName, certAlias, genisisBlockName,
              joinChannelResult):
    timeout = 10
    directory = bootstrap_util.getDirectory(context)
    user = directory.getUser(userName)
    # Find the cert using the cert tuple information saved for the user under certAlias
    signersCert = directory.findCertForNodeAdminTuple(user.tags[certAlias])

    # Retrieve the genesis block from the returned value of deliver (Will be list with first block as genesis block)
    genesisBlock = user.tags[genisisBlockName][0]
    ccSpec = endorser_util.getChaincodeSpec(
        "GOLANG", "", "cscc",
        ["JoinChain", genesisBlock.SerializeToString()])
    proposal = endorser_util.createInvokeProposalForBDD(
        context,
        ccSpec=ccSpec,
        chainID="",
        signersCert=signersCert,
        Mspid=user.tags[certAlias].organization,
        type="CONFIG")
    signedProposal = endorser_util.signProposal(proposal=proposal,
                                                entity=user,
                                                signersCert=signersCert)

    # Send proposal to each specified endorser, waiting 'timeout' seconds for response/error
    endorsers = [row['Peer'] for row in context.table.rows]
    proposalResponseFutures = [
        endorserStub.ProcessProposal.future(signedProposal, int(timeout))
        for endorserStub in endorser_util.getEndorserStubs(context, endorsers)
    ]
    resultsDict = dict(
        zip(endorsers,
            [respFuture.result() for respFuture in proposalResponseFutures]))
    user.setTagValue(joinChannelResult, resultsDict)
Example #2
0
def step_impl(context, userName, certAlias, proposalAlias, timeout,
              proposalResponsesAlias):
    assert 'table' in context, "Expected table of endorsers"
    directory = bootstrap_util.getDirectory(context=context)
    user = directory.getUser(userName=userName)

    assert proposalAlias in user.tags, "Proposal alias '{0}' not found for user '{1}'".format(
        proposalAlias, userName)
    signedProposal = user.tags[proposalAlias]

    # Send proposal to each specified endorser, waiting 'timeout' seconds for response/error
    endorsers = [row['Endorser'] for row in context.table.rows]
    nodeAdminTuple = user.tags[certAlias]

    endorserStubs = endorser_util.getEndorserStubs(
        context,
        composeServices=endorsers,
        directory=directory,
        nodeAdminTuple=nodeAdminTuple)
    proposalResponseFutures = [
        endorserStub.ProcessProposal.future(signedProposal, int(timeout))
        for endorserStub in endorserStubs
    ]
    resultsDict = dict(
        zip(endorsers,
            [respFuture.result() for respFuture in proposalResponseFutures]))
    user.setTagValue(proposalResponsesAlias, resultsDict)
Example #3
0
def step_impl(context, userName, genisisBlockName, composeService,
              joinChannelResult):
    timeout = 10
    directory = bootstrap_util.getDirectory(context)
    user = directory.getUser(userName)
    # Collect the cert tuple information
    row = context.table.rows[0]
    signersCert = directory.findCertByTuple(row['Developer'],
                                            row['ChainCreationPolicyName'],
                                            row['Organization'])

    # Retrieve the genesis block from the returned value of deliver (Will be list with first block as genesis block)
    genesisBlock = user.tags[genisisBlockName][0]
    ccSpec = endorser_util.getChaincodeSpec(
        "GOLANG", "", "cscc",
        ["JoinChain", genesisBlock.SerializeToString()])
    proposal = endorser_util.createInvokeProposalForBDD(
        ccSpec=ccSpec, chainID="", signersCert=signersCert, Mspid="DEFAULT")
    signedProposal = endorser_util.signProposal(proposal=proposal,
                                                entity=user,
                                                signersCert=signersCert)

    # Send proposal to each specified endorser, waiting 'timeout' seconds for response/error
    endorsers = [composeService]
    proposalResponseFutures = [
        endorserStub.ProcessProposal.future(signedProposal, int(timeout))
        for endorserStub in endorser_util.getEndorserStubs(context, endorsers)
    ]
    resultsDict = dict(
        zip(endorsers,
            [respFuture.result() for respFuture in proposalResponseFutures]))
    user.tags[joinChannelResult] = resultsDict
Example #4
0
def step_impl(context, userName, proposalAlias, timeout, proposalResponsesAlias):
    assert 'table' in context, "Expected table of endorsers"
    directory = bootstrap_util.getDirectory(context=context)
    user = directory.getUser(userName=userName)

    assert proposalAlias in user.tags, "Proposal alias '{0}' not found for user '{1}'".format(proposalAlias, userName)
    signedProposal = user.tags[proposalAlias]

    # Send proposal to each specified endorser, waiting 'timeout' seconds for response/error
    endorsers = [row['Endorser'] for row in context.table.rows]
    endorserStubs = endorser_util.getEndorserStubs(context, endorsers)
    proposalResponseFutures = [endorserStub.ProcessProposal.future(signedProposal, int(timeout)) for endorserStub in endorserStubs]
    resultsDict =  dict(zip(endorsers, [respFuture.result() for respFuture in proposalResponseFutures]))
    user.tags[proposalResponsesAlias] = resultsDict
def step_impl(context, enrollId, proposalAlias, timeout):
    assert 'table' in context, "Expected table of endorsers"
    userRegistration = bdd_test_util.getUserRegistration(context, enrollId)
    assert proposalAlias in userRegistration.tags, "Proposal alias '{0}' not found for user '{1}'".format(
        proposalAlias, enrollId)
    proposal = userRegistration.tags[proposalAlias]

    # Send proposal to each specified endorser, waiting 'timeout' seconds for response/error
    endorsers = context.table.headings
    proposalResponseFutures = [
        endorserStub.ProcessProposal.future(proposal, int(timeout))
        for endorserStub in endorser_util.getEndorserStubs(context, endorsers)
    ]
    resultsDict = dict(
        zip(endorsers,
            [respFuture.result() for respFuture in proposalResponseFutures]))
    userRegistration.lastResult = resultsDict
Example #6
0
def step_impl(context, userName, certAlias, genisisBlockName, joinChannelResult):
    timeout = 10
    directory = bootstrap_util.getDirectory(context)
    user = directory.getUser(userName)
    nodeAdminTuple = user.tags[certAlias]
    # Find the cert using the cert tuple information saved for the user under certAlias
    signersCert = directory.findCertForNodeAdminTuple(nodeAdminTuple)

    # Retrieve the genesis block from the returned value of deliver (Will be list with first block as genesis block)
    genesisBlock = user.tags[genisisBlockName][0]
    ccSpec = endorser_util.getChaincodeSpec("GOLANG", "", "cscc", ["JoinChain", genesisBlock.SerializeToString()])
    proposal = endorser_util.createInvokeProposalForBDD(context, ccSpec=ccSpec, chainID="",signersCert=signersCert, Mspid=user.tags[certAlias].organization, type="CONFIG")
    signedProposal = endorser_util.signProposal(proposal=proposal, entity=user, signersCert=signersCert)

    # Send proposal to each specified endorser, waiting 'timeout' seconds for response/error
    endorsers = [row['Peer'] for row in context.table.rows]
    proposalResponseFutures = [endorserStub.ProcessProposal.future(signedProposal, int(timeout)) for endorserStub in endorser_util.getEndorserStubs(context,composeServices=endorsers, directory=directory, nodeAdminTuple=nodeAdminTuple)]
    resultsDict =  dict(zip(endorsers, [respFuture.result() for respFuture in proposalResponseFutures]))
    user.setTagValue(joinChannelResult, resultsDict)
Example #7
0
def step_impl(context, enrollId, proposalAlias, timeout):
	assert 'table' in context, "Expected table of endorsers"
	userRegistration = bdd_test_util.getUserRegistration(context, enrollId)
	assert proposalAlias in userRegistration.tags, "Proposal alias '{0}' not found for user '{1}'".format(proposalAlias, enrollId)
	proposal = userRegistration.tags[proposalAlias]

	# Send proposal to each specified endorser, waiting 'timeout' seconds for response/error
	endorsers = context.table.headings
	proposalResponseFutures = [endorserStub.ProcessProposal.future(proposal, int(timeout)) for endorserStub in endorser_util.getEndorserStubs(context, endorsers)]
	resultsDict =  dict(zip(endorsers, [respFuture.result() for respFuture in proposalResponseFutures]))
	userRegistration.lastResult = resultsDict