@@ -2,9 +2,10 @@ package cmd
22
33import (
44 "bytes"
5- "crypto/tls "
5+ "context "
66 "encoding/json"
77 "fmt"
8+ "time"
89
910 "github.com/pkg/errors"
1011 "github.com/spf13/cobra"
@@ -14,16 +15,16 @@ import (
1415 sdk "github.com/cosmos/cosmos-sdk/types"
1516
1617 dtypes "github.com/akash-network/akash-api/go/node/deployment/v1beta3"
18+ ptypes "github.com/akash-network/akash-api/go/node/provider/v1beta3"
19+ leasev1 "github.com/akash-network/akash-api/go/provider/lease/v1"
1720 "github.com/akash-network/node/sdl"
1821 cutils "github.com/akash-network/node/x/cert/utils"
1922
2023 aclient "github.com/akash-network/provider/client"
21- gwrest "github.com/akash-network/provider/gateway/rest "
24+ gwgrpc "github.com/akash-network/provider/gateway/grpc "
2225)
2326
24- var (
25- errSubmitManifestFailed = errors .New ("submit manifest to some providers has been failed" )
26- )
27+ var errSubmitManifestFailed = errors .New ("submit manifest to some providers has been failed" )
2728
2829// SendManifestCmd looks up the Providers blockchain information,
2930// and POSTs the SDL file to the Gateway address.
@@ -94,32 +95,50 @@ func doSendManifest(cmd *cobra.Command, sdlpath string) error {
9495 ErrorMessage string `json:"errorMessage,omitempty" yaml:"errorMessage,omitempty"`
9596 }
9697
97- results := make ([]result , len (leases ))
98-
99- submitFailed := false
98+ var (
99+ results = make ([]result , len (leases ))
100+ submitFailed = false
101+ )
100102
101103 for i , lid := range leases {
102- prov , _ := sdk .AccAddressFromBech32 (lid .Provider )
103- gclient , err := gwrest .NewClient (cl , prov , []tls.Certificate {cert })
104- if err != nil {
105- return err
106- }
104+ err := func () error {
105+ ctx , cancel := context .WithTimeout (ctx , 5 * time .Second )
106+ defer cancel ()
107+
108+ provAddr , _ := sdk .AccAddressFromBech32 (lid .Provider )
109+ prov , err := cl .Provider (context .Background (), & ptypes.QueryProviderRequest {Owner : provAddr .String ()})
110+ if err != nil {
111+ return fmt .Errorf ("query client provider: %w" , err )
112+ }
107113
108- err = gclient .SubmitManifest (cmd .Context (), dseq , mani )
109- res := result {
110- Provider : prov ,
111- Status : "PASS" ,
112- }
113- if err != nil {
114- res .Error = err .Error ()
115- if e , valid := err .(gwrest.ClientResponseError ); valid {
116- res .ErrorMessage = e .Message
114+ c , err := gwgrpc .NewClient (ctx , prov .GetProvider ().HostURI , cert , cl )
115+ if err != nil {
116+ return fmt .Errorf ("new grpc conn: %w" , err )
117117 }
118- res .Status = "FAIL"
119- submitFailed = true
120- }
121118
122- results [i ] = res
119+ defer c .Close ()
120+
121+ res := result {
122+ Provider : provAddr ,
123+ Status : "PASS" ,
124+ }
125+
126+ if _ , err = c .SendManifest (ctx , & leasev1.SendManifestRequest {
127+ LeaseId : lid ,
128+ Manifest : mani ,
129+ }); err != nil {
130+ res .Error = err .Error ()
131+ res .Status = "FAIL"
132+ submitFailed = true
133+ }
134+
135+ results [i ] = res
136+
137+ return nil
138+ }()
139+ if err != nil {
140+ return err
141+ }
123142 }
124143
125144 buf := & bytes.Buffer {}
@@ -146,7 +165,6 @@ func doSendManifest(cmd *cobra.Command, sdlpath string) error {
146165 }
147166
148167 _ , err = fmt .Fprint (cmd .OutOrStdout (), buf .String ())
149-
150168 if err != nil {
151169 return err
152170 }
0 commit comments