Ejemplo n.º 1
0
def generate_prom_config():
    prom_target = ''
    # Get orderer target
    orderers = settings.ORDERER_ORGS.split(' ')
    for orderer in orderers:
        domain = util.get_domain(orderer)
        settings.k8s.prereqs(domain)
        for peer in range(int(settings.NUM_ORDERERS)):
            if len(prom_target) > 0:
                prom_target += ','
            prom_target += '\'orderer%s-%s.%s:10443\'' % (peer, orderer,
                                                          domain)

    # Get peer target
    peerorgs = settings.PEER_ORGS.split(' ')
    for peerorg in peerorgs:
        domain = util.get_domain(peerorg)
        for peer in range(int(settings.NUM_PEERS)):
            if len(prom_target) > 0:
                prom_target += ','
            prom_target += '\'peer%s-%s.%s:10443\'' % (peer, peerorg, domain)
    dict_env = {'PROM_TARGET': prom_target}

    # Load config
    config_template = '%s/prometheus/prometheus-template.yml' % util.get_k8s_template_path(
    )
    yaml_path, config = util.load_yaml_config_template(
        yaml_template_path=config_template, dict_env=dict_env)

    print('config: ', config)
    return yaml_path
Ejemplo n.º 2
0
def setup_peer(peer, index):

    # Get domain
    domain = util.get_domain(peer)
    # Create temp folder & namespace
    settings.k8s.prereqs(domain)

    dict_env = {
        'PEER_ORG': peer,
        'PEER_DOMAIN': domain,
        'PEER_INDEX': index,
        'EFS_SERVER': settings.EFS_SERVER,
        'EFS_PATH': settings.EFS_PATH,
        'EFS_EXTEND': settings.EFS_EXTEND
    }

    peer_stateful = '%s/peer-sts/peer-stateful.yaml' % util.get_k8s_template_path()
    settings.k8s.apply_yaml_from_template(
        namespace=domain, k8s_template_file=peer_stateful, dict_env=dict_env)

    peer_service = '%s/peer-sts/peer-service-stateful.yaml' % util.get_k8s_template_path()
    settings.k8s.apply_yaml_from_template(
        namespace=domain, k8s_template_file=peer_service, dict_env=dict_env)

    num_peers = int(settings.NUM_PEERS)
    if (num_peers > 2):
        hiss.echo('NUM_PEER > 2: Does not support deployment nlb service')
    if (util.get_peer_external_domain(peer, index) != ''):
        peer_service_nlb = '%s/peer-sts/peer-service-nlb.yaml' % util.get_k8s_template_path()
        settings.k8s.apply_yaml_from_template(
            namespace=domain, k8s_template_file=peer_service_nlb, dict_env=dict_env)
Ejemplo n.º 3
0
def setup_orderer(orderer, index):

    # Get domain
    domain = util.get_domain(orderer)
    # Create temp folder & namespace
    settings.k8s.prereqs(domain)

    dict_env = {
        'ORDERER': orderer,
        'ORDERER_DOMAIN': domain,
        'ORDERER_INDEX': index,
        'EFS_SERVER': settings.EFS_SERVER,
        'EFS_PATH': settings.EFS_PATH,
        'EFS_EXTEND': settings.EFS_EXTEND
    }

    orderer_stateful = '%s/orderer-sts/orderer-stateful.yaml' % util.get_k8s_template_path()
    settings.k8s.apply_yaml_from_template(
        namespace=domain, k8s_template_file=orderer_stateful, dict_env=dict_env)

    orderer_service = '%s/orderer-sts/orderer-service.yaml' % util.get_k8s_template_path()
    settings.k8s.apply_yaml_from_template(
        namespace=domain, k8s_template_file=orderer_service, dict_env=dict_env)

    if settings.EXTERNAL_ORDERER_ADDRESSES != '':
        # Setup nlb
        orderer_service_nlb = '%s/orderer-sts/orderer-service-nlb.yaml' % util.get_k8s_template_path()
        settings.k8s.apply_yaml_from_template(
            namespace=domain, k8s_template_file=orderer_service_nlb, dict_env=dict_env)
Ejemplo n.º 4
0
def deploy_external_cc(peer, cc_name, cc_image, cc_package_id):
    # Get domain
    domain = util.get_domain(peer)

    # Create temp folder & namespace
    settings.k8s.prereqs(domain)

    # Create config map
    k8s_template_file = '%s/external-chaincode/chaincode-stateful.yaml' % util.get_k8s_template_path(
    )
    dict_env = {
        'PEER_NAME': peer,
        'PEER_DOMAIN': domain,
        'CHAINCODE_NAME': cc_name,
        'CHAINCODE_IMAGE': cc_image,
        'CHAINCODE_PACKAGE_ID': cc_package_id
    }
    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=k8s_template_file,
                                          dict_env=dict_env)

    chaincode_service = '%s/external-chaincode/chaincode-service.yaml' % util.get_k8s_template_path(
    )
    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=chaincode_service,
                                          dict_env=dict_env)
