mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-03-08 16:39:29 +00:00
Several packages are only used while running the e2e suite. These packages are less important to update, as the they can not influence the final executable that is part of the Ceph-CSI container-image. By moving these dependencies out of the main Ceph-CSI go.mod, it is easier to identify if a reported CVE affects Ceph-CSI, or only the testing (like most of the Kubernetes CVEs). Signed-off-by: Niels de Vos <ndevos@ibm.com>
105 lines
5.2 KiB
Go
105 lines
5.2 KiB
Go
/*
|
|
*
|
|
* Copyright 2016 gRPC authors.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
*/
|
|
|
|
package grpc
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
// UnaryInvoker is called by UnaryClientInterceptor to complete RPCs.
|
|
type UnaryInvoker func(ctx context.Context, method string, req, reply any, cc *ClientConn, opts ...CallOption) error
|
|
|
|
// UnaryClientInterceptor intercepts the execution of a unary RPC on the client.
|
|
// Unary interceptors can be specified as a DialOption, using
|
|
// WithUnaryInterceptor() or WithChainUnaryInterceptor(), when creating a
|
|
// ClientConn. When a unary interceptor(s) is set on a ClientConn, gRPC
|
|
// delegates all unary RPC invocations to the interceptor, and it is the
|
|
// responsibility of the interceptor to call invoker to complete the processing
|
|
// of the RPC.
|
|
//
|
|
// method is the RPC name. req and reply are the corresponding request and
|
|
// response messages. cc is the ClientConn on which the RPC was invoked. invoker
|
|
// is the handler to complete the RPC and it is the responsibility of the
|
|
// interceptor to call it. opts contain all applicable call options, including
|
|
// defaults from the ClientConn as well as per-call options.
|
|
//
|
|
// The returned error must be compatible with the status package.
|
|
type UnaryClientInterceptor func(ctx context.Context, method string, req, reply any, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error
|
|
|
|
// Streamer is called by StreamClientInterceptor to create a ClientStream.
|
|
type Streamer func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error)
|
|
|
|
// StreamClientInterceptor intercepts the creation of a ClientStream. Stream
|
|
// interceptors can be specified as a DialOption, using WithStreamInterceptor()
|
|
// or WithChainStreamInterceptor(), when creating a ClientConn. When a stream
|
|
// interceptor(s) is set on the ClientConn, gRPC delegates all stream creations
|
|
// to the interceptor, and it is the responsibility of the interceptor to call
|
|
// streamer.
|
|
//
|
|
// desc contains a description of the stream. cc is the ClientConn on which the
|
|
// RPC was invoked. streamer is the handler to create a ClientStream and it is
|
|
// the responsibility of the interceptor to call it. opts contain all applicable
|
|
// call options, including defaults from the ClientConn as well as per-call
|
|
// options.
|
|
//
|
|
// StreamClientInterceptor may return a custom ClientStream to intercept all I/O
|
|
// operations. The returned error must be compatible with the status package.
|
|
type StreamClientInterceptor func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, streamer Streamer, opts ...CallOption) (ClientStream, error)
|
|
|
|
// UnaryServerInfo consists of various information about a unary RPC on
|
|
// server side. All per-rpc information may be mutated by the interceptor.
|
|
type UnaryServerInfo struct {
|
|
// Server is the service implementation the user provides. This is read-only.
|
|
Server any
|
|
// FullMethod is the full RPC method string, i.e., /package.service/method.
|
|
FullMethod string
|
|
}
|
|
|
|
// UnaryHandler defines the handler invoked by UnaryServerInterceptor to complete the normal
|
|
// execution of a unary RPC.
|
|
//
|
|
// If a UnaryHandler returns an error, it should either be produced by the
|
|
// status package, or be one of the context errors. Otherwise, gRPC will use
|
|
// codes.Unknown as the status code and err.Error() as the status message of the
|
|
// RPC.
|
|
type UnaryHandler func(ctx context.Context, req any) (any, error)
|
|
|
|
// UnaryServerInterceptor provides a hook to intercept the execution of a unary RPC on the server. info
|
|
// contains all the information of this RPC the interceptor can operate on. And handler is the wrapper
|
|
// of the service method implementation. It is the responsibility of the interceptor to invoke handler
|
|
// to complete the RPC.
|
|
type UnaryServerInterceptor func(ctx context.Context, req any, info *UnaryServerInfo, handler UnaryHandler) (resp any, err error)
|
|
|
|
// StreamServerInfo consists of various information about a streaming RPC on
|
|
// server side. All per-rpc information may be mutated by the interceptor.
|
|
type StreamServerInfo struct {
|
|
// FullMethod is the full RPC method string, i.e., /package.service/method.
|
|
FullMethod string
|
|
// IsClientStream indicates whether the RPC is a client streaming RPC.
|
|
IsClientStream bool
|
|
// IsServerStream indicates whether the RPC is a server streaming RPC.
|
|
IsServerStream bool
|
|
}
|
|
|
|
// StreamServerInterceptor provides a hook to intercept the execution of a streaming RPC on the server.
|
|
// info contains all the information of this RPC the interceptor can operate on. And handler is the
|
|
// service method implementation. It is the responsibility of the interceptor to invoke handler to
|
|
// complete the RPC.
|
|
type StreamServerInterceptor func(srv any, ss ServerStream, info *StreamServerInfo, handler StreamHandler) error
|