operations/ref-exists.go (30 lines of code) (raw):
package operations
import (
"context"
"flag"
"google.golang.org/grpc"
pb "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb"
)
// RefExistsFlagSet are flags used by RefExists
var RefExistsFlagSet = flag.NewFlagSet("refex", flag.ExitOnError)
var refExistsRef = RefExistsFlagSet.String("ref", "", "Ref")
type refex struct {
repository *pb.Repository
conn *grpc.ClientConn
client pb.RefServiceClient
f func(refex) error
}
func (b refex) Run() error {
return b.f(b)
}
func refExistsBenchmark(b refex) error {
request := &pb.RefExistsRequest{
Repository: b.repository,
Ref: []byte(*refExistsRef),
}
_, err := b.client.RefExists(context.Background(), request)
return err
}
// NewRefExists create a new benchmark operation
func NewRefExists(repository *pb.Repository, conn *grpc.ClientConn) BenchmarkOperation {
client := pb.NewRefServiceClient(conn)
return refex{repository: repository, conn: conn, client: client, f: refExistsBenchmark}
}