Ejemplo n.º 5
0
def setup_ica(ica_org):

    # Get domain ica to create namespace
    ica_domain = util.get_domain(ica_org)
    if not ica_domain:
        return hiss.hiss('Fail to get domain of %s ' % ica_org)

    # Create temp folder & namespace
    settings.k8s.prereqs(ica_domain)

    ica_name = 'ica-%s' % ica_org

    rca_host = settings.EXTERNAL_RCA_ADDRESSES
    if not settings.EXTERNAL_RCA_ADDRESSES:
        rca_host = '%s.%s' % (settings.RCA_NAME, settings.RCA_ORG)

    k8s_template_file = '%s/ica/fabric-deployment-ica.yaml' % util.get_k8s_template_path()
    dict_env = {
        'ORG': ica_org,
        'ICA_NAME': ica_name,
        'ICA_DOMAIN': ica_domain,
        'RCA_NAME': settings.RCA_NAME,
        'RCA_HOST': rca_host,
        'EFS_SERVER': settings.EFS_SERVER,
        'EFS_PATH': settings.EFS_PATH,
        'EFS_EXTEND': settings.EFS_EXTEND
    }
    settings.k8s.apply_yaml_from_template(
        namespace=ica_domain, k8s_template_file=k8s_template_file, dict_env=dict_env)
Ejemplo n.º 6
0
def enroll_peer(peer, index):
    # Get domain
    domain = util.get_domain(peer)

    # Get external domain
    external_domain = util.get_peer_external_domain(peer, index)

    # Create temp folder & namespace
    settings.k8s.prereqs(domain)

    k8s_template_file = '%s/enroll-peer/fabric-deployment-enroll-peer.yaml' % util.get_k8s_template_path(
    )
    dict_env = {
        'PEER': peer,
        'PEER_DOMAIN': domain,
        'PEER_INDEX': index,
        'EXTERNAL_PEER_HOST': external_domain,
        'FABRIC_CA_TAG': settings.FABRIC_CA_TAG,
        'EFS_SERVER': settings.EFS_SERVER,
        'EFS_PATH': settings.EFS_PATH,
        'EFS_EXTEND': settings.EFS_EXTEND,
        'PVS_PATH': settings.PVS_PATH
    }

    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=k8s_template_file,
                                          dict_env=dict_env)
Ejemplo n.º 7
0
def delete_all_external_cc():

    peers = settings.PEER_ORGS.split(' ')
    results = []
    for peer in peers:
        domain = util.get_domain(peer)
        results.append(delete_external_cc(peer))
    return results
Ejemplo n.º 8
0
def del_enroll_orderer(orderer, index):

    # Get domain
    domain = util.get_domain(orderer)
    jobname = 'enroll-o%s-%s' % (index, orderer)

    # Delete job pod
    return settings.k8s.delete_job(name=jobname, namespace=domain)
Ejemplo n.º 9
0
def del_admin(org):

    # Get domain
    domain = util.get_domain(org)
    name = 'admin-v2-%s' % org

    # Delete job pod
    return settings.k8s.delete_stateful(name=name, namespace=domain)
Ejemplo n.º 10
0
def del_generate_ccp(org):

    # Get domain
    domain = util.get_domain(org)
    jobname = 'generate-ccp-%s' % org

    # Delete job pod
    return settings.k8s.delete_job(name=jobname, namespace=domain)
Ejemplo n.º 11
0
def del_reg_orderer(orderer):

    # Get domain
    domain = util.get_domain(orderer)
    jobname = 'register-o-%s' % orderer

    # Delete job pod
    return settings.k8s.delete_job(name=jobname, namespace=domain)
Ejemplo n.º 12
0
def del_reg_peer(org):

    # Get domain
    domain = util.get_domain(org)
    jobname = 'register-p-%s' % org

    # Delete job pod
    return settings.k8s.delete_job(name=jobname, namespace=domain)
Ejemplo n.º 13
0
def delete_orderer(orderer, index):
    # Get domain
    domain = util.get_domain(orderer)

    name = 'orderer%s-%s' % (index, orderer) 

    # Delete stateful set
    return settings.k8s.delete_stateful(name=name, namespace=domain)
Ejemplo n.º 14
0
def get_working_orgs_domain():
    orgs = settings.PEER_ORGS.split(' ')
    if len(orgs) > 1:
        hiss.hiss('Function is still develop')
    domain = util.get_domain(orgs[0])
    settings.k8s.prereqs(domain)

    return [orgs[0], domain]
Ejemplo n.º 15
0
def delete_ica(ica_org):
    ica_name = 'ica-%s' % ica_org
    # Get domain ica to create namespace
    ica_domain = util.get_domain(ica_org)
    if not ica_domain:
        return hiss.hiss('Fail to get domain of %s ' % ica_org)

    # Delete stateful set
    return settings.k8s.delete_stateful(name=ica_name, namespace=ica_domain)
