github.com/kaituanwang/hyperledger@v2.0.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 }