chore(gRPC): add request interface client

Signed-off-by: Bo-Yi.Wu <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi.Wu
2022-09-01 15:09:22 +08:00
committed by Jason Song
parent 449388f3ab
commit f2fb8798fa
6 changed files with 58 additions and 21 deletions

View File

@ -21,4 +21,7 @@ type Client interface {
// Register for new runner.
Register(ctx context.Context, args *runnerv1.RegisterRequest) (*runnerv1.Runner, error)
// Request requests the next available build stage for execution.
Request(ctx context.Context, args *runnerv1.RequestRequest) (*runnerv1.Stage, error)
}

View File

@ -88,7 +88,7 @@ func (p *HTTPClient) Ping(ctx context.Context, machine string) error {
return err
}
// Ping sends a ping message to the server to test connectivity.
// Register a new runner.
func (p *HTTPClient) Register(ctx context.Context, arg *runnerv1.RegisterRequest) (*runnerv1.Runner, error) {
client := runnerv1connect.NewRunnerServiceClient(
p.Client,
@ -105,3 +105,21 @@ func (p *HTTPClient) Register(ctx context.Context, arg *runnerv1.RegisterRequest
return res.Msg.Runner, err
}
// Request requests the next available build stage for execution.
func (p *HTTPClient) Request(ctx context.Context, arg *runnerv1.RequestRequest) (*runnerv1.Stage, error) {
client := runnerv1connect.NewRunnerServiceClient(
p.Client,
p.Endpoint,
p.opts...,
)
req := connect.NewRequest(arg)
req.Header().Set("X-Runner-Token", p.Secret)
res, err := client.Request(ctx, req)
if err != nil {
return nil, err
}
return res.Msg.Stage, err
}