mirror of https://github.com/status-im/consul.git
parent
c42ea82883
commit
1950ebbe1f
|
@ -635,7 +635,7 @@ func TestAgent_Service(t *testing.T) {
|
|||
req, _ := http.NewRequest("GET", tt.url, nil)
|
||||
|
||||
// Inject the root token for tests that don't care about ACL
|
||||
var token = "root"
|
||||
token := "root"
|
||||
if tt.tokenRules != "" {
|
||||
// Create new token and use that.
|
||||
token = testCreateToken(t, a, tt.tokenRules)
|
||||
|
@ -2131,7 +2131,6 @@ func TestAgent_ForceLeave(t *testing.T) {
|
|||
r.Fatalf("got status %q want %q", got, want)
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
func TestOpenMetricsMimeTypeHeaders(t *testing.T) {
|
||||
|
@ -2185,7 +2184,7 @@ func TestAgent_ForceLeave_ACLDeny(t *testing.T) {
|
|||
|
||||
t.Run("operator write token", func(t *testing.T) {
|
||||
// Create an ACL with operator read permissions.
|
||||
var rules = `
|
||||
rules := `
|
||||
operator = "write"
|
||||
`
|
||||
opToken := testCreateToken(t, a, rules)
|
||||
|
@ -2226,7 +2225,6 @@ func TestAgent_ForceLeavePrune(t *testing.T) {
|
|||
if member.Status != serf.StatusFailed {
|
||||
r.Fatalf("got status %q want %q", member.Status, serf.StatusFailed)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -2246,7 +2244,6 @@ func TestAgent_ForceLeavePrune(t *testing.T) {
|
|||
r.Fatalf("want one member, got %v", m)
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
func TestAgent_RegisterCheck(t *testing.T) {
|
||||
|
@ -2646,7 +2643,6 @@ func TestAgent_RegisterCheck_ACLDeny(t *testing.T) {
|
|||
require.NoError(r, err)
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
func TestAgent_DeregisterCheck(t *testing.T) {
|
||||
|
@ -3335,6 +3331,7 @@ func testAgent_RegisterService_TranslateKeys(t *testing.T, extraHCL string) {
|
|||
{
|
||||
"destination_type": "service",
|
||||
"destination_namespace": "default",
|
||||
"destination_partition": "default",
|
||||
"destination_name": "db",
|
||||
"local_bind_address": "` + tt.ip + `",
|
||||
"local_bind_port": 1234,
|
||||
|
@ -3363,6 +3360,7 @@ func testAgent_RegisterService_TranslateKeys(t *testing.T, extraHCL string) {
|
|||
{
|
||||
"destination_type": "service",
|
||||
"destination_namespace": "default",
|
||||
"destination_partition": "default",
|
||||
"destination_name": "db",
|
||||
"local_bind_address": "` + tt.ip + `",
|
||||
"local_bind_port": 1234,
|
||||
|
@ -3420,6 +3418,7 @@ func testAgent_RegisterService_TranslateKeys(t *testing.T, extraHCL string) {
|
|||
DestinationType: structs.UpstreamDestTypeService,
|
||||
DestinationName: "db",
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
LocalBindAddress: tt.ip,
|
||||
LocalBindPort: 1234,
|
||||
Config: map[string]interface{}{
|
||||
|
@ -3463,6 +3462,7 @@ func testAgent_RegisterService_TranslateKeys(t *testing.T, extraHCL string) {
|
|||
DestinationType: structs.UpstreamDestTypeService,
|
||||
DestinationName: "db",
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
LocalBindAddress: tt.ip,
|
||||
LocalBindPort: 1234,
|
||||
Config: map[string]interface{}{
|
||||
|
@ -3662,6 +3662,10 @@ func testAgent_RegisterService_UnmanagedConnectProxy(t *testing.T, extraHCL stri
|
|||
args.Proxy.Upstreams[i].DestinationNamespace =
|
||||
structs.DefaultEnterpriseMetaInDefaultPartition().NamespaceOrEmpty()
|
||||
}
|
||||
if args.Proxy.Upstreams[i].DestinationPartition == "" {
|
||||
args.Proxy.Upstreams[i].DestinationPartition =
|
||||
structs.DefaultEnterpriseMetaInDefaultPartition().PartitionOrEmpty()
|
||||
}
|
||||
}
|
||||
|
||||
require.Equal(t, args.Proxy, svc.Proxy.ToAPI())
|
||||
|
|
|
@ -366,7 +366,7 @@ func (b *builder) build() (rt RuntimeConfig, err error) {
|
|||
// process/merge some complex values
|
||||
//
|
||||
|
||||
var dnsServiceTTL = map[string]time.Duration{}
|
||||
dnsServiceTTL := map[string]time.Duration{}
|
||||
for k, v := range c.DNS.ServiceTTL {
|
||||
dnsServiceTTL[k] = b.durationVal(fmt.Sprintf("dns_config.service_ttl[%q]", k), &v)
|
||||
}
|
||||
|
@ -1181,10 +1181,9 @@ func validateBasicName(field, value string, allowEmpty bool) error {
|
|||
|
||||
// validate performs semantic validation of the runtime configuration.
|
||||
func (b *builder) validate(rt RuntimeConfig) error {
|
||||
|
||||
// validContentPath defines a regexp for a valid content path name.
|
||||
var validContentPath = regexp.MustCompile(`^[A-Za-z0-9/_-]+$`)
|
||||
var hasVersion = regexp.MustCompile(`^/v\d+/$`)
|
||||
validContentPath := regexp.MustCompile(`^[A-Za-z0-9/_-]+$`)
|
||||
hasVersion := regexp.MustCompile(`^/v\d+/$`)
|
||||
// ----------------------------------------------------------------
|
||||
// check required params we cannot recover from first
|
||||
//
|
||||
|
@ -1651,7 +1650,6 @@ func (b *builder) serviceVal(v *ServiceDefinition) *structs.ServiceDefinition {
|
|||
b.err = multierror.Append(
|
||||
fmt.Errorf("service %s cannot have both socket path %s and address/port",
|
||||
stringVal(v.Name), stringVal(v.SocketPath)), b.err)
|
||||
|
||||
}
|
||||
|
||||
return &structs.ServiceDefinition{
|
||||
|
@ -1718,6 +1716,7 @@ func (b *builder) upstreamsVal(v []Upstream) structs.Upstreams {
|
|||
ups[i] = structs.Upstream{
|
||||
DestinationType: stringVal(u.DestinationType),
|
||||
DestinationNamespace: stringVal(u.DestinationNamespace),
|
||||
DestinationPartition: stringVal(u.DestinationPartition),
|
||||
DestinationName: stringVal(u.DestinationName),
|
||||
Datacenter: stringVal(u.Datacenter),
|
||||
LocalBindAddress: stringVal(u.LocalBindAddress),
|
||||
|
@ -2369,7 +2368,6 @@ func validateAutoConfigAuthorizer(rt RuntimeConfig) error {
|
|||
// build out the validator to ensure that the given configuration was valid
|
||||
null := hclog.NewNullLogger()
|
||||
validator, err := ssoauth.NewValidator(null, &authz.AuthMethod)
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("auto_config.authorization.static has invalid configuration: %v", err)
|
||||
}
|
||||
|
|
|
@ -511,6 +511,7 @@ type Upstream struct {
|
|||
// on service definitions in various places.
|
||||
DestinationType *string `mapstructure:"destination_type"`
|
||||
DestinationNamespace *string `mapstructure:"destination_namespace"`
|
||||
DestinationPartition *string `mapstructure:"destination_partition"`
|
||||
DestinationName *string `mapstructure:"destination_name"`
|
||||
|
||||
// Datacenter that the service discovery request should be run against. Note
|
||||
|
|
|
@ -5656,6 +5656,7 @@ func TestLoad_FullConfig(t *testing.T) {
|
|||
{
|
||||
DestinationType: "service", // Default should be explicitly filled
|
||||
DestinationName: "KPtAj2cb",
|
||||
DestinationPartition: defaultEntMeta.PartitionOrEmpty(),
|
||||
DestinationNamespace: defaultEntMeta.NamespaceOrEmpty(),
|
||||
LocalBindPort: 4051,
|
||||
Config: map[string]interface{}{
|
||||
|
@ -5665,6 +5666,7 @@ func TestLoad_FullConfig(t *testing.T) {
|
|||
{
|
||||
DestinationType: "prepared_query",
|
||||
DestinationNamespace: "9nakw0td",
|
||||
DestinationPartition: "part-9nakw0td",
|
||||
DestinationName: "KSd8HsRl",
|
||||
LocalBindPort: 11884,
|
||||
LocalBindAddress: "127.24.88.0",
|
||||
|
@ -5672,6 +5674,7 @@ func TestLoad_FullConfig(t *testing.T) {
|
|||
{
|
||||
DestinationType: "prepared_query",
|
||||
DestinationNamespace: "9nakw0td",
|
||||
DestinationPartition: "part-9nakw0td",
|
||||
DestinationName: "placeholder",
|
||||
LocalBindSocketPath: "/foo/bar/upstream",
|
||||
LocalBindSocketMode: "0600",
|
||||
|
|
|
@ -576,6 +576,7 @@ services = [
|
|||
{
|
||||
destination_type = "prepared_query"
|
||||
destination_namespace = "9nakw0td"
|
||||
destination_partition = "part-9nakw0td"
|
||||
destination_name = "KSd8HsRl"
|
||||
local_bind_port = 11884
|
||||
local_bind_address = "127.24.88.0"
|
||||
|
@ -583,6 +584,7 @@ services = [
|
|||
{
|
||||
destination_type = "prepared_query"
|
||||
destination_namespace = "9nakw0td"
|
||||
destination_partition = "part-9nakw0td"
|
||||
destination_name = "placeholder"
|
||||
local_bind_socket_path = "/foo/bar/upstream"
|
||||
local_bind_socket_mode = "0600"
|
||||
|
|
|
@ -589,6 +589,7 @@
|
|||
{
|
||||
"destination_name": "KSd8HsRl",
|
||||
"destination_namespace": "9nakw0td",
|
||||
"destination_partition": "part-9nakw0td",
|
||||
"destination_type": "prepared_query",
|
||||
"local_bind_address": "127.24.88.0",
|
||||
"local_bind_port": 11884
|
||||
|
@ -596,6 +597,7 @@
|
|||
{
|
||||
"destination_name": "placeholder",
|
||||
"destination_namespace": "9nakw0td",
|
||||
"destination_partition": "part-9nakw0td",
|
||||
"destination_type": "prepared_query",
|
||||
"local_bind_socket_path": "/foo/bar/upstream",
|
||||
"local_bind_socket_mode": "0600"
|
||||
|
|
|
@ -55,6 +55,7 @@ func (c *DiscoveryChain) Get(args *structs.DiscoveryChainRequest, reply *structs
|
|||
req := discoverychain.CompileRequest{
|
||||
ServiceName: args.Name,
|
||||
EvaluateInNamespace: entMeta.NamespaceOrDefault(),
|
||||
EvaluateInPartition: entMeta.PartitionOrDefault(),
|
||||
EvaluateInDatacenter: evalDC,
|
||||
UseInDatacenter: c.srv.config.Datacenter,
|
||||
OverrideMeshGateway: args.OverrideMeshGateway,
|
||||
|
|
|
@ -15,6 +15,7 @@ import (
|
|||
type CompileRequest struct {
|
||||
ServiceName string
|
||||
EvaluateInNamespace string
|
||||
EvaluateInPartition string
|
||||
EvaluateInDatacenter string
|
||||
EvaluateInTrustDomain string
|
||||
UseInDatacenter string // where the results will be used from
|
||||
|
@ -906,11 +907,9 @@ RESOLVE_AGAIN:
|
|||
// TODO (mesh-gateway)- maybe allow using a gateway within a datacenter at some point
|
||||
if target.Datacenter == c.useInDatacenter {
|
||||
target.MeshGateway.Mode = structs.MeshGatewayModeDefault
|
||||
|
||||
} else if target.External {
|
||||
// Bypass mesh gateways if it is an external service.
|
||||
target.MeshGateway.Mode = structs.MeshGatewayModeDefault
|
||||
|
||||
} else {
|
||||
// Default mesh gateway settings
|
||||
if serviceDefault := c.entries.GetService(targetID); serviceDefault != nil {
|
||||
|
|
|
@ -162,6 +162,7 @@ func (s *handlerConnectProxy) initialize(ctx context.Context) (ConfigSnapshot, e
|
|||
case structs.UpstreamDestTypeService:
|
||||
fallthrough
|
||||
|
||||
// TODO (partition): pass Partition to DiscoveryChainRequest?
|
||||
case "": // Treat unset as the default Service type
|
||||
err = s.cache.Notify(ctx, cachetype.CompiledDiscoveryChainName, &structs.DiscoveryChainRequest{
|
||||
Datacenter: s.source.Datacenter,
|
||||
|
|
|
@ -103,6 +103,7 @@ func (s *handlerIngressGateway) handleUpdate(ctx context.Context, u cache.Update
|
|||
id: u.Identifier(),
|
||||
name: u.DestinationName,
|
||||
namespace: u.DestinationNamespace,
|
||||
partition: u.DestinationPartition,
|
||||
datacenter: s.source.Datacenter,
|
||||
}
|
||||
up := &handlerUpstreams{handlerState: s.handlerState}
|
||||
|
@ -146,6 +147,7 @@ func makeUpstream(g *structs.GatewayService) structs.Upstream {
|
|||
upstream := structs.Upstream{
|
||||
DestinationName: g.Service.Name,
|
||||
DestinationNamespace: g.Service.NamespaceOrDefault(),
|
||||
DestinationPartition: g.Gateway.PartitionOrDefault(),
|
||||
LocalBindPort: g.Port,
|
||||
IngressHosts: g.Hosts,
|
||||
// Pass the protocol that was configured on the ingress listener in order
|
||||
|
|
|
@ -969,6 +969,7 @@ func TestState_WatchesAndUpdates(t *testing.T) {
|
|||
require.Equal(t, snap.IngressGateway.Upstreams[key], structs.Upstreams{
|
||||
{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "api",
|
||||
LocalBindPort: 9999,
|
||||
Config: map[string]interface{}{
|
||||
|
|
|
@ -345,6 +345,7 @@ type discoveryChainWatchOpts struct {
|
|||
id string
|
||||
name string
|
||||
namespace string
|
||||
partition string
|
||||
datacenter string
|
||||
cfg reducedUpstreamConfig
|
||||
meshGateway structs.MeshGatewayConfig
|
||||
|
|
|
@ -398,6 +398,7 @@ func mergeServiceConfig(defaults *structs.ServiceConfigResponse, service *struct
|
|||
|
||||
remoteUpstreams[us.Upstream] = structs.Upstream{
|
||||
DestinationNamespace: us.Upstream.NamespaceOrDefault(),
|
||||
DestinationPartition: us.Upstream.PartitionOrDefault(),
|
||||
DestinationName: us.Upstream.ID,
|
||||
Config: us.Config,
|
||||
MeshGateway: parsed.MeshGateway,
|
||||
|
|
|
@ -117,6 +117,7 @@ func TestServiceManager_RegisterSidecar(t *testing.T) {
|
|||
{
|
||||
DestinationName: "redis",
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
LocalBindPort: 5000,
|
||||
},
|
||||
},
|
||||
|
@ -147,6 +148,7 @@ func TestServiceManager_RegisterSidecar(t *testing.T) {
|
|||
{
|
||||
DestinationName: "redis",
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
LocalBindPort: 5000,
|
||||
Config: map[string]interface{}{
|
||||
"protocol": "tcp",
|
||||
|
@ -348,6 +350,7 @@ func TestServiceManager_PersistService_API(t *testing.T) {
|
|||
{
|
||||
DestinationName: "redis",
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
LocalBindPort: 5000,
|
||||
},
|
||||
},
|
||||
|
@ -375,6 +378,7 @@ func TestServiceManager_PersistService_API(t *testing.T) {
|
|||
{
|
||||
DestinationName: "redis",
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
LocalBindPort: 5000,
|
||||
Config: map[string]interface{}{
|
||||
"protocol": "tcp",
|
||||
|
@ -567,6 +571,7 @@ func TestServiceManager_PersistService_ConfigFiles(t *testing.T) {
|
|||
upstreams = [{
|
||||
destination_name = "redis"
|
||||
destination_namespace = "default"
|
||||
destination_partition = "default"
|
||||
local_bind_port = 5000
|
||||
}]
|
||||
}
|
||||
|
@ -612,6 +617,7 @@ func TestServiceManager_PersistService_ConfigFiles(t *testing.T) {
|
|||
DestinationType: "service",
|
||||
DestinationName: "redis",
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
LocalBindPort: 5000,
|
||||
Config: map[string]interface{}{
|
||||
"protocol": "tcp",
|
||||
|
@ -909,6 +915,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
|||
Upstreams: structs.Upstreams{
|
||||
structs.Upstream{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "zap",
|
||||
},
|
||||
},
|
||||
|
@ -924,6 +931,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
|||
Upstreams: structs.Upstreams{
|
||||
structs.Upstream{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "zap",
|
||||
Config: map[string]interface{}{
|
||||
"passive_health_check": map[string]interface{}{
|
||||
|
@ -970,6 +978,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
|||
Upstreams: structs.Upstreams{
|
||||
structs.Upstream{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "zip",
|
||||
LocalBindPort: 8080,
|
||||
Config: map[string]interface{}{
|
||||
|
@ -994,6 +1003,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
|||
Upstreams: structs.Upstreams{
|
||||
structs.Upstream{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "zip",
|
||||
LocalBindPort: 8080,
|
||||
Config: map[string]interface{}{
|
||||
|
@ -1002,6 +1012,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
|||
},
|
||||
structs.Upstream{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "zap",
|
||||
Config: map[string]interface{}{
|
||||
"protocol": "grpc",
|
||||
|
@ -1038,6 +1049,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
|||
Upstreams: structs.Upstreams{
|
||||
structs.Upstream{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "zip",
|
||||
LocalBindPort: 8080,
|
||||
Config: map[string]interface{}{
|
||||
|
@ -1058,6 +1070,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
|||
Upstreams: structs.Upstreams{
|
||||
structs.Upstream{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "zip",
|
||||
LocalBindPort: 8080,
|
||||
Config: map[string]interface{}{
|
||||
|
@ -1098,6 +1111,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
|||
Upstreams: structs.Upstreams{
|
||||
structs.Upstream{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "zap",
|
||||
},
|
||||
},
|
||||
|
@ -1116,6 +1130,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
|||
Upstreams: structs.Upstreams{
|
||||
structs.Upstream{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "zap",
|
||||
Config: map[string]interface{}{},
|
||||
MeshGateway: structs.MeshGatewayConfig{
|
||||
|
@ -1156,6 +1171,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
|||
Upstreams: structs.Upstreams{
|
||||
structs.Upstream{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "zap",
|
||||
MeshGateway: structs.MeshGatewayConfig{
|
||||
Mode: structs.MeshGatewayModeNone,
|
||||
|
@ -1177,6 +1193,7 @@ func Test_mergeServiceConfig_UpstreamOverrides(t *testing.T) {
|
|||
Upstreams: structs.Upstreams{
|
||||
structs.Upstream{
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "zap",
|
||||
Config: map[string]interface{}{},
|
||||
MeshGateway: structs.MeshGatewayConfig{
|
||||
|
|
|
@ -1343,6 +1343,7 @@ type DiscoveryChainRequest struct {
|
|||
Name string
|
||||
EvaluateInDatacenter string
|
||||
EvaluateInNamespace string
|
||||
EvaluateInPartition string
|
||||
|
||||
// NOTE: Partition is not represented here by design. Do not add it.
|
||||
|
||||
|
@ -1386,6 +1387,7 @@ func (r *DiscoveryChainRequest) CacheInfo() cache.RequestInfo {
|
|||
Name string
|
||||
EvaluateInDatacenter string
|
||||
EvaluateInNamespace string
|
||||
EvaluateInPartition string
|
||||
OverrideMeshGateway MeshGatewayConfig
|
||||
OverrideProtocol string
|
||||
OverrideConnectTimeout time.Duration
|
||||
|
@ -1394,6 +1396,7 @@ func (r *DiscoveryChainRequest) CacheInfo() cache.RequestInfo {
|
|||
Name: r.Name,
|
||||
EvaluateInDatacenter: r.EvaluateInDatacenter,
|
||||
EvaluateInNamespace: r.EvaluateInNamespace,
|
||||
EvaluateInPartition: r.EvaluateInPartition,
|
||||
OverrideMeshGateway: r.OverrideMeshGateway,
|
||||
OverrideProtocol: r.OverrideProtocol,
|
||||
OverrideConnectTimeout: r.OverrideConnectTimeout,
|
||||
|
|
|
@ -246,7 +246,6 @@ func (t *ConnectProxyConfig) UnmarshalJSON(data []byte) (err error) {
|
|||
}
|
||||
|
||||
return nil
|
||||
|
||||
}
|
||||
|
||||
func (c *ConnectProxyConfig) MarshalJSON() ([]byte, error) {
|
||||
|
@ -343,6 +342,7 @@ type Upstream struct {
|
|||
// on service definitions in various places.
|
||||
DestinationType string `alias:"destination_type"`
|
||||
DestinationNamespace string `json:",omitempty" alias:"destination_namespace"`
|
||||
DestinationPartition string `json:",omitempty" alias:"destination_partition"`
|
||||
DestinationName string `alias:"destination_name"`
|
||||
|
||||
// Datacenter that the service discovery request should be run against. Note
|
||||
|
@ -385,6 +385,7 @@ func (t *Upstream) UnmarshalJSON(data []byte) (err error) {
|
|||
type Alias Upstream
|
||||
aux := &struct {
|
||||
DestinationTypeSnake string `json:"destination_type"`
|
||||
DestinationPartitionSnake string `json:"destination_partition"`
|
||||
DestinationNamespaceSnake string `json:"destination_namespace"`
|
||||
DestinationNameSnake string `json:"destination_name"`
|
||||
|
||||
|
@ -409,6 +410,9 @@ func (t *Upstream) UnmarshalJSON(data []byte) (err error) {
|
|||
if t.DestinationNamespace == "" {
|
||||
t.DestinationNamespace = aux.DestinationNamespaceSnake
|
||||
}
|
||||
if t.DestinationPartition == "" {
|
||||
t.DestinationPartition = aux.DestinationPartitionSnake
|
||||
}
|
||||
if t.DestinationName == "" {
|
||||
t.DestinationName = aux.DestinationNameSnake
|
||||
}
|
||||
|
@ -465,6 +469,7 @@ func (u *Upstream) ToAPI() api.Upstream {
|
|||
return api.Upstream{
|
||||
DestinationType: api.UpstreamDestType(u.DestinationType),
|
||||
DestinationNamespace: u.DestinationNamespace,
|
||||
DestinationPartition: u.DestinationPartition,
|
||||
DestinationName: u.DestinationName,
|
||||
Datacenter: u.Datacenter,
|
||||
LocalBindAddress: u.LocalBindAddress,
|
||||
|
@ -485,6 +490,7 @@ func (u *Upstream) ToAPI() api.Upstream {
|
|||
func (u *Upstream) ToKey() UpstreamKey {
|
||||
return UpstreamKey{
|
||||
DestinationType: u.DestinationType,
|
||||
DestinationPartition: u.DestinationPartition,
|
||||
DestinationNamespace: u.DestinationNamespace,
|
||||
DestinationName: u.DestinationName,
|
||||
Datacenter: u.Datacenter,
|
||||
|
@ -514,15 +520,17 @@ func (u Upstream) UpstreamAddressToString() string {
|
|||
type UpstreamKey struct {
|
||||
DestinationType string
|
||||
DestinationName string
|
||||
DestinationPartition string
|
||||
DestinationNamespace string
|
||||
Datacenter string
|
||||
}
|
||||
|
||||
func (k UpstreamKey) String() string {
|
||||
return fmt.Sprintf(
|
||||
"[type=%q, name=%q, namespace=%q, datacenter=%q]",
|
||||
"[type=%q, name=%q, partition=%q, namespace=%q, datacenter=%q]",
|
||||
k.DestinationType,
|
||||
k.DestinationName,
|
||||
k.DestinationPartition,
|
||||
k.DestinationNamespace,
|
||||
k.Datacenter,
|
||||
)
|
||||
|
@ -537,6 +545,7 @@ func (u *Upstream) String() string {
|
|||
func UpstreamFromAPI(u api.Upstream) Upstream {
|
||||
return Upstream{
|
||||
DestinationType: string(u.DestinationType),
|
||||
DestinationPartition: u.DestinationPartition,
|
||||
DestinationNamespace: u.DestinationNamespace,
|
||||
DestinationName: u.DestinationName,
|
||||
Datacenter: u.Datacenter,
|
||||
|
|
|
@ -91,6 +91,9 @@ func (s *ServiceDefinition) NodeService() *NodeService {
|
|||
if ns.Proxy.Upstreams[i].DestinationNamespace == "" {
|
||||
ns.Proxy.Upstreams[i].DestinationNamespace = ns.EnterpriseMeta.NamespaceOrEmpty()
|
||||
}
|
||||
if ns.Proxy.Upstreams[i].DestinationPartition == "" {
|
||||
ns.Proxy.Upstreams[i].DestinationPartition = ns.EnterpriseMeta.PartitionOrEmpty()
|
||||
}
|
||||
}
|
||||
ns.Proxy.Expose = s.Proxy.Expose
|
||||
}
|
||||
|
|
|
@ -161,6 +161,11 @@ var expectedFieldConfigUpstreams bexpr.FieldConfigurations = bexpr.FieldConfigur
|
|||
CoerceFn: bexpr.CoerceString,
|
||||
SupportedOperations: []bexpr.MatchOperator{bexpr.MatchEqual, bexpr.MatchNotEqual, bexpr.MatchIn, bexpr.MatchNotIn, bexpr.MatchMatches, bexpr.MatchNotMatches},
|
||||
},
|
||||
"DestinationPartition": &bexpr.FieldConfiguration{
|
||||
StructFieldName: "DestinationPartition",
|
||||
CoerceFn: bexpr.CoerceString,
|
||||
SupportedOperations: []bexpr.MatchOperator{bexpr.MatchEqual, bexpr.MatchNotEqual, bexpr.MatchIn, bexpr.MatchNotIn, bexpr.MatchMatches, bexpr.MatchNotMatches},
|
||||
},
|
||||
"DestinationName": &bexpr.FieldConfiguration{
|
||||
StructFieldName: "DestinationName",
|
||||
CoerceFn: bexpr.CoerceString,
|
||||
|
|
|
@ -55,6 +55,9 @@ func TestAddDefaultsToUpstreams(t testing.T, upstreams []Upstream, entMeta Enter
|
|||
if ups[i].DestinationNamespace == "" {
|
||||
ups[i].DestinationNamespace = entMeta.NamespaceOrEmpty()
|
||||
}
|
||||
if ups[i].DestinationPartition == "" {
|
||||
ups[i].DestinationPartition = entMeta.PartitionOrEmpty()
|
||||
}
|
||||
}
|
||||
return ups
|
||||
}
|
||||
|
|
|
@ -537,11 +537,10 @@ func (s *ResourceGenerator) makeUpstreamClusterForPreparedQuery(upstream structs
|
|||
|
||||
spiffeID := connect.SpiffeIDService{
|
||||
Host: cfgSnap.Roots.TrustDomain,
|
||||
Partition: upstream.DestinationPartition,
|
||||
Namespace: upstream.DestinationNamespace,
|
||||
Datacenter: dc,
|
||||
Service: upstream.DestinationName,
|
||||
|
||||
// TODO(partitions) Store partition
|
||||
}
|
||||
|
||||
// Enable TLS upstream with the configured client certificate.
|
||||
|
|
|
@ -185,6 +185,7 @@ func (s *ResourceGenerator) listenersFromSnapshotConnectProxy(cfgSnap *proxycfg.
|
|||
u := structs.Upstream{
|
||||
DestinationName: sn.Name,
|
||||
DestinationNamespace: sn.NamespaceOrDefault(),
|
||||
DestinationPartition: sn.PartitionOrDefault(),
|
||||
}
|
||||
|
||||
filterChain, err := s.makeUpstreamFilterChainForDiscoveryChain(
|
||||
|
@ -738,9 +739,7 @@ func injectHTTPFilterOnFilterChains(
|
|||
)
|
||||
}
|
||||
|
||||
var (
|
||||
hcm envoy_http_v3.HttpConnectionManager
|
||||
)
|
||||
var hcm envoy_http_v3.HttpConnectionManager
|
||||
tc, ok := hcmFilter.ConfigType.(*envoy_listener_v3.Filter_TypedConfig)
|
||||
if !ok {
|
||||
return fmt.Errorf(
|
||||
|
|
17
api/agent.go
17
api/agent.go
|
@ -278,9 +278,9 @@ type AgentServiceRegistration struct {
|
|||
|
||||
// ServiceRegisterOpts is used to pass extra options to the service register.
|
||||
type ServiceRegisterOpts struct {
|
||||
//Missing healthchecks will be deleted from the agent.
|
||||
//Using this parameter allows to idempotently register a service and its checks without
|
||||
//having to manually deregister checks.
|
||||
// Missing healthchecks will be deleted from the agent.
|
||||
// Using this parameter allows to idempotently register a service and its checks without
|
||||
// having to manually deregister checks.
|
||||
ReplaceExistingChecks bool
|
||||
|
||||
// ctx is an optional context pass through to the underlying HTTP
|
||||
|
@ -409,9 +409,9 @@ type ConnectProxyConfig struct {
|
|||
|
||||
// Upstream is the response structure for a proxy upstream configuration.
|
||||
type Upstream struct {
|
||||
DestinationType UpstreamDestType `json:",omitempty"`
|
||||
// DestinationPartition string `json:",omitempty"` // TODO(partitions)?
|
||||
DestinationNamespace string `json:",omitempty"`
|
||||
DestinationType UpstreamDestType `json:",omitempty"`
|
||||
DestinationPartition string `json:",omitempty"`
|
||||
DestinationNamespace string `json:",omitempty"`
|
||||
DestinationName string
|
||||
Datacenter string `json:",omitempty"`
|
||||
LocalBindAddress string `json:",omitempty"`
|
||||
|
@ -963,8 +963,8 @@ func (a *Agent) ForceLeave(node string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
//ForceLeavePrune is used to have an a failed agent removed
|
||||
//from the list of members
|
||||
// ForceLeavePrune is used to have an a failed agent removed
|
||||
// from the list of members
|
||||
func (a *Agent) ForceLeavePrune(node string) error {
|
||||
r := a.c.newRequest("PUT", "/v1/agent/force-leave/"+node)
|
||||
r.params.Set("prune", "1")
|
||||
|
@ -1112,6 +1112,7 @@ func (a *Agent) Monitor(loglevel string, stopCh <-chan struct{}, q *QueryOptions
|
|||
func (a *Agent) MonitorJSON(loglevel string, stopCh <-chan struct{}, q *QueryOptions) (chan string, error) {
|
||||
return a.monitor(loglevel, true, stopCh, q)
|
||||
}
|
||||
|
||||
func (a *Agent) monitor(loglevel string, logJSON bool, stopCh <-chan struct{}, q *QueryOptions) (chan string, error) {
|
||||
r := a.c.newRequest("GET", "/v1/agent/monitor")
|
||||
r.setQueryOptions(q)
|
||||
|
|
|
@ -106,6 +106,9 @@ func (uc *UpstreamConfig) applyDefaults() {
|
|||
if uc.DestinationNamespace == "" {
|
||||
uc.DestinationNamespace = "default"
|
||||
}
|
||||
if uc.DestinationPartition == "" {
|
||||
uc.DestinationPartition = "default"
|
||||
}
|
||||
if uc.LocalBindAddress == "" && uc.LocalBindSocketPath == "" {
|
||||
uc.LocalBindAddress = "127.0.0.1"
|
||||
}
|
||||
|
@ -120,8 +123,8 @@ func (uc *UpstreamConfig) String() string {
|
|||
"%s:%d",
|
||||
uc.LocalBindAddress, uc.LocalBindPort)
|
||||
}
|
||||
return fmt.Sprintf("%s->%s:%s/%s", addr,
|
||||
uc.DestinationType, uc.DestinationNamespace, uc.DestinationName)
|
||||
return fmt.Sprintf("%s->%s:%s/%s/%s", addr,
|
||||
uc.DestinationType, uc.DestinationPartition, uc.DestinationNamespace, uc.DestinationName)
|
||||
}
|
||||
|
||||
// UpstreamResolverFuncFromClient returns a closure that captures a consul
|
||||
|
@ -140,6 +143,7 @@ func UpstreamResolverFuncFromClient(client *api.Client) func(cfg UpstreamConfig)
|
|||
return &connect.ConsulResolver{
|
||||
Client: client,
|
||||
Namespace: cfg.DestinationNamespace,
|
||||
Partition: cfg.DestinationPartition,
|
||||
Name: cfg.DestinationName,
|
||||
Type: typ,
|
||||
Datacenter: cfg.Datacenter,
|
||||
|
|
|
@ -23,12 +23,14 @@ func TestUpstreamResolverFuncFromClient(t *testing.T) {
|
|||
name: "service",
|
||||
cfg: UpstreamConfig{
|
||||
DestinationNamespace: "foo",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "web",
|
||||
Datacenter: "ny1",
|
||||
DestinationType: "service",
|
||||
},
|
||||
want: &connect.ConsulResolver{
|
||||
Namespace: "foo",
|
||||
Partition: "default",
|
||||
Name: "web",
|
||||
Datacenter: "ny1",
|
||||
Type: connect.ConsulResolverTypeService,
|
||||
|
@ -38,6 +40,7 @@ func TestUpstreamResolverFuncFromClient(t *testing.T) {
|
|||
name: "prepared_query",
|
||||
cfg: UpstreamConfig{
|
||||
DestinationNamespace: "foo",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "web",
|
||||
Datacenter: "ny1",
|
||||
DestinationType: "prepared_query",
|
||||
|
@ -45,6 +48,7 @@ func TestUpstreamResolverFuncFromClient(t *testing.T) {
|
|||
want: &connect.ConsulResolver{
|
||||
Namespace: "foo",
|
||||
Name: "web",
|
||||
Partition: "default",
|
||||
Datacenter: "ny1",
|
||||
Type: connect.ConsulResolverTypePreparedQuery,
|
||||
},
|
||||
|
@ -53,11 +57,13 @@ func TestUpstreamResolverFuncFromClient(t *testing.T) {
|
|||
name: "unknown behaves like service",
|
||||
cfg: UpstreamConfig{
|
||||
DestinationNamespace: "foo",
|
||||
DestinationPartition: "default",
|
||||
DestinationName: "web",
|
||||
Datacenter: "ny1",
|
||||
DestinationType: "junk",
|
||||
},
|
||||
want: &connect.ConsulResolver{
|
||||
Partition: "default",
|
||||
Namespace: "foo",
|
||||
Name: "web",
|
||||
Datacenter: "ny1",
|
||||
|
@ -130,6 +136,7 @@ func TestAgentConfigWatcherSidecarProxy(t *testing.T) {
|
|||
{
|
||||
DestinationName: "db",
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationType: "service",
|
||||
LocalBindPort: 9191,
|
||||
LocalBindAddress: "127.0.0.1",
|
||||
|
@ -159,6 +166,7 @@ func TestAgentConfigWatcherSidecarProxy(t *testing.T) {
|
|||
expectCfg.Upstreams = append(expectCfg.Upstreams, UpstreamConfig{
|
||||
DestinationName: "cache",
|
||||
DestinationNamespace: "default",
|
||||
DestinationPartition: "default",
|
||||
DestinationType: "service",
|
||||
LocalBindPort: 9292,
|
||||
LocalBindAddress: "127.10.10.10",
|
||||
|
|
|
@ -66,6 +66,9 @@ type ConsulResolver struct {
|
|||
// Namespace of the query target.
|
||||
Namespace string
|
||||
|
||||
// Partition of the query target.
|
||||
Partition string
|
||||
|
||||
// Name of the query target.
|
||||
Name string
|
||||
|
||||
|
|
|
@ -144,6 +144,7 @@ func UpstreamToStructs(s Upstream) structs.Upstream {
|
|||
var t structs.Upstream
|
||||
t.DestinationType = s.DestinationType
|
||||
t.DestinationNamespace = s.DestinationNamespace
|
||||
t.DestinationPartition = s.DestinationPartition
|
||||
t.DestinationName = s.DestinationName
|
||||
t.Datacenter = s.Datacenter
|
||||
t.LocalBindAddress = s.LocalBindAddress
|
||||
|
@ -159,6 +160,7 @@ func NewUpstreamFromStructs(t structs.Upstream) Upstream {
|
|||
var s Upstream
|
||||
s.DestinationType = t.DestinationType
|
||||
s.DestinationNamespace = t.DestinationNamespace
|
||||
s.DestinationPartition = t.DestinationPartition
|
||||
s.DestinationName = t.DestinationName
|
||||
s.Datacenter = t.Datacenter
|
||||
s.LocalBindAddress = t.LocalBindAddress
|
||||
|
|
|
@ -157,8 +157,9 @@ type Upstream struct {
|
|||
// instance registration or whether it was generated from a config entry.
|
||||
CentrallyConfigured bool `protobuf:"varint,9,opt,name=CentrallyConfigured,proto3" json:"CentrallyConfigured,omitempty"`
|
||||
// LocalBindSocketPath is the socket to create to connect to the upstream service
|
||||
LocalBindSocketPath string `protobuf:"bytes,10,opt,name=LocalBindSocketPath,proto3" json:"LocalBindSocketPath,omitempty"`
|
||||
LocalBindSocketMode string `protobuf:"bytes,11,opt,name=LocalBindSocketMode,proto3" json:"LocalBindSocketMode,omitempty"`
|
||||
LocalBindSocketPath string `protobuf:"bytes,10,opt,name=LocalBindSocketPath,proto3" json:"LocalBindSocketPath,omitempty"`
|
||||
LocalBindSocketMode string `protobuf:"bytes,11,opt,name=LocalBindSocketMode,proto3" json:"LocalBindSocketMode,omitempty"`
|
||||
DestinationPartition string `protobuf:"bytes,12,opt,name=DestinationPartition,proto3" json:"DestinationPartition,omitempty"`
|
||||
}
|
||||
|
||||
func (m *Upstream) Reset() { *m = Upstream{} }
|
||||
|
@ -619,82 +620,83 @@ func init() {
|
|||
func init() { proto.RegisterFile("proto/pbservice/service.proto", fileDescriptor_cbb99233b75fb80b) }
|
||||
|
||||
var fileDescriptor_cbb99233b75fb80b = []byte{
|
||||
// 1200 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcf, 0x6e, 0x1b, 0xb7,
|
||||
0x13, 0xc7, 0xb5, 0xfa, 0x63, 0x49, 0xe3, 0xfc, 0x1c, 0x9b, 0xd1, 0xcf, 0xdd, 0xba, 0x89, 0xec,
|
||||
0x08, 0x45, 0x60, 0xb4, 0x86, 0x94, 0xd8, 0x48, 0xdd, 0x04, 0x48, 0x81, 0xda, 0x72, 0x8b, 0x20,
|
||||
0x71, 0xa2, 0xae, 0x55, 0x04, 0x2d, 0xd0, 0x03, 0xb5, 0xa2, 0x57, 0x0b, 0x4b, 0x4b, 0x61, 0x49,
|
||||
0xb9, 0xd1, 0x5b, 0xf4, 0xd6, 0x5e, 0x7b, 0xe8, 0xbd, 0x8f, 0xe1, 0x63, 0x8e, 0x3d, 0x19, 0xad,
|
||||
0xfd, 0x16, 0x3e, 0x15, 0x1c, 0x72, 0xd7, 0xab, 0xd5, 0xd6, 0x48, 0x7b, 0x12, 0x39, 0xdf, 0x99,
|
||||
0x21, 0x97, 0xfc, 0xcc, 0x50, 0x70, 0x6f, 0x1c, 0x72, 0xc9, 0x5b, 0xe3, 0x9e, 0x60, 0xe1, 0xa9,
|
||||
0xef, 0xb2, 0x96, 0xf9, 0x6d, 0xa2, 0x9d, 0x54, 0x63, 0x61, 0xed, 0xae, 0xc7, 0xb9, 0x37, 0x64,
|
||||
0x2d, 0x14, 0x7a, 0x93, 0xe3, 0x96, 0x90, 0xe1, 0xc4, 0x95, 0xda, 0x71, 0xed, 0xa3, 0x28, 0x8f,
|
||||
0xcb, 0x47, 0x23, 0x1e, 0xb4, 0xf4, 0x8f, 0x11, 0xef, 0xa7, 0x17, 0x19, 0x30, 0x3a, 0x94, 0x03,
|
||||
0x77, 0xc0, 0xdc, 0x13, 0xe3, 0x52, 0xf3, 0xb8, 0xc7, 0xb5, 0x9b, 0x1a, 0x69, 0x6b, 0xe3, 0xb7,
|
||||
0x12, 0x90, 0x7d, 0x1e, 0x04, 0xcc, 0x95, 0x9d, 0x90, 0xbf, 0x9d, 0xee, 0xf3, 0xe0, 0xd8, 0xf7,
|
||||
0xc8, 0x67, 0xb0, 0xda, 0x66, 0x42, 0xfa, 0x01, 0x95, 0x3e, 0x0f, 0x8e, 0x74, 0xd2, 0x57, 0x74,
|
||||
0xc4, 0x6c, 0x6b, 0xc3, 0xda, 0xac, 0x3a, 0xff, 0xa0, 0x92, 0x6d, 0xa8, 0xcd, 0x2b, 0xcf, 0xdb,
|
||||
0x76, 0x1e, 0xa3, 0x32, 0x35, 0xf2, 0x10, 0xee, 0xbc, 0xe4, 0x2e, 0x1d, 0x1a, 0xcb, 0x97, 0xfd,
|
||||
0x7e, 0xc8, 0x84, 0xb0, 0x0b, 0x18, 0x92, 0x25, 0x91, 0x4f, 0x60, 0x39, 0x69, 0xee, 0xf0, 0x50,
|
||||
0xda, 0xc5, 0x0d, 0x6b, 0xb3, 0xe4, 0xcc, 0xd9, 0xc9, 0x63, 0x58, 0xd0, 0xdf, 0x64, 0x97, 0x36,
|
||||
0xac, 0xcd, 0xc5, 0xed, 0x0f, 0x9a, 0xfa, 0x94, 0x9b, 0xd1, 0x29, 0x37, 0x8f, 0xf0, 0x94, 0xf7,
|
||||
0x8a, 0x67, 0xe7, 0xeb, 0x96, 0x63, 0x9c, 0xc9, 0x2e, 0x54, 0xbf, 0x1d, 0x0b, 0x19, 0x32, 0x3a,
|
||||
0x12, 0xf6, 0xc2, 0x46, 0x61, 0x73, 0x71, 0xfb, 0x4e, 0x33, 0x3e, 0xde, 0x66, 0xa4, 0x61, 0x54,
|
||||
0xce, 0xb9, 0xf6, 0x25, 0x6d, 0x58, 0x3c, 0x64, 0x62, 0xf0, 0x35, 0x95, 0xec, 0x47, 0x3a, 0xb5,
|
||||
0xcb, 0xb8, 0xe8, 0xdd, 0x44, 0x68, 0x42, 0xd5, 0x6b, 0x99, 0x1c, 0xc9, 0x30, 0xb5, 0xeb, 0x83,
|
||||
0xb7, 0x63, 0x2e, 0x98, 0x5d, 0x31, 0xbb, 0xbe, 0x4e, 0xa0, 0x85, 0x99, 0x58, 0xe3, 0x4c, 0x5e,
|
||||
0x40, 0xf1, 0x90, 0xf7, 0x99, 0x5d, 0x55, 0x67, 0xb7, 0xb7, 0x7b, 0x75, 0xbe, 0xbe, 0xe3, 0xf9,
|
||||
0x72, 0x30, 0xe9, 0x35, 0x5d, 0x3e, 0x6a, 0x0d, 0xa8, 0x18, 0xf8, 0x2e, 0x0f, 0xc7, 0x2d, 0x97,
|
||||
0x07, 0x62, 0x32, 0x6c, 0x51, 0x8f, 0x05, 0xd2, 0x50, 0x26, 0x9a, 0x78, 0xff, 0x2a, 0xdc, 0xc1,
|
||||
0x24, 0xe4, 0x08, 0x96, 0xbb, 0x21, 0x0d, 0xc4, 0x98, 0x86, 0x2c, 0xd0, 0x74, 0xd8, 0x80, 0xbb,
|
||||
0xb9, 0x9f, 0xd8, 0x4d, 0xda, 0x65, 0x66, 0x5f, 0x73, 0x09, 0x14, 0x58, 0xc9, 0x2b, 0x3a, 0xe2,
|
||||
0xee, 0x09, 0x93, 0x1d, 0x2a, 0x07, 0xf6, 0xa2, 0x06, 0x2b, 0x5b, 0x6d, 0xfc, 0x5c, 0x84, 0x4a,
|
||||
0x74, 0xc8, 0x64, 0x13, 0x6e, 0x27, 0x48, 0xea, 0x4e, 0xc7, 0x11, 0x96, 0x69, 0x73, 0x8a, 0x47,
|
||||
0x85, 0xa8, 0x18, 0x53, 0x97, 0x65, 0xf0, 0x18, 0x6b, 0xa9, 0xec, 0x08, 0x7d, 0x61, 0x2e, 0x3b,
|
||||
0xd2, 0x5e, 0x07, 0x68, 0x53, 0x49, 0x5d, 0x16, 0x48, 0x16, 0x22, 0x81, 0x55, 0x27, 0x61, 0x89,
|
||||
0x39, 0xdd, 0xf3, 0x83, 0x7e, 0x84, 0x75, 0x09, 0xbd, 0xe6, 0xec, 0xe4, 0x63, 0xf8, 0x5f, 0x6c,
|
||||
0x43, 0xa0, 0x17, 0x10, 0xe8, 0x59, 0x63, 0x82, 0xe6, 0xf2, 0xbf, 0xa1, 0x39, 0x05, 0x65, 0xe5,
|
||||
0xbf, 0x41, 0xf9, 0x10, 0xee, 0xec, 0xb3, 0x40, 0x86, 0x74, 0x38, 0x34, 0x5e, 0x93, 0x90, 0xf5,
|
||||
0x11, 0xb6, 0x8a, 0x93, 0x25, 0xc5, 0xa5, 0xad, 0xf6, 0x9f, 0xb8, 0x6a, 0x48, 0x94, 0xf6, 0xac,
|
||||
0x94, 0x11, 0x81, 0x40, 0x2f, 0x66, 0x46, 0x28, 0xa9, 0x11, 0xc0, 0x92, 0xc1, 0xc5, 0xf4, 0x31,
|
||||
0xb2, 0x0a, 0x0b, 0xaf, 0xa8, 0xf4, 0x4f, 0x35, 0x15, 0x15, 0xc7, 0xcc, 0x48, 0x1b, 0x96, 0x8e,
|
||||
0xfc, 0x3e, 0x73, 0x69, 0x68, 0x02, 0xf0, 0x5e, 0x67, 0x0f, 0xc2, 0x28, 0x6d, 0x76, 0xec, 0x07,
|
||||
0xbe, 0xba, 0x68, 0x27, 0x15, 0xd3, 0xf8, 0x0e, 0x6e, 0x25, 0x2b, 0x50, 0xad, 0xb6, 0xaf, 0xda,
|
||||
0xac, 0x88, 0x56, 0xd3, 0x33, 0xf2, 0x08, 0x4a, 0xea, 0x8b, 0x84, 0x9d, 0xc7, 0xee, 0xf1, 0xff,
|
||||
0xb9, 0x0a, 0x56, 0xaa, 0x39, 0x66, 0xed, 0xd9, 0xf8, 0xdd, 0x02, 0xb8, 0xd6, 0x48, 0x03, 0x6e,
|
||||
0xbd, 0xf4, 0x85, 0x64, 0x01, 0x0b, 0x91, 0x08, 0x0b, 0x89, 0x98, 0xb1, 0x11, 0x02, 0x45, 0x3c,
|
||||
0x52, 0x0d, 0x34, 0x8e, 0x63, 0x94, 0xd4, 0x04, 0x03, 0x0b, 0x09, 0x94, 0x22, 0x23, 0x59, 0x83,
|
||||
0x4a, 0x47, 0x41, 0xe3, 0xf2, 0xa1, 0x41, 0x37, 0x9e, 0xab, 0x12, 0xe8, 0xd0, 0x50, 0xb0, 0xfe,
|
||||
0x57, 0x21, 0x1f, 0xe1, 0xf7, 0x20, 0xb7, 0x15, 0x27, 0x6d, 0x6e, 0x1c, 0xc3, 0xca, 0x1c, 0x3b,
|
||||
0xe4, 0x1b, 0xd3, 0x86, 0xb0, 0x28, 0xf7, 0x9e, 0x5d, 0x9d, 0xaf, 0x3f, 0x79, 0xff, 0x36, 0x94,
|
||||
0x48, 0x77, 0xdd, 0x8c, 0x1a, 0x12, 0x56, 0xb3, 0x3b, 0x8d, 0x2a, 0xf1, 0xd7, 0x13, 0xd9, 0xe3,
|
||||
0x93, 0xa0, 0x9f, 0x71, 0x5a, 0x99, 0x1a, 0x79, 0x00, 0x4b, 0x6d, 0x9f, 0x0e, 0x59, 0xbf, 0xed,
|
||||
0x87, 0xcc, 0x95, 0xc3, 0x29, 0x9e, 0x5f, 0xc5, 0x49, 0x59, 0x1b, 0xbf, 0x96, 0x61, 0x65, 0x8e,
|
||||
0x08, 0x72, 0x08, 0xc5, 0x17, 0x7e, 0xd0, 0x37, 0x9f, 0xf7, 0xe4, 0xea, 0x7c, 0xfd, 0xf1, 0xfb,
|
||||
0x7f, 0x9e, 0x49, 0xa7, 0x12, 0x38, 0x98, 0x86, 0x2c, 0x41, 0x3e, 0x7e, 0x21, 0xf3, 0xcf, 0xdb,
|
||||
0xea, 0x4a, 0x13, 0x4d, 0x07, 0xc7, 0xca, 0xd6, 0xa5, 0x9e, 0xb0, 0x8b, 0x1b, 0x05, 0x65, 0x53,
|
||||
0x63, 0x62, 0x43, 0x79, 0xb6, 0xa9, 0x44, 0x53, 0x42, 0xe1, 0x76, 0x97, 0x7a, 0x1e, 0x8b, 0x9a,
|
||||
0x0b, 0x13, 0xf6, 0x32, 0x42, 0xf8, 0xe8, 0x26, 0xd2, 0x9b, 0xa9, 0x98, 0x83, 0x40, 0x86, 0x53,
|
||||
0x03, 0x68, 0x3a, 0x1f, 0x79, 0x0a, 0xc5, 0x43, 0x26, 0xa9, 0x79, 0x1a, 0x1f, 0xdc, 0x98, 0x57,
|
||||
0x39, 0x62, 0x32, 0x07, 0x63, 0x90, 0x59, 0x75, 0x43, 0x65, 0xbc, 0x21, 0x1c, 0xab, 0x56, 0x9a,
|
||||
0x68, 0x10, 0x44, 0xb7, 0xd2, 0x99, 0xbe, 0x50, 0xd2, 0x1c, 0xea, 0xde, 0x55, 0x4b, 0x2c, 0x88,
|
||||
0x76, 0xd5, 0xed, 0xa3, 0x62, 0x42, 0x03, 0xd9, 0x8a, 0xeb, 0xb2, 0x8a, 0x7b, 0xcc, 0x0c, 0x89,
|
||||
0xab, 0x75, 0x0b, 0xca, 0x6f, 0x98, 0xef, 0x0d, 0xa4, 0x30, 0x6f, 0x1c, 0x49, 0xb8, 0x1b, 0xc5,
|
||||
0x89, 0x5c, 0x48, 0x0d, 0x4a, 0x5d, 0x7e, 0xc2, 0x02, 0xd3, 0x97, 0xf4, 0x84, 0x6c, 0xc1, 0xca,
|
||||
0x41, 0x40, 0x7b, 0x43, 0xd6, 0xa5, 0xde, 0xeb, 0x53, 0x16, 0x86, 0x7e, 0x9f, 0xd9, 0xb7, 0x10,
|
||||
0xac, 0x79, 0x81, 0xec, 0x40, 0x49, 0xbf, 0xa9, 0x4b, 0xb8, 0xde, 0xbd, 0xe4, 0xf6, 0xe6, 0xfe,
|
||||
0x90, 0x39, 0xda, 0x57, 0xb5, 0xb0, 0x03, 0xf5, 0xb4, 0x8c, 0x43, 0x5f, 0x30, 0xbc, 0x80, 0x15,
|
||||
0x8c, 0x5e, 0x6d, 0x9a, 0xbf, 0x83, 0xb3, 0xaa, 0x39, 0x91, 0x54, 0x0c, 0xd9, 0x81, 0xb2, 0x59,
|
||||
0xc2, 0xbe, 0x8d, 0xe1, 0x1f, 0xce, 0xdf, 0x9f, 0x71, 0x70, 0x22, 0xcf, 0xb5, 0x1f, 0xa0, 0x96,
|
||||
0x05, 0x08, 0x59, 0x86, 0xc2, 0x09, 0x9b, 0x9a, 0x07, 0x58, 0x0d, 0x49, 0x0b, 0x4a, 0xa7, 0x74,
|
||||
0x38, 0xd1, 0xaf, 0x6c, 0x66, 0x72, 0x93, 0xc2, 0xd1, 0x7e, 0x4f, 0xf3, 0x9f, 0x5b, 0x6b, 0xbb,
|
||||
0x50, 0x8d, 0x39, 0xc9, 0xc8, 0x59, 0x4b, 0xe6, 0xac, 0x26, 0x02, 0x1b, 0x5f, 0xc4, 0xfd, 0x3f,
|
||||
0xc2, 0x3f, 0x51, 0x18, 0xd6, 0x6c, 0x61, 0x44, 0xe4, 0xe5, 0xaf, 0xc9, 0x6b, 0x3c, 0x8b, 0x6f,
|
||||
0x5e, 0x05, 0x76, 0xa8, 0x10, 0x7e, 0xe0, 0x99, 0xee, 0x11, 0x4d, 0x95, 0xf2, 0x86, 0x86, 0x81,
|
||||
0x52, 0x74, 0x6c, 0x34, 0xdd, 0x3b, 0x3c, 0xfb, 0xab, 0x9e, 0x3b, 0xbb, 0xa8, 0x5b, 0xef, 0x2e,
|
||||
0xea, 0xd6, 0x9f, 0x17, 0x75, 0xeb, 0xa7, 0xcb, 0x7a, 0xee, 0x97, 0xcb, 0x7a, 0xee, 0xdd, 0x65,
|
||||
0x3d, 0xf7, 0xc7, 0x65, 0x3d, 0xf7, 0xfd, 0xa7, 0x37, 0x35, 0x87, 0xd4, 0xff, 0xf6, 0xde, 0x02,
|
||||
0x1a, 0x76, 0xfe, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x70, 0xa5, 0x21, 0xd2, 0x36, 0x0c, 0x00, 0x00,
|
||||
// 1212 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x96, 0xcd, 0x6e, 0x1b, 0x37,
|
||||
0x10, 0xc7, 0xb5, 0xfa, 0xb0, 0x24, 0xda, 0xf5, 0x07, 0xad, 0xba, 0x5b, 0x37, 0x91, 0x1d, 0xa1,
|
||||
0x08, 0x8c, 0xd6, 0x90, 0x12, 0x1b, 0xa9, 0x9b, 0x00, 0x29, 0x50, 0x5b, 0x6e, 0x11, 0x24, 0x4e,
|
||||
0xd4, 0xb5, 0x8a, 0xa0, 0x05, 0x7a, 0xa0, 0x56, 0xf4, 0x6a, 0x61, 0x69, 0x29, 0x90, 0x94, 0x1b,
|
||||
0xbd, 0x45, 0x8f, 0xbd, 0xf6, 0xd0, 0x7b, 0x1f, 0xc3, 0x40, 0x2f, 0x39, 0xf6, 0x64, 0xb4, 0xf6,
|
||||
0x5b, 0xf8, 0x54, 0x70, 0xc8, 0x5d, 0xaf, 0x76, 0xb7, 0x46, 0x9a, 0x93, 0xc8, 0xf9, 0xcf, 0x0c,
|
||||
0xb9, 0x9c, 0x1f, 0x87, 0x42, 0x77, 0xc7, 0x9c, 0x49, 0xd6, 0x1a, 0xf7, 0x04, 0xe5, 0x67, 0xbe,
|
||||
0x4b, 0x5b, 0xe6, 0xb7, 0x09, 0x76, 0x5c, 0x8d, 0x84, 0xf5, 0x3b, 0x1e, 0x63, 0xde, 0x90, 0xb6,
|
||||
0x40, 0xe8, 0x4d, 0x4e, 0x5a, 0x42, 0xf2, 0x89, 0x2b, 0xb5, 0xe3, 0xfa, 0x27, 0x61, 0x1e, 0x97,
|
||||
0x8d, 0x46, 0x2c, 0x68, 0xe9, 0x1f, 0x23, 0xde, 0x4b, 0x2e, 0x32, 0xa0, 0x64, 0x28, 0x07, 0xee,
|
||||
0x80, 0xba, 0xa7, 0xc6, 0xa5, 0xe6, 0x31, 0x8f, 0x69, 0x37, 0x35, 0xd2, 0xd6, 0xc6, 0xef, 0x25,
|
||||
0x84, 0x0f, 0x58, 0x10, 0x50, 0x57, 0x76, 0x38, 0x7b, 0x33, 0x3d, 0x60, 0xc1, 0x89, 0xef, 0xe1,
|
||||
0x2f, 0xd0, 0x5a, 0x9b, 0x0a, 0xe9, 0x07, 0x44, 0xfa, 0x2c, 0x38, 0xd6, 0x49, 0x5f, 0x92, 0x11,
|
||||
0xb5, 0xad, 0x4d, 0x6b, 0xab, 0xea, 0xfc, 0x87, 0x8a, 0x77, 0x50, 0x2d, 0xad, 0x3c, 0x6b, 0xdb,
|
||||
0x79, 0x88, 0xca, 0xd4, 0xf0, 0x03, 0xb4, 0xfa, 0x82, 0xb9, 0x64, 0x68, 0x2c, 0x5f, 0xf7, 0xfb,
|
||||
0x9c, 0x0a, 0x61, 0x17, 0x20, 0x24, 0x4b, 0xc2, 0x9f, 0xa1, 0xe5, 0xb8, 0xb9, 0xc3, 0xb8, 0xb4,
|
||||
0x8b, 0x9b, 0xd6, 0x56, 0xc9, 0x49, 0xd9, 0xf1, 0x23, 0x34, 0xa7, 0xbf, 0xc9, 0x2e, 0x6d, 0x5a,
|
||||
0x5b, 0xf3, 0x3b, 0x1f, 0x35, 0xf5, 0x29, 0x37, 0xc3, 0x53, 0x6e, 0x1e, 0xc3, 0x29, 0xef, 0x17,
|
||||
0xcf, 0x2f, 0x36, 0x2c, 0xc7, 0x38, 0xe3, 0x3d, 0x54, 0xfd, 0x7e, 0x2c, 0x24, 0xa7, 0x64, 0x24,
|
||||
0xec, 0xb9, 0xcd, 0xc2, 0xd6, 0xfc, 0xce, 0x6a, 0x33, 0x3a, 0xde, 0x66, 0xa8, 0x41, 0x54, 0xce,
|
||||
0xb9, 0xf1, 0xc5, 0x6d, 0x34, 0x7f, 0x44, 0xc5, 0xe0, 0x5b, 0x22, 0xe9, 0xcf, 0x64, 0x6a, 0x97,
|
||||
0x61, 0xd1, 0x3b, 0xb1, 0xd0, 0x98, 0xaa, 0xd7, 0x32, 0x39, 0xe2, 0x61, 0x6a, 0xd7, 0x87, 0x6f,
|
||||
0xc6, 0x4c, 0x50, 0xbb, 0x62, 0x76, 0x7d, 0x93, 0x40, 0x0b, 0x33, 0xb1, 0xc6, 0x19, 0x3f, 0x47,
|
||||
0xc5, 0x23, 0xd6, 0xa7, 0x76, 0x55, 0x9d, 0xdd, 0xfe, 0xde, 0xf5, 0xc5, 0xc6, 0xae, 0xe7, 0xcb,
|
||||
0xc1, 0xa4, 0xd7, 0x74, 0xd9, 0xa8, 0x35, 0x20, 0x62, 0xe0, 0xbb, 0x8c, 0x8f, 0x5b, 0x2e, 0x0b,
|
||||
0xc4, 0x64, 0xd8, 0x22, 0x1e, 0x0d, 0xa4, 0xa1, 0x4c, 0x34, 0xa1, 0xfe, 0x2a, 0xdc, 0x81, 0x24,
|
||||
0xf8, 0x18, 0x2d, 0x77, 0x39, 0x09, 0xc4, 0x98, 0x70, 0x1a, 0x68, 0x3a, 0x6c, 0x04, 0xbb, 0xb9,
|
||||
0x17, 0xdb, 0x4d, 0xd2, 0x65, 0x66, 0x5f, 0xa9, 0x04, 0x0a, 0xac, 0x78, 0x89, 0x8e, 0x99, 0x7b,
|
||||
0x4a, 0x65, 0x87, 0xc8, 0x81, 0x3d, 0xaf, 0xc1, 0xca, 0x56, 0x1b, 0x7f, 0x16, 0x51, 0x25, 0x3c,
|
||||
0x64, 0xbc, 0x85, 0x96, 0x62, 0x24, 0x75, 0xa7, 0xe3, 0x10, 0xcb, 0xa4, 0x39, 0xc1, 0xa3, 0x42,
|
||||
0x54, 0x8c, 0x89, 0x4b, 0x33, 0x78, 0x8c, 0xb4, 0x44, 0x76, 0x80, 0xbe, 0x90, 0xca, 0x0e, 0xb4,
|
||||
0xd7, 0x11, 0x6a, 0x13, 0x49, 0x5c, 0x1a, 0x48, 0xca, 0x81, 0xc0, 0xaa, 0x13, 0xb3, 0x44, 0x9c,
|
||||
0xee, 0xfb, 0x41, 0x3f, 0xc4, 0xba, 0x04, 0x5e, 0x29, 0x3b, 0xfe, 0x14, 0x7d, 0x10, 0xd9, 0x00,
|
||||
0xe8, 0x39, 0x00, 0x7a, 0xd6, 0x18, 0xa3, 0xb9, 0xfc, 0x7f, 0x68, 0x4e, 0x40, 0x59, 0x79, 0x3f,
|
||||
0x28, 0x1f, 0xa0, 0xd5, 0x03, 0x1a, 0x48, 0x4e, 0x86, 0x43, 0xe3, 0x35, 0xe1, 0xb4, 0x0f, 0xb0,
|
||||
0x55, 0x9c, 0x2c, 0x29, 0xba, 0xda, 0x6a, 0xff, 0xb1, 0x52, 0xa3, 0xd8, 0xd5, 0x9e, 0x95, 0x32,
|
||||
0x22, 0x00, 0xe8, 0xf9, 0xcc, 0x08, 0xc0, 0x74, 0xb6, 0xc4, 0x1d, 0xc2, 0xa5, 0xaf, 0x06, 0xf6,
|
||||
0x42, 0xaa, 0xc4, 0x91, 0xd6, 0x08, 0xd0, 0xa2, 0x41, 0xcc, 0xf4, 0x3e, 0xbc, 0x86, 0xe6, 0x5e,
|
||||
0x12, 0xe9, 0x9f, 0x69, 0x92, 0x2a, 0x8e, 0x99, 0xe1, 0x36, 0x5a, 0x3c, 0xf6, 0xfb, 0xd4, 0x25,
|
||||
0xdc, 0x04, 0x00, 0x0b, 0xb3, 0x87, 0x67, 0x94, 0x36, 0x3d, 0xf1, 0x03, 0xc8, 0xef, 0x24, 0x62,
|
||||
0x1a, 0x3f, 0xa0, 0x85, 0xf8, 0xad, 0x55, 0xab, 0x1d, 0xa8, 0xd6, 0x2c, 0xc2, 0xd5, 0xf4, 0x0c,
|
||||
0x3f, 0x44, 0x25, 0x75, 0x0a, 0xc2, 0xce, 0x43, 0xc7, 0xf9, 0x30, 0x75, 0xeb, 0x95, 0x6a, 0x4a,
|
||||
0xa3, 0x3d, 0x1b, 0x7f, 0x58, 0x08, 0xdd, 0x68, 0xb8, 0x81, 0x16, 0x5e, 0xf8, 0x42, 0xd2, 0x80,
|
||||
0x72, 0xa0, 0xc8, 0x02, 0x8a, 0x66, 0x6c, 0x18, 0xa3, 0x22, 0x94, 0x41, 0x5f, 0x02, 0x18, 0x47,
|
||||
0xf8, 0xa9, 0x09, 0x04, 0x16, 0x62, 0xf8, 0x85, 0x46, 0xbc, 0x8e, 0x2a, 0x1d, 0x05, 0x9a, 0xcb,
|
||||
0x86, 0x06, 0xf7, 0x68, 0xae, 0xae, 0x4d, 0x87, 0x70, 0x41, 0xfb, 0xdf, 0x70, 0x36, 0x82, 0xef,
|
||||
0x01, 0xd6, 0x2b, 0x4e, 0xd2, 0xdc, 0x38, 0x41, 0x2b, 0x29, 0xde, 0xf0, 0x77, 0xa6, 0x75, 0xc1,
|
||||
0x45, 0xde, 0x7f, 0x7a, 0x7d, 0xb1, 0xf1, 0xf8, 0xdd, 0x5b, 0x57, 0x2c, 0xdd, 0x4d, 0x03, 0x6b,
|
||||
0x48, 0xb4, 0x96, 0xdd, 0x9d, 0x14, 0x33, 0xaf, 0x26, 0xb2, 0xc7, 0x26, 0x41, 0x3f, 0xe3, 0xb4,
|
||||
0x32, 0x35, 0x7c, 0x1f, 0x2d, 0xb6, 0x7d, 0x32, 0xa4, 0xfd, 0xb6, 0xcf, 0xa9, 0x2b, 0x87, 0x53,
|
||||
0x38, 0xbf, 0x8a, 0x93, 0xb0, 0x36, 0x7e, 0x2b, 0xa3, 0x95, 0x14, 0x11, 0xf8, 0x08, 0x15, 0x9f,
|
||||
0xfb, 0x41, 0xdf, 0x7c, 0xde, 0xe3, 0xeb, 0x8b, 0x8d, 0x47, 0xef, 0xfe, 0x79, 0x26, 0x9d, 0x4a,
|
||||
0xe0, 0x40, 0x1a, 0xbc, 0x88, 0xf2, 0xd1, 0xab, 0x9a, 0x7f, 0xd6, 0x56, 0x25, 0x8d, 0x35, 0x2a,
|
||||
0x18, 0x2b, 0x5b, 0x97, 0x78, 0xc2, 0x2e, 0x6e, 0x16, 0x94, 0x4d, 0x8d, 0xb1, 0x8d, 0xca, 0xb3,
|
||||
0x8d, 0x28, 0x9c, 0x62, 0x82, 0x96, 0xba, 0xc4, 0xf3, 0x68, 0xd8, 0x90, 0xa8, 0xb0, 0x97, 0x01,
|
||||
0xc2, 0x87, 0xb7, 0x91, 0xde, 0x4c, 0xc4, 0x1c, 0x06, 0x92, 0x4f, 0x0d, 0xa0, 0xc9, 0x7c, 0xf8,
|
||||
0x09, 0x2a, 0x1e, 0x51, 0x49, 0xcc, 0x73, 0x7a, 0xff, 0xd6, 0xbc, 0xca, 0x11, 0x92, 0x39, 0x10,
|
||||
0x03, 0xcc, 0xaa, 0x0a, 0x95, 0xa1, 0x42, 0x30, 0x56, 0xed, 0x37, 0xd6, 0x54, 0xb0, 0x6e, 0xbf,
|
||||
0x33, 0xbd, 0xa4, 0xa4, 0x39, 0xd4, 0xfd, 0xae, 0x16, 0x5b, 0x10, 0xec, 0xea, 0x85, 0x08, 0x2f,
|
||||
0x13, 0x18, 0xf0, 0x76, 0x74, 0x2f, 0xab, 0xb0, 0xc7, 0xcc, 0x90, 0xe8, 0xb6, 0x6e, 0xa3, 0xf2,
|
||||
0x6b, 0xea, 0x7b, 0x03, 0x29, 0xcc, 0xbb, 0x88, 0x63, 0xee, 0x46, 0x71, 0x42, 0x17, 0x5c, 0x43,
|
||||
0xa5, 0x2e, 0x3b, 0xa5, 0x81, 0xe9, 0x65, 0x7a, 0x82, 0xb7, 0xd1, 0xca, 0x61, 0x40, 0x7a, 0x43,
|
||||
0xda, 0x25, 0xde, 0xab, 0x33, 0xca, 0xb9, 0xdf, 0xa7, 0xd0, 0xba, 0x2a, 0x4e, 0x5a, 0xc0, 0xbb,
|
||||
0xa8, 0xa4, 0xdf, 0xe1, 0x45, 0x58, 0xef, 0x6e, 0x7c, 0x7b, 0xa9, 0x3f, 0x71, 0x8e, 0xf6, 0x55,
|
||||
0x2d, 0xec, 0x50, 0x3d, 0x47, 0x63, 0xee, 0x0b, 0x0a, 0x05, 0x58, 0x81, 0xe8, 0xb5, 0xa6, 0xf9,
|
||||
0x0b, 0x39, 0xab, 0x9a, 0x13, 0x49, 0xc4, 0xe0, 0x5d, 0x54, 0x36, 0x4b, 0xd8, 0x4b, 0x10, 0xfe,
|
||||
0x71, 0xba, 0x7e, 0xc6, 0xc1, 0x09, 0x3d, 0xd7, 0x7f, 0x42, 0xb5, 0x2c, 0x40, 0xf0, 0x32, 0x2a,
|
||||
0x9c, 0xd2, 0xa9, 0x79, 0xb4, 0xd5, 0x10, 0xb7, 0x50, 0xe9, 0x8c, 0x0c, 0x27, 0xfa, 0x65, 0xce,
|
||||
0x4c, 0x6e, 0x52, 0x38, 0xda, 0xef, 0x49, 0xfe, 0x4b, 0x6b, 0x7d, 0x0f, 0x55, 0x23, 0x4e, 0x32,
|
||||
0x72, 0xd6, 0xe2, 0x39, 0xab, 0xb1, 0xc0, 0xc6, 0x57, 0x51, 0xff, 0x0f, 0xf1, 0x8f, 0x5d, 0x0c,
|
||||
0x6b, 0xf6, 0x62, 0x84, 0xe4, 0xe5, 0x6f, 0xc8, 0x6b, 0x3c, 0x8d, 0x2a, 0xaf, 0x02, 0x3b, 0x44,
|
||||
0x08, 0x3f, 0xf0, 0x4c, 0xf7, 0x08, 0xa7, 0x4a, 0x79, 0x4d, 0x78, 0xa0, 0x14, 0x1d, 0x1b, 0x4e,
|
||||
0xf7, 0x8f, 0xce, 0xff, 0xa9, 0xe7, 0xce, 0x2f, 0xeb, 0xd6, 0xdb, 0xcb, 0xba, 0xf5, 0xf7, 0x65,
|
||||
0xdd, 0xfa, 0xe5, 0xaa, 0x9e, 0xfb, 0xf5, 0xaa, 0x9e, 0x7b, 0x7b, 0x55, 0xcf, 0xfd, 0x75, 0x55,
|
||||
0xcf, 0xfd, 0xf8, 0xf9, 0x6d, 0xcd, 0x21, 0xf1, 0x5f, 0xbf, 0x37, 0x07, 0x86, 0xdd, 0x7f, 0x03,
|
||||
0x00, 0x00, 0xff, 0xff, 0x93, 0xfb, 0xcc, 0xfb, 0x6a, 0x0c, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *ConnectProxyConfig) Marshal() (dAtA []byte, err error) {
|
||||
|
@ -836,6 +838,13 @@ func (m *Upstream) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
|||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if len(m.DestinationPartition) > 0 {
|
||||
i -= len(m.DestinationPartition)
|
||||
copy(dAtA[i:], m.DestinationPartition)
|
||||
i = encodeVarintService(dAtA, i, uint64(len(m.DestinationPartition)))
|
||||
i--
|
||||
dAtA[i] = 0x62
|
||||
}
|
||||
if len(m.LocalBindSocketMode) > 0 {
|
||||
i -= len(m.LocalBindSocketMode)
|
||||
copy(dAtA[i:], m.LocalBindSocketMode)
|
||||
|
@ -1523,6 +1532,10 @@ func (m *Upstream) Size() (n int) {
|
|||
if l > 0 {
|
||||
n += 1 + l + sovService(uint64(l))
|
||||
}
|
||||
l = len(m.DestinationPartition)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovService(uint64(l))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
|
@ -2494,6 +2507,38 @@ func (m *Upstream) Unmarshal(dAtA []byte) error {
|
|||
}
|
||||
m.LocalBindSocketMode = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 12:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field DestinationPartition", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowService
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= uint64(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthService
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthService
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.DestinationPartition = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipService(dAtA[iNdEx:])
|
||||
|
|
|
@ -134,6 +134,7 @@ message Upstream {
|
|||
// LocalBindSocketPath is the socket to create to connect to the upstream service
|
||||
string LocalBindSocketPath = 10;
|
||||
string LocalBindSocketMode = 11;
|
||||
string DestinationPartition = 12;
|
||||
}
|
||||
|
||||
// ServiceConnect are the shared Connect settings between all service
|
||||
|
|
Loading…
Reference in New Issue