@@ -487,20 +487,14 @@ func (c *Config) ChannelPeers(name string) ([]apiconfig.ChannelPeer, error) {
487487 p .TLSCACerts .Path = strings .Replace (p .TLSCACerts .Path , "$GOPATH" , os .Getenv ("GOPATH" ), - 1 )
488488 }
489489
490- var mspID string
491-
492- // Find organisation/msp that peer belongs to
493- for _ , org := range netConfig .Organizations {
494- for i := 0 ; i < len (org .Peers ); i ++ {
495- if strings .EqualFold (org .Peers [i ], peerName ) {
496- // peer belongs to this org add org msp
497- mspID = org .MspID
498- break
499- }
500- }
490+ mspID , err := c .PeerMspID (peerName )
491+ if err != nil {
492+ return nil , errors .Errorf ("failed to retrieve msp id for peer %s" , peerName )
501493 }
502494
503- peer := apiconfig.ChannelPeer {PeerChannelConfig : chPeerConfig , PeerConfig : p , MspID : mspID }
495+ networkPeer := apiconfig.NetworkPeer {PeerConfig : p , MspID : mspID }
496+
497+ peer := apiconfig.ChannelPeer {PeerChannelConfig : chPeerConfig , NetworkPeer : networkPeer }
504498
505499 peers = append (peers , peer )
506500 }
@@ -509,6 +503,61 @@ func (c *Config) ChannelPeers(name string) ([]apiconfig.ChannelPeer, error) {
509503
510504}
511505
506+ // NetworkPeers returns the network peers configuration
507+ func (c * Config ) NetworkPeers () ([]apiconfig.NetworkPeer , error ) {
508+ netConfig , err := c .NetworkConfig ()
509+ if err != nil {
510+ return nil , err
511+ }
512+
513+ netPeers := []apiconfig.NetworkPeer {}
514+
515+ for name , p := range netConfig .Peers {
516+
517+ if err = verifyPeerConfig (p , name , urlutil .IsTLSEnabled (p .URL )); err != nil {
518+ return nil , err
519+ }
520+
521+ if p .TLSCACerts .Path != "" {
522+ p .TLSCACerts .Path = strings .Replace (p .TLSCACerts .Path , "$GOPATH" , os .Getenv ("GOPATH" ), - 1 )
523+ }
524+
525+ mspID , err := c .PeerMspID (name )
526+ if err != nil {
527+ return nil , errors .Errorf ("failed to retrieve msp id for peer %s" , name )
528+ }
529+
530+ netPeer := apiconfig.NetworkPeer {PeerConfig : p , MspID : mspID }
531+ netPeers = append (netPeers , netPeer )
532+ }
533+
534+ return netPeers , nil
535+ }
536+
537+ // PeerMspID returns msp that peer belongs to
538+ func (c * Config ) PeerMspID (name string ) (string , error ) {
539+ netConfig , err := c .NetworkConfig ()
540+ if err != nil {
541+ return "" , err
542+ }
543+
544+ var mspID string
545+
546+ // Find organisation/msp that peer belongs to
547+ for _ , org := range netConfig .Organizations {
548+ for i := 0 ; i < len (org .Peers ); i ++ {
549+ if strings .EqualFold (org .Peers [i ], name ) {
550+ // peer belongs to this org add org msp
551+ mspID = org .MspID
552+ break
553+ }
554+ }
555+ }
556+
557+ return mspID , nil
558+
559+ }
560+
512561func verifyPeerConfig (p apiconfig.PeerConfig , peerName string , tlsEnabled bool ) error {
513562 if p .URL == "" {
514563 return errors .Errorf ("URL does not exist or empty for peer %s" , peerName )
0 commit comments