Ejemplo n.º 16
0
def delete_external_cc(peer):
    ## Find explorer_db pod
    domain = util.get_domain(peer)
    list_stateful_set = settings.k8s.find_stateful_set(namespace=domain,
                                                       keyword="chaincode")
    # Remove chaincode container of another org
    for sts in list_stateful_set:
        if peer not in sts: list_stateful_set.remove(sts)
    for sts in list_stateful_set:
        # Delete stateful set
        return settings.k8s.delete_stateful(name=sts, namespace=domain)
Ejemplo n.º 17
0
def config_peer(peer):
    # Get domain
    domain = util.get_domain(peer)

    # Create temp folder & namespace
    settings.k8s.prereqs(domain)

    # Create config map
    k8s_template_file = '%s/external-chaincode/builders-config.yaml' % util.get_k8s_template_path(
    )
    dict_env = {'PEER_DOMAIN': domain}
    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=k8s_template_file,
                                          dict_env=dict_env)
Ejemplo n.º 18
0
def setup_peer(peer, index):

    # Get domain
    domain = util.get_domain(peer)
    # Create temp folder & namespace
    settings.k8s.prereqs(domain)

    if settings.K8S_TYPE == 'minikube':
        storage_class = 'standard'
    else:
        storage_class = 'gp2'

    dict_env = {
        'PEER_ORG': peer,
        'PEER_DOMAIN': domain,
        'PEER_INDEX': index,
        'FABRIC_TAG': settings.FABRIC_TAG,
        'COUCHDB_TAG': settings.COUCHDB_TAG,
        'EFS_SERVER': settings.EFS_SERVER,
        'EFS_PATH': settings.EFS_PATH,
        'EFS_EXTEND': settings.EFS_EXTEND,
        'PVS_PATH': settings.PVS_PATH,
        'STORAGE_CLASS': storage_class
    }

    peer_stateful = '%s/peer-sts/peer-stateful.yaml' % util.get_k8s_template_path(
    )
    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=peer_stateful,
                                          dict_env=dict_env)

    peer_service = '%s/peer-sts/peer-service-stateful.yaml' % util.get_k8s_template_path(
    )
    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=peer_service,
                                          dict_env=dict_env)

    num_peers = int(settings.NUM_PEERS)
    if (num_peers > 2):
        hiss.echo('NUM_PEER > 2: Does not support deployment nlb service')
    if (util.get_peer_external_domain(peer, index) != ''):
        peer_service_nlb = '%s/peer-sts/peer-service-nlb.yaml' % util.get_k8s_template_path(
        )
        settings.k8s.apply_yaml_from_template(
            namespace=domain,
            k8s_template_file=peer_service_nlb,
            dict_env=dict_env)
Ejemplo n.º 19
0
def reg_org(org):
    # Get domain
    domain = util.get_domain(org)

    # Create temp folder & namespace
    settings.k8s.prereqs(domain)

    k8s_template_file = '%s/register-org/fabric-deployment-register-org.yaml' % util.get_k8s_template_path()
    dict_env = {
        'ORG': org,
        'REG_DOMAIN': domain,
        'EFS_SERVER': settings.EFS_SERVER,
        'EFS_PATH': settings.EFS_PATH,
        'EFS_EXTEND': settings.EFS_EXTEND
    }

    settings.k8s.apply_yaml_from_template(
        namespace=domain, k8s_template_file=k8s_template_file, dict_env=dict_env)
Ejemplo n.º 20
0
def delete_peer(peer, index):
    # Get domain
    domain = util.get_domain(peer)

    # peer service name
    name = 'peer%s-%s' % (index, peer) 

    # Delete peer stateful set
    res_del_peer =  settings.k8s.delete_stateful(name=name, namespace=domain)

    # couchdb service name
    name = 'couchdb%s-%s' % (index, peer) 

    # Delete couchdb stateful set
    res_del_db =  settings.k8s.delete_stateful(name=name, namespace=domain)

    if res_del_peer.success == True and res_del_db.success == True:
        hiss.sub_echo('Delete peer & couchdb success')
Ejemplo n.º 21
0
def setup_orderer(orderer, index):

    # Get domain
    domain = util.get_domain(orderer)
    # Create temp folder & namespace
    settings.k8s.prereqs(domain)

    if settings.K8S_TYPE == 'minikube':
        store_class = 'standard'
    else:
        store_class = 'gp2'

    dict_env = {
        'ORDERER': orderer,
        'ORDERER_DOMAIN': domain,
        'ORDERER_INDEX': index,
        'FABRIC_TAG': settings.FABRIC_TAG,
        'EFS_SERVER': settings.EFS_SERVER,
        'EFS_PATH': settings.EFS_PATH,
        'EFS_EXTEND': settings.EFS_EXTEND,
        'PVS_PATH': settings.PVS_PATH,
        'STORE_CLASS': store_class
    }

    orderer_stateful = '%s/orderer-sts/orderer-stateful.yaml' % util.get_k8s_template_path(
    )
    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=orderer_stateful,
                                          dict_env=dict_env)

    orderer_service = '%s/orderer-sts/orderer-service.yaml' % util.get_k8s_template_path(
    )
    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=orderer_service,
                                          dict_env=dict_env)

    if settings.EXTERNAL_ORDERER_ADDRESSES != '':
        # Setup nlb
        orderer_service_nlb = '%s/orderer-sts/orderer-service-nlb.yaml' % util.get_k8s_template_path(
        )
        settings.k8s.apply_yaml_from_template(
            namespace=domain,
            k8s_template_file=orderer_service_nlb,
            dict_env=dict_env)
