Merge pull request #12557 from hashicorp/remove-healthcheck-gogo-stdduration

Remove Gogo Stdduration From the Healthcheck Protobufs
This commit is contained in:
Eric Haberkorn 2022-03-15 13:20:49 -04:00 committed by GitHub
commit fc3c0f312c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 291 additions and 196 deletions

View File

@ -1,6 +1,7 @@
package health
import (
"errors"
"fmt"
"reflect"
"sort"
@ -71,13 +72,19 @@ func (s *healthView) Update(events []*pbsubscribe.Event) error {
id := serviceHealth.CheckServiceNode.UniqueID()
switch serviceHealth.Op {
case pbsubscribe.CatalogOp_Register:
csn := *pbservice.CheckServiceNodeToStructs(serviceHealth.CheckServiceNode)
passed, err := s.filter.Evaluate(csn)
csn, err := pbservice.CheckServiceNodeToStructs(serviceHealth.CheckServiceNode)
if err != nil {
return err
}
if csn == nil {
return errors.New("check service node was unexpectedly nil")
}
passed, err := s.filter.Evaluate(*csn)
switch {
case err != nil:
return err
case passed:
s.state[id] = csn
s.state[id] = *csn
}
case pbsubscribe.CatalogOp_Deregister:

View File

@ -36,9 +36,9 @@ func NewMapHeadersFromStructs(t map[string][]string) map[string]HeaderValue {
}
// TODO: use mog once it supports pointers and slices
func CheckServiceNodeToStructs(s *CheckServiceNode) *structs.CheckServiceNode {
func CheckServiceNodeToStructs(s *CheckServiceNode) (*structs.CheckServiceNode, error) {
if s == nil {
return nil
return nil, nil
}
var t structs.CheckServiceNode
if s.Node != nil {
@ -54,10 +54,13 @@ func CheckServiceNodeToStructs(s *CheckServiceNode) *structs.CheckServiceNode {
if c == nil {
continue
}
h := HealthCheckToStructs(*c)
h, err := HealthCheckToStructs(*c)
if err != nil {
return &t, err
}
t.Checks[i] = &h
}
return &t
return &t, nil
}
// TODO: use mog once it supports pointers and slices
@ -162,16 +165,19 @@ func NewUpstreamsFromStructs(t structs.Upstreams) []Upstream {
}
// TODO: handle this with mog
func CheckTypesToStructs(s []*CheckType) structs.CheckTypes {
func CheckTypesToStructs(s []*CheckType) (structs.CheckTypes, error) {
t := make(structs.CheckTypes, len(s))
for i, v := range s {
if v == nil {
continue
}
newV := CheckTypeToStructs(*v)
newV, err := CheckTypeToStructs(*v)
if err != nil {
return t, err
}
t[i] = &newV
}
return t
return t, nil
}
// TODO: handle this with mog
@ -228,7 +234,10 @@ func ServiceDefinitionPtrToStructs(s *ServiceDefinition) *structs.ServiceDefinit
if s == nil {
return nil
}
t := ServiceDefinitionToStructs(*s)
t, err := ServiceDefinitionToStructs(*s)
if err != nil {
return nil
}
return &t
}

View File

@ -20,7 +20,10 @@ func TestNewCheckServiceNodeFromStructs_RoundTrip(t *testing.T) {
var target structs.CheckServiceNode
fuzzer.Fuzz(&target)
result := CheckServiceNodeToStructs(NewCheckServiceNodeFromStructs(&target))
result, err := CheckServiceNodeToStructs(NewCheckServiceNodeFromStructs(&target))
if err != nil {
t.Fatalf("unexpected error: %s", err.Error())
}
assertEqual(t, &target, result)
})
}

View File

@ -2,9 +2,12 @@
package pbservice
import structs "github.com/hashicorp/consul/agent/structs"
import (
"github.com/hashicorp/consul/agent/structs"
"github.com/hashicorp/consul/proto/pbutil"
)
func CheckTypeToStructs(s CheckType) structs.CheckType {
func CheckTypeToStructs(s CheckType) (structs.CheckType, error) {
var t structs.CheckType
t.CheckID = s.CheckID
t.Name = s.Name
@ -18,7 +21,12 @@ func CheckTypeToStructs(s CheckType) structs.CheckType {
t.Method = s.Method
t.Body = s.Body
t.TCP = s.TCP
t.Interval = s.Interval
interval, err := pbutil.DurationFromProto(&s.Interval)
if err != nil {
return t, err
}
t.Interval = interval
t.AliasNode = s.AliasNode
t.AliasService = s.AliasService
t.DockerContainerID = s.DockerContainerID
@ -27,16 +35,28 @@ func CheckTypeToStructs(s CheckType) structs.CheckType {
t.GRPCUseTLS = s.GRPCUseTLS
t.TLSServerName = s.TLSServerName
t.TLSSkipVerify = s.TLSSkipVerify
t.Timeout = s.Timeout
t.TTL = s.TTL
timeout, err := pbutil.DurationFromProto(&s.Timeout)
if err != nil {
return t, err
}
t.Timeout = timeout
ttl, err := pbutil.DurationFromProto(&s.TTL)
if err != nil {
return t, err
}
t.TTL = ttl
t.SuccessBeforePassing = int(s.SuccessBeforePassing)
t.FailuresBeforeCritical = int(s.FailuresBeforeCritical)
t.FailuresBeforeWarning = int(s.FailuresBeforeWarning)
t.ProxyHTTP = s.ProxyHTTP
t.ProxyGRPC = s.ProxyGRPC
t.DeregisterCriticalServiceAfter = s.DeregisterCriticalServiceAfter
deregisterCriticalServiceAfter, err := pbutil.DurationFromProto(&s.DeregisterCriticalServiceAfter)
if err != nil {
return t, err
}
t.DeregisterCriticalServiceAfter = deregisterCriticalServiceAfter
t.OutputMaxSize = int(s.OutputMaxSize)
return t
return t, nil
}
func NewCheckTypeFromStructs(t structs.CheckType) CheckType {
var s CheckType
@ -52,7 +72,7 @@ func NewCheckTypeFromStructs(t structs.CheckType) CheckType {
s.Method = t.Method
s.Body = t.Body
s.TCP = t.TCP
s.Interval = t.Interval
s.Interval = *pbutil.DurationToProto(t.Interval)
s.AliasNode = t.AliasNode
s.AliasService = t.AliasService
s.DockerContainerID = t.DockerContainerID
@ -61,18 +81,18 @@ func NewCheckTypeFromStructs(t structs.CheckType) CheckType {
s.GRPCUseTLS = t.GRPCUseTLS
s.TLSServerName = t.TLSServerName
s.TLSSkipVerify = t.TLSSkipVerify
s.Timeout = t.Timeout
s.TTL = t.TTL
s.Timeout = *pbutil.DurationToProto(t.Timeout)
s.TTL = *pbutil.DurationToProto(t.TTL)
s.SuccessBeforePassing = int32(t.SuccessBeforePassing)
s.FailuresBeforeCritical = int32(t.FailuresBeforeCritical)
s.FailuresBeforeWarning = int32(t.FailuresBeforeWarning)
s.ProxyHTTP = t.ProxyHTTP
s.ProxyGRPC = t.ProxyGRPC
s.DeregisterCriticalServiceAfter = t.DeregisterCriticalServiceAfter
s.DeregisterCriticalServiceAfter = *pbutil.DurationToProto(t.DeregisterCriticalServiceAfter)
s.OutputMaxSize = int32(t.OutputMaxSize)
return s
}
func HealthCheckToStructs(s HealthCheck) structs.HealthCheck {
func HealthCheckToStructs(s HealthCheck) (structs.HealthCheck, error) {
var t structs.HealthCheck
t.Node = s.Node
t.CheckID = s.CheckID
@ -85,12 +105,16 @@ func HealthCheckToStructs(s HealthCheck) structs.HealthCheck {
t.ServiceTags = s.ServiceTags
t.Type = s.Type
t.ExposedPort = int(s.ExposedPort)
t.Definition = HealthCheckDefinitionToStructs(s.Definition)
definition, err := HealthCheckDefinitionToStructs(s.Definition)
if err != nil {
return t, err
}
t.Definition = definition
t.EnterpriseMeta = EnterpriseMetaToStructs(s.EnterpriseMeta)
t.RaftIndex = RaftIndexToStructs(s.RaftIndex)
t.Interval = s.Interval
t.Timeout = s.Timeout
return t
return t, nil
}
func NewHealthCheckFromStructs(t structs.HealthCheck) HealthCheck {
var s HealthCheck
@ -112,7 +136,7 @@ func NewHealthCheckFromStructs(t structs.HealthCheck) HealthCheck {
s.Timeout = t.Timeout
return s
}
func HealthCheckDefinitionToStructs(s HealthCheckDefinition) structs.HealthCheckDefinition {
func HealthCheckDefinitionToStructs(s HealthCheckDefinition) (structs.HealthCheckDefinition, error) {
var t structs.HealthCheckDefinition
t.HTTP = s.HTTP
t.TLSServerName = s.TLSServerName
@ -123,10 +147,22 @@ func HealthCheckDefinitionToStructs(s HealthCheckDefinition) structs.HealthCheck
t.TCP = s.TCP
t.H2PING = s.H2PING
t.H2PingUseTLS = s.H2PingUseTLS
t.Interval = s.Interval
interval, err := pbutil.DurationFromProto(&s.Interval)
if err != nil {
return t, err
}
t.Interval = interval
t.OutputMaxSize = uint(s.OutputMaxSize)
t.Timeout = s.Timeout
t.DeregisterCriticalServiceAfter = s.DeregisterCriticalServiceAfter
timeout, err := pbutil.DurationFromProto(&s.Timeout)
if err != nil {
return t, err
}
t.Timeout = timeout
deregisterCriticalServiceAfter, err := pbutil.DurationFromProto(&s.DeregisterCriticalServiceAfter)
if err != nil {
return t, err
}
t.DeregisterCriticalServiceAfter = deregisterCriticalServiceAfter
t.ScriptArgs = s.ScriptArgs
t.DockerContainerID = s.DockerContainerID
t.Shell = s.Shell
@ -134,8 +170,12 @@ func HealthCheckDefinitionToStructs(s HealthCheckDefinition) structs.HealthCheck
t.GRPCUseTLS = s.GRPCUseTLS
t.AliasNode = s.AliasNode
t.AliasService = s.AliasService
t.TTL = s.TTL
return t
ttl, err := pbutil.DurationFromProto(&s.TTL)
if err != nil {
return t, err
}
t.TTL = ttl
return t, nil
}
func NewHealthCheckDefinitionFromStructs(t structs.HealthCheckDefinition) HealthCheckDefinition {
var s HealthCheckDefinition
@ -148,10 +188,10 @@ func NewHealthCheckDefinitionFromStructs(t structs.HealthCheckDefinition) Health
s.TCP = t.TCP
s.H2PING = t.H2PING
s.H2PingUseTLS = t.H2PingUseTLS
s.Interval = t.Interval
s.Interval = *pbutil.DurationToProto(t.Interval)
s.OutputMaxSize = uint32(t.OutputMaxSize)
s.Timeout = t.Timeout
s.DeregisterCriticalServiceAfter = t.DeregisterCriticalServiceAfter
s.Timeout = *pbutil.DurationToProto(t.Timeout)
s.DeregisterCriticalServiceAfter = *pbutil.DurationToProto(t.DeregisterCriticalServiceAfter)
s.ScriptArgs = t.ScriptArgs
s.DockerContainerID = t.DockerContainerID
s.Shell = t.Shell
@ -159,6 +199,6 @@ func NewHealthCheckDefinitionFromStructs(t structs.HealthCheckDefinition) Health
s.GRPCUseTLS = t.GRPCUseTLS
s.AliasNode = t.AliasNode
s.AliasService = t.AliasService
s.TTL = t.TTL
s.TTL = *pbutil.DurationToProto(t.TTL)
return s
}

View File

@ -6,22 +6,19 @@ package pbservice
import (
fmt "fmt"
_ "github.com/gogo/protobuf/gogoproto"
_ "github.com/gogo/protobuf/types"
github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
types "github.com/gogo/protobuf/types"
proto "github.com/golang/protobuf/proto"
pbcommon "github.com/hashicorp/consul/proto/pbcommon"
github_com_hashicorp_consul_types "github.com/hashicorp/consul/types"
io "io"
math "math"
math_bits "math/bits"
time "time"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
var _ = time.Kitchen
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
@ -144,21 +141,21 @@ type HealthCheckDefinition struct {
Method string `protobuf:"bytes,4,opt,name=Method,proto3" json:"Method,omitempty"`
Body string `protobuf:"bytes,18,opt,name=Body,proto3" json:"Body,omitempty"`
TCP string `protobuf:"bytes,5,opt,name=TCP,proto3" json:"TCP,omitempty"`
Interval time.Duration `protobuf:"bytes,6,opt,name=Interval,proto3,stdduration" json:"Interval"`
Interval types.Duration `protobuf:"bytes,6,opt,name=Interval,proto3" json:"Interval"`
// mog: func-to=uint func-from=uint32
OutputMaxSize uint32 `protobuf:"varint,9,opt,name=OutputMaxSize,proto3" json:"OutputMaxSize,omitempty"`
Timeout time.Duration `protobuf:"bytes,7,opt,name=Timeout,proto3,stdduration" json:"Timeout"`
DeregisterCriticalServiceAfter time.Duration `protobuf:"bytes,8,opt,name=DeregisterCriticalServiceAfter,proto3,stdduration" json:"DeregisterCriticalServiceAfter"`
ScriptArgs []string `protobuf:"bytes,10,rep,name=ScriptArgs,proto3" json:"ScriptArgs,omitempty"`
DockerContainerID string `protobuf:"bytes,11,opt,name=DockerContainerID,proto3" json:"DockerContainerID,omitempty"`
Shell string `protobuf:"bytes,12,opt,name=Shell,proto3" json:"Shell,omitempty"`
H2PING string `protobuf:"bytes,20,opt,name=H2PING,proto3" json:"H2PING,omitempty"`
H2PingUseTLS bool `protobuf:"varint,21,opt,name=H2PingUseTLS,proto3" json:"H2PingUseTLS,omitempty"`
GRPC string `protobuf:"bytes,13,opt,name=GRPC,proto3" json:"GRPC,omitempty"`
GRPCUseTLS bool `protobuf:"varint,14,opt,name=GRPCUseTLS,proto3" json:"GRPCUseTLS,omitempty"`
AliasNode string `protobuf:"bytes,15,opt,name=AliasNode,proto3" json:"AliasNode,omitempty"`
AliasService string `protobuf:"bytes,16,opt,name=AliasService,proto3" json:"AliasService,omitempty"`
TTL time.Duration `protobuf:"bytes,17,opt,name=TTL,proto3,stdduration" json:"TTL"`
OutputMaxSize uint32 `protobuf:"varint,9,opt,name=OutputMaxSize,proto3" json:"OutputMaxSize,omitempty"`
Timeout types.Duration `protobuf:"bytes,7,opt,name=Timeout,proto3" json:"Timeout"`
DeregisterCriticalServiceAfter types.Duration `protobuf:"bytes,8,opt,name=DeregisterCriticalServiceAfter,proto3" json:"DeregisterCriticalServiceAfter"`
ScriptArgs []string `protobuf:"bytes,10,rep,name=ScriptArgs,proto3" json:"ScriptArgs,omitempty"`
DockerContainerID string `protobuf:"bytes,11,opt,name=DockerContainerID,proto3" json:"DockerContainerID,omitempty"`
Shell string `protobuf:"bytes,12,opt,name=Shell,proto3" json:"Shell,omitempty"`
H2PING string `protobuf:"bytes,20,opt,name=H2PING,proto3" json:"H2PING,omitempty"`
H2PingUseTLS bool `protobuf:"varint,21,opt,name=H2PingUseTLS,proto3" json:"H2PingUseTLS,omitempty"`
GRPC string `protobuf:"bytes,13,opt,name=GRPC,proto3" json:"GRPC,omitempty"`
GRPCUseTLS bool `protobuf:"varint,14,opt,name=GRPCUseTLS,proto3" json:"GRPCUseTLS,omitempty"`
AliasNode string `protobuf:"bytes,15,opt,name=AliasNode,proto3" json:"AliasNode,omitempty"`
AliasService string `protobuf:"bytes,16,opt,name=AliasService,proto3" json:"AliasService,omitempty"`
TTL types.Duration `protobuf:"bytes,17,opt,name=TTL,proto3" json:"TTL"`
}
func (m *HealthCheckDefinition) Reset() { *m = HealthCheckDefinition{} }
@ -218,7 +215,7 @@ type CheckType struct {
Method string `protobuf:"bytes,7,opt,name=Method,proto3" json:"Method,omitempty"`
Body string `protobuf:"bytes,26,opt,name=Body,proto3" json:"Body,omitempty"`
TCP string `protobuf:"bytes,8,opt,name=TCP,proto3" json:"TCP,omitempty"`
Interval time.Duration `protobuf:"bytes,9,opt,name=Interval,proto3,stdduration" json:"Interval"`
Interval types.Duration `protobuf:"bytes,9,opt,name=Interval,proto3" json:"Interval"`
AliasNode string `protobuf:"bytes,10,opt,name=AliasNode,proto3" json:"AliasNode,omitempty"`
AliasService string `protobuf:"bytes,11,opt,name=AliasService,proto3" json:"AliasService,omitempty"`
DockerContainerID string `protobuf:"bytes,12,opt,name=DockerContainerID,proto3" json:"DockerContainerID,omitempty"`
@ -229,8 +226,8 @@ type CheckType struct {
GRPCUseTLS bool `protobuf:"varint,15,opt,name=GRPCUseTLS,proto3" json:"GRPCUseTLS,omitempty"`
TLSServerName string `protobuf:"bytes,27,opt,name=TLSServerName,proto3" json:"TLSServerName,omitempty"`
TLSSkipVerify bool `protobuf:"varint,16,opt,name=TLSSkipVerify,proto3" json:"TLSSkipVerify,omitempty"`
Timeout time.Duration `protobuf:"bytes,17,opt,name=Timeout,proto3,stdduration" json:"Timeout"`
TTL time.Duration `protobuf:"bytes,18,opt,name=TTL,proto3,stdduration" json:"TTL"`
Timeout types.Duration `protobuf:"bytes,17,opt,name=Timeout,proto3" json:"Timeout"`
TTL types.Duration `protobuf:"bytes,18,opt,name=TTL,proto3" json:"TTL"`
// mog: func-to=int func-from=int32
SuccessBeforePassing int32 `protobuf:"varint,21,opt,name=SuccessBeforePassing,proto3" json:"SuccessBeforePassing,omitempty"`
// mog: func-to=int func-from=int32
@ -243,7 +240,7 @@ type CheckType struct {
// DeregisterCriticalServiceAfter, if >0, will cause the associated
// service, if any, to be deregistered if this check is critical for
// longer than this duration.
DeregisterCriticalServiceAfter time.Duration `protobuf:"bytes,19,opt,name=DeregisterCriticalServiceAfter,proto3,stdduration" json:"DeregisterCriticalServiceAfter"`
DeregisterCriticalServiceAfter types.Duration `protobuf:"bytes,19,opt,name=DeregisterCriticalServiceAfter,proto3" json:"DeregisterCriticalServiceAfter"`
// mog: func-to=int func-from=int32
OutputMaxSize int32 `protobuf:"varint,25,opt,name=OutputMaxSize,proto3" json:"OutputMaxSize,omitempty"`
}
@ -293,76 +290,76 @@ func init() {
func init() { proto.RegisterFile("proto/pbservice/healthcheck.proto", fileDescriptor_8a6f7448747c9fbe) }
var fileDescriptor_8a6f7448747c9fbe = []byte{
// 1098 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0x4f, 0x4f, 0xe3, 0x46,
0x14, 0x8f, 0x09, 0x49, 0xc8, 0x64, 0x61, 0x61, 0x16, 0xe8, 0x2c, 0xbb, 0x35, 0x29, 0xdd, 0x03,
0x55, 0x69, 0x22, 0xd1, 0x3f, 0x6a, 0x2b, 0xb5, 0x15, 0x21, 0x2c, 0xa4, 0x02, 0x9a, 0x3a, 0xe9,
0x56, 0xea, 0xcd, 0x38, 0x93, 0xc4, 0x22, 0xf1, 0x58, 0xe3, 0x31, 0x22, 0xbd, 0xf7, 0xde, 0xe3,
0x7e, 0x90, 0x7e, 0x08, 0x8e, 0x1c, 0x2b, 0x55, 0xa2, 0x2d, 0x7c, 0x8b, 0x9e, 0xaa, 0x79, 0x33,
0x0e, 0xf6, 0xc6, 0x0b, 0xe9, 0x6a, 0x7b, 0xca, 0xbc, 0xf7, 0x7b, 0x6f, 0xc6, 0x33, 0xef, 0xf7,
0x7b, 0x4f, 0x41, 0xef, 0xf9, 0x9c, 0x09, 0x56, 0xf5, 0x4f, 0x02, 0xca, 0xcf, 0x5c, 0x87, 0x56,
0xfb, 0xd4, 0x1e, 0x88, 0xbe, 0xd3, 0xa7, 0xce, 0x69, 0x05, 0x30, 0x5c, 0x1c, 0x83, 0x6b, 0x66,
0x8f, 0xb1, 0xde, 0x80, 0x56, 0x01, 0x38, 0x09, 0xbb, 0xd5, 0x4e, 0xc8, 0x6d, 0xe1, 0x32, 0x4f,
0x85, 0xae, 0x3d, 0x89, 0x76, 0x73, 0xd8, 0x70, 0xc8, 0xbc, 0xaa, 0xfa, 0xd1, 0xe0, 0x72, 0x8f,
0xf5, 0x98, 0x0a, 0x90, 0x2b, 0xe5, 0xdd, 0xf8, 0x63, 0x16, 0x95, 0x0e, 0xe0, 0xcc, 0x5d, 0x79,
0x26, 0xc6, 0x68, 0xf6, 0x98, 0x75, 0x28, 0x31, 0xca, 0xc6, 0x66, 0xd1, 0x82, 0x35, 0xde, 0x47,
0x05, 0x00, 0x1b, 0x75, 0x32, 0x23, 0xdd, 0xb5, 0x8f, 0xfe, 0xb9, 0x5a, 0xff, 0xa0, 0xe7, 0x8a,
0x7e, 0x78, 0x52, 0x71, 0xd8, 0xb0, 0xda, 0xb7, 0x83, 0xbe, 0xeb, 0x30, 0xee, 0x57, 0x1d, 0xe6,
0x05, 0xe1, 0xa0, 0x2a, 0x46, 0x3e, 0x0d, 0x2a, 0x3a, 0xc9, 0x8a, 0xb2, 0x61, 0x73, 0x7b, 0x48,
0x49, 0x56, 0x6f, 0x6e, 0x0f, 0x29, 0x5e, 0x45, 0xf9, 0x96, 0xb0, 0x45, 0x18, 0x90, 0x59, 0xf0,
0x6a, 0x0b, 0x2f, 0xa3, 0xdc, 0x31, 0x13, 0x34, 0x20, 0x39, 0x70, 0x2b, 0x43, 0x46, 0x7f, 0x17,
0x0a, 0x3f, 0x14, 0x24, 0xaf, 0xa2, 0x95, 0x85, 0x9f, 0xa2, 0x62, 0x4b, 0x3d, 0x52, 0xa3, 0x4e,
0x0a, 0x00, 0xdd, 0x3a, 0x70, 0x19, 0x95, 0xb4, 0x01, 0xc7, 0xcf, 0x01, 0x1e, 0x77, 0xc5, 0x22,
0xda, 0x76, 0x2f, 0x20, 0xc5, 0x72, 0x36, 0x16, 0x21, 0x5d, 0xf2, 0xdb, 0xdb, 0x23, 0x9f, 0x92,
0x07, 0xea, 0xdb, 0xe5, 0x1a, 0x3f, 0x47, 0xa8, 0x4e, 0xbb, 0xae, 0xe7, 0xca, 0x1a, 0x10, 0x54,
0x36, 0x36, 0x4b, 0xdb, 0xe5, 0xca, 0xb8, 0x5e, 0x95, 0xd8, 0xc3, 0xde, 0xc6, 0xd5, 0x66, 0x2f,
0xae, 0xd6, 0x33, 0x56, 0x2c, 0x13, 0x7f, 0x81, 0x8a, 0x96, 0xdd, 0x15, 0x0d, 0xaf, 0x43, 0xcf,
0x49, 0x09, 0xb6, 0x59, 0xaa, 0xe8, 0xe2, 0x8d, 0x81, 0xda, 0x9c, 0xcc, 0xbb, 0xbc, 0x5a, 0x37,
0xac, 0xdb, 0x68, 0x5c, 0x47, 0x0b, 0x7b, 0x9e, 0xa0, 0xdc, 0xe7, 0x6e, 0x40, 0x8f, 0xa8, 0xb0,
0xc9, 0x3c, 0xe4, 0xaf, 0x46, 0xf9, 0x49, 0x54, 0x1f, 0xfe, 0x4a, 0x8e, 0xbc, 0xfe, 0xde, 0xb9,
0xcf, 0x02, 0xda, 0x69, 0x32, 0x2e, 0xc8, 0x42, 0xd9, 0xd8, 0xcc, 0x59, 0x71, 0x17, 0x5e, 0x43,
0x73, 0x0d, 0x99, 0x73, 0x66, 0x0f, 0xc8, 0x43, 0x78, 0x82, 0xb1, 0x8d, 0x09, 0x2a, 0xb4, 0xdd,
0x21, 0x65, 0xa1, 0x20, 0x8b, 0x00, 0x45, 0xe6, 0xc6, 0xfb, 0x40, 0xae, 0x0e, 0xe5, 0x2f, 0xec,
0x41, 0x48, 0x65, 0x4d, 0x61, 0x41, 0x0c, 0x78, 0x5f, 0x65, 0x6c, 0xfc, 0x56, 0x40, 0x2b, 0xa9,
0x2f, 0x25, 0xdf, 0xfc, 0xa0, 0xdd, 0x6e, 0x46, 0x64, 0x94, 0x6b, 0xfc, 0x0c, 0xcd, 0xb7, 0x0f,
0x5b, 0xb2, 0x32, 0x94, 0x43, 0x35, 0x1f, 0x01, 0x98, 0x74, 0x46, 0x51, 0xa7, 0xae, 0xff, 0x82,
0x72, 0xb7, 0x3b, 0x02, 0xe2, 0xce, 0x59, 0x49, 0x27, 0xfe, 0x16, 0xe5, 0xd5, 0xe7, 0x91, 0x6c,
0x39, 0xbb, 0x59, 0xda, 0xde, 0xba, 0xaf, 0x76, 0x15, 0x15, 0xbe, 0xe7, 0x09, 0x3e, 0xd2, 0x4f,
0xa9, 0x77, 0x90, 0xcc, 0x3c, 0xa2, 0xa2, 0xcf, 0x3a, 0x11, 0x8f, 0x95, 0x25, 0xef, 0x50, 0x63,
0x9d, 0x11, 0xc1, 0xea, 0x0e, 0x72, 0x8d, 0x17, 0x51, 0xb6, 0xbd, 0xdb, 0xd4, 0xcc, 0x96, 0x4b,
0xfc, 0x4d, 0xec, 0x79, 0xf3, 0x50, 0xc0, 0xc7, 0x15, 0x25, 0xf6, 0x4a, 0x24, 0xf6, 0x4a, 0x5d,
0x8b, 0x5d, 0x11, 0xe1, 0xe5, 0x9f, 0xeb, 0x46, 0xac, 0x06, 0xcf, 0xd0, 0xbc, 0x92, 0xc2, 0x91,
0x7d, 0xde, 0x72, 0x7f, 0xa6, 0xa4, 0x58, 0x36, 0x36, 0xe7, 0xad, 0xa4, 0x13, 0x7f, 0x75, 0x5b,
0xa9, 0xc2, 0xf4, 0xa7, 0x44, 0x39, 0xf8, 0x14, 0x99, 0x75, 0xca, 0x69, 0xcf, 0x0d, 0x04, 0xe5,
0xbb, 0xdc, 0x15, 0xae, 0x63, 0x0f, 0xb4, 0x48, 0x76, 0xba, 0x82, 0x72, 0x90, 0xd6, 0x94, 0xbb,
0xde, 0xb3, 0x15, 0x36, 0x11, 0x6a, 0x39, 0xdc, 0xf5, 0xc5, 0x0e, 0xef, 0x05, 0x04, 0x01, 0x63,
0x62, 0x1e, 0xbc, 0x85, 0x96, 0xea, 0xcc, 0x39, 0xa5, 0x7c, 0x97, 0x79, 0xc2, 0x76, 0x3d, 0xca,
0x1b, 0x75, 0x10, 0x4f, 0xd1, 0x9a, 0x04, 0x24, 0xf5, 0x5a, 0x7d, 0x3a, 0x18, 0x68, 0xfd, 0x2a,
0x43, 0x16, 0xed, 0x60, 0xbb, 0xd9, 0x38, 0xde, 0x27, 0xcb, 0xaa, 0x68, 0xca, 0xc2, 0x1b, 0xe8,
0xc1, 0xc1, 0x76, 0xd3, 0xf5, 0x7a, 0x3f, 0x04, 0xb4, 0x7d, 0xd8, 0x22, 0x2b, 0xc0, 0x9e, 0x84,
0x4f, 0x16, 0x76, 0xdf, 0x6a, 0xee, 0x82, 0xde, 0x8a, 0x16, 0xac, 0xe5, 0x37, 0xcb, 0x5f, 0x9d,
0xb5, 0x00, 0x59, 0x31, 0x8f, 0x6c, 0x53, 0x3b, 0x03, 0xd7, 0x0e, 0xa0, 0xc5, 0x2a, 0x19, 0xdd,
0x3a, 0xe4, 0xa9, 0x60, 0xe8, 0x67, 0xd0, 0x62, 0x4a, 0xf8, 0xf0, 0xa7, 0x28, 0xdb, 0x6e, 0x1f,
0x92, 0xa5, 0xe9, 0xdf, 0x59, 0xc6, 0xaf, 0x7d, 0x1f, 0x09, 0x11, 0xa8, 0x2b, 0x09, 0x78, 0x4a,
0x47, 0x5a, 0x57, 0x72, 0x89, 0xb7, 0x50, 0xee, 0x0c, 0xa4, 0x39, 0xa3, 0xdb, 0x47, 0x42, 0x09,
0x91, 0x82, 0x2d, 0x15, 0xf4, 0xe5, 0xcc, 0xe7, 0xc6, 0xc6, 0x2f, 0x08, 0x15, 0x41, 0x1e, 0xd0,
0x0a, 0x63, 0x33, 0xc2, 0x78, 0x2b, 0x33, 0x62, 0x26, 0x75, 0x46, 0x64, 0xd3, 0x67, 0xc4, 0x6c,
0x7c, 0x46, 0x24, 0x89, 0x93, 0x9b, 0x20, 0x4e, 0xd4, 0x55, 0xf2, 0xb1, 0xae, 0xf2, 0xf5, 0xb8,
0x13, 0x2c, 0x43, 0x27, 0x88, 0x77, 0xf1, 0xf1, 0x25, 0xa7, 0x52, 0x7f, 0x21, 0x55, 0xfd, 0x6b,
0x93, 0xea, 0x9f, 0x4b, 0x57, 0x7f, 0xf1, 0x4d, 0xd4, 0x9f, 0xe0, 0x15, 0xba, 0x8f, 0x57, 0xa5,
0x14, 0x5e, 0xa5, 0xaa, 0xe9, 0xc1, 0xbd, 0x6a, 0x9a, 0x4f, 0x57, 0xd3, 0xd3, 0x3b, 0xd5, 0x64,
0xde, 0xa1, 0xa6, 0x85, 0xd7, 0xaa, 0xe9, 0xe1, 0x84, 0x9a, 0x26, 0x46, 0xc1, 0x93, 0xa9, 0x46,
0xc1, 0x62, 0xda, 0x28, 0x88, 0x75, 0xc6, 0xa5, 0x37, 0xe8, 0x8c, 0x5a, 0x96, 0xf8, 0xbf, 0xc9,
0x12, 0x6f, 0xa3, 0xe5, 0x56, 0xe8, 0x38, 0x34, 0x08, 0x6a, 0xb4, 0xcb, 0x38, 0x6d, 0xda, 0x41,
0xe0, 0x7a, 0x3d, 0xe8, 0x37, 0x39, 0x2b, 0x15, 0xc3, 0x9f, 0xa0, 0x95, 0xe7, 0xb6, 0x3b, 0x08,
0x39, 0xd5, 0xc0, 0x8f, 0x36, 0xf7, 0x64, 0xd2, 0xbb, 0x90, 0x94, 0x0e, 0xe2, 0xcf, 0xd0, 0x6a,
0x12, 0x88, 0x7a, 0x2e, 0x59, 0x85, 0xb4, 0xd7, 0xa0, 0x92, 0x59, 0x4d, 0xce, 0xce, 0x47, 0xa0,
0x98, 0x77, 0x14, 0xb3, 0xc6, 0x8e, 0x31, 0x0a, 0xa5, 0x23, 0x31, 0x14, 0xea, 0x77, 0xff, 0xb8,
0x78, 0xf4, 0xf6, 0xc6, 0xc5, 0xc4, 0x00, 0x7c, 0x0c, 0xf7, 0x4a, 0x3a, 0xff, 0x87, 0x3e, 0x58,
0x3b, 0xba, 0xf8, 0xdb, 0xcc, 0x5c, 0x5c, 0x9b, 0xc6, 0xe5, 0xb5, 0x69, 0xfc, 0x75, 0x6d, 0x1a,
0xbf, 0xde, 0x98, 0x99, 0x97, 0x37, 0x66, 0xe6, 0xf2, 0xc6, 0xcc, 0xfc, 0x7e, 0x63, 0x66, 0x7e,
0xfa, 0xf0, 0xae, 0x36, 0xf8, 0xca, 0x1f, 0x80, 0x93, 0x3c, 0x38, 0x3e, 0xfe, 0x37, 0x00, 0x00,
0xff, 0xff, 0xd0, 0xae, 0x76, 0xe3, 0x1a, 0x0c, 0x00, 0x00,
// 1092 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x41, 0x4f, 0xe3, 0x46,
0x14, 0x8e, 0x09, 0x49, 0xf0, 0x04, 0x58, 0x98, 0x05, 0x3a, 0xcb, 0x6e, 0x4d, 0x4a, 0xf7, 0x40,
0x55, 0x9a, 0xa8, 0xb4, 0xaa, 0xba, 0xad, 0x54, 0x89, 0x10, 0x16, 0x52, 0x01, 0x4d, 0x9d, 0x74,
0x2b, 0xf5, 0x66, 0x9c, 0x89, 0x63, 0x91, 0x78, 0xa2, 0xf1, 0x18, 0x91, 0xfe, 0x8a, 0x1e, 0xfb,
0x03, 0xfa, 0x63, 0x38, 0x72, 0xac, 0x54, 0x09, 0xb5, 0xf0, 0x1b, 0x7a, 0xe9, 0xa9, 0x9a, 0x37,
0x76, 0x62, 0x6f, 0xbc, 0x24, 0x2b, 0xed, 0x9e, 0x32, 0xef, 0x7d, 0xef, 0xcd, 0x78, 0xde, 0xfb,
0xbe, 0x37, 0x41, 0x1f, 0x0d, 0x38, 0x13, 0xac, 0x32, 0x38, 0xf7, 0x29, 0xbf, 0x74, 0x6d, 0x5a,
0xe9, 0x52, 0xab, 0x27, 0xba, 0x76, 0x97, 0xda, 0x17, 0x65, 0xc0, 0xb0, 0x3e, 0x02, 0x37, 0x0d,
0x87, 0x31, 0xa7, 0x47, 0x2b, 0x00, 0x9c, 0x07, 0x9d, 0x4a, 0x3b, 0xe0, 0x96, 0x70, 0x99, 0xa7,
0x42, 0x37, 0x9f, 0x46, 0xbb, 0xd9, 0xac, 0xdf, 0x67, 0x5e, 0x45, 0xfd, 0x84, 0xe0, 0x9a, 0xc3,
0x1c, 0xa6, 0x02, 0xe4, 0x4a, 0x79, 0xb7, 0xff, 0x9a, 0x47, 0xc5, 0x63, 0x38, 0xf3, 0x40, 0x9e,
0x89, 0x31, 0x9a, 0x3f, 0x63, 0x6d, 0x4a, 0xb4, 0x92, 0xb6, 0xa3, 0x9b, 0xb0, 0xc6, 0x47, 0xa8,
0x00, 0x60, 0xbd, 0x46, 0xe6, 0xa4, 0xbb, 0xfa, 0xd9, 0x7f, 0xb7, 0x5b, 0x9f, 0x38, 0xae, 0xe8,
0x06, 0xe7, 0x65, 0x9b, 0xf5, 0x2b, 0x5d, 0xcb, 0xef, 0xba, 0x36, 0xe3, 0x83, 0x8a, 0xcd, 0x3c,
0x3f, 0xe8, 0x55, 0xc4, 0x70, 0x40, 0xfd, 0x72, 0x98, 0x64, 0x46, 0xd9, 0xb0, 0xb9, 0xd5, 0xa7,
0x24, 0x1b, 0x6e, 0x6e, 0xf5, 0x29, 0xde, 0x40, 0xf9, 0xa6, 0xb0, 0x44, 0xe0, 0x93, 0x79, 0xf0,
0x86, 0x16, 0x5e, 0x43, 0xb9, 0x33, 0x26, 0xa8, 0x4f, 0x72, 0xe0, 0x56, 0x86, 0x8c, 0xfe, 0x21,
0x10, 0x83, 0x40, 0x90, 0xbc, 0x8a, 0x56, 0x16, 0x7e, 0x86, 0xf4, 0xa6, 0x2a, 0x52, 0xbd, 0x46,
0x0a, 0x00, 0x8d, 0x1d, 0xb8, 0x84, 0x8a, 0xa1, 0x01, 0xc7, 0x2f, 0x00, 0x1e, 0x77, 0xc5, 0x22,
0x5a, 0x96, 0xe3, 0x13, 0xbd, 0x94, 0x8d, 0x45, 0x48, 0x97, 0xfc, 0xf6, 0xd6, 0x70, 0x40, 0xc9,
0xa2, 0xfa, 0x76, 0xb9, 0xc6, 0x2f, 0x11, 0xaa, 0xd1, 0x8e, 0xeb, 0xb9, 0xb2, 0x07, 0x04, 0x95,
0xb4, 0x9d, 0xe2, 0x5e, 0xa9, 0x3c, 0xea, 0x57, 0x39, 0x56, 0xd8, 0x71, 0x5c, 0x75, 0xfe, 0xfa,
0x76, 0x2b, 0x63, 0xc6, 0x32, 0xf1, 0x0b, 0xa4, 0x9b, 0x56, 0x47, 0xd4, 0xbd, 0x36, 0xbd, 0x22,
0x45, 0xd8, 0x66, 0xb5, 0x1c, 0x36, 0x6f, 0x04, 0x54, 0x17, 0x64, 0xde, 0xcd, 0xed, 0x96, 0x66,
0x8e, 0xa3, 0x71, 0x0d, 0x2d, 0x1f, 0x7a, 0x82, 0xf2, 0x01, 0x77, 0x7d, 0x7a, 0x4a, 0x85, 0x45,
0x96, 0x20, 0x7f, 0x23, 0xca, 0x4f, 0xa2, 0xe1, 0xe1, 0xaf, 0xe5, 0xc8, 0xeb, 0x1f, 0x5e, 0x0d,
0x98, 0x4f, 0xdb, 0x0d, 0xc6, 0x05, 0x59, 0x2e, 0x69, 0x3b, 0x39, 0x33, 0xee, 0xc2, 0x9b, 0x68,
0xa1, 0x2e, 0x73, 0x2e, 0xad, 0x1e, 0x79, 0x04, 0x25, 0x18, 0xd9, 0x98, 0xa0, 0x42, 0xcb, 0xed,
0x53, 0x16, 0x08, 0xb2, 0x02, 0x50, 0x64, 0x6e, 0x7f, 0x0c, 0xe4, 0x6a, 0x53, 0xfe, 0xca, 0xea,
0x05, 0x54, 0xf6, 0x14, 0x16, 0x44, 0x83, 0xfa, 0x2a, 0x63, 0xfb, 0x8f, 0x02, 0x5a, 0x4f, 0xad,
0x94, 0xac, 0xf9, 0x71, 0xab, 0xd5, 0x88, 0xc8, 0x28, 0xd7, 0xf8, 0x39, 0x5a, 0x6a, 0x9d, 0x34,
0x65, 0x67, 0x28, 0x87, 0x6e, 0x3e, 0x06, 0x30, 0xe9, 0x8c, 0xa2, 0x2e, 0xdc, 0xc1, 0x2b, 0xca,
0xdd, 0xce, 0x10, 0x88, 0xbb, 0x60, 0x26, 0x9d, 0xf8, 0x7b, 0x94, 0x57, 0x9f, 0x47, 0xb2, 0xa5,
0xec, 0x4e, 0x71, 0x6f, 0x77, 0x5a, 0xef, 0xca, 0x2a, 0xfc, 0xd0, 0x13, 0x7c, 0x18, 0x96, 0x32,
0xdc, 0x41, 0x32, 0xf3, 0x94, 0x8a, 0x2e, 0x6b, 0x47, 0x3c, 0x56, 0x96, 0xbc, 0x43, 0x95, 0xb5,
0x87, 0x04, 0xab, 0x3b, 0xc8, 0x35, 0x5e, 0x41, 0xd9, 0xd6, 0x41, 0x23, 0x64, 0xb6, 0x5c, 0xe2,
0x6f, 0x63, 0xe5, 0xcd, 0x43, 0x03, 0x9f, 0x94, 0x95, 0xd8, 0xcb, 0x91, 0xd8, 0xcb, 0xb5, 0x50,
0xec, 0xe1, 0xc1, 0xe3, 0xfa, 0x3f, 0x47, 0x4b, 0x4a, 0x06, 0xa7, 0xd6, 0x55, 0xd3, 0xfd, 0x95,
0x12, 0xbd, 0xa4, 0xed, 0x2c, 0x99, 0x49, 0x27, 0x7e, 0x31, 0xee, 0x52, 0x61, 0xb6, 0x13, 0xa2,
0x78, 0xec, 0x20, 0xa3, 0x46, 0x39, 0x75, 0x5c, 0x5f, 0x50, 0x7e, 0xc0, 0x5d, 0xe1, 0xda, 0x56,
0x2f, 0x14, 0xc7, 0x7e, 0x47, 0x50, 0x0e, 0x92, 0x9a, 0x61, 0xc7, 0x29, 0xdb, 0x60, 0x03, 0xa1,
0xa6, 0xcd, 0xdd, 0x81, 0xd8, 0xe7, 0x8e, 0x4f, 0x10, 0xb0, 0x24, 0xe6, 0xc1, 0xbb, 0x68, 0xb5,
0xc6, 0xec, 0x0b, 0xca, 0x0f, 0x98, 0x27, 0x2c, 0xd7, 0xa3, 0xbc, 0x5e, 0x03, 0xc1, 0xe8, 0xe6,
0x24, 0x20, 0xe9, 0xd6, 0xec, 0xd2, 0x5e, 0x2f, 0xd4, 0xac, 0x32, 0x64, 0xa3, 0x8e, 0xf7, 0x1a,
0xf5, 0xb3, 0x23, 0xb2, 0xa6, 0x1a, 0xa5, 0x2c, 0xbc, 0x8d, 0x16, 0x8f, 0xf7, 0x1a, 0xae, 0xe7,
0xfc, 0xe4, 0xd3, 0xd6, 0x49, 0x93, 0xac, 0x03, 0x63, 0x12, 0x3e, 0xd9, 0xcc, 0x23, 0xb3, 0x71,
0x00, 0x1a, 0xd3, 0x4d, 0x58, 0xcb, 0x6f, 0x96, 0xbf, 0x61, 0xd6, 0x32, 0x64, 0xc5, 0x3c, 0x72,
0x34, 0xed, 0xf7, 0x5c, 0xcb, 0x87, 0xb1, 0xaa, 0xa4, 0x33, 0x76, 0xc8, 0x53, 0xc1, 0x08, 0xcb,
0x10, 0x0a, 0x28, 0xe1, 0xc3, 0x9f, 0xa3, 0x6c, 0xab, 0x75, 0x42, 0x56, 0x67, 0xab, 0xb1, 0x8c,
0xdd, 0xfc, 0x31, 0x12, 0x1e, 0x50, 0x55, 0x12, 0xee, 0x82, 0x0e, 0x43, 0x1d, 0xc9, 0x25, 0xde,
0x45, 0xb9, 0x4b, 0x90, 0xe2, 0x5c, 0x38, 0x2e, 0x12, 0xcc, 0x8f, 0x14, 0x6b, 0xaa, 0xa0, 0x6f,
0xe6, 0xbe, 0xd6, 0xb6, 0xff, 0xd5, 0x91, 0x0e, 0x72, 0x80, 0xd1, 0x17, 0x7b, 0x13, 0xb4, 0x77,
0xf2, 0x26, 0xcc, 0xa5, 0xbe, 0x09, 0xd9, 0xf4, 0x37, 0x61, 0x3e, 0xfe, 0x26, 0x24, 0x49, 0x93,
0x9b, 0x20, 0x4d, 0x34, 0x45, 0xf2, 0xb1, 0x29, 0xf2, 0xdd, 0x48, 0xf9, 0x6b, 0xa0, 0xfc, 0xf8,
0xd4, 0x1e, 0x5d, 0x72, 0x26, 0xb5, 0x17, 0x52, 0xd5, 0xbe, 0x39, 0xa9, 0xf6, 0x85, 0x74, 0xb5,
0xeb, 0x6f, 0xab, 0xf6, 0x04, 0x9f, 0xd0, 0x34, 0x3e, 0x15, 0x53, 0xf8, 0x94, 0xaa, 0xa2, 0xc5,
0xa9, 0x2a, 0x5a, 0x4a, 0x57, 0xd1, 0xb3, 0x07, 0x55, 0x64, 0x3c, 0xa0, 0xa2, 0xe5, 0x37, 0xaa,
0xe8, 0xd1, 0x84, 0x8a, 0x26, 0xc6, 0xfe, 0xd3, 0x99, 0xc6, 0xfe, 0x4a, 0xda, 0xd8, 0x8f, 0x4d,
0xc2, 0xd5, 0xb7, 0x9c, 0x84, 0xa1, 0x14, 0xf1, 0xec, 0x52, 0xc4, 0x7b, 0x68, 0xad, 0x19, 0xd8,
0x36, 0xf5, 0xfd, 0x2a, 0xed, 0x30, 0x4e, 0x1b, 0x96, 0xef, 0xbb, 0x9e, 0x03, 0xf3, 0x25, 0x67,
0xa6, 0x62, 0xf8, 0x4b, 0xb4, 0xfe, 0xd2, 0x72, 0x7b, 0x01, 0xa7, 0x21, 0xf0, 0xb3, 0xc5, 0x3d,
0x99, 0xf4, 0x21, 0x24, 0xa5, 0x83, 0xf8, 0x2b, 0xb4, 0x91, 0x04, 0xa2, 0x19, 0x4b, 0x36, 0x20,
0xed, 0x0d, 0xa8, 0x64, 0x54, 0x83, 0xb3, 0xab, 0x21, 0xa8, 0xe4, 0x03, 0xc5, 0xa8, 0x91, 0x63,
0x84, 0x42, 0xcb, 0x48, 0x0c, 0x85, 0xbe, 0x4d, 0x7f, 0x1a, 0x1e, 0xbf, 0x9b, 0xa7, 0x61, 0xe2,
0x91, 0x7b, 0x02, 0x77, 0x4a, 0x3a, 0xdf, 0xc3, 0xdc, 0xab, 0x9e, 0x5e, 0xff, 0x63, 0x64, 0xae,
0xef, 0x0c, 0xed, 0xe6, 0xce, 0xd0, 0xfe, 0xbe, 0x33, 0xb4, 0xdf, 0xee, 0x8d, 0xcc, 0xef, 0xf7,
0x46, 0xe6, 0xe6, 0xde, 0xc8, 0xfc, 0x79, 0x6f, 0x64, 0x7e, 0xf9, 0xf4, 0xa1, 0xb1, 0xf7, 0xda,
0x1f, 0xfc, 0xf3, 0x3c, 0x38, 0xbe, 0xf8, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x8a, 0x43, 0x4c, 0xaf,
0xfa, 0x0b, 0x00, 0x00,
}
func (m *HealthCheck) Marshal() (dAtA []byte, err error) {
@ -602,12 +599,14 @@ func (m *HealthCheckDefinition) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x92
}
n4, err4 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.TTL, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdDuration(m.TTL):])
if err4 != nil {
return 0, err4
{
size, err := m.TTL.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintHealthcheck(dAtA, i, uint64(size))
}
i -= n4
i = encodeVarintHealthcheck(dAtA, i, uint64(n4))
i--
dAtA[i] = 0x1
i--
@ -673,28 +672,34 @@ func (m *HealthCheckDefinition) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x48
}
n5, err5 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.DeregisterCriticalServiceAfter, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdDuration(m.DeregisterCriticalServiceAfter):])
if err5 != nil {
return 0, err5
{
size, err := m.DeregisterCriticalServiceAfter.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintHealthcheck(dAtA, i, uint64(size))
}
i -= n5
i = encodeVarintHealthcheck(dAtA, i, uint64(n5))
i--
dAtA[i] = 0x42
n6, err6 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Timeout, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdDuration(m.Timeout):])
if err6 != nil {
return 0, err6
{
size, err := m.Timeout.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintHealthcheck(dAtA, i, uint64(size))
}
i -= n6
i = encodeVarintHealthcheck(dAtA, i, uint64(n6))
i--
dAtA[i] = 0x3a
n7, err7 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Interval, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdDuration(m.Interval):])
if err7 != nil {
return 0, err7
{
size, err := m.Interval.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintHealthcheck(dAtA, i, uint64(size))
}
i -= n7
i = encodeVarintHealthcheck(dAtA, i, uint64(n7))
i--
dAtA[i] = 0x32
if len(m.TCP) > 0 {
@ -886,32 +891,38 @@ func (m *CheckType) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0xa2
}
}
n10, err10 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.DeregisterCriticalServiceAfter, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdDuration(m.DeregisterCriticalServiceAfter):])
if err10 != nil {
return 0, err10
{
size, err := m.DeregisterCriticalServiceAfter.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintHealthcheck(dAtA, i, uint64(size))
}
i -= n10
i = encodeVarintHealthcheck(dAtA, i, uint64(n10))
i--
dAtA[i] = 0x1
i--
dAtA[i] = 0x9a
n11, err11 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.TTL, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdDuration(m.TTL):])
if err11 != nil {
return 0, err11
{
size, err := m.TTL.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintHealthcheck(dAtA, i, uint64(size))
}
i -= n11
i = encodeVarintHealthcheck(dAtA, i, uint64(n11))
i--
dAtA[i] = 0x1
i--
dAtA[i] = 0x92
n12, err12 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Timeout, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdDuration(m.Timeout):])
if err12 != nil {
return 0, err12
{
size, err := m.Timeout.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintHealthcheck(dAtA, i, uint64(size))
}
i -= n12
i = encodeVarintHealthcheck(dAtA, i, uint64(n12))
i--
dAtA[i] = 0x1
i--
@ -973,12 +984,14 @@ func (m *CheckType) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x52
}
n13, err13 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.Interval, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdDuration(m.Interval):])
if err13 != nil {
return 0, err13
{
size, err := m.Interval.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintHealthcheck(dAtA, i, uint64(size))
}
i -= n13
i = encodeVarintHealthcheck(dAtA, i, uint64(n13))
i--
dAtA[i] = 0x4a
if len(m.TCP) > 0 {
@ -1166,11 +1179,11 @@ func (m *HealthCheckDefinition) Size() (n int) {
if l > 0 {
n += 1 + l + sovHealthcheck(uint64(l))
}
l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Interval)
l = m.Interval.Size()
n += 1 + l + sovHealthcheck(uint64(l))
l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Timeout)
l = m.Timeout.Size()
n += 1 + l + sovHealthcheck(uint64(l))
l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.DeregisterCriticalServiceAfter)
l = m.DeregisterCriticalServiceAfter.Size()
n += 1 + l + sovHealthcheck(uint64(l))
if m.OutputMaxSize != 0 {
n += 1 + sovHealthcheck(uint64(m.OutputMaxSize))
@ -1204,7 +1217,7 @@ func (m *HealthCheckDefinition) Size() (n int) {
if l > 0 {
n += 2 + l + sovHealthcheck(uint64(l))
}
l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.TTL)
l = m.TTL.Size()
n += 2 + l + sovHealthcheck(uint64(l))
l = len(m.Body)
if l > 0 {
@ -1264,7 +1277,7 @@ func (m *CheckType) Size() (n int) {
if l > 0 {
n += 1 + l + sovHealthcheck(uint64(l))
}
l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Interval)
l = m.Interval.Size()
n += 1 + l + sovHealthcheck(uint64(l))
l = len(m.AliasNode)
if l > 0 {
@ -1292,11 +1305,11 @@ func (m *CheckType) Size() (n int) {
if m.TLSSkipVerify {
n += 3
}
l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.Timeout)
l = m.Timeout.Size()
n += 2 + l + sovHealthcheck(uint64(l))
l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.TTL)
l = m.TTL.Size()
n += 2 + l + sovHealthcheck(uint64(l))
l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.DeregisterCriticalServiceAfter)
l = m.DeregisterCriticalServiceAfter.Size()
n += 2 + l + sovHealthcheck(uint64(l))
if len(m.Header) > 0 {
for k, v := range m.Header {
@ -2288,7 +2301,7 @@ func (m *HealthCheckDefinition) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Interval, dAtA[iNdEx:postIndex]); err != nil {
if err := m.Interval.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@ -2321,7 +2334,7 @@ func (m *HealthCheckDefinition) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Timeout, dAtA[iNdEx:postIndex]); err != nil {
if err := m.Timeout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@ -2354,7 +2367,7 @@ func (m *HealthCheckDefinition) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.DeregisterCriticalServiceAfter, dAtA[iNdEx:postIndex]); err != nil {
if err := m.DeregisterCriticalServiceAfter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@ -2618,7 +2631,7 @@ func (m *HealthCheckDefinition) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.TTL, dAtA[iNdEx:postIndex]); err != nil {
if err := m.TTL.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@ -3073,7 +3086,7 @@ func (m *CheckType) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Interval, dAtA[iNdEx:postIndex]); err != nil {
if err := m.Interval.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@ -3306,7 +3319,7 @@ func (m *CheckType) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.Timeout, dAtA[iNdEx:postIndex]); err != nil {
if err := m.Timeout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@ -3339,7 +3352,7 @@ func (m *CheckType) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.TTL, dAtA[iNdEx:postIndex]); err != nil {
if err := m.TTL.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@ -3372,7 +3385,7 @@ func (m *CheckType) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.DeregisterCriticalServiceAfter, dAtA[iNdEx:postIndex]); err != nil {
if err := m.DeregisterCriticalServiceAfter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex

View File

@ -71,14 +71,14 @@ message HealthCheckDefinition {
string Body = 18;
string TCP = 5;
google.protobuf.Duration Interval = 6
[(gogoproto.stdduration) = true, (gogoproto.nullable) = false];
[(gogoproto.nullable) = false];
// mog: func-to=uint func-from=uint32
uint32 OutputMaxSize = 9;
google.protobuf.Duration Timeout = 7
[(gogoproto.stdduration) = true, (gogoproto.nullable) = false];
[(gogoproto.nullable) = false];
google.protobuf.Duration DeregisterCriticalServiceAfter = 8
[(gogoproto.stdduration) = true, (gogoproto.nullable) = false];
[(gogoproto.nullable) = false];
repeated string ScriptArgs = 10;
string DockerContainerID = 11;
string Shell = 12;
@ -89,7 +89,7 @@ message HealthCheckDefinition {
string AliasNode = 15;
string AliasService = 16;
google.protobuf.Duration TTL = 17
[(gogoproto.stdduration) = true, (gogoproto.nullable) = false];
[(gogoproto.nullable) = false];
}
// CheckType is used to create either the CheckMonitor or the CheckTTL.
@ -118,7 +118,7 @@ message CheckType {
string Body = 26;
string TCP = 8;
google.protobuf.Duration Interval = 9
[(gogoproto.stdduration) = true, (gogoproto.nullable) = false];
[(gogoproto.nullable) = false];
string AliasNode = 10;
string AliasService = 11;
@ -131,9 +131,9 @@ message CheckType {
string TLSServerName = 27;
bool TLSSkipVerify = 16;
google.protobuf.Duration Timeout = 17
[(gogoproto.stdduration) = true, (gogoproto.nullable) = false];
[(gogoproto.nullable) = false];
google.protobuf.Duration TTL = 18
[(gogoproto.stdduration) = true, (gogoproto.nullable) = false];
[(gogoproto.nullable) = false];
// mog: func-to=int func-from=int32
int32 SuccessBeforePassing = 21;
@ -150,7 +150,7 @@ message CheckType {
// service, if any, to be deregistered if this check is critical for
// longer than this duration.
google.protobuf.Duration DeregisterCriticalServiceAfter = 19
[(gogoproto.stdduration) = true, (gogoproto.nullable) = false];
[(gogoproto.nullable) = false];
// mog: func-to=int func-from=int32
int32 OutputMaxSize = 25;

View File

@ -86,7 +86,7 @@ func NewServiceConnectFromStructs(t structs.ServiceConnect) ServiceConnect {
s.SidecarService = NewServiceDefinitionPtrFromStructs(t.SidecarService)
return s
}
func ServiceDefinitionToStructs(s ServiceDefinition) structs.ServiceDefinition {
func ServiceDefinitionToStructs(s ServiceDefinition) (structs.ServiceDefinition, error) {
var t structs.ServiceDefinition
t.Kind = s.Kind
t.ID = s.ID
@ -97,15 +97,23 @@ func ServiceDefinitionToStructs(s ServiceDefinition) structs.ServiceDefinition {
t.Meta = s.Meta
t.Port = int(s.Port)
t.SocketPath = s.SocketPath
t.Check = CheckTypeToStructs(s.Check)
t.Checks = CheckTypesToStructs(s.Checks)
check, err := CheckTypeToStructs(s.Check)
if err != nil {
return t, err
}
t.Check = check
checks, err := CheckTypesToStructs(s.Checks)
if err != nil {
return t, err
}
t.Checks = checks
t.Weights = WeightsPtrToStructs(s.Weights)
t.Token = s.Token
t.EnableTagOverride = s.EnableTagOverride
t.Proxy = ConnectProxyConfigPtrToStructs(s.Proxy)
t.EnterpriseMeta = EnterpriseMetaToStructs(s.EnterpriseMeta)
t.Connect = ServiceConnectPtrToStructs(s.Connect)
return t
return t, nil
}
func NewServiceDefinitionFromStructs(t structs.ServiceDefinition) ServiceDefinition {
var s ServiceDefinition

15
proto/pbutil/pbutil.go Normal file
View File

@ -0,0 +1,15 @@
package pbutil
import (
"time"
"github.com/gogo/protobuf/types"
)
func DurationToProto(d time.Duration) *types.Duration {
return types.DurationProto(d)
}
func DurationFromProto(d *types.Duration) (time.Duration, error) {
return types.DurationFromProto(d)
}