示例#1
0
def install_network(opts, verbose=False):
    """Install Hyperledger Composer network.

    Args:
        opts (dict): Nephos options dict.
        verbose (bool): Verbosity. False by default.
    """
    peer_namespace = get_namespace(opts, opts["peers"]["msp"])
    hlc_cli_ex = get_pod(
        peer_namespace, opts["composer"]["name"], "hl-composer", verbose=verbose
    )

    # Install network
    # TODO: Getting BNA could be a helper function
    bna, _ = hlc_cli_ex.execute("ls /hl_config/blockchain_network")
    bna_name, bna_rem = bna.split("_")
    bna_version, _ = bna_rem.split(".bna")
    # TODO: This could be a single function
    peer_msp = opts["peers"]["msp"]
    bna_admin = opts["msps"][peer_msp]["org_admin"]
    admin_creds(opts, peer_msp, verbose=verbose)
    bna_pw = opts["msps"][peer_msp]["org_adminpw"]

    ls_res, _ = hlc_cli_ex.execute(
        "composer card list --card {bna_admin}@{bna_name}".format(
            bna_admin=bna_admin, bna_name=bna_name
        )
    )

    if not ls_res:
        hlc_cli_ex.execute(
            (
                "composer network install --card PeerAdmin@hlfv1 "
                + "--archiveFile /hl_config/blockchain_network/{bna}"
            ).format(bna=bna)
        )
        hlc_cli_ex.execute(
            (
                "composer network start "
                + "--card PeerAdmin@hlfv1 "
                + "--networkName {bna_name} --networkVersion {bna_version} "
                + "--networkAdmin {bna_admin} --networkAdminEnrollSecret {bna_pw}"
            ).format(
                bna_name=bna_name,
                bna_version=bna_version,
                bna_admin=bna_admin,
                bna_pw=bna_pw,
            )
        )
        hlc_cli_ex.execute(
            "composer card import --file {bna_admin}@{bna_name}.card".format(
                bna_admin=bna_admin, bna_name=bna_name
            )
        )

    hlc_cli_ex.execute(
        "composer network ping --card {bna_admin}@{bna_name}".format(
            bna_admin=bna_admin, bna_name=bna_name
        )
    )
示例#2
0
 def test_admin_creds(self, mock_credentials_secret):
     mock_credentials_secret.side_effect = [{"CA_PASSWORD": "******"}]
     admin_creds(self.OPTS, "an-msp")
     mock_credentials_secret.assert_called_once_with(
         "hlf--an-admin-admincred",
         "msp-ns",
         username="******",
         password=None)
     assert self.OPTS["msps"]["an-msp"].get("org_adminpw") == "a_password"
示例#3
0
def install_network(opts, verbose=False):
    peer_namespace = get_namespace(opts, opts['peers']['msp'])
    hlc_cli_ex = get_pod(peer_namespace,
                         opts['composer']['name'],
                         'hl-composer',
                         verbose=verbose)

    # Install network
    # TODO: Getting BNA could be a helper function
    bna = hlc_cli_ex.execute('ls /hl_config/blockchain_network')
    bna_name, bna_rem = bna.split('_')
    bna_version, _ = bna_rem.split('.bna')
    peer_ca = opts['peers']['ca']
    bna_admin = opts['cas'][peer_ca]['org_admin']
    admin_creds(opts['cas'][peer_ca], peer_namespace, verbose=verbose)
    bna_pw = opts['cas'][peer_ca]['org_adminpw']

    ls_res = hlc_cli_ex.execute(
        'composer card list --card {bna_admin}@{bna_name}'.format(
            bna_admin=bna_admin, bna_name=bna_name))

    if not ls_res:
        hlc_cli_ex.execute(
            ('composer network install --card PeerAdmin@hlfv1 ' +
             '--archiveFile /hl_config/blockchain_network/{bna}').format(
                 bna=bna))
        hlc_cli_ex.execute(
            ('composer network start ' + '--card PeerAdmin@hlfv1 ' +
             '--networkName {bna_name} --networkVersion {bna_version} ' +
             '--networkAdmin {bna_admin} --networkAdminEnrollSecret {bna_pw}'
             ).format(bna_name=bna_name,
                      bna_version=bna_version,
                      bna_admin=bna_admin,
                      bna_pw=bna_pw))
        hlc_cli_ex.execute(
            'composer card import --file {bna_admin}@{bna_name}.card'.format(
                bna_admin=bna_admin, bna_name=bna_name))

    hlc_cli_ex.execute(
        'composer network ping --card {bna_admin}@{bna_name}'.format(
            bna_admin=bna_admin, bna_name=bna_name))
示例#4
0
 def test_admin_creds_again(self, mock_credentials_secret):
     mock_credentials_secret.side_effect = [{'CA_PASSWORD': '******'}]
     admin_creds(self.OPTS, 'an-msp', verbose=True)
     mock_credentials_secret.assert_called_once_with(
         'hlf--an-admin-admincred', 'msp-namespace', username='******', password='******', verbose=True)
     assert self.OPTS['msps']['an-msp'].get('org_adminpw') == 'a_password'