Ejemplo n.º 22
0
def generate_ccp(org):

    # Get domain
    domain = util.get_domain(org)

    # Create temp folder & namespace
    settings.k8s.prereqs(domain)

    k8s_template_file = '%s/connection-profile/generate-ccp-job.yaml' % util.get_k8s_template_path()
    dict_env = {
        'ORG_NAME': org,
        'ORG_DOMAIN': domain,
        'EFS_SERVER': settings.EFS_SERVER,
        'EFS_PATH': settings.EFS_PATH,
        'EFS_EXTEND': settings.EFS_EXTEND,
        'PVS_PATH': settings.PVS_PATH
    }

    settings.k8s.apply_yaml_from_template(
        namespace=domain, k8s_template_file=k8s_template_file, dict_env=dict_env)
Ejemplo n.º 23
0
def enroll_orderer(orderer):
    # Get domain
    domain = util.get_domain(orderer)

    # Create temp folder & namespace
    settings.k8s.prereqs(domain)

    k8s_template_file = '%s/enroll-orderer/fabric-deployment-enroll-orderer.yaml' % util.get_k8s_template_path(
    )
    dict_env = {
        'ORDERER': orderer,
        'ENROLL_DOMAIN': domain,
        'EFS_SERVER': settings.EFS_SERVER,
        'EFS_PATH': settings.EFS_PATH,
        'EFS_EXTEND': settings.EFS_EXTEND
    }

    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=k8s_template_file,
                                          dict_env=dict_env)
Ejemplo n.º 24
0
def reg_orderer(orderer):
    # Get domain
    domain = util.get_domain(orderer)

    # Create temp folder & namespace
    settings.k8s.prereqs(domain)

    k8s_template_file = '%s/register-orderer/fabric-deployment-register-orderer.yaml' % util.get_k8s_template_path(
    )
    dict_env = {
        'ORDERER_ORG': orderer,
        'ORDERER_DOMAIN': domain,
        'FABRIC_CA_TAG': settings.FABRIC_CA_TAG,
        'EFS_SERVER': settings.EFS_SERVER,
        'EFS_PATH': settings.EFS_PATH,
        'EFS_EXTEND': settings.EFS_EXTEND,
        'PVS_PATH': settings.PVS_PATH
    }

    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=k8s_template_file,
                                          dict_env=dict_env)
