go_study/fabric-main/integration/nwo/commands/peer.go

935 lines
18 KiB
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package commands
import (
"strconv"
"time"
)
type NodeStart struct {
PeerID string
DevMode bool
}
func (n NodeStart) SessionName() string {
return n.PeerID
}
func (n NodeStart) Args() []string {
args := []string{"node", "start"}
if n.DevMode {
args = append(args, "--peer-chaincodedev")
}
return args
}
type NodeReset struct{}
func (n NodeReset) SessionName() string {
return "peer-node-reset"
}
func (n NodeReset) Args() []string {
return []string{
"node", "reset",
}
}
type NodeRollback struct {
ChannelID string
BlockNumber int
}
func (n NodeRollback) SessionName() string {
return "peer-node-rollback"
}
func (n NodeRollback) Args() []string {
return []string{
"node", "rollback",
"--channelID", n.ChannelID,
"--blockNumber", strconv.Itoa(n.BlockNumber),
}
}
type NodePause struct {
ChannelID string
}
func (n NodePause) SessionName() string {
return "peer-node-pause"
}
func (n NodePause) Args() []string {
return []string{
"node", "pause",
"--channelID", n.ChannelID,
}
}
type NodeResume struct {
ChannelID string
}
func (n NodeResume) SessionName() string {
return "peer-node-resume"
}
func (n NodeResume) Args() []string {
return []string{
"node", "resume",
"--channelID", n.ChannelID,
}
}
type NodeUnjoin struct {
ChannelID string
}
func (n NodeUnjoin) SessionName() string {
return "peer-node-unjoin"
}
func (n NodeUnjoin) Args() []string {
return []string{
"node", "unjoin",
"--channelID", n.ChannelID,
}
}
type ChannelCreate struct {
ChannelID string
Orderer string
File string
OutputBlock string
ClientAuth bool
}
func (c ChannelCreate) SessionName() string {
return "peer-channel-create"
}
func (c ChannelCreate) Args() []string {
args := []string{
"channel", "create",
"--channelID", c.ChannelID,
"--orderer", c.Orderer,
"--file", c.File,
"--outputBlock", c.OutputBlock,
"--timeout", "15s",
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChannelJoin struct {
BlockPath string
ClientAuth bool
}
func (c ChannelJoin) SessionName() string {
return "peer-channel-join"
}
func (c ChannelJoin) Args() []string {
args := []string{
"channel", "join",
"-b", c.BlockPath,
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChannelJoinBySnapshot struct {
SnapshotPath string
ClientAuth bool
}
func (c ChannelJoinBySnapshot) SessionName() string {
return "peer-channel-joinbysnapshot"
}
func (c ChannelJoinBySnapshot) Args() []string {
args := []string{
"channel", "joinbysnapshot",
"--snapshotpath", c.SnapshotPath,
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChannelJoinBySnapshotStatus struct {
ClientAuth bool
}
func (c ChannelJoinBySnapshotStatus) SessionName() string {
return "peer-channel-joinbysnapshotstatus"
}
func (c ChannelJoinBySnapshotStatus) Args() []string {
args := []string{
"channel", "joinbysnapshotstatus",
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChannelFetch struct {
ChannelID string
Block string
Orderer string
OutputFile string
ClientAuth bool
TLSHandshakeTimeShift time.Duration
}
func (c ChannelFetch) SessionName() string {
return "peer-channel-fetch"
}
func (c ChannelFetch) Args() []string {
args := []string{
"channel", "fetch", c.Block,
"--channelID", c.ChannelID,
"--orderer", c.Orderer,
"--tlsHandshakeTimeShift", c.TLSHandshakeTimeShift.String(),
c.OutputFile,
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodePackage struct {
Path string
Lang string
Label string
OutputFile string
ClientAuth bool
}
func (c ChaincodePackage) SessionName() string {
return "peer-lifecycle-chaincode-package"
}
func (c ChaincodePackage) Args() []string {
args := []string{
"lifecycle", "chaincode", "package",
"--path", c.Path,
"--lang", c.Lang,
"--label", c.Label,
c.OutputFile,
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodePackageLegacy struct {
Name string
Version string
Path string
Lang string
OutputFile string
ClientAuth bool
}
func (c ChaincodePackageLegacy) SessionName() string {
return "peer-chaincode-package"
}
func (c ChaincodePackageLegacy) Args() []string {
args := []string{
"chaincode", "package",
"--name", c.Name,
"--version", c.Version,
"--path", c.Path,
c.OutputFile,
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
if c.Lang != "" {
args = append(args, "--lang", c.Lang)
}
return args
}
type ChaincodeCalculatePackageID struct {
PackageFile string
ClientAuth bool
}
func (c ChaincodeCalculatePackageID) SessionName() string {
return "peer-lifecycle-chaincode-calculatepackageid"
}
func (c ChaincodeCalculatePackageID) Args() []string {
args := []string{
"lifecycle", "chaincode", "calculatepackageid",
c.PackageFile,
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeInstall struct {
PackageFile string
PeerAddresses []string
ClientAuth bool
}
func (c ChaincodeInstall) SessionName() string {
return "peer-lifecycle-chaincode-install"
}
func (c ChaincodeInstall) Args() []string {
args := []string{
"lifecycle", "chaincode", "install",
c.PackageFile,
}
for _, p := range c.PeerAddresses {
args = append(args, "--peerAddresses", p)
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeGetInstalledPackage struct {
PackageID string
OutputDirectory string
ClientAuth bool
}
func (c ChaincodeGetInstalledPackage) SessionName() string {
return "peer-lifecycle-chaincode-getinstalledpackage"
}
func (c ChaincodeGetInstalledPackage) Args() []string {
args := []string{
"lifecycle", "chaincode", "getinstalledpackage",
"--package-id", c.PackageID,
"--output-directory", c.OutputDirectory,
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeInstallLegacy struct {
Name string
Version string
Path string
Lang string
PackageFile string
ClientAuth bool
}
func (c ChaincodeInstallLegacy) SessionName() string {
return "peer-chaincode-install"
}
func (c ChaincodeInstallLegacy) Args() []string {
args := []string{
"chaincode", "install",
}
if c.PackageFile != "" {
args = append(args, c.PackageFile)
}
if c.Name != "" {
args = append(args, "--name", c.Name)
}
if c.Version != "" {
args = append(args, "--version", c.Version)
}
if c.Path != "" {
args = append(args, "--path", c.Path)
}
if c.Lang != "" {
args = append(args, "--lang", c.Lang)
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeApproveForMyOrg struct {
ChannelID string
Orderer string
Name string
Version string
PackageID string
Sequence string
EndorsementPlugin string
ValidationPlugin string
SignaturePolicy string
ChannelConfigPolicy string
InitRequired bool
CollectionsConfig string
PeerAddresses []string
WaitForEvent bool
ClientAuth bool
}
func (c ChaincodeApproveForMyOrg) SessionName() string {
return "peer-lifecycle-chaincode-approveformyorg"
}
func (c ChaincodeApproveForMyOrg) Args() []string {
args := []string{
"lifecycle", "chaincode", "approveformyorg",
"--channelID", c.ChannelID,
"--orderer", c.Orderer,
"--name", c.Name,
"--version", c.Version,
"--package-id", c.PackageID,
"--sequence", c.Sequence,
"--endorsement-plugin", c.EndorsementPlugin,
"--validation-plugin", c.ValidationPlugin,
"--signature-policy", c.SignaturePolicy,
"--channel-config-policy", c.ChannelConfigPolicy,
}
if c.InitRequired {
args = append(args, "--init-required")
}
if c.CollectionsConfig != "" {
args = append(args, "--collections-config", c.CollectionsConfig)
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
for _, p := range c.PeerAddresses {
args = append(args, "--peerAddresses", p)
}
return args
}
type ChaincodeQueryApproved struct {
ChannelID string
Name string
Sequence string
PeerAddresses []string
ClientAuth bool
}
func (c ChaincodeQueryApproved) SessionName() string {
return "peer-lifecycle-chaincode-queryapproved"
}
func (c ChaincodeQueryApproved) Args() []string {
args := []string{
"lifecycle", "chaincode", "queryapproved",
"--channelID", c.ChannelID,
"--name", c.Name,
"--sequence", c.Sequence,
"--output", "json",
}
for _, p := range c.PeerAddresses {
args = append(args, "--peerAddresses", p)
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeCheckCommitReadiness struct {
ChannelID string
Name string
Version string
Sequence string
EndorsementPlugin string
ValidationPlugin string
SignaturePolicy string
ChannelConfigPolicy string
InitRequired bool
CollectionsConfig string
PeerAddresses []string
ClientAuth bool
}
func (c ChaincodeCheckCommitReadiness) SessionName() string {
return "peer-lifecycle-chaincode-checkcommitreadiness"
}
func (c ChaincodeCheckCommitReadiness) Args() []string {
args := []string{
"lifecycle", "chaincode", "checkcommitreadiness",
"--channelID", c.ChannelID,
"--name", c.Name,
"--version", c.Version,
"--sequence", c.Sequence,
"--endorsement-plugin", c.EndorsementPlugin,
"--validation-plugin", c.ValidationPlugin,
"--signature-policy", c.SignaturePolicy,
"--channel-config-policy", c.ChannelConfigPolicy,
"--output", "json",
}
if c.InitRequired {
args = append(args, "--init-required")
}
if c.CollectionsConfig != "" {
args = append(args, "--collections-config", c.CollectionsConfig)
}
for _, p := range c.PeerAddresses {
args = append(args, "--peerAddresses", p)
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeCommit struct {
ChannelID string
Orderer string
Name string
Version string
Sequence string
EndorsementPlugin string
ValidationPlugin string
SignaturePolicy string
ChannelConfigPolicy string
InitRequired bool
CollectionsConfig string
PeerAddresses []string
WaitForEvent bool
ClientAuth bool
}
func (c ChaincodeCommit) SessionName() string {
return "peer-lifecycle-chaincode-commit"
}
func (c ChaincodeCommit) Args() []string {
args := []string{
"lifecycle", "chaincode", "commit",
"--channelID", c.ChannelID,
"--orderer", c.Orderer,
"--name", c.Name,
"--version", c.Version,
"--sequence", c.Sequence,
"--endorsement-plugin", c.EndorsementPlugin,
"--validation-plugin", c.ValidationPlugin,
"--signature-policy", c.SignaturePolicy,
"--channel-config-policy", c.ChannelConfigPolicy,
}
if c.InitRequired {
args = append(args, "--init-required")
}
for _, p := range c.PeerAddresses {
args = append(args, "--peerAddresses", p)
}
if c.CollectionsConfig != "" {
args = append(args, "--collections-config", c.CollectionsConfig)
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeInstantiateLegacy struct {
ChannelID string
Orderer string
Name string
Version string
Ctor string
Policy string
Lang string
CollectionsConfig string
ClientAuth bool
}
func (c ChaincodeInstantiateLegacy) SessionName() string {
return "peer-chaincode-instantiate"
}
func (c ChaincodeInstantiateLegacy) Args() []string {
args := []string{
"chaincode", "instantiate",
"--channelID", c.ChannelID,
"--orderer", c.Orderer,
"--name", c.Name,
"--version", c.Version,
"--ctor", c.Ctor,
"--policy", c.Policy,
}
if c.CollectionsConfig != "" {
args = append(args, "--collections-config", c.CollectionsConfig)
}
if c.Lang != "" {
args = append(args, "--lang", c.Lang)
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeQueryInstalled struct {
ClientAuth bool
}
func (c ChaincodeQueryInstalled) SessionName() string {
return "peer-lifecycle-chaincode-queryinstalled"
}
func (c ChaincodeQueryInstalled) Args() []string {
args := []string{
"lifecycle", "chaincode", "queryinstalled",
"--output", "json",
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeListInstalledLegacy struct {
ClientAuth bool
}
func (c ChaincodeListInstalledLegacy) SessionName() string {
return "peer-chaincode-list-installed"
}
func (c ChaincodeListInstalledLegacy) Args() []string {
args := []string{
"chaincode", "list", "--installed",
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeListCommitted struct {
ChannelID string
Name string
ClientAuth bool
}
func (c ChaincodeListCommitted) SessionName() string {
return "peer-lifecycle-chaincode-querycommitted"
}
func (c ChaincodeListCommitted) Args() []string {
args := []string{
"lifecycle", "chaincode", "querycommitted",
"--channelID", c.ChannelID,
"--name", c.Name,
"--output", "json",
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeListInstantiatedLegacy struct {
ChannelID string
ClientAuth bool
}
func (c ChaincodeListInstantiatedLegacy) SessionName() string {
return "peer-chaincode-list-instantiated"
}
func (c ChaincodeListInstantiatedLegacy) Args() []string {
args := []string{
"chaincode", "list", "--instantiated",
"--channelID", c.ChannelID,
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeQuery struct {
ChannelID string
Name string
Ctor string
ClientAuth bool
}
func (c ChaincodeQuery) SessionName() string {
return "peer-chaincode-query"
}
func (c ChaincodeQuery) Args() []string {
args := []string{
"chaincode", "query",
"--channelID", c.ChannelID,
"--name", c.Name,
"--ctor", c.Ctor,
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeInvoke struct {
ChannelID string
Orderer string
Name string
Ctor string
Transient string
PeerAddresses []string
WaitForEvent bool
IsInit bool
ClientAuth bool
}
func (c ChaincodeInvoke) SessionName() string {
return "peer-chaincode-invoke"
}
func (c ChaincodeInvoke) Args() []string {
args := []string{
"chaincode", "invoke",
"--channelID", c.ChannelID,
"--orderer", c.Orderer,
"--name", c.Name,
"--ctor", c.Ctor,
}
if c.Transient != "" {
args = append(args, "--transient", c.Transient)
}
for _, p := range c.PeerAddresses {
args = append(args, "--peerAddresses", p)
}
if c.WaitForEvent {
args = append(args, "--waitForEvent")
}
if c.IsInit {
args = append(args, "--isInit")
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChaincodeUpgradeLegacy struct {
Name string
Version string
Path string // optional
ChannelID string
Orderer string
Ctor string
Policy string
CollectionsConfig string // optional
ClientAuth bool
}
func (c ChaincodeUpgradeLegacy) SessionName() string {
return "peer-chaincode-upgrade"
}
func (c ChaincodeUpgradeLegacy) Args() []string {
args := []string{
"chaincode", "upgrade",
"--name", c.Name,
"--version", c.Version,
"--channelID", c.ChannelID,
"--orderer", c.Orderer,
"--ctor", c.Ctor,
"--policy", c.Policy,
}
if c.Path != "" {
args = append(args, "--path", c.Path)
}
if c.CollectionsConfig != "" {
args = append(args, "--collections-config", c.CollectionsConfig)
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type SignConfigTx struct {
File string
ClientAuth bool
}
func (s SignConfigTx) SessionName() string {
return "peer-channel-signconfigtx"
}
func (s SignConfigTx) Args() []string {
args := []string{
"channel", "signconfigtx",
"--file", s.File,
}
if s.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChannelUpdate struct {
ChannelID string
Orderer string
File string
ClientAuth bool
TLSHandshakeTimeShift time.Duration
}
func (c ChannelUpdate) SessionName() string {
return "peer-channel-update"
}
func (c ChannelUpdate) Args() []string {
args := []string{
"channel", "update",
"--channelID", c.ChannelID,
"--orderer", c.Orderer,
"--file", c.File,
"--tlsHandshakeTimeShift", c.TLSHandshakeTimeShift.String(),
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type ChannelInfo struct {
ChannelID string
ClientAuth bool
}
func (c ChannelInfo) SessionName() string {
return "peer-channel-info"
}
func (c ChannelInfo) Args() []string {
args := []string{
"channel", "getinfo",
"-c", c.ChannelID,
}
if c.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type SnapshotSubmitRequest struct {
ChannelID string
BlockNumber string
ClientAuth bool
PeerAddress string
}
func (s SnapshotSubmitRequest) SessionName() string {
return "peer-snapshot-submit"
}
func (s SnapshotSubmitRequest) Args() []string {
args := []string{
"snapshot", "submitrequest",
"--channelID", s.ChannelID,
"--blockNumber", s.BlockNumber,
"--peerAddress", s.PeerAddress,
}
if s.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type SnapshotCancelRequest struct {
ChannelID string
BlockNumber string
ClientAuth bool
PeerAddress string
}
func (s SnapshotCancelRequest) SessionName() string {
return "peer-snapshot-submit"
}
func (s SnapshotCancelRequest) Args() []string {
args := []string{
"snapshot", "cancelrequest",
"--channelID", s.ChannelID,
"--blockNumber", s.BlockNumber,
"--peerAddress", s.PeerAddress,
}
if s.ClientAuth {
args = append(args, "--clientauth")
}
return args
}
type SnapshotListPending struct {
ChannelID string
ClientAuth bool
PeerAddress string
}
func (s SnapshotListPending) SessionName() string {
return "peer-snapshot-submit"
}
func (s SnapshotListPending) Args() []string {
args := []string{
"snapshot", "listpending",
"--channelID", s.ChannelID,
"--peerAddress", s.PeerAddress,
}
if s.ClientAuth {
args = append(args, "--clientauth")
}
return args
}