github.com/true-sqn/fabric@v2.1.1+incompatible/core/ledger/util/couchdbtest/couchdb.go (about)

     1  /*
     2  Copyright IBM Corp. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package couchdbtest
     8  
     9  import (
    10  	"fmt"
    11  	"os"
    12  
    13  	"github.com/hyperledger/fabric/integration/runner"
    14  )
    15  
    16  // CouchDBSetup setup external couchDB resource.
    17  func CouchDBSetup(binds []string) (addr string, cleanup func()) {
    18  	// check if couchDB is being started externally.
    19  	externalCouch, set := os.LookupEnv("COUCHDB_ADDR")
    20  	if set {
    21  		return externalCouch, func() {}
    22  	}
    23  
    24  	couchDB := &runner.CouchDB{}
    25  	couchDB.Binds = binds
    26  
    27  	err := couchDB.Start()
    28  	if err != nil {
    29  		err = fmt.Errorf("failed to start couchDB : %s", err)
    30  		panic(err)
    31  	}
    32  
    33  	return couchDB.Address(), func() { couchDB.Stop() }
    34  }