Ejemplo n.º 25
0
def update_folder():
    hiss.rattle('Update folder crt in EFS')

    # Find efs pod
    pods = settings.k8s.find_pod(namespace="default", keyword="test-efs")
    if not pods:
        return hiss.hiss('cannot find tiller pod')

    all_command = ''

    prepare_cmd = 'rm -rf %s/akc-ca-data/crypto-config-v1;' % settings.EFS_ROOT
    prepare_cmd += 'cd %s/akc-ca-data/;' % settings.EFS_ROOT
    all_command += prepare_cmd

    if settings.ORDERER_ORGS != '':
        # Build orderer command
        orderers = settings.ORDERER_ORGS.split(' ')
        orderer_cmd = ''

        for orderer in orderers:
            # Get domain
            domain = util.get_domain(orderer)
            orderer_cmd += (''
                            'mkdir -p crypto-config-v1/ordererOrganizations/' +
                            domain + '/ca;'
                            'mkdir -p crypto-config-v1/ordererOrganizations/' +
                            domain + '/msp/admincerts;'
                            'mkdir -p crypto-config-v1/ordererOrganizations/' +
                            domain + '/msp/cacerts;'
                            'mkdir -p crypto-config-v1/ordererOrganizations/' +
                            domain + '/msp/tlscacerts;'
                            'mkdir -p crypto-config-v1/ordererOrganizations/' +
                            domain + '/tlsca;'
                            'mkdir -p crypto-config-v1/ordererOrganizations/' +
                            domain + '/users/admin/msp/admincerts;'
                            'mkdir -p crypto-config-v1/ordererOrganizations/' +
                            domain + '/users/admin/msp/cacerts;'
                            'mkdir -p crypto-config-v1/ordererOrganizations/' +
                            domain + '/users/admin/msp/keystore;'
                            'mkdir -p crypto-config-v1/ordererOrganizations/' +
                            domain + '/users/admin/msp/signcerts;'
                            'mkdir -p crypto-config-v1/ordererOrganizations/' +
                            domain + '/users/admin/msp/tlscacerts;'
                            'mkdir -p crypto-config-v1/ordererOrganizations/' +
                            domain + '/users/admin/tls;'
                            '')
            for index in range(int(settings.NUM_ORDERERS)):
                orderer_cmd += (
                    ''
                    'mkdir -p crypto-config-v1/ordererOrganizations/' +
                    domain + '/orderers/orderer' + str(index) + '-' + orderer +
                    '.' + domain + '/msp/admincerts;'
                    'mkdir -p crypto-config-v1/ordererOrganizations/' +
                    domain + '/orderers/orderer' + str(index) + '-' + orderer +
                    '.' + domain + '/msp/cacerts;'
                    'mkdir -p crypto-config-v1/ordererOrganizations/' +
                    domain + '/orderers/orderer' + str(index) + '-' + orderer +
                    '.' + domain + '/msp/keystore;'
                    'mkdir -p crypto-config-v1/ordererOrganizations/' +
                    domain + '/orderers/orderer' + str(index) + '-' + orderer +
                    '.' + domain + '/msp/signcerts;'
                    'mkdir -p crypto-config-v1/ordererOrganizations/' +
                    domain + '/orderers/orderer' + str(index) + '-' + orderer +
                    '.' + domain + '/msp/tlscacerts;'
                    'mkdir -p crypto-config-v1/ordererOrganizations/' +
                    domain + '/orderers/orderer' + str(index) + '-' + orderer +
                    '.' + domain + '/tls;'
                    'cp ica-' + orderer +
                    '-ca-chain.pem crypto-config-v1/ordererOrganizations/' +
                    domain + '/orderers/orderer' + str(index) + '-' + orderer +
                    '.' + domain + '/msp/cacerts/ca.' + domain + '-cert.pem;'
                    'cp ica-' + orderer +
                    '-ca-chain.pem crypto-config-v1/ordererOrganizations/' +
                    domain + '/orderers/orderer' + str(index) + '-' + orderer +
                    '.' + domain + '/msp/tlscacerts/tlsca.' + domain +
                    '-cert.pem;'
                    'cp ica-' + orderer +
                    '-ca-chain.pem crypto-config-v1/ordererOrganizations/' +
                    domain + '/orderers/orderer' + str(index) + '-' + orderer +
                    '.' + domain + '/tls/tlsca.' + domain + '-cert.pem;'
                    'cp crypto-config/' + orderer + '.' + domain +
                    '/users/admin/msp/signcerts/cert.pem crypto-config-v1/ordererOrganizations/'
                    + domain + '/orderers/orderer' + str(index) + '-' +
                    orderer + '.' + domain + '/msp/admincerts/cert.pem;'
                    'cp crypto-config/' + orderer + '.' + domain +
                    '/orderers/orderer' + str(index) + '-' + orderer + '.' +
                    domain +
                    '/msp/signcerts/cert.pem crypto-config-v1/ordererOrganizations/'
                    + domain + '/orderers/orderer' + str(index) + '-' +
                    orderer + '.' + domain + '/msp/signcerts/;'
                    'cp crypto-config/' + orderer + '.' + domain +
                    '/orderers/orderer' + str(index) + '-' + orderer + '.' +
                    domain +
                    '/msp/keystore/*_sk crypto-config-v1/ordererOrganizations/'
                    + domain + '/orderers/orderer' + str(index) + '-' +
                    orderer + '.' + domain + '/msp/keystore/key.pem;'
                    'cp crypto-config/' + orderer + '.' + domain +
                    '/orderers/orderer' + str(index) + '-' + orderer + '.' +
                    domain +
                    '/tls/server.crt crypto-config-v1/ordererOrganizations/' +
                    domain + '/orderers/orderer' + str(index) + '-' + orderer +
                    '.' + domain + '/tls/;'
                    'cp crypto-config/' + orderer + '.' + domain +
                    '/orderers/orderer' + str(index) + '-' + orderer + '.' +
                    domain +
                    '/tls/server.key crypto-config-v1/ordererOrganizations/' +
                    domain + '/orderers/orderer' + str(index) + '-' + orderer +
                    '.' + domain + '/tls/server.key;'
                    '')
            orderer_cmd += (
                ''
                'cp ica-' + orderer +
                '-ca-chain.pem crypto-config-v1/ordererOrganizations/' +
                domain + '/ca/ca.' + domain + '-cert.pem;'
                'cp ica-' + orderer +
                '-ca-chain.pem crypto-config-v1/ordererOrganizations/' +
                domain + '/msp/cacerts/ca.' + domain + '-cert.pem;'
                'cp ica-' + orderer +
                '-ca-chain.pem crypto-config-v1/ordererOrganizations/' +
                domain + '/users/admin/msp/cacerts/ca.' + domain + '-cert.pem;'
                'cp ica-' + orderer +
                '-ca-chain.pem crypto-config-v1/ordererOrganizations/' +
                domain + '/tlsca/tlsca.' + domain + '-cert.pem;'
                'cp ica-' + orderer +
                '-ca-chain.pem crypto-config-v1/ordererOrganizations/' +
                domain + '/msp/tlscacerts/tlsca.' + domain + '-cert.pem;'
                'cp ica-' + orderer +
                '-ca-chain.pem crypto-config-v1/ordererOrganizations/' +
                domain + '/users/admin/msp/tlscacerts/tlsca.' + domain +
                '-cert.pem;'
                'cp ica-' + orderer +
                '-ca-chain.pem crypto-config-v1/ordererOrganizations/' +
                domain + '/users/admin/tls/tlsca.' + domain + '-cert.pem;'
                'cp crypto-config/' + orderer + '.' + domain +
                '/users/admin/msp/signcerts/cert.pem crypto-config-v1/ordererOrganizations/'
                + domain + '/msp/admincerts/cert.pem;'
                'cp crypto-config/' + orderer + '.' + domain +
                '/users/admin/msp/signcerts/cert.pem crypto-config-v1/ordererOrganizations/'
                + domain + '/users/admin/msp/admincerts/cert.pem;'
                'cp crypto-config/' + orderer + '.' + domain +
                '/users/admin/msp/keystore/*_sk crypto-config-v1/ordererOrganizations/'
                + domain + '/users/admin/msp/keystore/key.pem;'
                'cp crypto-config/' + orderer + '.' + domain +
                '/users/admin/msp/signcerts/cert.pem crypto-config-v1/ordererOrganizations/'
                + domain + '/users/admin/msp/signcerts/cert.pem;'
                'echo "succeed";'
                '')
        all_command += orderer_cmd

    # Build peer command
    peers = settings.PEER_ORGS.split(' ')
    peer_cmd = ''
    for peer in peers:
        # Get domain
        domain = util.get_domain(peer)
        peer_cmd += (''
                     'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                     '/ca;'
                     'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                     '/msp/admincerts;'
                     'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                     '/msp/cacerts;'
                     'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                     '/msp/tlscacerts;'
                     'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                     '/tlsca;'
                     'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                     '/users/admin/msp/admincerts;'
                     'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                     '/users/admin/msp/cacerts;'
                     'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                     '/users/admin/msp/keystore;'
                     'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                     '/users/admin/msp/signcerts;'
                     'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                     '/users/admin/msp/tlscacerts;'
                     'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                     '/users/admin/tls;'
                     '')
        for index in range(int(settings.NUM_PEERS)):
            peer_cmd += (
                ''
                'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                '/peers/peer' + str(index) + '.' + domain + '/msp/admincerts;'
                'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                '/peers/peer' + str(index) + '.' + domain + '/msp/cacerts;'
                'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                '/peers/peer' + str(index) + '.' + domain + '/msp/keystore;'
                'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                '/peers/peer' + str(index) + '.' + domain + '/msp/signcerts;'
                'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                '/peers/peer' + str(index) + '.' + domain + '/msp/tlscacerts;'
                'mkdir -p crypto-config-v1/peerOrganizations/' + domain +
                '/peers/peer' + str(index) + '.' + domain + '/tls;'
                'cp ica-' + peer +
                '-ca-chain.pem crypto-config-v1/peerOrganizations/' + domain +
                '/peers/peer' + str(index) + '.' + domain +
                '/msp/cacerts/ca.' + domain + '-cert.pem;'
                'cp ica-' + peer +
                '-ca-chain.pem crypto-config-v1/peerOrganizations/' + domain +
                '/peers/peer' + str(index) + '.' + domain +
                '/msp/tlscacerts/tlsca.' + domain + '-cert.pem;'
                'cp ica-' + peer +
                '-ca-chain.pem crypto-config-v1/peerOrganizations/' + domain +
                '/peers/peer' + str(index) + '.' + domain + '/tls/tlsca.' +
                domain + '-cert.pem;'
                'cp crypto-config/' + peer + '.' + domain +
                '/users/admin/msp/signcerts/cert.pem crypto-config-v1/peerOrganizations/'
                + domain + '/peers/peer' + str(index) + '.' + domain +
                '/msp/admincerts/cert.pem;'
                'cp crypto-config/' + peer + '.' + domain + '/peers/peer' +
                str(index) + '-' + peer + '.' + domain +
                '/msp/signcerts/cert.pem crypto-config-v1/peerOrganizations/' +
                domain + '/peers/peer' + str(index) + '.' + domain +
                '/msp/signcerts/;'
                'cp crypto-config/' + peer + '.' + domain + '/peers/peer' +
                str(index) + '-' + peer + '.' + domain +
                '/msp/keystore/*_sk crypto-config-v1/peerOrganizations/' +
                domain + '/peers/peer' + str(index) + '.' + domain +
                '/msp/keystore/key.pem;'
                'cp crypto-config/' + peer + '.' + domain + '/peers/peer' +
                str(index) + '-' + peer + '.' + domain +
                '/tls/server.crt crypto-config-v1/peerOrganizations/' +
                domain + '/peers/peer' + str(index) + '.' + domain + '/tls/;'
                'cp crypto-config/' + peer + '.' + domain + '/peers/peer' +
                str(index) + '-' + peer + '.' + domain +
                '/tls/server.key crypto-config-v1/peerOrganizations/' +
                domain + '/peers/peer' + str(index) + '.' + domain +
                '/tls/server.key;'
                '')
        peer_cmd += (
            ''
            'cp ica-' + peer +
            '-ca-chain.pem crypto-config-v1/peerOrganizations/' + domain +
            '/ca/ca.' + domain + '-cert.pem;'
            'cp ica-' + peer +
            '-ca-chain.pem crypto-config-v1/peerOrganizations/' + domain +
            '/msp/cacerts/ca.' + domain + '-cert.pem;'
            'cp ica-' + peer +
            '-ca-chain.pem crypto-config-v1/peerOrganizations/' + domain +
            '/users/admin/msp/cacerts/ca.' + domain + '-cert.pem;'
            'cp ica-' + peer +
            '-ca-chain.pem crypto-config-v1/peerOrganizations/' + domain +
            '/tlsca/tlsca.' + domain + '-cert.pem;'
            'cp ica-' + peer +
            '-ca-chain.pem crypto-config-v1/peerOrganizations/' + domain +
            '/msp/tlscacerts/tlsca.' + domain + '-cert.pem;'
            'cp ica-' + peer +
            '-ca-chain.pem crypto-config-v1/peerOrganizations/' + domain +
            '/users/admin/msp/tlscacerts/tlsca.' + domain + '-cert.pem;'
            'cp ica-' + peer +
            '-ca-chain.pem crypto-config-v1/peerOrganizations/' + domain +
            '/users/admin/tls/tlsca.' + domain + '-cert.pem;'
            'cp crypto-config/' + peer + '.' + domain +
            '/users/admin/msp/signcerts/cert.pem crypto-config-v1/peerOrganizations/'
            + domain + '/msp/admincerts/cert.pem;'
            'cp crypto-config/' + peer + '.' + domain +
            '/users/admin/msp/signcerts/cert.pem crypto-config-v1/peerOrganizations/'
            + domain + '/users/admin/msp/admincerts/cert.pem;'
            'cp crypto-config/' + peer + '.' + domain +
            '/users/admin/msp/keystore/* crypto-config-v1/peerOrganizations/' +
            domain + '/users/admin/msp/keystore/key.pem;'
            'cp crypto-config/' + peer + '.' + domain +
            '/users/admin/msp/signcerts/cert.pem crypto-config-v1/peerOrganizations/'
            + domain + '/users/admin/msp/signcerts/cert.pem;'
            '')
    all_command += peer_cmd

    # Exec command
    exec_command = ['/bin/bash', '-c', '%s' % (all_command)]

    result_get_folder = settings.k8s.exec_pod(podName=pods[0],
                                              namespace="default",
                                              command=exec_command)
    hiss.sub_echo(result_get_folder.data)
    return True
