go_study/fabric-main/integration/nwo/components.go

77 lines
1.7 KiB
Go

/*
Copyright IBM Corp All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package nwo
import (
"fmt"
"io/ioutil"
"net/http"
"github.com/hyperledger/fabric/integration/nwo/runner"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gexec"
)
type Components struct {
ServerAddress string `json:"server_address"`
}
func (c *Components) ConfigTxGen() string {
return c.Build("github.com/hyperledger/fabric/cmd/configtxgen")
}
func (c *Components) Cryptogen() string {
return c.Build("github.com/hyperledger/fabric/cmd/cryptogen")
}
func (c *Components) Discover() string {
return c.Build("github.com/hyperledger/fabric/cmd/discover")
}
func (c *Components) Idemixgen() string {
idemixgen, err := gexec.Build("github.com/IBM/idemix/tools/idemixgen", "-mod=mod")
Expect(err).NotTo(HaveOccurred())
return idemixgen
}
func (c *Components) Orderer() string {
return c.Build("github.com/hyperledger/fabric/cmd/orderer")
}
func (c *Components) Osnadmin() string {
return c.Build("github.com/hyperledger/fabric/cmd/osnadmin")
}
func (c *Components) Peer() string {
return c.Build("github.com/hyperledger/fabric/cmd/peer")
}
func (c *Components) Cleanup() {}
func (c *Components) Build(path string) string {
Expect(c.ServerAddress).NotTo(BeEmpty(), "build server address is empty")
resp, err := http.Get(fmt.Sprintf("http://%s/%s", c.ServerAddress, path))
Expect(err).NotTo(HaveOccurred())
body, err := ioutil.ReadAll(resp.Body)
Expect(err).NotTo(HaveOccurred())
if resp.StatusCode != http.StatusOK {
Expect(resp.StatusCode).To(Equal(http.StatusOK), string(body))
}
return string(body)
}
const CCEnvDefaultImage = "hyperledger/fabric-ccenv:latest"
var RequiredImages = []string{
CCEnvDefaultImage,
runner.CouchDBDefaultImage,
}