diff --git a/.circleci/config.yml b/.circleci/config.yml index 4a98123..463f672 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -172,7 +172,7 @@ workflows: matrix: &quickcheck-go-matrix alias: quickcheck-go-matrix parameters: - goversion: [*latest-go-release, "1.11"] + goversion: [*latest-go-release, "1.12"] goos: ["linux", "freebsd"] goarch: ["amd64", "arm64"] exclude: @@ -180,8 +180,8 @@ workflows: - goversion: *latest-go-release goos: linux goarch: amd64 - # not supported by Go 1.11 - - goversion: "1.11" + # not supported by Go 1.12 + - goversion: "1.12" goos: freebsd goarch: arm64 diff --git a/Makefile b/Makefile index 850ae80..7c9bee2 100644 --- a/Makefile +++ b/Makefile @@ -286,7 +286,8 @@ cover-full: .PHONY: generate formatcheck format generate: generate-platform-test-list - protoc -I=replication/logic/pdu --go_out=plugins=grpc:replication/logic/pdu replication/logic/pdu/pdu.proto + protoc -I=replication/logic/pdu --go_out=replication/logic/pdu --go-grpc_out=replication/logic/pdu replication/logic/pdu/pdu.proto + protoc -I=rpc/grpcclientidentity/example --go_out=rpc/grpcclientidentity/example/pdu --go-grpc_out=rpc/grpcclientidentity/example/pdu rpc/grpcclientidentity/example/grpcauth.proto $(GO_ENV_VARS) $(GO) generate $(GO_BUILDFLAGS) -x ./... GOIMPORTS := goimports -srcdir . -local 'github.com/zrepl/zrepl' diff --git a/build/go.mod b/build/go.mod index 4e65102..309b18f 100644 --- a/build/go.mod +++ b/build/go.mod @@ -4,7 +4,6 @@ go 1.12 require ( github.com/alvaroloes/enumer v1.1.1 - github.com/golang/protobuf v1.4.2 github.com/golangci/golangci-lint v1.35.2 github.com/golangci/misspell v0.3.4 // indirect github.com/golangci/revgrep v0.0.0-20180812185044-276a5c0a1039 // indirect @@ -12,4 +11,6 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/wadey/gocovmerge v0.0.0-20160331181800-b5bfa59ec0ad golang.org/x/tools v0.0.0-20210105210202-9ed45478a130 + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 // indirect + google.golang.org/protobuf v1.25.0 ) diff --git a/build/go.sum b/build/go.sum index 9442220..c61ca4f 100644 --- a/build/go.sum +++ b/build/go.sum @@ -42,6 +42,7 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bombsimon/wsl/v3 v3.1.0 h1:E5SRssoBgtVFPcYWUOFJEcgaySgdtTNYzsSKDOY7ss8= github.com/bombsimon/wsl/v3 v3.1.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= @@ -60,6 +61,8 @@ github.com/denis-tingajkin/go-header v0.4.2 h1:jEeSF4sdv8/3cT/WY8AgDHUoItNSoEZ7q github.com/denis-tingajkin/go-header v0.4.2/go.mod h1:eLRHAVXzE5atsKAnNRDB90WHCFFnBUn4RN0nRcs1LJA= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= @@ -122,6 +125,7 @@ github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:x github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0= @@ -162,6 +166,7 @@ github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= @@ -336,6 +341,7 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -564,6 +570,7 @@ golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524210228-3d17549cdc6b h1:iEAPfYPbYbxG/2lNN4cMOHkmgKNsCuUwkxlDCK46UlU= golang.org/x/tools v0.0.0-20190524210228-3d17549cdc6b/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -626,16 +633,27 @@ google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= @@ -665,6 +683,7 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.6 h1:W18jzjh8mfPez+AwGLxmOImucz/IFjpNlrKVnaj2YVc= honnef.co/go/tools v0.0.1-2020.1.6/go.mod h1:pyyisuGw24ruLjrr1ddx39WE0y9OooInRzEYLhQB2YY= diff --git a/build/tools.go b/build/tools.go index cb80a78..f2376f3 100644 --- a/build/tools.go +++ b/build/tools.go @@ -2,11 +2,13 @@ package main +// the lines are parsed by lazy.sh, do not edit import ( _ "github.com/alvaroloes/enumer" - _ "github.com/golang/protobuf/protoc-gen-go" _ "github.com/golangci/golangci-lint/cmd/golangci-lint" _ "github.com/wadey/gocovmerge" _ "golang.org/x/tools/cmd/goimports" _ "golang.org/x/tools/cmd/stringer" + _ "google.golang.org/grpc/cmd/protoc-gen-go-grpc" + _ "google.golang.org/protobuf/cmd/protoc-gen-go" ) diff --git a/daemon/job/active.go b/daemon/job/active.go index 5bf422c..f183d66 100644 --- a/daemon/job/active.go +++ b/daemon/job/active.go @@ -160,7 +160,7 @@ func modePushFromConfig(g *config.Global, in *config.PushJob, jobID endpoint.Job m.plannerPolicy = &logic.PlannerPolicy{ EncryptedSend: logic.TriFromBool(in.Send.Encrypted), - ReplicationConfig: *replicationConfig, + ReplicationConfig: replicationConfig, } if m.snapper, err = snapper.FromConfig(g, m.senderConfig.FSF, in.Snapshotting); err != nil { @@ -255,7 +255,7 @@ func modePullFromConfig(g *config.Global, in *config.PullJob, jobID endpoint.Job m.plannerPolicy = &logic.PlannerPolicy{ EncryptedSend: logic.DontCare, - ReplicationConfig: *replicationConfig, + ReplicationConfig: replicationConfig, } m.receiverConfig, err = buildReceiverConfig(in, jobID) diff --git a/endpoint/endpoint.go b/endpoint/endpoint.go index 0aadf6b..a3bd59f 100644 --- a/endpoint/endpoint.go +++ b/endpoint/endpoint.go @@ -40,6 +40,8 @@ func (c *SenderConfig) Validate() error { // Sender implements replication.ReplicationEndpoint for a sending side type Sender struct { + pdu.UnsafeReplicationServer // prefer compilation errors over default 'method X not implemented' impl + FSFilter zfs.DatasetFilter encrypt *zfs.NilBool jobId JobID @@ -443,6 +445,8 @@ func (c *ReceiverConfig) Validate() error { // Receiver implements replication.ReplicationEndpoint for a receiving side type Receiver struct { + pdu.UnsafeReplicationServer // prefer compilation errors over default 'method X not implemented' impl + conf ReceiverConfig // validated recvParentCreationMtx *chainlock.L diff --git a/go.mod b/go.mod index 95d5e85..a63e7c7 100644 --- a/go.mod +++ b/go.mod @@ -8,9 +8,10 @@ require ( github.com/gitchander/permutation v0.0.0-20181107151852-9e56b92e9909 github.com/go-logfmt/logfmt v0.4.0 github.com/go-sql-driver/mysql v1.4.1-0.20190907122137-b2c03bcae3d4 - github.com/golang/protobuf v1.3.2 - github.com/google/uuid v1.1.1 + github.com/golang/protobuf v1.4.3 + github.com/google/uuid v1.1.2 github.com/jinzhu/copier v0.0.0-20170922082739-db4671f3a9b8 + github.com/kisielk/gotool v1.0.0 // indirect github.com/kr/pretty v0.1.0 github.com/lib/pq v1.2.0 github.com/mattn/go-colorable v0.1.4 // indirect @@ -28,15 +29,18 @@ require ( github.com/sergi/go-diff v1.0.1-0.20180205163309-da645544ed44 // go1.12 thinks it needs this github.com/spf13/cobra v0.0.2 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.4.0 + github.com/stretchr/testify v1.5.1 github.com/willf/bitset v1.1.10 github.com/yudai/gojsondiff v0.0.0-20170107030110-7b1b7adf999d github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // go1.12 thinks it needs this github.com/zrepl/yaml-config v0.0.0-20191220194647-cbb6b0cf4bdd - golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 + golang.org/x/net v0.0.0-20210119194325-5f4716e94777 golang.org/x/sync v0.0.0-20190423024810-112230192c58 - golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 - golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e + golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c + golang.org/x/text v0.3.5 // indirect + golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135 gonum.org/v1/gonum v0.7.0 // indirect - google.golang.org/grpc v1.17.0 + google.golang.org/genproto v0.0.0-20210122163508-8081c04a3579 // indirect + google.golang.org/grpc v1.35.0 + google.golang.org/protobuf v1.25.0 ) diff --git a/go.sum b/go.sum index 0db95db..04805ce 100644 --- a/go.sum +++ b/go.sum @@ -19,15 +19,21 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.0 h1:yTUvW7Vhb89inJ+8irsUqiWjh8iT6sQPZiQzI6ReGkA= github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -88,6 +94,17 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1 h1:ZFgWrT+bLgsYPirOnRfKLYJLvssAegOj/hgyMFdJZe0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0= @@ -114,9 +131,14 @@ github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= github.com/hashicorp/hcl v0.0.0-20180404174102-ef8a98b0bbce/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= @@ -276,6 +298,8 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/theckman/goconstraint v1.11.0 h1:oBUwN5wpE4dwyPhRGraEgJsFTr+JtLWiDnaJZJeeXI0= github.com/theckman/goconstraint v1.11.0/go.mod h1:zkCR/f2kOULTk/h1ujgyB9BlCNLaqlQ6GN2Zl4mg81g= github.com/timakin/bodyclose v0.0.0-20190407043127-4a873e97b2bb/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= @@ -305,21 +329,28 @@ golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2 h1:y102fOLFqhV41b+4GPiJoa0k/x+pJcEi2/HB1Y5T6fU= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190313220215-9f648a60d977/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -342,25 +373,38 @@ golang.org/x/sys v0.0.0-20191010194322-b09406accb47 h1:/XfQ9z7ib8eEJX2hdgFTZJ/nt golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037 h1:YyJpGZS1sBuBCzLAR1VEpK193GlqGZbnPFnPV/5Rsb4= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915090833-1cbadb444a80/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20170915040203-e531a2a1c15f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181117154741-2ddaf7f79a09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181205014116-22934f0fdb62/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190121143147-24cd39ecf745/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e h1:Io7mpb+aUAGF0MKxbyQ7HQl1VgB+cL6ZJZUFaFNqVV4= golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190213192042-740235f6c0d8/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190521203540-521d6ed310dd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135 h1:5Beo0mZN8dRzgrMMkDp0jc8YXQKx9DiJ2k1dkvGsn5A= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524210228-3d17549cdc6b/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/gonum v0.7.0 h1:Hdks0L0hgznZLG9nzXb8vZ0rRvqNvAcgAp84y7Mwkgw= gonum.org/v1/gonum v0.7.0/go.mod h1:L02bwd0sqlsvRv41G7wGWFCsVNZFv/k1xzGIxeANHGM= @@ -368,13 +412,37 @@ gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6d gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= google.golang.org/appengine v1.1.0 h1:igQkv0AAhEIvTEpD5LIpAfav2eeVO9HBTjvKHVJPRSs= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898 h1:yvw+zsSmSM02Z5H3ZdEV7B7Ql7eFrjQTnmByJvK+3J8= google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20210122163508-8081c04a3579 h1:Iwh0ba2kTgq2Q6mJiXhzrrjD7h11nEVnbMHFmp0/HsQ= +google.golang.org/genproto v0.0.0-20210122163508-8081c04a3579/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0 h1:TRJYBgMclJvGYn2rIMjj+h9KtMt5r1Ij7ODVRIZkwhk= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0 h1:rRYRFMVgRv6E0D70Skyfsr28tDXIuuPZyWGMPdMcnXg= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= @@ -393,6 +461,8 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34/go.mod h1:H6SUd1XjIs+qQCyskXg5OFSrilMRUkD8ePJpHKDPaeY= diff --git a/lazy.sh b/lazy.sh index 409255a..1386380 100755 --- a/lazy.sh +++ b/lazy.sh @@ -42,7 +42,7 @@ godep() { cat tools.go | grep _ | awk -F'"' '{print $2}' | tee | xargs -tI '{}' go install '{}' set +x popd - if ! type stringer || ! type protoc-gen-go || ! type enumer || ! type goimports || ! type golangci-lint || ! type gocovmerge; then + if ! type stringer || ! type protoc-gen-go || ! type protoc-gen-go-grpc || ! type enumer || ! type goimports || ! type golangci-lint || ! type gocovmerge; then echo "Installed dependencies but can't find them in \$PATH, adjust it to contain \$GOPATH/bin" 1>&2 exit 1 fi diff --git a/platformtest/tests/replication.go b/platformtest/tests/replication.go index 18c7945..3e1ae18 100644 --- a/platformtest/tests/replication.go +++ b/platformtest/tests/replication.go @@ -35,7 +35,7 @@ type replicationInvocation struct { rfsRoot string interceptSender func(e *endpoint.Sender) logic.Sender interceptReceiver func(e *endpoint.Receiver) logic.Receiver - guarantee pdu.ReplicationConfigProtection + guarantee *pdu.ReplicationConfigProtection } func (i replicationInvocation) Do(ctx *platformtest.Context) *report.Report { @@ -67,8 +67,8 @@ func (i replicationInvocation) Do(ctx *platformtest.Context) *report.Report { })) plannerPolicy := logic.PlannerPolicy{ EncryptedSend: logic.TriFromBool(false), - ReplicationConfig: pdu.ReplicationConfig{ - Protection: &i.guarantee, + ReplicationConfig: &pdu.ReplicationConfig{ + Protection: i.guarantee, }, } @@ -106,7 +106,7 @@ func ReplicationIncrementalIsPossibleIfCommonSnapshotIsDestroyed(ctx *platformte rjid: rjid, sfs: sfs, rfsRoot: rfsRoot, - guarantee: *pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeResumability), + guarantee: pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeResumability), } rfs := rep.ReceiveSideFilesystem() @@ -170,7 +170,7 @@ func implReplicationIncrementalCleansUpStaleAbstractions(ctx *platformtest.Conte rjid: rjid, sfs: sfs, rfsRoot: rfsRoot, - guarantee: *pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeResumability), + guarantee: pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeResumability), } rfs := rep.ReceiveSideFilesystem() @@ -343,7 +343,7 @@ func (s *PartialSender) Send(ctx context.Context, r *pdu.SendReq) (r1 *pdu.SendR func ReplicationIsResumableFullSend__both_GuaranteeResumability(ctx *platformtest.Context) { setup := replicationIsResumableFullSendSetup{ - protection: pdu.ReplicationConfigProtection{ + protection: &pdu.ReplicationConfigProtection{ Initial: pdu.ReplicationGuaranteeKind_GuaranteeResumability, Incremental: pdu.ReplicationGuaranteeKind_GuaranteeResumability, }, @@ -358,7 +358,7 @@ func ReplicationIsResumableFullSend__both_GuaranteeResumability(ctx *platformtes func ReplicationIsResumableFullSend__initial_GuaranteeResumability_incremental_GuaranteeIncrementalReplication(ctx *platformtest.Context) { setup := replicationIsResumableFullSendSetup{ - protection: pdu.ReplicationConfigProtection{ + protection: &pdu.ReplicationConfigProtection{ Initial: pdu.ReplicationGuaranteeKind_GuaranteeResumability, Incremental: pdu.ReplicationGuaranteeKind_GuaranteeIncrementalReplication, }, @@ -373,7 +373,7 @@ func ReplicationIsResumableFullSend__initial_GuaranteeResumability_incremental_G func ReplicationIsResumableFullSend__initial_GuaranteeIncrementalReplication_incremental_GuaranteeIncrementalReplication(ctx *platformtest.Context) { setup := replicationIsResumableFullSendSetup{ - protection: pdu.ReplicationConfigProtection{ + protection: &pdu.ReplicationConfigProtection{ Initial: pdu.ReplicationGuaranteeKind_GuaranteeIncrementalReplication, Incremental: pdu.ReplicationGuaranteeKind_GuaranteeIncrementalReplication, }, @@ -386,7 +386,7 @@ func ReplicationIsResumableFullSend__initial_GuaranteeIncrementalReplication_inc } type replicationIsResumableFullSendSetup struct { - protection pdu.ReplicationConfigProtection + protection *pdu.ReplicationConfigProtection expectDatasetIsBusyErrorWhenDestroySnapshotWhilePartiallyReplicated bool expectAllThreeSnapshotsToThreeBePresentAfterLoop bool expectNoSnapshotsOnReceiverAfterLoop bool @@ -501,7 +501,7 @@ func ReplicationIncrementalDestroysStepHoldsIffIncrementalStepHoldsAreDisabledBu rjid: rjid, sfs: sfs, rfsRoot: rfsRoot, - guarantee: *pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeResumability), + guarantee: pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeResumability), } rfs := rep.ReceiveSideFilesystem() report := rep.Do(ctx) @@ -528,7 +528,7 @@ func ReplicationIncrementalDestroysStepHoldsIffIncrementalStepHoldsAreDisabledBu rjid: rjid, sfs: sfs, rfsRoot: rfsRoot, - guarantee: *pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeResumability), // ! + guarantee: pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeResumability), // ! interceptSender: func(e *endpoint.Sender) logic.Sender { return &PartialSender{Sender: e, failAfterByteCount: 1 << 20} }, @@ -574,7 +574,7 @@ func ReplicationIncrementalDestroysStepHoldsIffIncrementalStepHoldsAreDisabledBu rjid: rjid, sfs: sfs, rfsRoot: rfsRoot, - guarantee: *pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeIncrementalReplication), // ! + guarantee: pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeIncrementalReplication), // ! interceptSender: func(e *endpoint.Sender) logic.Sender { return &PartialSender{Sender: e, failAfterByteCount: 1 << 20} }, @@ -684,7 +684,7 @@ func replicationStepCompletedLostBehavior_impl(ctx *platformtest.Context, guaran rjid: rjid, sfs: sfs, rfsRoot: rfsRoot, - guarantee: *pdu.ReplicationConfigProtectionWithKind(guaranteeKind), + guarantee: pdu.ReplicationConfigProtectionWithKind(guaranteeKind), } rfs := rep.ReceiveSideFilesystem() report := rep.Do(ctx) @@ -702,7 +702,7 @@ func replicationStepCompletedLostBehavior_impl(ctx *platformtest.Context, guaran rjid: rjid, sfs: sfs, rfsRoot: rfsRoot, - guarantee: *pdu.ReplicationConfigProtectionWithKind(guaranteeKind), + guarantee: pdu.ReplicationConfigProtectionWithKind(guaranteeKind), interceptSender: func(e *endpoint.Sender) logic.Sender { return &FailSendCompletedSender{e} }, @@ -750,7 +750,7 @@ func replicationStepCompletedLostBehavior_impl(ctx *platformtest.Context, guaran rjid: rjid, sfs: sfs, rfsRoot: rfsRoot, - guarantee: *pdu.ReplicationConfigProtectionWithKind(guaranteeKind), + guarantee: pdu.ReplicationConfigProtectionWithKind(guaranteeKind), } report := rep.Do(ctx) ctx.Logf("expecting failure:\n%s", pretty.Sprint(report)) @@ -818,7 +818,7 @@ func ReplicationReceiverErrorWhileStillSending(ctx *platformtest.Context) { rjid: rjid, sfs: sfs, rfsRoot: rfsRoot, - guarantee: *pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeNothing), + guarantee: pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeNothing), interceptReceiver: func(r *endpoint.Receiver) logic.Receiver { return &ErroringReceiver{recvErr: mockRecvErr, Receiver: r} }, @@ -880,7 +880,7 @@ func ReplicationFailingInitialParentProhibitsChildReplication(ctx *platformtest. rjid: rjid, sfilter: sfilter, rfsRoot: rfsRoot, - guarantee: *pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeNothing), + guarantee: pdu.ReplicationConfigProtectionWithKind(pdu.ReplicationGuaranteeKind_GuaranteeNothing), interceptReceiver: func(r *endpoint.Receiver) logic.Receiver { return &ErroringReceiver{recvErr: mockRecvErr, Receiver: r} }, diff --git a/replication/logic/pdu/pdu.pb.go b/replication/logic/pdu/pdu.pb.go index 22d0fdd..85783a3 100644 --- a/replication/logic/pdu/pdu.pb.go +++ b/replication/logic/pdu/pdu.pb.go @@ -1,27 +1,29 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.4 // source: pdu.proto package pdu -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" - import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" + proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 type Tri int32 @@ -31,22 +33,45 @@ const ( Tri_True Tri = 2 ) -var Tri_name = map[int32]string{ - 0: "DontCare", - 1: "False", - 2: "True", -} -var Tri_value = map[string]int32{ - "DontCare": 0, - "False": 1, - "True": 2, +// Enum value maps for Tri. +var ( + Tri_name = map[int32]string{ + 0: "DontCare", + 1: "False", + 2: "True", + } + Tri_value = map[string]int32{ + "DontCare": 0, + "False": 1, + "True": 2, + } +) + +func (x Tri) Enum() *Tri { + p := new(Tri) + *p = x + return p } func (x Tri) String() string { - return proto.EnumName(Tri_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } + +func (Tri) Descriptor() protoreflect.EnumDescriptor { + return file_pdu_proto_enumTypes[0].Descriptor() +} + +func (Tri) Type() protoreflect.EnumType { + return &file_pdu_proto_enumTypes[0] +} + +func (x Tri) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Tri.Descriptor instead. func (Tri) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{0} + return file_pdu_proto_rawDescGZIP(), []int{0} } type ReplicationGuaranteeKind int32 @@ -58,24 +83,47 @@ const ( ReplicationGuaranteeKind_GuaranteeNothing ReplicationGuaranteeKind = 3 ) -var ReplicationGuaranteeKind_name = map[int32]string{ - 0: "GuaranteeInvalid", - 1: "GuaranteeResumability", - 2: "GuaranteeIncrementalReplication", - 3: "GuaranteeNothing", -} -var ReplicationGuaranteeKind_value = map[string]int32{ - "GuaranteeInvalid": 0, - "GuaranteeResumability": 1, - "GuaranteeIncrementalReplication": 2, - "GuaranteeNothing": 3, +// Enum value maps for ReplicationGuaranteeKind. +var ( + ReplicationGuaranteeKind_name = map[int32]string{ + 0: "GuaranteeInvalid", + 1: "GuaranteeResumability", + 2: "GuaranteeIncrementalReplication", + 3: "GuaranteeNothing", + } + ReplicationGuaranteeKind_value = map[string]int32{ + "GuaranteeInvalid": 0, + "GuaranteeResumability": 1, + "GuaranteeIncrementalReplication": 2, + "GuaranteeNothing": 3, + } +) + +func (x ReplicationGuaranteeKind) Enum() *ReplicationGuaranteeKind { + p := new(ReplicationGuaranteeKind) + *p = x + return p } func (x ReplicationGuaranteeKind) String() string { - return proto.EnumName(ReplicationGuaranteeKind_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } + +func (ReplicationGuaranteeKind) Descriptor() protoreflect.EnumDescriptor { + return file_pdu_proto_enumTypes[1].Descriptor() +} + +func (ReplicationGuaranteeKind) Type() protoreflect.EnumType { + return &file_pdu_proto_enumTypes[1] +} + +func (x ReplicationGuaranteeKind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ReplicationGuaranteeKind.Descriptor instead. func (ReplicationGuaranteeKind) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{1} + return file_pdu_proto_rawDescGZIP(), []int{1} } type FilesystemVersion_VersionType int32 @@ -85,299 +133,379 @@ const ( FilesystemVersion_Bookmark FilesystemVersion_VersionType = 1 ) -var FilesystemVersion_VersionType_name = map[int32]string{ - 0: "Snapshot", - 1: "Bookmark", -} -var FilesystemVersion_VersionType_value = map[string]int32{ - "Snapshot": 0, - "Bookmark": 1, +// Enum value maps for FilesystemVersion_VersionType. +var ( + FilesystemVersion_VersionType_name = map[int32]string{ + 0: "Snapshot", + 1: "Bookmark", + } + FilesystemVersion_VersionType_value = map[string]int32{ + "Snapshot": 0, + "Bookmark": 1, + } +) + +func (x FilesystemVersion_VersionType) Enum() *FilesystemVersion_VersionType { + p := new(FilesystemVersion_VersionType) + *p = x + return p } func (x FilesystemVersion_VersionType) String() string { - return proto.EnumName(FilesystemVersion_VersionType_name, int32(x)) + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } + +func (FilesystemVersion_VersionType) Descriptor() protoreflect.EnumDescriptor { + return file_pdu_proto_enumTypes[2].Descriptor() +} + +func (FilesystemVersion_VersionType) Type() protoreflect.EnumType { + return &file_pdu_proto_enumTypes[2] +} + +func (x FilesystemVersion_VersionType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FilesystemVersion_VersionType.Descriptor instead. func (FilesystemVersion_VersionType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{5, 0} + return file_pdu_proto_rawDescGZIP(), []int{5, 0} } type ListFilesystemReq struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *ListFilesystemReq) Reset() { *m = ListFilesystemReq{} } -func (m *ListFilesystemReq) String() string { return proto.CompactTextString(m) } -func (*ListFilesystemReq) ProtoMessage() {} +func (x *ListFilesystemReq) Reset() { + *x = ListFilesystemReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFilesystemReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFilesystemReq) ProtoMessage() {} + +func (x *ListFilesystemReq) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFilesystemReq.ProtoReflect.Descriptor instead. func (*ListFilesystemReq) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{0} + return file_pdu_proto_rawDescGZIP(), []int{0} } -func (m *ListFilesystemReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListFilesystemReq.Unmarshal(m, b) -} -func (m *ListFilesystemReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListFilesystemReq.Marshal(b, m, deterministic) -} -func (dst *ListFilesystemReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListFilesystemReq.Merge(dst, src) -} -func (m *ListFilesystemReq) XXX_Size() int { - return xxx_messageInfo_ListFilesystemReq.Size(m) -} -func (m *ListFilesystemReq) XXX_DiscardUnknown() { - xxx_messageInfo_ListFilesystemReq.DiscardUnknown(m) -} - -var xxx_messageInfo_ListFilesystemReq proto.InternalMessageInfo type ListFilesystemRes struct { - Filesystems []*Filesystem `protobuf:"bytes,1,rep,name=Filesystems,proto3" json:"Filesystems,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Filesystems []*Filesystem `protobuf:"bytes,1,rep,name=Filesystems,proto3" json:"Filesystems,omitempty"` } -func (m *ListFilesystemRes) Reset() { *m = ListFilesystemRes{} } -func (m *ListFilesystemRes) String() string { return proto.CompactTextString(m) } -func (*ListFilesystemRes) ProtoMessage() {} +func (x *ListFilesystemRes) Reset() { + *x = ListFilesystemRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFilesystemRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFilesystemRes) ProtoMessage() {} + +func (x *ListFilesystemRes) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFilesystemRes.ProtoReflect.Descriptor instead. func (*ListFilesystemRes) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{1} -} -func (m *ListFilesystemRes) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListFilesystemRes.Unmarshal(m, b) -} -func (m *ListFilesystemRes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListFilesystemRes.Marshal(b, m, deterministic) -} -func (dst *ListFilesystemRes) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListFilesystemRes.Merge(dst, src) -} -func (m *ListFilesystemRes) XXX_Size() int { - return xxx_messageInfo_ListFilesystemRes.Size(m) -} -func (m *ListFilesystemRes) XXX_DiscardUnknown() { - xxx_messageInfo_ListFilesystemRes.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{1} } -var xxx_messageInfo_ListFilesystemRes proto.InternalMessageInfo - -func (m *ListFilesystemRes) GetFilesystems() []*Filesystem { - if m != nil { - return m.Filesystems +func (x *ListFilesystemRes) GetFilesystems() []*Filesystem { + if x != nil { + return x.Filesystems } return nil } type Filesystem struct { - Path string `protobuf:"bytes,1,opt,name=Path,proto3" json:"Path,omitempty"` - ResumeToken string `protobuf:"bytes,2,opt,name=ResumeToken,proto3" json:"ResumeToken,omitempty"` - IsPlaceholder bool `protobuf:"varint,3,opt,name=IsPlaceholder,proto3" json:"IsPlaceholder,omitempty"` - IsEncrypted bool `protobuf:"varint,4,opt,name=IsEncrypted,proto3" json:"IsEncrypted,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Path string `protobuf:"bytes,1,opt,name=Path,proto3" json:"Path,omitempty"` + ResumeToken string `protobuf:"bytes,2,opt,name=ResumeToken,proto3" json:"ResumeToken,omitempty"` + IsPlaceholder bool `protobuf:"varint,3,opt,name=IsPlaceholder,proto3" json:"IsPlaceholder,omitempty"` + IsEncrypted bool `protobuf:"varint,4,opt,name=IsEncrypted,proto3" json:"IsEncrypted,omitempty"` } -func (m *Filesystem) Reset() { *m = Filesystem{} } -func (m *Filesystem) String() string { return proto.CompactTextString(m) } -func (*Filesystem) ProtoMessage() {} +func (x *Filesystem) Reset() { + *x = Filesystem{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Filesystem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Filesystem) ProtoMessage() {} + +func (x *Filesystem) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Filesystem.ProtoReflect.Descriptor instead. func (*Filesystem) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{2} -} -func (m *Filesystem) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Filesystem.Unmarshal(m, b) -} -func (m *Filesystem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Filesystem.Marshal(b, m, deterministic) -} -func (dst *Filesystem) XXX_Merge(src proto.Message) { - xxx_messageInfo_Filesystem.Merge(dst, src) -} -func (m *Filesystem) XXX_Size() int { - return xxx_messageInfo_Filesystem.Size(m) -} -func (m *Filesystem) XXX_DiscardUnknown() { - xxx_messageInfo_Filesystem.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{2} } -var xxx_messageInfo_Filesystem proto.InternalMessageInfo - -func (m *Filesystem) GetPath() string { - if m != nil { - return m.Path +func (x *Filesystem) GetPath() string { + if x != nil { + return x.Path } return "" } -func (m *Filesystem) GetResumeToken() string { - if m != nil { - return m.ResumeToken +func (x *Filesystem) GetResumeToken() string { + if x != nil { + return x.ResumeToken } return "" } -func (m *Filesystem) GetIsPlaceholder() bool { - if m != nil { - return m.IsPlaceholder +func (x *Filesystem) GetIsPlaceholder() bool { + if x != nil { + return x.IsPlaceholder } return false } -func (m *Filesystem) GetIsEncrypted() bool { - if m != nil { - return m.IsEncrypted +func (x *Filesystem) GetIsEncrypted() bool { + if x != nil { + return x.IsEncrypted } return false } type ListFilesystemVersionsReq struct { - Filesystem string `protobuf:"bytes,1,opt,name=Filesystem,proto3" json:"Filesystem,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Filesystem string `protobuf:"bytes,1,opt,name=Filesystem,proto3" json:"Filesystem,omitempty"` } -func (m *ListFilesystemVersionsReq) Reset() { *m = ListFilesystemVersionsReq{} } -func (m *ListFilesystemVersionsReq) String() string { return proto.CompactTextString(m) } -func (*ListFilesystemVersionsReq) ProtoMessage() {} +func (x *ListFilesystemVersionsReq) Reset() { + *x = ListFilesystemVersionsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFilesystemVersionsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFilesystemVersionsReq) ProtoMessage() {} + +func (x *ListFilesystemVersionsReq) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFilesystemVersionsReq.ProtoReflect.Descriptor instead. func (*ListFilesystemVersionsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{3} -} -func (m *ListFilesystemVersionsReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListFilesystemVersionsReq.Unmarshal(m, b) -} -func (m *ListFilesystemVersionsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListFilesystemVersionsReq.Marshal(b, m, deterministic) -} -func (dst *ListFilesystemVersionsReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListFilesystemVersionsReq.Merge(dst, src) -} -func (m *ListFilesystemVersionsReq) XXX_Size() int { - return xxx_messageInfo_ListFilesystemVersionsReq.Size(m) -} -func (m *ListFilesystemVersionsReq) XXX_DiscardUnknown() { - xxx_messageInfo_ListFilesystemVersionsReq.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{3} } -var xxx_messageInfo_ListFilesystemVersionsReq proto.InternalMessageInfo - -func (m *ListFilesystemVersionsReq) GetFilesystem() string { - if m != nil { - return m.Filesystem +func (x *ListFilesystemVersionsReq) GetFilesystem() string { + if x != nil { + return x.Filesystem } return "" } type ListFilesystemVersionsRes struct { - Versions []*FilesystemVersion `protobuf:"bytes,1,rep,name=Versions,proto3" json:"Versions,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Versions []*FilesystemVersion `protobuf:"bytes,1,rep,name=Versions,proto3" json:"Versions,omitempty"` } -func (m *ListFilesystemVersionsRes) Reset() { *m = ListFilesystemVersionsRes{} } -func (m *ListFilesystemVersionsRes) String() string { return proto.CompactTextString(m) } -func (*ListFilesystemVersionsRes) ProtoMessage() {} +func (x *ListFilesystemVersionsRes) Reset() { + *x = ListFilesystemVersionsRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFilesystemVersionsRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFilesystemVersionsRes) ProtoMessage() {} + +func (x *ListFilesystemVersionsRes) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFilesystemVersionsRes.ProtoReflect.Descriptor instead. func (*ListFilesystemVersionsRes) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{4} -} -func (m *ListFilesystemVersionsRes) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ListFilesystemVersionsRes.Unmarshal(m, b) -} -func (m *ListFilesystemVersionsRes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ListFilesystemVersionsRes.Marshal(b, m, deterministic) -} -func (dst *ListFilesystemVersionsRes) XXX_Merge(src proto.Message) { - xxx_messageInfo_ListFilesystemVersionsRes.Merge(dst, src) -} -func (m *ListFilesystemVersionsRes) XXX_Size() int { - return xxx_messageInfo_ListFilesystemVersionsRes.Size(m) -} -func (m *ListFilesystemVersionsRes) XXX_DiscardUnknown() { - xxx_messageInfo_ListFilesystemVersionsRes.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{4} } -var xxx_messageInfo_ListFilesystemVersionsRes proto.InternalMessageInfo - -func (m *ListFilesystemVersionsRes) GetVersions() []*FilesystemVersion { - if m != nil { - return m.Versions +func (x *ListFilesystemVersionsRes) GetVersions() []*FilesystemVersion { + if x != nil { + return x.Versions } return nil } type FilesystemVersion struct { - Type FilesystemVersion_VersionType `protobuf:"varint,1,opt,name=Type,proto3,enum=FilesystemVersion_VersionType" json:"Type,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Guid uint64 `protobuf:"varint,3,opt,name=Guid,proto3" json:"Guid,omitempty"` - CreateTXG uint64 `protobuf:"varint,4,opt,name=CreateTXG,proto3" json:"CreateTXG,omitempty"` - Creation string `protobuf:"bytes,5,opt,name=Creation,proto3" json:"Creation,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type FilesystemVersion_VersionType `protobuf:"varint,1,opt,name=Type,proto3,enum=FilesystemVersion_VersionType" json:"Type,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Guid uint64 `protobuf:"varint,3,opt,name=Guid,proto3" json:"Guid,omitempty"` + CreateTXG uint64 `protobuf:"varint,4,opt,name=CreateTXG,proto3" json:"CreateTXG,omitempty"` + Creation string `protobuf:"bytes,5,opt,name=Creation,proto3" json:"Creation,omitempty"` // RFC 3339 } -func (m *FilesystemVersion) Reset() { *m = FilesystemVersion{} } -func (m *FilesystemVersion) String() string { return proto.CompactTextString(m) } -func (*FilesystemVersion) ProtoMessage() {} +func (x *FilesystemVersion) Reset() { + *x = FilesystemVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FilesystemVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FilesystemVersion) ProtoMessage() {} + +func (x *FilesystemVersion) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FilesystemVersion.ProtoReflect.Descriptor instead. func (*FilesystemVersion) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{5} -} -func (m *FilesystemVersion) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FilesystemVersion.Unmarshal(m, b) -} -func (m *FilesystemVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FilesystemVersion.Marshal(b, m, deterministic) -} -func (dst *FilesystemVersion) XXX_Merge(src proto.Message) { - xxx_messageInfo_FilesystemVersion.Merge(dst, src) -} -func (m *FilesystemVersion) XXX_Size() int { - return xxx_messageInfo_FilesystemVersion.Size(m) -} -func (m *FilesystemVersion) XXX_DiscardUnknown() { - xxx_messageInfo_FilesystemVersion.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{5} } -var xxx_messageInfo_FilesystemVersion proto.InternalMessageInfo - -func (m *FilesystemVersion) GetType() FilesystemVersion_VersionType { - if m != nil { - return m.Type +func (x *FilesystemVersion) GetType() FilesystemVersion_VersionType { + if x != nil { + return x.Type } return FilesystemVersion_Snapshot } -func (m *FilesystemVersion) GetName() string { - if m != nil { - return m.Name +func (x *FilesystemVersion) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *FilesystemVersion) GetGuid() uint64 { - if m != nil { - return m.Guid +func (x *FilesystemVersion) GetGuid() uint64 { + if x != nil { + return x.Guid } return 0 } -func (m *FilesystemVersion) GetCreateTXG() uint64 { - if m != nil { - return m.CreateTXG +func (x *FilesystemVersion) GetCreateTXG() uint64 { + if x != nil { + return x.CreateTXG } return 0 } -func (m *FilesystemVersion) GetCreation() string { - if m != nil { - return m.Creation +func (x *FilesystemVersion) GetCreation() string { + if x != nil { + return x.Creation } return "" } type SendReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Filesystem string `protobuf:"bytes,1,opt,name=Filesystem,proto3" json:"Filesystem,omitempty"` // May be empty / null to request a full transfer of To From *FilesystemVersion `protobuf:"bytes,2,opt,name=From,proto3" json:"From,omitempty"` @@ -388,640 +516,781 @@ type SendReq struct { // SHOULD clear the resume token on their side and use From and To instead If // ResumeToken is not empty, the GUIDs of From and To MUST correspond to those // encoded in the ResumeToken. Otherwise, the Sender MUST return an error. - ResumeToken string `protobuf:"bytes,4,opt,name=ResumeToken,proto3" json:"ResumeToken,omitempty"` - Encrypted Tri `protobuf:"varint,5,opt,name=Encrypted,proto3,enum=Tri" json:"Encrypted,omitempty"` - DryRun bool `protobuf:"varint,6,opt,name=DryRun,proto3" json:"DryRun,omitempty"` - ReplicationConfig *ReplicationConfig `protobuf:"bytes,7,opt,name=ReplicationConfig,proto3" json:"ReplicationConfig,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ResumeToken string `protobuf:"bytes,4,opt,name=ResumeToken,proto3" json:"ResumeToken,omitempty"` + Encrypted Tri `protobuf:"varint,5,opt,name=Encrypted,proto3,enum=Tri" json:"Encrypted,omitempty"` + DryRun bool `protobuf:"varint,6,opt,name=DryRun,proto3" json:"DryRun,omitempty"` + ReplicationConfig *ReplicationConfig `protobuf:"bytes,7,opt,name=ReplicationConfig,proto3" json:"ReplicationConfig,omitempty"` } -func (m *SendReq) Reset() { *m = SendReq{} } -func (m *SendReq) String() string { return proto.CompactTextString(m) } -func (*SendReq) ProtoMessage() {} +func (x *SendReq) Reset() { + *x = SendReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendReq) ProtoMessage() {} + +func (x *SendReq) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendReq.ProtoReflect.Descriptor instead. func (*SendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{6} -} -func (m *SendReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SendReq.Unmarshal(m, b) -} -func (m *SendReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SendReq.Marshal(b, m, deterministic) -} -func (dst *SendReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SendReq.Merge(dst, src) -} -func (m *SendReq) XXX_Size() int { - return xxx_messageInfo_SendReq.Size(m) -} -func (m *SendReq) XXX_DiscardUnknown() { - xxx_messageInfo_SendReq.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{6} } -var xxx_messageInfo_SendReq proto.InternalMessageInfo - -func (m *SendReq) GetFilesystem() string { - if m != nil { - return m.Filesystem +func (x *SendReq) GetFilesystem() string { + if x != nil { + return x.Filesystem } return "" } -func (m *SendReq) GetFrom() *FilesystemVersion { - if m != nil { - return m.From +func (x *SendReq) GetFrom() *FilesystemVersion { + if x != nil { + return x.From } return nil } -func (m *SendReq) GetTo() *FilesystemVersion { - if m != nil { - return m.To +func (x *SendReq) GetTo() *FilesystemVersion { + if x != nil { + return x.To } return nil } -func (m *SendReq) GetResumeToken() string { - if m != nil { - return m.ResumeToken +func (x *SendReq) GetResumeToken() string { + if x != nil { + return x.ResumeToken } return "" } -func (m *SendReq) GetEncrypted() Tri { - if m != nil { - return m.Encrypted +func (x *SendReq) GetEncrypted() Tri { + if x != nil { + return x.Encrypted } return Tri_DontCare } -func (m *SendReq) GetDryRun() bool { - if m != nil { - return m.DryRun +func (x *SendReq) GetDryRun() bool { + if x != nil { + return x.DryRun } return false } -func (m *SendReq) GetReplicationConfig() *ReplicationConfig { - if m != nil { - return m.ReplicationConfig +func (x *SendReq) GetReplicationConfig() *ReplicationConfig { + if x != nil { + return x.ReplicationConfig } return nil } type ReplicationConfig struct { - Protection *ReplicationConfigProtection `protobuf:"bytes,1,opt,name=protection,proto3" json:"protection,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Protection *ReplicationConfigProtection `protobuf:"bytes,1,opt,name=protection,proto3" json:"protection,omitempty"` } -func (m *ReplicationConfig) Reset() { *m = ReplicationConfig{} } -func (m *ReplicationConfig) String() string { return proto.CompactTextString(m) } -func (*ReplicationConfig) ProtoMessage() {} +func (x *ReplicationConfig) Reset() { + *x = ReplicationConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplicationConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplicationConfig) ProtoMessage() {} + +func (x *ReplicationConfig) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplicationConfig.ProtoReflect.Descriptor instead. func (*ReplicationConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{7} -} -func (m *ReplicationConfig) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ReplicationConfig.Unmarshal(m, b) -} -func (m *ReplicationConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ReplicationConfig.Marshal(b, m, deterministic) -} -func (dst *ReplicationConfig) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReplicationConfig.Merge(dst, src) -} -func (m *ReplicationConfig) XXX_Size() int { - return xxx_messageInfo_ReplicationConfig.Size(m) -} -func (m *ReplicationConfig) XXX_DiscardUnknown() { - xxx_messageInfo_ReplicationConfig.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{7} } -var xxx_messageInfo_ReplicationConfig proto.InternalMessageInfo - -func (m *ReplicationConfig) GetProtection() *ReplicationConfigProtection { - if m != nil { - return m.Protection +func (x *ReplicationConfig) GetProtection() *ReplicationConfigProtection { + if x != nil { + return x.Protection } return nil } type ReplicationConfigProtection struct { - Initial ReplicationGuaranteeKind `protobuf:"varint,1,opt,name=Initial,proto3,enum=ReplicationGuaranteeKind" json:"Initial,omitempty"` - Incremental ReplicationGuaranteeKind `protobuf:"varint,2,opt,name=Incremental,proto3,enum=ReplicationGuaranteeKind" json:"Incremental,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Initial ReplicationGuaranteeKind `protobuf:"varint,1,opt,name=Initial,proto3,enum=ReplicationGuaranteeKind" json:"Initial,omitempty"` + Incremental ReplicationGuaranteeKind `protobuf:"varint,2,opt,name=Incremental,proto3,enum=ReplicationGuaranteeKind" json:"Incremental,omitempty"` } -func (m *ReplicationConfigProtection) Reset() { *m = ReplicationConfigProtection{} } -func (m *ReplicationConfigProtection) String() string { return proto.CompactTextString(m) } -func (*ReplicationConfigProtection) ProtoMessage() {} +func (x *ReplicationConfigProtection) Reset() { + *x = ReplicationConfigProtection{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplicationConfigProtection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplicationConfigProtection) ProtoMessage() {} + +func (x *ReplicationConfigProtection) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplicationConfigProtection.ProtoReflect.Descriptor instead. func (*ReplicationConfigProtection) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{8} -} -func (m *ReplicationConfigProtection) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ReplicationConfigProtection.Unmarshal(m, b) -} -func (m *ReplicationConfigProtection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ReplicationConfigProtection.Marshal(b, m, deterministic) -} -func (dst *ReplicationConfigProtection) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReplicationConfigProtection.Merge(dst, src) -} -func (m *ReplicationConfigProtection) XXX_Size() int { - return xxx_messageInfo_ReplicationConfigProtection.Size(m) -} -func (m *ReplicationConfigProtection) XXX_DiscardUnknown() { - xxx_messageInfo_ReplicationConfigProtection.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{8} } -var xxx_messageInfo_ReplicationConfigProtection proto.InternalMessageInfo - -func (m *ReplicationConfigProtection) GetInitial() ReplicationGuaranteeKind { - if m != nil { - return m.Initial +func (x *ReplicationConfigProtection) GetInitial() ReplicationGuaranteeKind { + if x != nil { + return x.Initial } return ReplicationGuaranteeKind_GuaranteeInvalid } -func (m *ReplicationConfigProtection) GetIncremental() ReplicationGuaranteeKind { - if m != nil { - return m.Incremental +func (x *ReplicationConfigProtection) GetIncremental() ReplicationGuaranteeKind { + if x != nil { + return x.Incremental } return ReplicationGuaranteeKind_GuaranteeInvalid } type Property struct { - Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` - Value string `protobuf:"bytes,2,opt,name=Value,proto3" json:"Value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` + Value string `protobuf:"bytes,2,opt,name=Value,proto3" json:"Value,omitempty"` } -func (m *Property) Reset() { *m = Property{} } -func (m *Property) String() string { return proto.CompactTextString(m) } -func (*Property) ProtoMessage() {} +func (x *Property) Reset() { + *x = Property{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Property) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Property) ProtoMessage() {} + +func (x *Property) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Property.ProtoReflect.Descriptor instead. func (*Property) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{9} -} -func (m *Property) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Property.Unmarshal(m, b) -} -func (m *Property) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Property.Marshal(b, m, deterministic) -} -func (dst *Property) XXX_Merge(src proto.Message) { - xxx_messageInfo_Property.Merge(dst, src) -} -func (m *Property) XXX_Size() int { - return xxx_messageInfo_Property.Size(m) -} -func (m *Property) XXX_DiscardUnknown() { - xxx_messageInfo_Property.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{9} } -var xxx_messageInfo_Property proto.InternalMessageInfo - -func (m *Property) GetName() string { - if m != nil { - return m.Name +func (x *Property) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *Property) GetValue() string { - if m != nil { - return m.Value +func (x *Property) GetValue() string { + if x != nil { + return x.Value } return "" } type SendRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Whether the resume token provided in the request has been used or not. // If the SendReq.ResumeToken == "", this field has no meaning. UsedResumeToken bool `protobuf:"varint,2,opt,name=UsedResumeToken,proto3" json:"UsedResumeToken,omitempty"` // Expected stream size determined by dry run, not exact. // 0 indicates that for the given SendReq, no size estimate could be made. - ExpectedSize int64 `protobuf:"varint,3,opt,name=ExpectedSize,proto3" json:"ExpectedSize,omitempty"` - Properties []*Property `protobuf:"bytes,4,rep,name=Properties,proto3" json:"Properties,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ExpectedSize int64 `protobuf:"varint,3,opt,name=ExpectedSize,proto3" json:"ExpectedSize,omitempty"` + Properties []*Property `protobuf:"bytes,4,rep,name=Properties,proto3" json:"Properties,omitempty"` } -func (m *SendRes) Reset() { *m = SendRes{} } -func (m *SendRes) String() string { return proto.CompactTextString(m) } -func (*SendRes) ProtoMessage() {} +func (x *SendRes) Reset() { + *x = SendRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendRes) ProtoMessage() {} + +func (x *SendRes) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendRes.ProtoReflect.Descriptor instead. func (*SendRes) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{10} -} -func (m *SendRes) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SendRes.Unmarshal(m, b) -} -func (m *SendRes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SendRes.Marshal(b, m, deterministic) -} -func (dst *SendRes) XXX_Merge(src proto.Message) { - xxx_messageInfo_SendRes.Merge(dst, src) -} -func (m *SendRes) XXX_Size() int { - return xxx_messageInfo_SendRes.Size(m) -} -func (m *SendRes) XXX_DiscardUnknown() { - xxx_messageInfo_SendRes.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{10} } -var xxx_messageInfo_SendRes proto.InternalMessageInfo - -func (m *SendRes) GetUsedResumeToken() bool { - if m != nil { - return m.UsedResumeToken +func (x *SendRes) GetUsedResumeToken() bool { + if x != nil { + return x.UsedResumeToken } return false } -func (m *SendRes) GetExpectedSize() int64 { - if m != nil { - return m.ExpectedSize +func (x *SendRes) GetExpectedSize() int64 { + if x != nil { + return x.ExpectedSize } return 0 } -func (m *SendRes) GetProperties() []*Property { - if m != nil { - return m.Properties +func (x *SendRes) GetProperties() []*Property { + if x != nil { + return x.Properties } return nil } type SendCompletedReq struct { - OriginalReq *SendReq `protobuf:"bytes,2,opt,name=OriginalReq,proto3" json:"OriginalReq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OriginalReq *SendReq `protobuf:"bytes,2,opt,name=OriginalReq,proto3" json:"OriginalReq,omitempty"` } -func (m *SendCompletedReq) Reset() { *m = SendCompletedReq{} } -func (m *SendCompletedReq) String() string { return proto.CompactTextString(m) } -func (*SendCompletedReq) ProtoMessage() {} +func (x *SendCompletedReq) Reset() { + *x = SendCompletedReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendCompletedReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendCompletedReq) ProtoMessage() {} + +func (x *SendCompletedReq) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendCompletedReq.ProtoReflect.Descriptor instead. func (*SendCompletedReq) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{11} -} -func (m *SendCompletedReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SendCompletedReq.Unmarshal(m, b) -} -func (m *SendCompletedReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SendCompletedReq.Marshal(b, m, deterministic) -} -func (dst *SendCompletedReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SendCompletedReq.Merge(dst, src) -} -func (m *SendCompletedReq) XXX_Size() int { - return xxx_messageInfo_SendCompletedReq.Size(m) -} -func (m *SendCompletedReq) XXX_DiscardUnknown() { - xxx_messageInfo_SendCompletedReq.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{11} } -var xxx_messageInfo_SendCompletedReq proto.InternalMessageInfo - -func (m *SendCompletedReq) GetOriginalReq() *SendReq { - if m != nil { - return m.OriginalReq +func (x *SendCompletedReq) GetOriginalReq() *SendReq { + if x != nil { + return x.OriginalReq } return nil } type SendCompletedRes struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *SendCompletedRes) Reset() { *m = SendCompletedRes{} } -func (m *SendCompletedRes) String() string { return proto.CompactTextString(m) } -func (*SendCompletedRes) ProtoMessage() {} +func (x *SendCompletedRes) Reset() { + *x = SendCompletedRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendCompletedRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendCompletedRes) ProtoMessage() {} + +func (x *SendCompletedRes) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendCompletedRes.ProtoReflect.Descriptor instead. func (*SendCompletedRes) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{12} + return file_pdu_proto_rawDescGZIP(), []int{12} } -func (m *SendCompletedRes) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SendCompletedRes.Unmarshal(m, b) -} -func (m *SendCompletedRes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SendCompletedRes.Marshal(b, m, deterministic) -} -func (dst *SendCompletedRes) XXX_Merge(src proto.Message) { - xxx_messageInfo_SendCompletedRes.Merge(dst, src) -} -func (m *SendCompletedRes) XXX_Size() int { - return xxx_messageInfo_SendCompletedRes.Size(m) -} -func (m *SendCompletedRes) XXX_DiscardUnknown() { - xxx_messageInfo_SendCompletedRes.DiscardUnknown(m) -} - -var xxx_messageInfo_SendCompletedRes proto.InternalMessageInfo type ReceiveReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Filesystem string `protobuf:"bytes,1,opt,name=Filesystem,proto3" json:"Filesystem,omitempty"` To *FilesystemVersion `protobuf:"bytes,2,opt,name=To,proto3" json:"To,omitempty"` // If true, the receiver should clear the resume token before performing the // zfs recv of the stream in the request - ClearResumeToken bool `protobuf:"varint,3,opt,name=ClearResumeToken,proto3" json:"ClearResumeToken,omitempty"` - ReplicationConfig *ReplicationConfig `protobuf:"bytes,4,opt,name=ReplicationConfig,proto3" json:"ReplicationConfig,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ClearResumeToken bool `protobuf:"varint,3,opt,name=ClearResumeToken,proto3" json:"ClearResumeToken,omitempty"` + ReplicationConfig *ReplicationConfig `protobuf:"bytes,4,opt,name=ReplicationConfig,proto3" json:"ReplicationConfig,omitempty"` } -func (m *ReceiveReq) Reset() { *m = ReceiveReq{} } -func (m *ReceiveReq) String() string { return proto.CompactTextString(m) } -func (*ReceiveReq) ProtoMessage() {} +func (x *ReceiveReq) Reset() { + *x = ReceiveReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceiveReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceiveReq) ProtoMessage() {} + +func (x *ReceiveReq) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReceiveReq.ProtoReflect.Descriptor instead. func (*ReceiveReq) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{13} -} -func (m *ReceiveReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ReceiveReq.Unmarshal(m, b) -} -func (m *ReceiveReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ReceiveReq.Marshal(b, m, deterministic) -} -func (dst *ReceiveReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReceiveReq.Merge(dst, src) -} -func (m *ReceiveReq) XXX_Size() int { - return xxx_messageInfo_ReceiveReq.Size(m) -} -func (m *ReceiveReq) XXX_DiscardUnknown() { - xxx_messageInfo_ReceiveReq.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{13} } -var xxx_messageInfo_ReceiveReq proto.InternalMessageInfo - -func (m *ReceiveReq) GetFilesystem() string { - if m != nil { - return m.Filesystem +func (x *ReceiveReq) GetFilesystem() string { + if x != nil { + return x.Filesystem } return "" } -func (m *ReceiveReq) GetTo() *FilesystemVersion { - if m != nil { - return m.To +func (x *ReceiveReq) GetTo() *FilesystemVersion { + if x != nil { + return x.To } return nil } -func (m *ReceiveReq) GetClearResumeToken() bool { - if m != nil { - return m.ClearResumeToken +func (x *ReceiveReq) GetClearResumeToken() bool { + if x != nil { + return x.ClearResumeToken } return false } -func (m *ReceiveReq) GetReplicationConfig() *ReplicationConfig { - if m != nil { - return m.ReplicationConfig +func (x *ReceiveReq) GetReplicationConfig() *ReplicationConfig { + if x != nil { + return x.ReplicationConfig } return nil } type ReceiveRes struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *ReceiveRes) Reset() { *m = ReceiveRes{} } -func (m *ReceiveRes) String() string { return proto.CompactTextString(m) } -func (*ReceiveRes) ProtoMessage() {} +func (x *ReceiveRes) Reset() { + *x = ReceiveRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceiveRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceiveRes) ProtoMessage() {} + +func (x *ReceiveRes) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReceiveRes.ProtoReflect.Descriptor instead. func (*ReceiveRes) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{14} + return file_pdu_proto_rawDescGZIP(), []int{14} } -func (m *ReceiveRes) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ReceiveRes.Unmarshal(m, b) -} -func (m *ReceiveRes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ReceiveRes.Marshal(b, m, deterministic) -} -func (dst *ReceiveRes) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReceiveRes.Merge(dst, src) -} -func (m *ReceiveRes) XXX_Size() int { - return xxx_messageInfo_ReceiveRes.Size(m) -} -func (m *ReceiveRes) XXX_DiscardUnknown() { - xxx_messageInfo_ReceiveRes.DiscardUnknown(m) -} - -var xxx_messageInfo_ReceiveRes proto.InternalMessageInfo type DestroySnapshotsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Filesystem string `protobuf:"bytes,1,opt,name=Filesystem,proto3" json:"Filesystem,omitempty"` // Path to filesystem, snapshot or bookmark to be destroyed - Snapshots []*FilesystemVersion `protobuf:"bytes,2,rep,name=Snapshots,proto3" json:"Snapshots,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Snapshots []*FilesystemVersion `protobuf:"bytes,2,rep,name=Snapshots,proto3" json:"Snapshots,omitempty"` } -func (m *DestroySnapshotsReq) Reset() { *m = DestroySnapshotsReq{} } -func (m *DestroySnapshotsReq) String() string { return proto.CompactTextString(m) } -func (*DestroySnapshotsReq) ProtoMessage() {} +func (x *DestroySnapshotsReq) Reset() { + *x = DestroySnapshotsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DestroySnapshotsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestroySnapshotsReq) ProtoMessage() {} + +func (x *DestroySnapshotsReq) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestroySnapshotsReq.ProtoReflect.Descriptor instead. func (*DestroySnapshotsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{15} -} -func (m *DestroySnapshotsReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DestroySnapshotsReq.Unmarshal(m, b) -} -func (m *DestroySnapshotsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DestroySnapshotsReq.Marshal(b, m, deterministic) -} -func (dst *DestroySnapshotsReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DestroySnapshotsReq.Merge(dst, src) -} -func (m *DestroySnapshotsReq) XXX_Size() int { - return xxx_messageInfo_DestroySnapshotsReq.Size(m) -} -func (m *DestroySnapshotsReq) XXX_DiscardUnknown() { - xxx_messageInfo_DestroySnapshotsReq.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{15} } -var xxx_messageInfo_DestroySnapshotsReq proto.InternalMessageInfo - -func (m *DestroySnapshotsReq) GetFilesystem() string { - if m != nil { - return m.Filesystem +func (x *DestroySnapshotsReq) GetFilesystem() string { + if x != nil { + return x.Filesystem } return "" } -func (m *DestroySnapshotsReq) GetSnapshots() []*FilesystemVersion { - if m != nil { - return m.Snapshots +func (x *DestroySnapshotsReq) GetSnapshots() []*FilesystemVersion { + if x != nil { + return x.Snapshots } return nil } type DestroySnapshotRes struct { - Snapshot *FilesystemVersion `protobuf:"bytes,1,opt,name=Snapshot,proto3" json:"Snapshot,omitempty"` - Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Snapshot *FilesystemVersion `protobuf:"bytes,1,opt,name=Snapshot,proto3" json:"Snapshot,omitempty"` + Error string `protobuf:"bytes,2,opt,name=Error,proto3" json:"Error,omitempty"` } -func (m *DestroySnapshotRes) Reset() { *m = DestroySnapshotRes{} } -func (m *DestroySnapshotRes) String() string { return proto.CompactTextString(m) } -func (*DestroySnapshotRes) ProtoMessage() {} +func (x *DestroySnapshotRes) Reset() { + *x = DestroySnapshotRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DestroySnapshotRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestroySnapshotRes) ProtoMessage() {} + +func (x *DestroySnapshotRes) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestroySnapshotRes.ProtoReflect.Descriptor instead. func (*DestroySnapshotRes) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{16} -} -func (m *DestroySnapshotRes) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DestroySnapshotRes.Unmarshal(m, b) -} -func (m *DestroySnapshotRes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DestroySnapshotRes.Marshal(b, m, deterministic) -} -func (dst *DestroySnapshotRes) XXX_Merge(src proto.Message) { - xxx_messageInfo_DestroySnapshotRes.Merge(dst, src) -} -func (m *DestroySnapshotRes) XXX_Size() int { - return xxx_messageInfo_DestroySnapshotRes.Size(m) -} -func (m *DestroySnapshotRes) XXX_DiscardUnknown() { - xxx_messageInfo_DestroySnapshotRes.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{16} } -var xxx_messageInfo_DestroySnapshotRes proto.InternalMessageInfo - -func (m *DestroySnapshotRes) GetSnapshot() *FilesystemVersion { - if m != nil { - return m.Snapshot +func (x *DestroySnapshotRes) GetSnapshot() *FilesystemVersion { + if x != nil { + return x.Snapshot } return nil } -func (m *DestroySnapshotRes) GetError() string { - if m != nil { - return m.Error +func (x *DestroySnapshotRes) GetError() string { + if x != nil { + return x.Error } return "" } type DestroySnapshotsRes struct { - Results []*DestroySnapshotRes `protobuf:"bytes,1,rep,name=Results,proto3" json:"Results,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Results []*DestroySnapshotRes `protobuf:"bytes,1,rep,name=Results,proto3" json:"Results,omitempty"` } -func (m *DestroySnapshotsRes) Reset() { *m = DestroySnapshotsRes{} } -func (m *DestroySnapshotsRes) String() string { return proto.CompactTextString(m) } -func (*DestroySnapshotsRes) ProtoMessage() {} +func (x *DestroySnapshotsRes) Reset() { + *x = DestroySnapshotsRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DestroySnapshotsRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestroySnapshotsRes) ProtoMessage() {} + +func (x *DestroySnapshotsRes) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestroySnapshotsRes.ProtoReflect.Descriptor instead. func (*DestroySnapshotsRes) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{17} -} -func (m *DestroySnapshotsRes) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DestroySnapshotsRes.Unmarshal(m, b) -} -func (m *DestroySnapshotsRes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DestroySnapshotsRes.Marshal(b, m, deterministic) -} -func (dst *DestroySnapshotsRes) XXX_Merge(src proto.Message) { - xxx_messageInfo_DestroySnapshotsRes.Merge(dst, src) -} -func (m *DestroySnapshotsRes) XXX_Size() int { - return xxx_messageInfo_DestroySnapshotsRes.Size(m) -} -func (m *DestroySnapshotsRes) XXX_DiscardUnknown() { - xxx_messageInfo_DestroySnapshotsRes.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{17} } -var xxx_messageInfo_DestroySnapshotsRes proto.InternalMessageInfo - -func (m *DestroySnapshotsRes) GetResults() []*DestroySnapshotRes { - if m != nil { - return m.Results +func (x *DestroySnapshotsRes) GetResults() []*DestroySnapshotRes { + if x != nil { + return x.Results } return nil } type ReplicationCursorReq struct { - Filesystem string `protobuf:"bytes,1,opt,name=Filesystem,proto3" json:"Filesystem,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Filesystem string `protobuf:"bytes,1,opt,name=Filesystem,proto3" json:"Filesystem,omitempty"` } -func (m *ReplicationCursorReq) Reset() { *m = ReplicationCursorReq{} } -func (m *ReplicationCursorReq) String() string { return proto.CompactTextString(m) } -func (*ReplicationCursorReq) ProtoMessage() {} +func (x *ReplicationCursorReq) Reset() { + *x = ReplicationCursorReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplicationCursorReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplicationCursorReq) ProtoMessage() {} + +func (x *ReplicationCursorReq) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplicationCursorReq.ProtoReflect.Descriptor instead. func (*ReplicationCursorReq) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{18} -} -func (m *ReplicationCursorReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ReplicationCursorReq.Unmarshal(m, b) -} -func (m *ReplicationCursorReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ReplicationCursorReq.Marshal(b, m, deterministic) -} -func (dst *ReplicationCursorReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReplicationCursorReq.Merge(dst, src) -} -func (m *ReplicationCursorReq) XXX_Size() int { - return xxx_messageInfo_ReplicationCursorReq.Size(m) -} -func (m *ReplicationCursorReq) XXX_DiscardUnknown() { - xxx_messageInfo_ReplicationCursorReq.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{18} } -var xxx_messageInfo_ReplicationCursorReq proto.InternalMessageInfo - -func (m *ReplicationCursorReq) GetFilesystem() string { - if m != nil { - return m.Filesystem +func (x *ReplicationCursorReq) GetFilesystem() string { + if x != nil { + return x.Filesystem } return "" } type ReplicationCursorRes struct { - // Types that are valid to be assigned to Result: + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Result: // *ReplicationCursorRes_Guid // *ReplicationCursorRes_Notexist - Result isReplicationCursorRes_Result `protobuf_oneof:"Result"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Result isReplicationCursorRes_Result `protobuf_oneof:"Result"` } -func (m *ReplicationCursorRes) Reset() { *m = ReplicationCursorRes{} } -func (m *ReplicationCursorRes) String() string { return proto.CompactTextString(m) } -func (*ReplicationCursorRes) ProtoMessage() {} +func (x *ReplicationCursorRes) Reset() { + *x = ReplicationCursorRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplicationCursorRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplicationCursorRes) ProtoMessage() {} + +func (x *ReplicationCursorRes) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReplicationCursorRes.ProtoReflect.Descriptor instead. func (*ReplicationCursorRes) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{19} -} -func (m *ReplicationCursorRes) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ReplicationCursorRes.Unmarshal(m, b) -} -func (m *ReplicationCursorRes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ReplicationCursorRes.Marshal(b, m, deterministic) -} -func (dst *ReplicationCursorRes) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReplicationCursorRes.Merge(dst, src) -} -func (m *ReplicationCursorRes) XXX_Size() int { - return xxx_messageInfo_ReplicationCursorRes.Size(m) -} -func (m *ReplicationCursorRes) XXX_DiscardUnknown() { - xxx_messageInfo_ReplicationCursorRes.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{19} } -var xxx_messageInfo_ReplicationCursorRes proto.InternalMessageInfo +func (m *ReplicationCursorRes) GetResult() isReplicationCursorRes_Result { + if m != nil { + return m.Result + } + return nil +} + +func (x *ReplicationCursorRes) GetGuid() uint64 { + if x, ok := x.GetResult().(*ReplicationCursorRes_Guid); ok { + return x.Guid + } + return 0 +} + +func (x *ReplicationCursorRes) GetNotexist() bool { + if x, ok := x.GetResult().(*ReplicationCursorRes_Notexist); ok { + return x.Notexist + } + return false +} type isReplicationCursorRes_Result interface { isReplicationCursorRes_Result() @@ -1039,502 +1308,641 @@ func (*ReplicationCursorRes_Guid) isReplicationCursorRes_Result() {} func (*ReplicationCursorRes_Notexist) isReplicationCursorRes_Result() {} -func (m *ReplicationCursorRes) GetResult() isReplicationCursorRes_Result { - if m != nil { - return m.Result - } - return nil -} - -func (m *ReplicationCursorRes) GetGuid() uint64 { - if x, ok := m.GetResult().(*ReplicationCursorRes_Guid); ok { - return x.Guid - } - return 0 -} - -func (m *ReplicationCursorRes) GetNotexist() bool { - if x, ok := m.GetResult().(*ReplicationCursorRes_Notexist); ok { - return x.Notexist - } - return false -} - -// XXX_OneofFuncs is for the internal use of the proto package. -func (*ReplicationCursorRes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { - return _ReplicationCursorRes_OneofMarshaler, _ReplicationCursorRes_OneofUnmarshaler, _ReplicationCursorRes_OneofSizer, []interface{}{ - (*ReplicationCursorRes_Guid)(nil), - (*ReplicationCursorRes_Notexist)(nil), - } -} - -func _ReplicationCursorRes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { - m := msg.(*ReplicationCursorRes) - // Result - switch x := m.Result.(type) { - case *ReplicationCursorRes_Guid: - b.EncodeVarint(1<<3 | proto.WireVarint) - b.EncodeVarint(uint64(x.Guid)) - case *ReplicationCursorRes_Notexist: - t := uint64(0) - if x.Notexist { - t = 1 - } - b.EncodeVarint(2<<3 | proto.WireVarint) - b.EncodeVarint(t) - case nil: - default: - return fmt.Errorf("ReplicationCursorRes.Result has unexpected type %T", x) - } - return nil -} - -func _ReplicationCursorRes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { - m := msg.(*ReplicationCursorRes) - switch tag { - case 1: // Result.Guid - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Result = &ReplicationCursorRes_Guid{x} - return true, err - case 2: // Result.Notexist - if wire != proto.WireVarint { - return true, proto.ErrInternalBadWireType - } - x, err := b.DecodeVarint() - m.Result = &ReplicationCursorRes_Notexist{x != 0} - return true, err - default: - return false, nil - } -} - -func _ReplicationCursorRes_OneofSizer(msg proto.Message) (n int) { - m := msg.(*ReplicationCursorRes) - // Result - switch x := m.Result.(type) { - case *ReplicationCursorRes_Guid: - n += 1 // tag and wire - n += proto.SizeVarint(uint64(x.Guid)) - case *ReplicationCursorRes_Notexist: - n += 1 // tag and wire - n += 1 - case nil: - default: - panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) - } - return n -} - type PingReq struct { - Message string `protobuf:"bytes,1,opt,name=Message,proto3" json:"Message,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message string `protobuf:"bytes,1,opt,name=Message,proto3" json:"Message,omitempty"` } -func (m *PingReq) Reset() { *m = PingReq{} } -func (m *PingReq) String() string { return proto.CompactTextString(m) } -func (*PingReq) ProtoMessage() {} +func (x *PingReq) Reset() { + *x = PingReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PingReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PingReq) ProtoMessage() {} + +func (x *PingReq) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PingReq.ProtoReflect.Descriptor instead. func (*PingReq) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{20} -} -func (m *PingReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PingReq.Unmarshal(m, b) -} -func (m *PingReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PingReq.Marshal(b, m, deterministic) -} -func (dst *PingReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_PingReq.Merge(dst, src) -} -func (m *PingReq) XXX_Size() int { - return xxx_messageInfo_PingReq.Size(m) -} -func (m *PingReq) XXX_DiscardUnknown() { - xxx_messageInfo_PingReq.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{20} } -var xxx_messageInfo_PingReq proto.InternalMessageInfo - -func (m *PingReq) GetMessage() string { - if m != nil { - return m.Message +func (x *PingReq) GetMessage() string { + if x != nil { + return x.Message } return "" } type PingRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Echo must be PingReq.Message - Echo string `protobuf:"bytes,1,opt,name=Echo,proto3" json:"Echo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Echo string `protobuf:"bytes,1,opt,name=Echo,proto3" json:"Echo,omitempty"` } -func (m *PingRes) Reset() { *m = PingRes{} } -func (m *PingRes) String() string { return proto.CompactTextString(m) } -func (*PingRes) ProtoMessage() {} +func (x *PingRes) Reset() { + *x = PingRes{} + if protoimpl.UnsafeEnabled { + mi := &file_pdu_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PingRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PingRes) ProtoMessage() {} + +func (x *PingRes) ProtoReflect() protoreflect.Message { + mi := &file_pdu_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PingRes.ProtoReflect.Descriptor instead. func (*PingRes) Descriptor() ([]byte, []int) { - return fileDescriptor_pdu_616c27178643eca4, []int{21} -} -func (m *PingRes) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PingRes.Unmarshal(m, b) -} -func (m *PingRes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PingRes.Marshal(b, m, deterministic) -} -func (dst *PingRes) XXX_Merge(src proto.Message) { - xxx_messageInfo_PingRes.Merge(dst, src) -} -func (m *PingRes) XXX_Size() int { - return xxx_messageInfo_PingRes.Size(m) -} -func (m *PingRes) XXX_DiscardUnknown() { - xxx_messageInfo_PingRes.DiscardUnknown(m) + return file_pdu_proto_rawDescGZIP(), []int{21} } -var xxx_messageInfo_PingRes proto.InternalMessageInfo - -func (m *PingRes) GetEcho() string { - if m != nil { - return m.Echo +func (x *PingRes) GetEcho() string { + if x != nil { + return x.Echo } return "" } -func init() { - proto.RegisterType((*ListFilesystemReq)(nil), "ListFilesystemReq") - proto.RegisterType((*ListFilesystemRes)(nil), "ListFilesystemRes") - proto.RegisterType((*Filesystem)(nil), "Filesystem") - proto.RegisterType((*ListFilesystemVersionsReq)(nil), "ListFilesystemVersionsReq") - proto.RegisterType((*ListFilesystemVersionsRes)(nil), "ListFilesystemVersionsRes") - proto.RegisterType((*FilesystemVersion)(nil), "FilesystemVersion") - proto.RegisterType((*SendReq)(nil), "SendReq") - proto.RegisterType((*ReplicationConfig)(nil), "ReplicationConfig") - proto.RegisterType((*ReplicationConfigProtection)(nil), "ReplicationConfigProtection") - proto.RegisterType((*Property)(nil), "Property") - proto.RegisterType((*SendRes)(nil), "SendRes") - proto.RegisterType((*SendCompletedReq)(nil), "SendCompletedReq") - proto.RegisterType((*SendCompletedRes)(nil), "SendCompletedRes") - proto.RegisterType((*ReceiveReq)(nil), "ReceiveReq") - proto.RegisterType((*ReceiveRes)(nil), "ReceiveRes") - proto.RegisterType((*DestroySnapshotsReq)(nil), "DestroySnapshotsReq") - proto.RegisterType((*DestroySnapshotRes)(nil), "DestroySnapshotRes") - proto.RegisterType((*DestroySnapshotsRes)(nil), "DestroySnapshotsRes") - proto.RegisterType((*ReplicationCursorReq)(nil), "ReplicationCursorReq") - proto.RegisterType((*ReplicationCursorRes)(nil), "ReplicationCursorRes") - proto.RegisterType((*PingReq)(nil), "PingReq") - proto.RegisterType((*PingRes)(nil), "PingRes") - proto.RegisterEnum("Tri", Tri_name, Tri_value) - proto.RegisterEnum("ReplicationGuaranteeKind", ReplicationGuaranteeKind_name, ReplicationGuaranteeKind_value) - proto.RegisterEnum("FilesystemVersion_VersionType", FilesystemVersion_VersionType_name, FilesystemVersion_VersionType_value) +var File_pdu_proto protoreflect.FileDescriptor + +var file_pdu_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x70, 0x64, 0x75, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x13, 0x0a, 0x11, 0x4c, + 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, + 0x22, 0x42, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x52, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x69, 0x6c, + 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x50, 0x61, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x75, 0x6d, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x52, 0x65, + 0x73, 0x75, 0x6d, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x73, 0x50, + 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x49, 0x73, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, + 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, + 0x64, 0x22, 0x3b, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1e, + 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x4b, + 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x08, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd4, 0x01, 0x0a, 0x11, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x32, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1e, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x75, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x47, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x58, 0x47, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x58, 0x47, 0x12, 0x1a, 0x0a, 0x08, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x29, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, + 0x10, 0x01, 0x22, 0x95, 0x02, 0x0a, 0x07, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1e, + 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x26, + 0x0a, 0x04, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x22, 0x0a, 0x02, 0x54, 0x6f, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x54, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, + 0x73, 0x75, 0x6d, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x09, + 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x04, 0x2e, 0x54, 0x72, 0x69, 0x52, 0x09, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x44, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x40, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x51, 0x0a, 0x11, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x3c, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8f, 0x01, + 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, + 0x07, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, + 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x75, 0x61, 0x72, + 0x61, 0x6e, 0x74, 0x65, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x07, 0x49, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x6c, 0x12, 0x3b, 0x0a, 0x0b, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x4b, 0x69, + 0x6e, 0x64, 0x52, 0x0b, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x22, + 0x34, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x55, 0x73, 0x65, 0x64, + 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x45, + 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0c, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x29, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x10, 0x53, 0x65, + 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x12, 0x2a, + 0x0a, 0x0b, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x52, 0x0b, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x65, + 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x22, 0xbe, + 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, + 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x22, 0x0a, + 0x02, 0x54, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x54, + 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x43, 0x6c, 0x65, + 0x61, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x40, 0x0a, + 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, + 0x0c, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x22, 0x67, 0x0a, + 0x13, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x12, 0x30, 0x0a, 0x09, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x22, 0x5a, 0x0a, 0x12, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, + 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x08, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x22, 0x44, 0x0a, 0x13, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x44, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x52, + 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x36, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, + 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x22, 0x54, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x04, 0x47, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x04, 0x47, 0x75, 0x69, 0x64, 0x12, 0x1c, + 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x65, 0x78, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x08, 0x4e, 0x6f, 0x74, 0x65, 0x78, 0x69, 0x73, 0x74, 0x42, 0x08, 0x0a, 0x06, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x23, 0x0a, 0x07, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x71, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x1d, 0x0a, 0x07, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x45, 0x63, 0x68, 0x6f, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x45, 0x63, 0x68, 0x6f, 0x2a, 0x28, 0x0a, 0x03, 0x54, 0x72, + 0x69, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x6f, 0x6e, 0x74, 0x43, 0x61, 0x72, 0x65, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x46, 0x61, 0x6c, 0x73, 0x65, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x72, + 0x75, 0x65, 0x10, 0x02, 0x2a, 0x86, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x4b, 0x69, 0x6e, + 0x64, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x75, 0x61, 0x72, 0x61, + 0x6e, 0x74, 0x65, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x47, 0x75, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x49, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x75, 0x61, 0x72, 0x61, + 0x6e, 0x74, 0x65, 0x65, 0x4e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x32, 0xf0, 0x02, + 0x0a, 0x0b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, + 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x08, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, + 0x08, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0f, 0x4c, 0x69, 0x73, + 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, + 0x1a, 0x12, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x52, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, + 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x14, 0x2e, 0x44, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x14, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x15, 0x2e, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, + 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x53, 0x65, 0x6e, + 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x11, 0x2e, 0x53, 0x65, 0x6e, + 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, + 0x53, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, + 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x3b, 0x70, 0x64, 0x75, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn +var ( + file_pdu_proto_rawDescOnce sync.Once + file_pdu_proto_rawDescData = file_pdu_proto_rawDesc +) -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// ReplicationClient is the client API for Replication service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type ReplicationClient interface { - Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingRes, error) - ListFilesystems(ctx context.Context, in *ListFilesystemReq, opts ...grpc.CallOption) (*ListFilesystemRes, error) - ListFilesystemVersions(ctx context.Context, in *ListFilesystemVersionsReq, opts ...grpc.CallOption) (*ListFilesystemVersionsRes, error) - DestroySnapshots(ctx context.Context, in *DestroySnapshotsReq, opts ...grpc.CallOption) (*DestroySnapshotsRes, error) - ReplicationCursor(ctx context.Context, in *ReplicationCursorReq, opts ...grpc.CallOption) (*ReplicationCursorRes, error) - SendCompleted(ctx context.Context, in *SendCompletedReq, opts ...grpc.CallOption) (*SendCompletedRes, error) +func file_pdu_proto_rawDescGZIP() []byte { + file_pdu_proto_rawDescOnce.Do(func() { + file_pdu_proto_rawDescData = protoimpl.X.CompressGZIP(file_pdu_proto_rawDescData) + }) + return file_pdu_proto_rawDescData } -type replicationClient struct { - cc *grpc.ClientConn +var file_pdu_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_pdu_proto_msgTypes = make([]protoimpl.MessageInfo, 22) +var file_pdu_proto_goTypes = []interface{}{ + (Tri)(0), // 0: Tri + (ReplicationGuaranteeKind)(0), // 1: ReplicationGuaranteeKind + (FilesystemVersion_VersionType)(0), // 2: FilesystemVersion.VersionType + (*ListFilesystemReq)(nil), // 3: ListFilesystemReq + (*ListFilesystemRes)(nil), // 4: ListFilesystemRes + (*Filesystem)(nil), // 5: Filesystem + (*ListFilesystemVersionsReq)(nil), // 6: ListFilesystemVersionsReq + (*ListFilesystemVersionsRes)(nil), // 7: ListFilesystemVersionsRes + (*FilesystemVersion)(nil), // 8: FilesystemVersion + (*SendReq)(nil), // 9: SendReq + (*ReplicationConfig)(nil), // 10: ReplicationConfig + (*ReplicationConfigProtection)(nil), // 11: ReplicationConfigProtection + (*Property)(nil), // 12: Property + (*SendRes)(nil), // 13: SendRes + (*SendCompletedReq)(nil), // 14: SendCompletedReq + (*SendCompletedRes)(nil), // 15: SendCompletedRes + (*ReceiveReq)(nil), // 16: ReceiveReq + (*ReceiveRes)(nil), // 17: ReceiveRes + (*DestroySnapshotsReq)(nil), // 18: DestroySnapshotsReq + (*DestroySnapshotRes)(nil), // 19: DestroySnapshotRes + (*DestroySnapshotsRes)(nil), // 20: DestroySnapshotsRes + (*ReplicationCursorReq)(nil), // 21: ReplicationCursorReq + (*ReplicationCursorRes)(nil), // 22: ReplicationCursorRes + (*PingReq)(nil), // 23: PingReq + (*PingRes)(nil), // 24: PingRes +} +var file_pdu_proto_depIdxs = []int32{ + 5, // 0: ListFilesystemRes.Filesystems:type_name -> Filesystem + 8, // 1: ListFilesystemVersionsRes.Versions:type_name -> FilesystemVersion + 2, // 2: FilesystemVersion.Type:type_name -> FilesystemVersion.VersionType + 8, // 3: SendReq.From:type_name -> FilesystemVersion + 8, // 4: SendReq.To:type_name -> FilesystemVersion + 0, // 5: SendReq.Encrypted:type_name -> Tri + 10, // 6: SendReq.ReplicationConfig:type_name -> ReplicationConfig + 11, // 7: ReplicationConfig.protection:type_name -> ReplicationConfigProtection + 1, // 8: ReplicationConfigProtection.Initial:type_name -> ReplicationGuaranteeKind + 1, // 9: ReplicationConfigProtection.Incremental:type_name -> ReplicationGuaranteeKind + 12, // 10: SendRes.Properties:type_name -> Property + 9, // 11: SendCompletedReq.OriginalReq:type_name -> SendReq + 8, // 12: ReceiveReq.To:type_name -> FilesystemVersion + 10, // 13: ReceiveReq.ReplicationConfig:type_name -> ReplicationConfig + 8, // 14: DestroySnapshotsReq.Snapshots:type_name -> FilesystemVersion + 8, // 15: DestroySnapshotRes.Snapshot:type_name -> FilesystemVersion + 19, // 16: DestroySnapshotsRes.Results:type_name -> DestroySnapshotRes + 23, // 17: Replication.Ping:input_type -> PingReq + 3, // 18: Replication.ListFilesystems:input_type -> ListFilesystemReq + 6, // 19: Replication.ListFilesystemVersions:input_type -> ListFilesystemVersionsReq + 18, // 20: Replication.DestroySnapshots:input_type -> DestroySnapshotsReq + 21, // 21: Replication.ReplicationCursor:input_type -> ReplicationCursorReq + 14, // 22: Replication.SendCompleted:input_type -> SendCompletedReq + 24, // 23: Replication.Ping:output_type -> PingRes + 4, // 24: Replication.ListFilesystems:output_type -> ListFilesystemRes + 7, // 25: Replication.ListFilesystemVersions:output_type -> ListFilesystemVersionsRes + 20, // 26: Replication.DestroySnapshots:output_type -> DestroySnapshotsRes + 22, // 27: Replication.ReplicationCursor:output_type -> ReplicationCursorRes + 15, // 28: Replication.SendCompleted:output_type -> SendCompletedRes + 23, // [23:29] is the sub-list for method output_type + 17, // [17:23] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name } -func NewReplicationClient(cc *grpc.ClientConn) ReplicationClient { - return &replicationClient{cc} -} - -func (c *replicationClient) Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingRes, error) { - out := new(PingRes) - err := c.cc.Invoke(ctx, "/Replication/Ping", in, out, opts...) - if err != nil { - return nil, err +func init() { file_pdu_proto_init() } +func file_pdu_proto_init() { + if File_pdu_proto != nil { + return } - return out, nil -} - -func (c *replicationClient) ListFilesystems(ctx context.Context, in *ListFilesystemReq, opts ...grpc.CallOption) (*ListFilesystemRes, error) { - out := new(ListFilesystemRes) - err := c.cc.Invoke(ctx, "/Replication/ListFilesystems", in, out, opts...) - if err != nil { - return nil, err + if !protoimpl.UnsafeEnabled { + file_pdu_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFilesystemReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFilesystemRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Filesystem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFilesystemVersionsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFilesystemVersionsRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FilesystemVersion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReplicationConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReplicationConfigProtection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Property); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendCompletedReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendCompletedRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceiveReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceiveRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DestroySnapshotsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DestroySnapshotRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DestroySnapshotsRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReplicationCursorReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReplicationCursorRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PingReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pdu_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PingRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - return out, nil -} - -func (c *replicationClient) ListFilesystemVersions(ctx context.Context, in *ListFilesystemVersionsReq, opts ...grpc.CallOption) (*ListFilesystemVersionsRes, error) { - out := new(ListFilesystemVersionsRes) - err := c.cc.Invoke(ctx, "/Replication/ListFilesystemVersions", in, out, opts...) - if err != nil { - return nil, err + file_pdu_proto_msgTypes[19].OneofWrappers = []interface{}{ + (*ReplicationCursorRes_Guid)(nil), + (*ReplicationCursorRes_Notexist)(nil), } - return out, nil -} - -func (c *replicationClient) DestroySnapshots(ctx context.Context, in *DestroySnapshotsReq, opts ...grpc.CallOption) (*DestroySnapshotsRes, error) { - out := new(DestroySnapshotsRes) - err := c.cc.Invoke(ctx, "/Replication/DestroySnapshots", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *replicationClient) ReplicationCursor(ctx context.Context, in *ReplicationCursorReq, opts ...grpc.CallOption) (*ReplicationCursorRes, error) { - out := new(ReplicationCursorRes) - err := c.cc.Invoke(ctx, "/Replication/ReplicationCursor", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *replicationClient) SendCompleted(ctx context.Context, in *SendCompletedReq, opts ...grpc.CallOption) (*SendCompletedRes, error) { - out := new(SendCompletedRes) - err := c.cc.Invoke(ctx, "/Replication/SendCompleted", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ReplicationServer is the server API for Replication service. -type ReplicationServer interface { - Ping(context.Context, *PingReq) (*PingRes, error) - ListFilesystems(context.Context, *ListFilesystemReq) (*ListFilesystemRes, error) - ListFilesystemVersions(context.Context, *ListFilesystemVersionsReq) (*ListFilesystemVersionsRes, error) - DestroySnapshots(context.Context, *DestroySnapshotsReq) (*DestroySnapshotsRes, error) - ReplicationCursor(context.Context, *ReplicationCursorReq) (*ReplicationCursorRes, error) - SendCompleted(context.Context, *SendCompletedReq) (*SendCompletedRes, error) -} - -func RegisterReplicationServer(s *grpc.Server, srv ReplicationServer) { - s.RegisterService(&_Replication_serviceDesc, srv) -} - -func _Replication_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PingReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ReplicationServer).Ping(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/Replication/Ping", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ReplicationServer).Ping(ctx, req.(*PingReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Replication_ListFilesystems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListFilesystemReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ReplicationServer).ListFilesystems(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/Replication/ListFilesystems", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ReplicationServer).ListFilesystems(ctx, req.(*ListFilesystemReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Replication_ListFilesystemVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListFilesystemVersionsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ReplicationServer).ListFilesystemVersions(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/Replication/ListFilesystemVersions", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ReplicationServer).ListFilesystemVersions(ctx, req.(*ListFilesystemVersionsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Replication_DestroySnapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DestroySnapshotsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ReplicationServer).DestroySnapshots(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/Replication/DestroySnapshots", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ReplicationServer).DestroySnapshots(ctx, req.(*DestroySnapshotsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Replication_ReplicationCursor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ReplicationCursorReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ReplicationServer).ReplicationCursor(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/Replication/ReplicationCursor", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ReplicationServer).ReplicationCursor(ctx, req.(*ReplicationCursorReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Replication_SendCompleted_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SendCompletedReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ReplicationServer).SendCompleted(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/Replication/SendCompleted", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ReplicationServer).SendCompleted(ctx, req.(*SendCompletedReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Replication_serviceDesc = grpc.ServiceDesc{ - ServiceName: "Replication", - HandlerType: (*ReplicationServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Ping", - Handler: _Replication_Ping_Handler, + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pdu_proto_rawDesc, + NumEnums: 3, + NumMessages: 22, + NumExtensions: 0, + NumServices: 1, }, - { - MethodName: "ListFilesystems", - Handler: _Replication_ListFilesystems_Handler, - }, - { - MethodName: "ListFilesystemVersions", - Handler: _Replication_ListFilesystemVersions_Handler, - }, - { - MethodName: "DestroySnapshots", - Handler: _Replication_DestroySnapshots_Handler, - }, - { - MethodName: "ReplicationCursor", - Handler: _Replication_ReplicationCursor_Handler, - }, - { - MethodName: "SendCompleted", - Handler: _Replication_SendCompleted_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "pdu.proto", -} - -func init() { proto.RegisterFile("pdu.proto", fileDescriptor_pdu_616c27178643eca4) } - -var fileDescriptor_pdu_616c27178643eca4 = []byte{ - // 995 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xcf, 0x6e, 0xdb, 0xc6, - 0x13, 0x36, 0x25, 0xda, 0xa2, 0x46, 0xce, 0x2f, 0xf4, 0xd8, 0x09, 0x68, 0xfd, 0xd2, 0xd4, 0xd8, - 0x14, 0x85, 0x63, 0xa0, 0x44, 0xe1, 0xb4, 0x05, 0x8a, 0x14, 0x41, 0xeb, 0xbf, 0x31, 0xd2, 0xba, - 0xea, 0x5a, 0x0d, 0x8a, 0xdc, 0x18, 0x69, 0x2a, 0x2f, 0x4c, 0x71, 0xe9, 0x5d, 0x2a, 0x88, 0x7a, - 0xec, 0xa1, 0x87, 0x5e, 0x7a, 0xea, 0xeb, 0xf4, 0x29, 0xfa, 0x20, 0x7d, 0x84, 0x82, 0x6b, 0x92, - 0xa2, 0x44, 0xca, 0x70, 0x4f, 0xda, 0xf9, 0xe6, 0xdb, 0xd9, 0xd9, 0xd1, 0x37, 0xb3, 0x84, 0x76, - 0x3c, 0x9c, 0xf8, 0xb1, 0x92, 0x89, 0x64, 0x9b, 0xb0, 0xf1, 0xad, 0xd0, 0xc9, 0x89, 0x08, 0x49, - 0x4f, 0x75, 0x42, 0x63, 0x4e, 0xd7, 0xec, 0xa0, 0x0a, 0x6a, 0xfc, 0x04, 0x3a, 0x33, 0x40, 0x7b, - 0xd6, 0x4e, 0x73, 0xb7, 0xb3, 0xdf, 0xf1, 0x4b, 0xa4, 0xb2, 0x9f, 0xfd, 0x6e, 0x01, 0xcc, 0x6c, - 0x44, 0xb0, 0x7b, 0x41, 0x72, 0xe9, 0x59, 0x3b, 0xd6, 0x6e, 0x9b, 0x9b, 0x35, 0xee, 0x40, 0x87, - 0x93, 0x9e, 0x8c, 0xa9, 0x2f, 0xaf, 0x28, 0xf2, 0x1a, 0xc6, 0x55, 0x86, 0xf0, 0x23, 0xb8, 0x77, - 0xa6, 0x7b, 0x61, 0x30, 0xa0, 0x4b, 0x19, 0x0e, 0x49, 0x79, 0xcd, 0x1d, 0x6b, 0xd7, 0xe1, 0xf3, - 0x60, 0x1a, 0xe7, 0x4c, 0x1f, 0x47, 0x03, 0x35, 0x8d, 0x13, 0x1a, 0x7a, 0xb6, 0xe1, 0x94, 0x21, - 0xf6, 0x1c, 0xb6, 0xe7, 0x2f, 0xf4, 0x9a, 0x94, 0x16, 0x32, 0xd2, 0x9c, 0xae, 0xf1, 0x71, 0x39, - 0xd1, 0x2c, 0xc1, 0x12, 0xc2, 0x5e, 0x2d, 0xdf, 0xac, 0xd1, 0x07, 0x27, 0x37, 0xb3, 0x92, 0xa0, - 0x5f, 0x61, 0xf2, 0x82, 0xc3, 0xfe, 0xb6, 0x60, 0xa3, 0xe2, 0xc7, 0x7d, 0xb0, 0xfb, 0xd3, 0x98, - 0xcc, 0xe1, 0xff, 0xdb, 0x7f, 0x5c, 0x8d, 0xe0, 0x67, 0xbf, 0x29, 0x8b, 0x1b, 0x6e, 0x5a, 0xd1, - 0xf3, 0x60, 0x4c, 0x59, 0xd9, 0xcc, 0x3a, 0xc5, 0x4e, 0x27, 0x62, 0x68, 0xca, 0x64, 0x73, 0xb3, - 0xc6, 0x47, 0xd0, 0x3e, 0x54, 0x14, 0x24, 0xd4, 0xff, 0xe9, 0xd4, 0xd4, 0xc6, 0xe6, 0x33, 0x00, - 0xbb, 0xe0, 0x18, 0x43, 0xc8, 0xc8, 0x5b, 0x35, 0x91, 0x0a, 0x9b, 0x3d, 0x85, 0x4e, 0xe9, 0x58, - 0x5c, 0x07, 0xe7, 0x22, 0x0a, 0x62, 0x7d, 0x29, 0x13, 0x77, 0x25, 0xb5, 0x0e, 0xa4, 0xbc, 0x1a, - 0x07, 0xea, 0xca, 0xb5, 0xd8, 0x9f, 0x0d, 0x68, 0x5d, 0x50, 0x34, 0xbc, 0x43, 0x3d, 0xf1, 0x63, - 0xb0, 0x4f, 0x94, 0x1c, 0x9b, 0xc4, 0xeb, 0xcb, 0x65, 0xfc, 0xc8, 0xa0, 0xd1, 0x97, 0xe6, 0x2a, - 0xf5, 0xac, 0x46, 0x5f, 0x2e, 0x4a, 0xc8, 0xae, 0x4a, 0x88, 0x41, 0x7b, 0x26, 0x8d, 0x55, 0x53, - 0x5f, 0xdb, 0xef, 0x2b, 0xc1, 0x67, 0x30, 0x3e, 0x84, 0xb5, 0x23, 0x35, 0xe5, 0x93, 0xc8, 0x5b, - 0x33, 0xda, 0xc9, 0x2c, 0xfc, 0x1a, 0x36, 0x38, 0xc5, 0xa1, 0x18, 0x98, 0x7a, 0x1c, 0xca, 0xe8, - 0x67, 0x31, 0xf2, 0x5a, 0x59, 0x42, 0x15, 0x0f, 0xaf, 0x92, 0xd9, 0x0f, 0x35, 0x11, 0xf0, 0x2b, - 0x80, 0xb4, 0xf9, 0x68, 0x60, 0xaa, 0x6e, 0x99, 0x78, 0x8f, 0xaa, 0xf1, 0x7a, 0x05, 0x87, 0x97, - 0xf8, 0xec, 0x0f, 0x0b, 0xfe, 0x7f, 0x0b, 0x17, 0x9f, 0x41, 0xeb, 0x2c, 0x12, 0x89, 0x08, 0xc2, - 0x4c, 0x4e, 0xdb, 0xe5, 0xd0, 0xa7, 0x93, 0x40, 0x05, 0x51, 0x42, 0xf4, 0x4a, 0x44, 0x43, 0x9e, - 0x33, 0xf1, 0x39, 0x74, 0xce, 0xa2, 0x81, 0xa2, 0x31, 0x45, 0x49, 0x10, 0x9a, 0xbf, 0xe6, 0xd6, - 0x8d, 0x65, 0x36, 0xfb, 0x0c, 0x9c, 0x9e, 0x92, 0x31, 0xa9, 0x64, 0x5a, 0xa8, 0xd2, 0x2a, 0xa9, - 0x72, 0x0b, 0x56, 0x5f, 0x07, 0xe1, 0x24, 0x97, 0xea, 0x8d, 0xc1, 0x7e, 0xb5, 0x72, 0xc9, 0x68, - 0xdc, 0x85, 0xfb, 0x3f, 0x6a, 0x1a, 0x2e, 0x4e, 0x03, 0x87, 0x2f, 0xc2, 0xc8, 0x60, 0xfd, 0xf8, - 0x7d, 0x4c, 0x83, 0x84, 0x86, 0x17, 0xe2, 0x17, 0x32, 0xf2, 0x68, 0xf2, 0x39, 0x0c, 0x9f, 0x02, - 0x64, 0xf9, 0x08, 0xd2, 0x9e, 0x6d, 0xba, 0xb2, 0xed, 0xe7, 0x29, 0xf2, 0x92, 0x93, 0xbd, 0x00, - 0x37, 0xcd, 0xe1, 0x50, 0x8e, 0xe3, 0x90, 0x12, 0x32, 0xfa, 0xdd, 0x83, 0xce, 0xf7, 0x4a, 0x8c, - 0x44, 0x14, 0x84, 0x9c, 0xae, 0x33, 0x99, 0x3a, 0x7e, 0x26, 0x6f, 0x5e, 0x76, 0x32, 0xac, 0xec, - 0xd7, 0xec, 0x2f, 0x0b, 0x80, 0xd3, 0x80, 0xc4, 0x3b, 0xba, 0x4b, 0x3b, 0xdc, 0xc8, 0xbc, 0x71, - 0xab, 0xcc, 0xf7, 0xc0, 0x3d, 0x0c, 0x29, 0x50, 0xe5, 0x02, 0xdd, 0x8c, 0xc2, 0x0a, 0x5e, 0x2f, - 0x5a, 0xfb, 0xbf, 0x88, 0x76, 0xbd, 0x94, 0xbf, 0x66, 0x23, 0xd8, 0x3c, 0x22, 0x9d, 0x28, 0x39, - 0xcd, 0xbb, 0xff, 0x2e, 0x53, 0x13, 0x3f, 0x85, 0x76, 0xc1, 0xf7, 0x1a, 0x4b, 0x27, 0xe3, 0x8c, - 0xc4, 0xde, 0x00, 0x2e, 0x1c, 0x94, 0x0d, 0xd8, 0xdc, 0xcc, 0x5a, 0xa5, 0x76, 0xc0, 0xe6, 0x9c, - 0x54, 0x6c, 0xc7, 0x4a, 0x49, 0x95, 0x8b, 0xcd, 0x18, 0xec, 0xa8, 0xee, 0x12, 0xe9, 0x9b, 0xd6, - 0x4a, 0x4b, 0x17, 0x26, 0xf9, 0xf0, 0xde, 0xf4, 0xab, 0x29, 0xf0, 0x9c, 0xc3, 0xbe, 0x80, 0xad, - 0x72, 0xb5, 0x26, 0x4a, 0x4b, 0x75, 0x97, 0x17, 0xa4, 0x5f, 0xbb, 0x4f, 0xe3, 0x56, 0x36, 0xae, - 0xd3, 0x1d, 0xf6, 0xcb, 0x95, 0x62, 0x60, 0x3b, 0xe7, 0x32, 0xa1, 0xf7, 0x42, 0x27, 0x37, 0x5d, - 0xf0, 0x72, 0x85, 0x17, 0xc8, 0x81, 0x03, 0x6b, 0x37, 0xe9, 0xb0, 0x27, 0xd0, 0xea, 0x89, 0x68, - 0x94, 0x26, 0xe0, 0x41, 0xeb, 0x3b, 0xd2, 0x3a, 0x18, 0xe5, 0x8d, 0x97, 0x9b, 0xec, 0x83, 0x9c, - 0xa4, 0xd3, 0xd6, 0x3c, 0x1e, 0x5c, 0xca, 0xbc, 0x35, 0xd3, 0xf5, 0xde, 0x2e, 0x34, 0xfb, 0x4a, - 0xa4, 0xc3, 0xfc, 0x48, 0x46, 0xc9, 0x61, 0xa0, 0xc8, 0x5d, 0xc1, 0x36, 0xac, 0x9e, 0x04, 0xa1, - 0x26, 0xd7, 0x42, 0x07, 0xec, 0xbe, 0x9a, 0x90, 0xdb, 0xd8, 0xfb, 0xcd, 0x02, 0x6f, 0xd9, 0x38, - 0xc0, 0x2d, 0x70, 0x0b, 0xe0, 0x2c, 0x7a, 0x17, 0x84, 0x62, 0xe8, 0xae, 0xe0, 0x36, 0x3c, 0x28, - 0x50, 0xa3, 0xd0, 0xe0, 0xad, 0x08, 0x45, 0x32, 0x75, 0x2d, 0x7c, 0x02, 0x1f, 0x96, 0x36, 0x14, - 0xa3, 0xa4, 0x74, 0x80, 0xdb, 0x98, 0x8b, 0x7a, 0x2e, 0x93, 0x4b, 0x11, 0x8d, 0xdc, 0xe6, 0xfe, - 0x3f, 0x8d, 0x74, 0xe6, 0x17, 0x3c, 0xec, 0x82, 0x9d, 0xde, 0x10, 0x1d, 0x3f, 0xab, 0x46, 0x37, - 0x5f, 0x69, 0xfc, 0x12, 0xee, 0xcf, 0x3f, 0xdd, 0x1a, 0xd1, 0xaf, 0x7c, 0xef, 0x74, 0xab, 0x98, - 0xc6, 0x1e, 0x3c, 0xac, 0x7f, 0xf5, 0xb1, 0xeb, 0x2f, 0xfd, 0x96, 0xe8, 0x2e, 0xf7, 0x69, 0x7c, - 0x01, 0xee, 0xa2, 0x06, 0x71, 0xcb, 0xaf, 0xe9, 0xad, 0x6e, 0x1d, 0xaa, 0xf1, 0x9b, 0xf9, 0xc6, - 0x36, 0x2a, 0xc2, 0x07, 0x7e, 0x9d, 0x22, 0xbb, 0xb5, 0xb0, 0xc6, 0xcf, 0xe1, 0xde, 0xdc, 0xb8, - 0xc2, 0x0d, 0x7f, 0x71, 0xfc, 0x75, 0x2b, 0x90, 0x3e, 0x58, 0x7d, 0xd3, 0x8c, 0x87, 0x93, 0xb7, - 0x6b, 0xe6, 0x93, 0xf1, 0xd9, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7e, 0xa4, 0xfb, 0xca, 0x3f, - 0x0a, 0x00, 0x00, + GoTypes: file_pdu_proto_goTypes, + DependencyIndexes: file_pdu_proto_depIdxs, + EnumInfos: file_pdu_proto_enumTypes, + MessageInfos: file_pdu_proto_msgTypes, + }.Build() + File_pdu_proto = out.File + file_pdu_proto_rawDesc = nil + file_pdu_proto_goTypes = nil + file_pdu_proto_depIdxs = nil } diff --git a/replication/logic/pdu/pdu.proto b/replication/logic/pdu/pdu.proto index b1733ed..b420524 100644 --- a/replication/logic/pdu/pdu.proto +++ b/replication/logic/pdu/pdu.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "pdu"; +option go_package = ".;pdu"; service Replication { rpc Ping(PingReq) returns (PingRes); diff --git a/replication/logic/pdu/pdu_grpc.pb.go b/replication/logic/pdu/pdu_grpc.pb.go new file mode 100644 index 0000000..848c92f --- /dev/null +++ b/replication/logic/pdu/pdu_grpc.pb.go @@ -0,0 +1,281 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package pdu + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// ReplicationClient is the client API for Replication service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ReplicationClient interface { + Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingRes, error) + ListFilesystems(ctx context.Context, in *ListFilesystemReq, opts ...grpc.CallOption) (*ListFilesystemRes, error) + ListFilesystemVersions(ctx context.Context, in *ListFilesystemVersionsReq, opts ...grpc.CallOption) (*ListFilesystemVersionsRes, error) + DestroySnapshots(ctx context.Context, in *DestroySnapshotsReq, opts ...grpc.CallOption) (*DestroySnapshotsRes, error) + ReplicationCursor(ctx context.Context, in *ReplicationCursorReq, opts ...grpc.CallOption) (*ReplicationCursorRes, error) + SendCompleted(ctx context.Context, in *SendCompletedReq, opts ...grpc.CallOption) (*SendCompletedRes, error) +} + +type replicationClient struct { + cc grpc.ClientConnInterface +} + +func NewReplicationClient(cc grpc.ClientConnInterface) ReplicationClient { + return &replicationClient{cc} +} + +func (c *replicationClient) Ping(ctx context.Context, in *PingReq, opts ...grpc.CallOption) (*PingRes, error) { + out := new(PingRes) + err := c.cc.Invoke(ctx, "/Replication/Ping", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *replicationClient) ListFilesystems(ctx context.Context, in *ListFilesystemReq, opts ...grpc.CallOption) (*ListFilesystemRes, error) { + out := new(ListFilesystemRes) + err := c.cc.Invoke(ctx, "/Replication/ListFilesystems", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *replicationClient) ListFilesystemVersions(ctx context.Context, in *ListFilesystemVersionsReq, opts ...grpc.CallOption) (*ListFilesystemVersionsRes, error) { + out := new(ListFilesystemVersionsRes) + err := c.cc.Invoke(ctx, "/Replication/ListFilesystemVersions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *replicationClient) DestroySnapshots(ctx context.Context, in *DestroySnapshotsReq, opts ...grpc.CallOption) (*DestroySnapshotsRes, error) { + out := new(DestroySnapshotsRes) + err := c.cc.Invoke(ctx, "/Replication/DestroySnapshots", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *replicationClient) ReplicationCursor(ctx context.Context, in *ReplicationCursorReq, opts ...grpc.CallOption) (*ReplicationCursorRes, error) { + out := new(ReplicationCursorRes) + err := c.cc.Invoke(ctx, "/Replication/ReplicationCursor", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *replicationClient) SendCompleted(ctx context.Context, in *SendCompletedReq, opts ...grpc.CallOption) (*SendCompletedRes, error) { + out := new(SendCompletedRes) + err := c.cc.Invoke(ctx, "/Replication/SendCompleted", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ReplicationServer is the server API for Replication service. +// All implementations must embed UnimplementedReplicationServer +// for forward compatibility +type ReplicationServer interface { + Ping(context.Context, *PingReq) (*PingRes, error) + ListFilesystems(context.Context, *ListFilesystemReq) (*ListFilesystemRes, error) + ListFilesystemVersions(context.Context, *ListFilesystemVersionsReq) (*ListFilesystemVersionsRes, error) + DestroySnapshots(context.Context, *DestroySnapshotsReq) (*DestroySnapshotsRes, error) + ReplicationCursor(context.Context, *ReplicationCursorReq) (*ReplicationCursorRes, error) + SendCompleted(context.Context, *SendCompletedReq) (*SendCompletedRes, error) + mustEmbedUnimplementedReplicationServer() +} + +// UnimplementedReplicationServer must be embedded to have forward compatible implementations. +type UnimplementedReplicationServer struct { +} + +func (UnimplementedReplicationServer) Ping(context.Context, *PingReq) (*PingRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") +} +func (UnimplementedReplicationServer) ListFilesystems(context.Context, *ListFilesystemReq) (*ListFilesystemRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFilesystems not implemented") +} +func (UnimplementedReplicationServer) ListFilesystemVersions(context.Context, *ListFilesystemVersionsReq) (*ListFilesystemVersionsRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFilesystemVersions not implemented") +} +func (UnimplementedReplicationServer) DestroySnapshots(context.Context, *DestroySnapshotsReq) (*DestroySnapshotsRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method DestroySnapshots not implemented") +} +func (UnimplementedReplicationServer) ReplicationCursor(context.Context, *ReplicationCursorReq) (*ReplicationCursorRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReplicationCursor not implemented") +} +func (UnimplementedReplicationServer) SendCompleted(context.Context, *SendCompletedReq) (*SendCompletedRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendCompleted not implemented") +} +func (UnimplementedReplicationServer) mustEmbedUnimplementedReplicationServer() {} + +// UnsafeReplicationServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ReplicationServer will +// result in compilation errors. +type UnsafeReplicationServer interface { + mustEmbedUnimplementedReplicationServer() +} + +func RegisterReplicationServer(s grpc.ServiceRegistrar, srv ReplicationServer) { + s.RegisterService(&Replication_ServiceDesc, srv) +} + +func _Replication_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PingReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ReplicationServer).Ping(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/Replication/Ping", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ReplicationServer).Ping(ctx, req.(*PingReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Replication_ListFilesystems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFilesystemReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ReplicationServer).ListFilesystems(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/Replication/ListFilesystems", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ReplicationServer).ListFilesystems(ctx, req.(*ListFilesystemReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Replication_ListFilesystemVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFilesystemVersionsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ReplicationServer).ListFilesystemVersions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/Replication/ListFilesystemVersions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ReplicationServer).ListFilesystemVersions(ctx, req.(*ListFilesystemVersionsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Replication_DestroySnapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DestroySnapshotsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ReplicationServer).DestroySnapshots(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/Replication/DestroySnapshots", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ReplicationServer).DestroySnapshots(ctx, req.(*DestroySnapshotsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Replication_ReplicationCursor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReplicationCursorReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ReplicationServer).ReplicationCursor(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/Replication/ReplicationCursor", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ReplicationServer).ReplicationCursor(ctx, req.(*ReplicationCursorReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Replication_SendCompleted_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendCompletedReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ReplicationServer).SendCompleted(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/Replication/SendCompleted", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ReplicationServer).SendCompleted(ctx, req.(*SendCompletedReq)) + } + return interceptor(ctx, in, info, handler) +} + +// Replication_ServiceDesc is the grpc.ServiceDesc for Replication service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Replication_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "Replication", + HandlerType: (*ReplicationServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Ping", + Handler: _Replication_Ping_Handler, + }, + { + MethodName: "ListFilesystems", + Handler: _Replication_ListFilesystems_Handler, + }, + { + MethodName: "ListFilesystemVersions", + Handler: _Replication_ListFilesystemVersions_Handler, + }, + { + MethodName: "DestroySnapshots", + Handler: _Replication_DestroySnapshots_Handler, + }, + { + MethodName: "ReplicationCursor", + Handler: _Replication_ReplicationCursor_Handler, + }, + { + MethodName: "SendCompleted", + Handler: _Replication_SendCompleted_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "pdu.proto", +} diff --git a/replication/logic/pdu/pdu_test.go b/replication/logic/pdu/pdu_test.go index 5abafad..892325b 100644 --- a/replication/logic/pdu/pdu_test.go +++ b/replication/logic/pdu/pdu_test.go @@ -10,7 +10,7 @@ import ( func TestFilesystemVersion_RelName(t *testing.T) { type TestCase struct { - In FilesystemVersion + In *FilesystemVersion Out string Panic bool } @@ -18,7 +18,7 @@ func TestFilesystemVersion_RelName(t *testing.T) { creat := FilesystemVersionCreation(time.Now()) tcs := []TestCase{ { - In: FilesystemVersion{ + In: &FilesystemVersion{ Type: FilesystemVersion_Snapshot, Name: "foobar", Creation: creat, @@ -26,7 +26,7 @@ func TestFilesystemVersion_RelName(t *testing.T) { Out: "@foobar", }, { - In: FilesystemVersion{ + In: &FilesystemVersion{ Type: FilesystemVersion_Bookmark, Name: "foobar", Creation: creat, @@ -34,7 +34,7 @@ func TestFilesystemVersion_RelName(t *testing.T) { Out: "#foobar", }, { - In: FilesystemVersion{ + In: &FilesystemVersion{ Type: 2342, Name: "foobar", Creation: creat, diff --git a/replication/logic/replication_logic.go b/replication/logic/replication_logic.go index 3e26b1a..d026af7 100644 --- a/replication/logic/replication_logic.go +++ b/replication/logic/replication_logic.go @@ -117,7 +117,7 @@ func (p *Planner) WaitForConnectivity(ctx context.Context) error { type Filesystem struct { sender Sender receiver Receiver - policy PlannerPolicy + policy PlannerPolicy // immutable, it's .ReplicationConfig member is a pointer and copied into messages Path string // compat receiverFS, senderFS *pdu.Filesystem // receiverFS may be nil, senderFS never nil @@ -569,7 +569,7 @@ func (s *Step) buildSendRequest(dryRun bool) (sr *pdu.SendReq) { Encrypted: s.encrypt.ToPDU(), ResumeToken: s.resumeToken, DryRun: dryRun, - ReplicationConfig: &s.parent.policy.ReplicationConfig, + ReplicationConfig: s.parent.policy.ReplicationConfig, } return sr } @@ -614,7 +614,7 @@ func (s *Step) doReplication(ctx context.Context) error { Filesystem: fs, To: sr.GetTo(), ClearResumeToken: !sres.UsedResumeToken, - ReplicationConfig: &s.parent.policy.ReplicationConfig, + ReplicationConfig: s.parent.policy.ReplicationConfig, } log.Debug("initiate receive request") _, err = s.receiver.Receive(ctx, rr, byteCountingStream) diff --git a/replication/logic/replication_logic_policy.go b/replication/logic/replication_logic_policy.go index 1c897a9..30eb078 100644 --- a/replication/logic/replication_logic_policy.go +++ b/replication/logic/replication_logic_policy.go @@ -9,7 +9,7 @@ import ( type PlannerPolicy struct { EncryptedSend tri // all sends must be encrypted (send -w, and encryption!=off) - ReplicationConfig pdu.ReplicationConfig + ReplicationConfig *pdu.ReplicationConfig } func ReplicationConfigFromConfig(in *config.Replication) (*pdu.ReplicationConfig, error) { diff --git a/rpc/dataconn/dataconn_client.go b/rpc/dataconn/dataconn_client.go index 6751af2..f590e92 100644 --- a/rpc/dataconn/dataconn_client.go +++ b/rpc/dataconn/dataconn_client.go @@ -7,7 +7,7 @@ import ( "io" "strings" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "github.com/zrepl/zrepl/replication/logic/pdu" "github.com/zrepl/zrepl/rpc/dataconn/stream" diff --git a/rpc/dataconn/dataconn_server.go b/rpc/dataconn/dataconn_server.go index 344c480..18ab795 100644 --- a/rpc/dataconn/dataconn_server.go +++ b/rpc/dataconn/dataconn_server.go @@ -7,7 +7,7 @@ import ( "io" "sync" - "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/proto" "github.com/zrepl/zrepl/logger" "github.com/zrepl/zrepl/replication/logic/pdu" diff --git a/rpc/grpcclientidentity/authlistener_grpc_adaptor.go b/rpc/grpcclientidentity/authlistener_grpc_adaptor.go index 83b8eb8..8cdf285 100644 --- a/rpc/grpcclientidentity/authlistener_grpc_adaptor.go +++ b/rpc/grpcclientidentity/authlistener_grpc_adaptor.go @@ -16,7 +16,6 @@ import ( "context" "fmt" "net" - "time" "google.golang.org/grpc" "google.golang.org/grpc/credentials" @@ -28,12 +27,10 @@ import ( type Logger = logger.Logger -type GRPCDialFunction = func(string, time.Duration) (net.Conn, error) +type GRPCDialFunction = func(context.Context, string) (net.Conn, error) func NewDialer(logger Logger, connecter transport.Connecter) GRPCDialFunction { - return func(s string, duration time.Duration) (conn net.Conn, e error) { - ctx, cancel := context.WithTimeout(context.Background(), duration) - defer cancel() + return func(ctx context.Context, s string) (conn net.Conn, e error) { nc, err := connecter.Connect(ctx) // TODO find better place (callback from gRPC?) where to log errors // we want the users to know, though diff --git a/rpc/grpcclientidentity/example/grpcauth.proto b/rpc/grpcclientidentity/example/grpcauth.proto index 5adf606..23449d7 100644 --- a/rpc/grpcclientidentity/example/grpcauth.proto +++ b/rpc/grpcclientidentity/example/grpcauth.proto @@ -1,8 +1,8 @@ syntax = "proto3"; +option go_package = ".;pdu"; package pdu; - service Greeter { rpc Greet(GreetRequest) returns (GreetResponse) {} } @@ -13,4 +13,4 @@ message GreetRequest { message GreetResponse { string msg = 1; -} \ No newline at end of file +} diff --git a/rpc/grpcclientidentity/example/main.go b/rpc/grpcclientidentity/example/main.go index 81e7f61..911b0c0 100644 --- a/rpc/grpcclientidentity/example/main.go +++ b/rpc/grpcclientidentity/example/main.go @@ -94,7 +94,7 @@ func server() { srv, serve := grpchelper.NewServer(authListener, clientIdentityKey, log, nil) - svc := &greeter{"hello "} + svc := &greeter{prepend: "hello "} pdu.RegisterGreeterServer(srv, svc) if err := serve(); err != nil { @@ -103,6 +103,7 @@ func server() { } type greeter struct { + pdu.UnsafeGreeterServer prepend string } diff --git a/rpc/grpcclientidentity/example/pdu/grpcauth.pb.go b/rpc/grpcclientidentity/example/pdu/grpcauth.pb.go index 0fbf2cb..bbf5f63 100644 --- a/rpc/grpcclientidentity/example/pdu/grpcauth.pb.go +++ b/rpc/grpcclientidentity/example/pdu/grpcauth.pb.go @@ -1,193 +1,214 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.25.0 +// protoc v3.12.4 // source: grpcauth.proto package pdu import ( - fmt "fmt" proto "github.com/golang/protobuf/proto" - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +// This is a compile-time assertion that a sufficiently up-to-date version +// of the legacy proto package is being used. +const _ = proto.ProtoPackageIsVersion4 type GreetRequest struct { - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } -func (m *GreetRequest) Reset() { *m = GreetRequest{} } -func (m *GreetRequest) String() string { return proto.CompactTextString(m) } -func (*GreetRequest) ProtoMessage() {} +func (x *GreetRequest) Reset() { + *x = GreetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_grpcauth_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GreetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GreetRequest) ProtoMessage() {} + +func (x *GreetRequest) ProtoReflect() protoreflect.Message { + mi := &file_grpcauth_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GreetRequest.ProtoReflect.Descriptor instead. func (*GreetRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1dfba7be0cf69353, []int{0} + return file_grpcauth_proto_rawDescGZIP(), []int{0} } -func (m *GreetRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GreetRequest.Unmarshal(m, b) -} -func (m *GreetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GreetRequest.Marshal(b, m, deterministic) -} -func (m *GreetRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GreetRequest.Merge(m, src) -} -func (m *GreetRequest) XXX_Size() int { - return xxx_messageInfo_GreetRequest.Size(m) -} -func (m *GreetRequest) XXX_DiscardUnknown() { - xxx_messageInfo_GreetRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_GreetRequest proto.InternalMessageInfo - -func (m *GreetRequest) GetName() string { - if m != nil { - return m.Name +func (x *GreetRequest) GetName() string { + if x != nil { + return x.Name } return "" } type GreetResponse struct { - Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` } -func (m *GreetResponse) Reset() { *m = GreetResponse{} } -func (m *GreetResponse) String() string { return proto.CompactTextString(m) } -func (*GreetResponse) ProtoMessage() {} +func (x *GreetResponse) Reset() { + *x = GreetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_grpcauth_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GreetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GreetResponse) ProtoMessage() {} + +func (x *GreetResponse) ProtoReflect() protoreflect.Message { + mi := &file_grpcauth_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GreetResponse.ProtoReflect.Descriptor instead. func (*GreetResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_1dfba7be0cf69353, []int{1} + return file_grpcauth_proto_rawDescGZIP(), []int{1} } -func (m *GreetResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GreetResponse.Unmarshal(m, b) -} -func (m *GreetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GreetResponse.Marshal(b, m, deterministic) -} -func (m *GreetResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_GreetResponse.Merge(m, src) -} -func (m *GreetResponse) XXX_Size() int { - return xxx_messageInfo_GreetResponse.Size(m) -} -func (m *GreetResponse) XXX_DiscardUnknown() { - xxx_messageInfo_GreetResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_GreetResponse proto.InternalMessageInfo - -func (m *GreetResponse) GetMsg() string { - if m != nil { - return m.Msg +func (x *GreetResponse) GetMsg() string { + if x != nil { + return x.Msg } return "" } -func init() { - proto.RegisterType((*GreetRequest)(nil), "pdu.GreetRequest") - proto.RegisterType((*GreetResponse)(nil), "pdu.GreetResponse") +var File_grpcauth_proto protoreflect.FileDescriptor + +var file_grpcauth_proto_rawDesc = []byte{ + 0x0a, 0x0e, 0x67, 0x72, 0x70, 0x63, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x03, 0x70, 0x64, 0x75, 0x22, 0x22, 0x0a, 0x0c, 0x47, 0x72, 0x65, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x21, 0x0a, 0x0d, 0x47, 0x72, 0x65, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x32, 0x3b, 0x0a, 0x07, + 0x47, 0x72, 0x65, 0x65, 0x74, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x05, 0x47, 0x72, 0x65, 0x65, 0x74, + 0x12, 0x11, 0x2e, 0x70, 0x64, 0x75, 0x2e, 0x47, 0x72, 0x65, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x64, 0x75, 0x2e, 0x47, 0x72, 0x65, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x3b, 0x70, + 0x64, 0x75, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -func init() { proto.RegisterFile("grpcauth.proto", fileDescriptor_1dfba7be0cf69353) } +var ( + file_grpcauth_proto_rawDescOnce sync.Once + file_grpcauth_proto_rawDescData = file_grpcauth_proto_rawDesc +) -var fileDescriptor_1dfba7be0cf69353 = []byte{ - // 137 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4b, 0x2f, 0x2a, 0x48, - 0x4e, 0x2c, 0x2d, 0xc9, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x2e, 0x48, 0x29, 0x55, - 0x52, 0xe2, 0xe2, 0x71, 0x2f, 0x4a, 0x4d, 0x2d, 0x09, 0x4a, 0x2d, 0x2c, 0x4d, 0x2d, 0x2e, 0x11, - 0x12, 0xe2, 0x62, 0xc9, 0x4b, 0xcc, 0x4d, 0x95, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0x02, 0xb3, - 0x95, 0x14, 0xb9, 0x78, 0xa1, 0x6a, 0x8a, 0x0b, 0xf2, 0xf3, 0x8a, 0x53, 0x85, 0x04, 0xb8, 0x98, - 0x73, 0x8b, 0xd3, 0xa1, 0x6a, 0x40, 0x4c, 0x23, 0x6b, 0x2e, 0x76, 0xb0, 0x92, 0xd4, 0x22, 0x21, - 0x03, 0x2e, 0x56, 0x30, 0x53, 0x48, 0x50, 0xaf, 0x20, 0xa5, 0x54, 0x0f, 0xd9, 0x74, 0x29, 0x21, - 0x64, 0x21, 0x88, 0x61, 0x4a, 0x0c, 0x49, 0x6c, 0x60, 0xf7, 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, - 0xff, 0xa8, 0x53, 0x2f, 0x4c, 0xa1, 0x00, 0x00, 0x00, +func file_grpcauth_proto_rawDescGZIP() []byte { + file_grpcauth_proto_rawDescOnce.Do(func() { + file_grpcauth_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpcauth_proto_rawDescData) + }) + return file_grpcauth_proto_rawDescData } -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// GreeterClient is the client API for Greeter service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type GreeterClient interface { - Greet(ctx context.Context, in *GreetRequest, opts ...grpc.CallOption) (*GreetResponse, error) +var file_grpcauth_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_grpcauth_proto_goTypes = []interface{}{ + (*GreetRequest)(nil), // 0: pdu.GreetRequest + (*GreetResponse)(nil), // 1: pdu.GreetResponse +} +var file_grpcauth_proto_depIdxs = []int32{ + 0, // 0: pdu.Greeter.Greet:input_type -> pdu.GreetRequest + 1, // 1: pdu.Greeter.Greet:output_type -> pdu.GreetResponse + 1, // [1:2] is the sub-list for method output_type + 0, // [0:1] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name } -type greeterClient struct { - cc *grpc.ClientConn -} - -func NewGreeterClient(cc *grpc.ClientConn) GreeterClient { - return &greeterClient{cc} -} - -func (c *greeterClient) Greet(ctx context.Context, in *GreetRequest, opts ...grpc.CallOption) (*GreetResponse, error) { - out := new(GreetResponse) - err := c.cc.Invoke(ctx, "/pdu.Greeter/Greet", in, out, opts...) - if err != nil { - return nil, err +func init() { file_grpcauth_proto_init() } +func file_grpcauth_proto_init() { + if File_grpcauth_proto != nil { + return } - return out, nil -} - -// GreeterServer is the server API for Greeter service. -type GreeterServer interface { - Greet(context.Context, *GreetRequest) (*GreetResponse, error) -} - -func RegisterGreeterServer(s *grpc.Server, srv GreeterServer) { - s.RegisterService(&_Greeter_serviceDesc, srv) -} - -func _Greeter_Greet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GreetRequest) - if err := dec(in); err != nil { - return nil, err + if !protoimpl.UnsafeEnabled { + file_grpcauth_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GreetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpcauth_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GreetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - if interceptor == nil { - return srv.(GreeterServer).Greet(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pdu.Greeter/Greet", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GreeterServer).Greet(ctx, req.(*GreetRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _Greeter_serviceDesc = grpc.ServiceDesc{ - ServiceName: "pdu.Greeter", - HandlerType: (*GreeterServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Greet", - Handler: _Greeter_Greet_Handler, + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_grpcauth_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 1, }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "grpcauth.proto", + GoTypes: file_grpcauth_proto_goTypes, + DependencyIndexes: file_grpcauth_proto_depIdxs, + MessageInfos: file_grpcauth_proto_msgTypes, + }.Build() + File_grpcauth_proto = out.File + file_grpcauth_proto_rawDesc = nil + file_grpcauth_proto_goTypes = nil + file_grpcauth_proto_depIdxs = nil } diff --git a/rpc/grpcclientidentity/example/pdu/grpcauth_grpc.pb.go b/rpc/grpcclientidentity/example/pdu/grpcauth_grpc.pb.go new file mode 100644 index 0000000..6ce1b64 --- /dev/null +++ b/rpc/grpcclientidentity/example/pdu/grpcauth_grpc.pb.go @@ -0,0 +1,101 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package pdu + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// GreeterClient is the client API for Greeter service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type GreeterClient interface { + Greet(ctx context.Context, in *GreetRequest, opts ...grpc.CallOption) (*GreetResponse, error) +} + +type greeterClient struct { + cc grpc.ClientConnInterface +} + +func NewGreeterClient(cc grpc.ClientConnInterface) GreeterClient { + return &greeterClient{cc} +} + +func (c *greeterClient) Greet(ctx context.Context, in *GreetRequest, opts ...grpc.CallOption) (*GreetResponse, error) { + out := new(GreetResponse) + err := c.cc.Invoke(ctx, "/pdu.Greeter/Greet", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// GreeterServer is the server API for Greeter service. +// All implementations must embed UnimplementedGreeterServer +// for forward compatibility +type GreeterServer interface { + Greet(context.Context, *GreetRequest) (*GreetResponse, error) + mustEmbedUnimplementedGreeterServer() +} + +// UnimplementedGreeterServer must be embedded to have forward compatible implementations. +type UnimplementedGreeterServer struct { +} + +func (UnimplementedGreeterServer) Greet(context.Context, *GreetRequest) (*GreetResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Greet not implemented") +} +func (UnimplementedGreeterServer) mustEmbedUnimplementedGreeterServer() {} + +// UnsafeGreeterServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to GreeterServer will +// result in compilation errors. +type UnsafeGreeterServer interface { + mustEmbedUnimplementedGreeterServer() +} + +func RegisterGreeterServer(s grpc.ServiceRegistrar, srv GreeterServer) { + s.RegisterService(&Greeter_ServiceDesc, srv) +} + +func _Greeter_Greet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GreetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GreeterServer).Greet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pdu.Greeter/Greet", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GreeterServer).Greet(ctx, req.(*GreetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Greeter_ServiceDesc is the grpc.ServiceDesc for Greeter service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Greeter_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "pdu.Greeter", + HandlerType: (*GreeterServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Greet", + Handler: _Greeter_Greet_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "grpcauth.proto", +} diff --git a/rpc/grpcclientidentity/grpchelper/authlistener_grpc_adaptor_wrapper.go b/rpc/grpcclientidentity/grpchelper/authlistener_grpc_adaptor_wrapper.go index 707a716..91358d5 100644 --- a/rpc/grpcclientidentity/grpchelper/authlistener_grpc_adaptor_wrapper.go +++ b/rpc/grpcclientidentity/grpchelper/authlistener_grpc_adaptor_wrapper.go @@ -34,8 +34,10 @@ func ClientConn(cn transport.Connecter, log Logger) *grpc.ClientConn { Timeout: KeepalivePeerTimeout, PermitWithoutStream: true, }) - dialerOption := grpc.WithDialer(grpcclientidentity.NewDialer(log, cn)) + dialerOption := grpc.WithContextDialer(grpcclientidentity.NewDialer(log, cn)) cred := grpc.WithTransportCredentials(grpcclientidentity.NewTransportCredentials(log)) + // we use context.Background without a timeout here because we don't set grpc.WithBlock + // => docs: "In the non-blocking case, the ctx does not act against the connection. It only controls the setup steps." cc, err := grpc.DialContext(context.Background(), "doesn't matter done by dialer", dialerOption, cred, ka) if err != nil { log.WithError(err).Error("cannot create gRPC client conn (non-blocking)") diff --git a/rpc/rpc_client.go b/rpc/rpc_client.go index 27fecc4..841a6dd 100644 --- a/rpc/rpc_client.go +++ b/rpc/rpc_client.go @@ -172,14 +172,14 @@ func (c *Client) WaitForConnectivity(ctx context.Context) error { } go func() { defer wg.Done() - ctrl, ctrlErr := c.controlClient.Ping(ctx, &req, grpc.FailFast(false)) + ctrl, ctrlErr := c.controlClient.Ping(ctx, &req, grpc.WaitForReady(true)) checkRes(ctrl, ctrlErr, loggers.Control, &ctrlOk) }() go func() { defer wg.Done() for ctx.Err() == nil { data, dataErr := c.dataClient.ReqPing(ctx, &req) - // dataClient uses transport.Connecter, which doesn't expose FailFast(false) + // dataClient uses transport.Connecter, which doesn't expose WaitForReady(true) // => we need to mask dial timeouts if err, ok := dataErr.(interface{ Temporary() bool }); ok && err.Temporary() { // Rate-limit pings here in case Temporary() is a mis-classification