Ejemplo n.º 26
0
def generate_explorer_config():
    # Load template config
    config_template_path = os.path.abspath(os.path.join(__file__, "../config.json"))
    with open(config_template_path, 'r') as f:
        explorer_config = json.load(f)

    # Update config
    orgs = settings.PEER_ORGS.split(' ')
    orgs_msp = []
    for org in orgs:
        orgs_msp.append('%sMSP' % org)

    client = {
        orgs[0]: {
            'tlsEnable': True,
            'organization': orgs_msp[0],
            'channel': settings.CHANNEL_NAME,
            'credentialStore': {
                'path': '/opt/explorer/crypto-path/fabric-client-kv-%s' % orgs[0],
                'cryptoStore': {
                    'path': '/tmp/crypto-store/fabric-client-kv-%s' % orgs[0]
                }
            }
        }
    }
    explorer_config['network-configs']['network-1']['clients'] = client

    channel_peers = {}
    for x in range(len(orgs)):
        domain = util.get_domain(orgs[x])
        for y in range(int(settings.NUM_PEERS)):
            peer_name = 'peer%s-%s.%s' % (y, orgs[x], domain)
            channel_peers[peer_name] = {}
    explorer_config['network-configs']['network-1']['channels'] = {
        '%s' % settings.CHANNEL_NAME: {
            'peers': channel_peers,
            'connection': {
                'timeout': {
                    'peer': {
                        "endorser": "6000",
                        "eventReg": "6000",
                        "eventHub": "6000"
                    }
                }
            }
        }
    }

    orgs_config = {}
    # org
    for i in range(len(orgs)):
        domain = util.get_domain(orgs[i])
        p_config = {
            'mspid': '%s' % orgs_msp[i],
            'fullpath': False,
            'adminPrivateKey': {
                'path': '/opt/explorer/crypto-config/peerOrganizations/%s/users/admin/msp/keystore' % domain
            },
            'signedCert': {
                'path': '/opt/explorer/crypto-config/peerOrganizations/%s/users/admin/msp/signcerts' % domain
            }
        }
        orgs_config[orgs_msp[i]] = p_config
    # orderer
    orderers = settings.ORDERER_ORGS.split(' ')
    domain = util.get_domain(orderers[0])
    o_config = {
        'mspid': '%sMSP' % orderers[0],
        'adminPrivateKey': {
            'path': '/opt/explorer/crypto-config/ordererOrganizations/'+domain+'/users/admin/msp/keystore'
        }
    }
    orgs_config['%sMSP' % settings.ORDERER_ORGS] = o_config
    explorer_config['network-configs']['network-1']['organizations'] = orgs_config
    
    # peers
    peers_config = {}
    for x in range(len(orgs)):
        domain = util.get_domain(orgs[x])
        for y in range(int(settings.NUM_PEERS)):
            peer_name = 'peer%s-%s.%s' % (y, orgs[x], domain)
            config = {
                'tlsCACerts': {
                    'path': '/opt/explorer/crypto-config/peerOrganizations/'+domain+'/peers/peer%s.%s' % (y, domain)+'/tls/tlsca.mambatest-cert.pem'
                },
                'url':  'grpcs://%s:7051' % peer_name,
                'eventUrl': 'grpcs://%s:7053' % peer_name,
                'grpcOptions': {
                    'ssl-target-name-override': peer_name
                }
            }
            peers_config[peer_name] = config
    explorer_config['network-configs']['network-1']['peers'] = peers_config
    # orderers
    orderers_config = {}
    for x in range(len(orderers)):
        domain = util.get_domain(orderers[x])
        for y in range(int(settings.NUM_ORDERERS)):
            orderer_name = 'orderer%s-%s.%s' % (y, orderers[y], domain)
            config = {
                'url': 'grpcs://%s:7050' % orderer_name,
                'grpcOptions': {
                    'ssl-target-name-override': orderer_name
                },
                'tlsCACerts': {
                    'path': '/opt/explorer/crypto-config/ordererOrganizations/'+domain+'/orderers/orderer%s.%s' % (y, domain)+'/tls/tlsca.ordererhai-cert.pem'
                }
            }
            orderers_config[orderer_name] = config
    explorer_config['network-configs']['network-1']['orderers'] = orderers_config

    return json.dumps(explorer_config)
