mirror of
https://github.com/status-im/consul.git
synced 2025-01-10 05:45:46 +00:00
b9ab63c55d
When the v2 catalog experiment is enabled the old v1 catalog apis will be forcibly disabled at both the API (json) layer and the RPC (msgpack) layer. This will also disable anti-entropy as it uses the v1 api. This includes all of /v1/catalog/*, /v1/health/*, most of /v1/agent/*, /v1/config/*, and most of /v1/internal/*.
69 lines
2.9 KiB
Go
69 lines
2.9 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package structs
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
errNoLeader = "No cluster leader"
|
|
errNoDCPath = "No path to datacenter"
|
|
errDCNotAvailable = "Remote DC has no server currently reachable"
|
|
errNoServers = "No known Consul servers"
|
|
errNotReadyForConsistentReads = "Not ready to serve consistent reads"
|
|
errSegmentsNotSupported = "Network segments are not supported in this version of Consul"
|
|
errRPCRateExceeded = "RPC rate limit exceeded"
|
|
errServiceNotFound = "Service not found: "
|
|
errQueryNotFound = "Query not found"
|
|
errLeaderNotTracked = "Raft leader not found in server lookup mapping"
|
|
errConnectNotEnabled = "Connect must be enabled in order to use this endpoint"
|
|
errRateLimited = "Rate limit reached, try again later" // Note: we depend on this error message in the gRPC ConnectCA.Sign endpoint (see: isRateLimitError).
|
|
errNotPrimaryDatacenter = "not the primary datacenter"
|
|
errStateReadOnly = "CA Provider State is read-only"
|
|
errUsingV2CatalogExperiment = "V1 catalog is disabled when V2 is enabled"
|
|
)
|
|
|
|
var (
|
|
ErrNoLeader = errors.New(errNoLeader)
|
|
ErrNoDCPath = errors.New(errNoDCPath)
|
|
ErrNoServers = errors.New(errNoServers)
|
|
ErrNotReadyForConsistentReads = errors.New(errNotReadyForConsistentReads)
|
|
ErrSegmentsNotSupported = errors.New(errSegmentsNotSupported)
|
|
ErrRPCRateExceeded = errors.New(errRPCRateExceeded)
|
|
ErrDCNotAvailable = errors.New(errDCNotAvailable)
|
|
ErrQueryNotFound = errors.New(errQueryNotFound)
|
|
ErrLeaderNotTracked = errors.New(errLeaderNotTracked)
|
|
ErrConnectNotEnabled = errors.New(errConnectNotEnabled)
|
|
ErrRateLimited = errors.New(errRateLimited) // Note: we depend on this error message in the gRPC ConnectCA.Sign endpoint (see: isRateLimitError).
|
|
ErrNotPrimaryDatacenter = errors.New(errNotPrimaryDatacenter)
|
|
ErrStateReadOnly = errors.New(errStateReadOnly)
|
|
ErrUsingV2CatalogExperiment = errors.New(errUsingV2CatalogExperiment)
|
|
)
|
|
|
|
func IsErrNoDCPath(err error) bool {
|
|
return err != nil && strings.Contains(err.Error(), errNoDCPath)
|
|
}
|
|
|
|
func IsErrQueryNotFound(err error) bool {
|
|
return err != nil && strings.Contains(err.Error(), errQueryNotFound)
|
|
}
|
|
|
|
func IsErrNoLeader(err error) bool {
|
|
return err != nil && strings.Contains(err.Error(), errNoLeader)
|
|
}
|
|
|
|
func IsErrRPCRateExceeded(err error) bool {
|
|
return err != nil && strings.Contains(err.Error(), errRPCRateExceeded)
|
|
}
|
|
|
|
func IsErrServiceNotFound(err error) bool {
|
|
return err != nil && strings.Contains(err.Error(), errServiceNotFound)
|
|
}
|
|
|
|
func IsErrUsingV2CatalogExperiment(err error) bool {
|
|
return err != nil && strings.Contains(err.Error(), errUsingV2CatalogExperiment)
|
|
}
|