mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-03-09 08:59:30 +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>
95 lines
2.6 KiB
Go
95 lines
2.6 KiB
Go
/*
|
|
*
|
|
* Copyright 2017 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 connectivity defines connectivity semantics.
|
|
// For details, see https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md.
|
|
package connectivity
|
|
|
|
import (
|
|
"google.golang.org/grpc/grpclog"
|
|
)
|
|
|
|
var logger = grpclog.Component("core")
|
|
|
|
// State indicates the state of connectivity.
|
|
// It can be the state of a ClientConn or SubConn.
|
|
type State int
|
|
|
|
func (s State) String() string {
|
|
switch s {
|
|
case Idle:
|
|
return "IDLE"
|
|
case Connecting:
|
|
return "CONNECTING"
|
|
case Ready:
|
|
return "READY"
|
|
case TransientFailure:
|
|
return "TRANSIENT_FAILURE"
|
|
case Shutdown:
|
|
return "SHUTDOWN"
|
|
default:
|
|
logger.Errorf("unknown connectivity state: %d", s)
|
|
return "INVALID_STATE"
|
|
}
|
|
}
|
|
|
|
const (
|
|
// Idle indicates the ClientConn is idle.
|
|
Idle State = iota
|
|
// Connecting indicates the ClientConn is connecting.
|
|
Connecting
|
|
// Ready indicates the ClientConn is ready for work.
|
|
Ready
|
|
// TransientFailure indicates the ClientConn has seen a failure but expects to recover.
|
|
TransientFailure
|
|
// Shutdown indicates the ClientConn has started shutting down.
|
|
Shutdown
|
|
)
|
|
|
|
// ServingMode indicates the current mode of operation of the server.
|
|
//
|
|
// Only xDS enabled gRPC servers currently report their serving mode.
|
|
type ServingMode int
|
|
|
|
const (
|
|
// ServingModeStarting indicates that the server is starting up.
|
|
ServingModeStarting ServingMode = iota
|
|
// ServingModeServing indicates that the server contains all required
|
|
// configuration and is serving RPCs.
|
|
ServingModeServing
|
|
// ServingModeNotServing indicates that the server is not accepting new
|
|
// connections. Existing connections will be closed gracefully, allowing
|
|
// in-progress RPCs to complete. A server enters this mode when it does not
|
|
// contain the required configuration to serve RPCs.
|
|
ServingModeNotServing
|
|
)
|
|
|
|
func (s ServingMode) String() string {
|
|
switch s {
|
|
case ServingModeStarting:
|
|
return "STARTING"
|
|
case ServingModeServing:
|
|
return "SERVING"
|
|
case ServingModeNotServing:
|
|
return "NOT_SERVING"
|
|
default:
|
|
logger.Errorf("unknown serving mode: %d", s)
|
|
return "INVALID_MODE"
|
|
}
|
|
}
|