Ejemplo n.º 27
0
def setup_admin(org):

    # Get domain
    domain = util.get_domain(org)

    # Get orderer information
    orderer_names = settings.ORDERER_ORGS.split(' ')
    orderer_domains = settings.ORDERER_DOMAINS.split(' ')
    if orderer_names == '' and settings.REMOTE_ORDERER_NAME != '':
        orderer_names = settings.REMOTE_ORDERER_NAME.split(' ')
        orderer_domains = settings.REMOTE_ORDERER_DOMAIN.split(' ')

    # Build endorsement config
    peer_orgs = '%s %s' % (settings.PEER_ORGS, settings.ENDORSEMENT_ORG_NAME)
    peer_domains = '%s %s' % (settings.PEER_DOMAINS,
                              settings.ENDORSEMENT_ORG_DOMAIN)
    print(peer_orgs)

    # Create application artifact folder
    hiss.echo('Create wallet folder')
    ## Find efs pod
    pods = settings.k8s.find_pod(namespace="default", keyword="test-efs")
    if not pods:
        return hiss.hiss('cannot find tiller pod')

    mkdir_cmd = ('mkdir -p ' + settings.EFS_ROOT + '/admin-v2/wallet;')

    # Exec command
    exec_command = ['/bin/bash', '-c', '%s' % (mkdir_cmd)]

    result_get_folder = settings.k8s.exec_pod(podName=pods[0],
                                              namespace="default",
                                              command=exec_command)
    hiss.sub_echo(result_get_folder.data)

    # Create temp folder & namespace
    settings.k8s.prereqs(domain)
    dict_env = {
        'ORG_NAME': org,
        'ORG_DOMAIN': domain,
        'PEER_NAMES': peer_orgs,
        'PEER_DOMAINS': peer_domains,
        'ORDERER_DOMAIN': orderer_domains[0],
        'ORGDERER_NAME': orderer_names[0],
        'EFS_SERVER': settings.EFS_SERVER,
        'EFS_PATH': settings.EFS_PATH,
        'EFS_EXTEND': settings.EFS_EXTEND,
        'PVS_PATH': settings.PVS_PATH
    }

    # Apply deployment
    k8s_template_file = '%s/admin/admin-deployment.yaml' % util.get_k8s_template_path(
    )
    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=k8s_template_file,
                                          dict_env=dict_env)

    # Apply service
    k8s_template_file = '%s/admin/admin-service.yaml' % util.get_k8s_template_path(
    )
    settings.k8s.apply_yaml_from_template(namespace=domain,
                                          k8s_template_file=k8s_template_file,
                                          dict_env=dict_env)