mirror of https://github.com/dragonflyoss/api.git
feat: add cache task proto (#323)
Signed-off-by: Gaius <gaius.qi@gmail.com>
This commit is contained in:
parent
d339260b79
commit
39fa1f1591
|
@ -160,7 +160,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dragonfly-api"
|
name = "dragonfly-api"
|
||||||
version = "2.0.115"
|
version = "2.0.116"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"prost 0.11.9",
|
"prost 0.11.9",
|
||||||
"prost-types 0.12.6",
|
"prost-types 0.12.6",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "dragonfly-api"
|
name = "dragonfly-api"
|
||||||
version = "2.0.115"
|
version = "2.0.116"
|
||||||
authors = ["Gaius <gaius.qi@gmail.com>"]
|
authors = ["Gaius <gaius.qi@gmail.com>"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -363,6 +363,242 @@ var _ interface {
|
||||||
ErrorName() string
|
ErrorName() string
|
||||||
} = PeerValidationError{}
|
} = PeerValidationError{}
|
||||||
|
|
||||||
|
// Validate checks the field values on CachePeer with the rules defined in the
|
||||||
|
// proto definition for this message. If any rules are violated, the first
|
||||||
|
// error encountered is returned, or nil if there are no violations.
|
||||||
|
func (m *CachePeer) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on CachePeer with the rules defined in
|
||||||
|
// the proto definition for this message. If any rules are violated, the
|
||||||
|
// result is a list of violation errors wrapped in CachePeerMultiError, or nil
|
||||||
|
// if none found.
|
||||||
|
func (m *CachePeer) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CachePeer) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetId()) < 1 {
|
||||||
|
err := CachePeerValidationError{
|
||||||
|
field: "Id",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// no validation rules for Persistent
|
||||||
|
|
||||||
|
if m.GetCost() == nil {
|
||||||
|
err := CachePeerValidationError{
|
||||||
|
field: "Cost",
|
||||||
|
reason: "value is required",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetState()) < 1 {
|
||||||
|
err := CachePeerValidationError{
|
||||||
|
field: "State",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetTask() == nil {
|
||||||
|
err := CachePeerValidationError{
|
||||||
|
field: "Task",
|
||||||
|
reason: "value is required",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if all {
|
||||||
|
switch v := interface{}(m.GetTask()).(type) {
|
||||||
|
case interface{ ValidateAll() error }:
|
||||||
|
if err := v.ValidateAll(); err != nil {
|
||||||
|
errors = append(errors, CachePeerValidationError{
|
||||||
|
field: "Task",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
case interface{ Validate() error }:
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
errors = append(errors, CachePeerValidationError{
|
||||||
|
field: "Task",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if v, ok := interface{}(m.GetTask()).(interface{ Validate() error }); ok {
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
return CachePeerValidationError{
|
||||||
|
field: "Task",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetHost() == nil {
|
||||||
|
err := CachePeerValidationError{
|
||||||
|
field: "Host",
|
||||||
|
reason: "value is required",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if all {
|
||||||
|
switch v := interface{}(m.GetHost()).(type) {
|
||||||
|
case interface{ ValidateAll() error }:
|
||||||
|
if err := v.ValidateAll(); err != nil {
|
||||||
|
errors = append(errors, CachePeerValidationError{
|
||||||
|
field: "Host",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
case interface{ Validate() error }:
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
errors = append(errors, CachePeerValidationError{
|
||||||
|
field: "Host",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if v, ok := interface{}(m.GetHost()).(interface{ Validate() error }); ok {
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
return CachePeerValidationError{
|
||||||
|
field: "Host",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetCreatedAt() == nil {
|
||||||
|
err := CachePeerValidationError{
|
||||||
|
field: "CreatedAt",
|
||||||
|
reason: "value is required",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetUpdatedAt() == nil {
|
||||||
|
err := CachePeerValidationError{
|
||||||
|
field: "UpdatedAt",
|
||||||
|
reason: "value is required",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return CachePeerMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// CachePeerMultiError is an error wrapping multiple validation errors returned
|
||||||
|
// by CachePeer.ValidateAll() if the designated constraints aren't met.
|
||||||
|
type CachePeerMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m CachePeerMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m CachePeerMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// CachePeerValidationError is the validation error returned by
|
||||||
|
// CachePeer.Validate if the designated constraints aren't met.
|
||||||
|
type CachePeerValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e CachePeerValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e CachePeerValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e CachePeerValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e CachePeerValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e CachePeerValidationError) ErrorName() string { return "CachePeerValidationError" }
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e CachePeerValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sCachePeer.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = CachePeerValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = CachePeerValidationError{}
|
||||||
|
|
||||||
// Validate checks the field values on Task with the rules defined in the proto
|
// Validate checks the field values on Task with the rules defined in the proto
|
||||||
// definition for this message. If any rules are violated, the first error
|
// definition for this message. If any rules are violated, the first error
|
||||||
// encountered is returned, or nil if there are no violations.
|
// encountered is returned, or nil if there are no violations.
|
||||||
|
@ -638,6 +874,207 @@ var _ interface {
|
||||||
|
|
||||||
var _Task_Digest_Pattern = regexp.MustCompile("^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$")
|
var _Task_Digest_Pattern = regexp.MustCompile("^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$")
|
||||||
|
|
||||||
|
// Validate checks the field values on CacheTask with the rules defined in the
|
||||||
|
// proto definition for this message. If any rules are violated, the first
|
||||||
|
// error encountered is returned, or nil if there are no violations.
|
||||||
|
func (m *CacheTask) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on CacheTask with the rules defined in
|
||||||
|
// the proto definition for this message. If any rules are violated, the
|
||||||
|
// result is a list of violation errors wrapped in CacheTaskMultiError, or nil
|
||||||
|
// if none found.
|
||||||
|
func (m *CacheTask) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CacheTask) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetId()) < 1 {
|
||||||
|
err := CacheTaskValidationError{
|
||||||
|
field: "Id",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetPersistentReplicaCount() < 1 {
|
||||||
|
err := CacheTaskValidationError{
|
||||||
|
field: "PersistentReplicaCount",
|
||||||
|
reason: "value must be greater than or equal to 1",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetReplicaCount() < 1 {
|
||||||
|
err := CacheTaskValidationError{
|
||||||
|
field: "ReplicaCount",
|
||||||
|
reason: "value must be greater than or equal to 1",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !_CacheTask_Digest_Pattern.MatchString(m.GetDigest()) {
|
||||||
|
err := CacheTaskValidationError{
|
||||||
|
field: "Digest",
|
||||||
|
reason: "value does not match regex pattern \"^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$\"",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetPieceLength() < 1 {
|
||||||
|
err := CacheTaskValidationError{
|
||||||
|
field: "PieceLength",
|
||||||
|
reason: "value must be greater than or equal to 1",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// no validation rules for ContentLength
|
||||||
|
|
||||||
|
// no validation rules for PieceCount
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetState()) < 1 {
|
||||||
|
err := CacheTaskValidationError{
|
||||||
|
field: "State",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetCreatedAt() == nil {
|
||||||
|
err := CacheTaskValidationError{
|
||||||
|
field: "CreatedAt",
|
||||||
|
reason: "value is required",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetUpdatedAt() == nil {
|
||||||
|
err := CacheTaskValidationError{
|
||||||
|
field: "UpdatedAt",
|
||||||
|
reason: "value is required",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Tag != nil {
|
||||||
|
// no validation rules for Tag
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Application != nil {
|
||||||
|
// no validation rules for Application
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return CacheTaskMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// CacheTaskMultiError is an error wrapping multiple validation errors returned
|
||||||
|
// by CacheTask.ValidateAll() if the designated constraints aren't met.
|
||||||
|
type CacheTaskMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m CacheTaskMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m CacheTaskMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// CacheTaskValidationError is the validation error returned by
|
||||||
|
// CacheTask.Validate if the designated constraints aren't met.
|
||||||
|
type CacheTaskValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e CacheTaskValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e CacheTaskValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e CacheTaskValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e CacheTaskValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e CacheTaskValidationError) ErrorName() string { return "CacheTaskValidationError" }
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e CacheTaskValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sCacheTask.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = CacheTaskValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = CacheTaskValidationError{}
|
||||||
|
|
||||||
|
var _CacheTask_Digest_Pattern = regexp.MustCompile("^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$")
|
||||||
|
|
||||||
// Validate checks the field values on Host with the rules defined in the proto
|
// Validate checks the field values on Host with the rules defined in the proto
|
||||||
// definition for this message. If any rules are violated, the first error
|
// definition for this message. If any rules are violated, the first error
|
||||||
// encountered is returned, or nil if there are no violations.
|
// encountered is returned, or nil if there are no violations.
|
||||||
|
@ -1831,22 +2268,22 @@ var _ interface {
|
||||||
ErrorName() string
|
ErrorName() string
|
||||||
} = BuildValidationError{}
|
} = BuildValidationError{}
|
||||||
|
|
||||||
// Validate checks the field values on Download with the rules defined in the
|
// Validate checks the field values on DownloadTask with the rules defined in
|
||||||
// proto definition for this message. If any rules are violated, the first
|
// the proto definition for this message. If any rules are violated, the first
|
||||||
// error encountered is returned, or nil if there are no violations.
|
// error encountered is returned, or nil if there are no violations.
|
||||||
func (m *Download) Validate() error {
|
func (m *DownloadTask) Validate() error {
|
||||||
return m.validate(false)
|
return m.validate(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ValidateAll checks the field values on Download with the rules defined in
|
// ValidateAll checks the field values on DownloadTask with the rules defined
|
||||||
// the proto definition for this message. If any rules are violated, the
|
// in the proto definition for this message. If any rules are violated, the
|
||||||
// result is a list of violation errors wrapped in DownloadMultiError, or nil
|
// result is a list of violation errors wrapped in DownloadTaskMultiError, or
|
||||||
// if none found.
|
// nil if none found.
|
||||||
func (m *Download) ValidateAll() error {
|
func (m *DownloadTask) ValidateAll() error {
|
||||||
return m.validate(true)
|
return m.validate(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Download) validate(all bool) error {
|
func (m *DownloadTask) validate(all bool) error {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -1854,7 +2291,7 @@ func (m *Download) validate(all bool) error {
|
||||||
var errors []error
|
var errors []error
|
||||||
|
|
||||||
if uri, err := url.Parse(m.GetUrl()); err != nil {
|
if uri, err := url.Parse(m.GetUrl()); err != nil {
|
||||||
err = DownloadValidationError{
|
err = DownloadTaskValidationError{
|
||||||
field: "Url",
|
field: "Url",
|
||||||
reason: "value must be a valid URI",
|
reason: "value must be a valid URI",
|
||||||
cause: err,
|
cause: err,
|
||||||
|
@ -1864,7 +2301,7 @@ func (m *Download) validate(all bool) error {
|
||||||
}
|
}
|
||||||
errors = append(errors, err)
|
errors = append(errors, err)
|
||||||
} else if !uri.IsAbs() {
|
} else if !uri.IsAbs() {
|
||||||
err := DownloadValidationError{
|
err := DownloadTaskValidationError{
|
||||||
field: "Url",
|
field: "Url",
|
||||||
reason: "value must be absolute",
|
reason: "value must be absolute",
|
||||||
}
|
}
|
||||||
|
@ -1875,7 +2312,7 @@ func (m *Download) validate(all bool) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := TaskType_name[int32(m.GetType())]; !ok {
|
if _, ok := TaskType_name[int32(m.GetType())]; !ok {
|
||||||
err := DownloadValidationError{
|
err := DownloadTaskValidationError{
|
||||||
field: "Type",
|
field: "Type",
|
||||||
reason: "value must be one of the defined enum values",
|
reason: "value must be one of the defined enum values",
|
||||||
}
|
}
|
||||||
|
@ -1886,7 +2323,7 @@ func (m *Download) validate(all bool) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := Priority_name[int32(m.GetPriority())]; !ok {
|
if _, ok := Priority_name[int32(m.GetPriority())]; !ok {
|
||||||
err := DownloadValidationError{
|
err := DownloadTaskValidationError{
|
||||||
field: "Priority",
|
field: "Priority",
|
||||||
reason: "value must be one of the defined enum values",
|
reason: "value must be one of the defined enum values",
|
||||||
}
|
}
|
||||||
|
@ -1899,7 +2336,7 @@ func (m *Download) validate(all bool) error {
|
||||||
// no validation rules for RequestHeader
|
// no validation rules for RequestHeader
|
||||||
|
|
||||||
if m.GetPieceLength() < 1 {
|
if m.GetPieceLength() < 1 {
|
||||||
err := DownloadValidationError{
|
err := DownloadTaskValidationError{
|
||||||
field: "PieceLength",
|
field: "PieceLength",
|
||||||
reason: "value must be greater than or equal to 1",
|
reason: "value must be greater than or equal to 1",
|
||||||
}
|
}
|
||||||
|
@ -1919,8 +2356,8 @@ func (m *Download) validate(all bool) error {
|
||||||
|
|
||||||
if m.GetDigest() != "" {
|
if m.GetDigest() != "" {
|
||||||
|
|
||||||
if !_Download_Digest_Pattern.MatchString(m.GetDigest()) {
|
if !_DownloadTask_Digest_Pattern.MatchString(m.GetDigest()) {
|
||||||
err := DownloadValidationError{
|
err := DownloadTaskValidationError{
|
||||||
field: "Digest",
|
field: "Digest",
|
||||||
reason: "value does not match regex pattern \"^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$\"",
|
reason: "value does not match regex pattern \"^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$\"",
|
||||||
}
|
}
|
||||||
|
@ -1940,7 +2377,7 @@ func (m *Download) validate(all bool) error {
|
||||||
switch v := interface{}(m.GetRange()).(type) {
|
switch v := interface{}(m.GetRange()).(type) {
|
||||||
case interface{ ValidateAll() error }:
|
case interface{ ValidateAll() error }:
|
||||||
if err := v.ValidateAll(); err != nil {
|
if err := v.ValidateAll(); err != nil {
|
||||||
errors = append(errors, DownloadValidationError{
|
errors = append(errors, DownloadTaskValidationError{
|
||||||
field: "Range",
|
field: "Range",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
|
@ -1948,7 +2385,7 @@ func (m *Download) validate(all bool) error {
|
||||||
}
|
}
|
||||||
case interface{ Validate() error }:
|
case interface{ Validate() error }:
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
errors = append(errors, DownloadValidationError{
|
errors = append(errors, DownloadTaskValidationError{
|
||||||
field: "Range",
|
field: "Range",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
|
@ -1957,7 +2394,7 @@ func (m *Download) validate(all bool) error {
|
||||||
}
|
}
|
||||||
} else if v, ok := interface{}(m.GetRange()).(interface{ Validate() error }); ok {
|
} else if v, ok := interface{}(m.GetRange()).(interface{ Validate() error }); ok {
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
return DownloadValidationError{
|
return DownloadTaskValidationError{
|
||||||
field: "Range",
|
field: "Range",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
|
@ -1980,7 +2417,7 @@ func (m *Download) validate(all bool) error {
|
||||||
if m.GetOutputPath() != "" {
|
if m.GetOutputPath() != "" {
|
||||||
|
|
||||||
if utf8.RuneCountInString(m.GetOutputPath()) < 1 {
|
if utf8.RuneCountInString(m.GetOutputPath()) < 1 {
|
||||||
err := DownloadValidationError{
|
err := DownloadTaskValidationError{
|
||||||
field: "OutputPath",
|
field: "OutputPath",
|
||||||
reason: "value length must be at least 1 runes",
|
reason: "value length must be at least 1 runes",
|
||||||
}
|
}
|
||||||
|
@ -2000,7 +2437,7 @@ func (m *Download) validate(all bool) error {
|
||||||
switch v := interface{}(m.GetTimeout()).(type) {
|
switch v := interface{}(m.GetTimeout()).(type) {
|
||||||
case interface{ ValidateAll() error }:
|
case interface{ ValidateAll() error }:
|
||||||
if err := v.ValidateAll(); err != nil {
|
if err := v.ValidateAll(); err != nil {
|
||||||
errors = append(errors, DownloadValidationError{
|
errors = append(errors, DownloadTaskValidationError{
|
||||||
field: "Timeout",
|
field: "Timeout",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
|
@ -2008,7 +2445,7 @@ func (m *Download) validate(all bool) error {
|
||||||
}
|
}
|
||||||
case interface{ Validate() error }:
|
case interface{ Validate() error }:
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
errors = append(errors, DownloadValidationError{
|
errors = append(errors, DownloadTaskValidationError{
|
||||||
field: "Timeout",
|
field: "Timeout",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
|
@ -2017,7 +2454,7 @@ func (m *Download) validate(all bool) error {
|
||||||
}
|
}
|
||||||
} else if v, ok := interface{}(m.GetTimeout()).(interface{ Validate() error }); ok {
|
} else if v, ok := interface{}(m.GetTimeout()).(interface{ Validate() error }); ok {
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
return DownloadValidationError{
|
return DownloadTaskValidationError{
|
||||||
field: "Timeout",
|
field: "Timeout",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
|
@ -2028,18 +2465,18 @@ func (m *Download) validate(all bool) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(errors) > 0 {
|
if len(errors) > 0 {
|
||||||
return DownloadMultiError(errors)
|
return DownloadTaskMultiError(errors)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// DownloadMultiError is an error wrapping multiple validation errors returned
|
// DownloadTaskMultiError is an error wrapping multiple validation errors
|
||||||
// by Download.ValidateAll() if the designated constraints aren't met.
|
// returned by DownloadTask.ValidateAll() if the designated constraints aren't met.
|
||||||
type DownloadMultiError []error
|
type DownloadTaskMultiError []error
|
||||||
|
|
||||||
// Error returns a concatenation of all the error messages it wraps.
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
func (m DownloadMultiError) Error() string {
|
func (m DownloadTaskMultiError) Error() string {
|
||||||
var msgs []string
|
var msgs []string
|
||||||
for _, err := range m {
|
for _, err := range m {
|
||||||
msgs = append(msgs, err.Error())
|
msgs = append(msgs, err.Error())
|
||||||
|
@ -2048,11 +2485,11 @@ func (m DownloadMultiError) Error() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// AllErrors returns a list of validation violation errors.
|
// AllErrors returns a list of validation violation errors.
|
||||||
func (m DownloadMultiError) AllErrors() []error { return m }
|
func (m DownloadTaskMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
// DownloadValidationError is the validation error returned by
|
// DownloadTaskValidationError is the validation error returned by
|
||||||
// Download.Validate if the designated constraints aren't met.
|
// DownloadTask.Validate if the designated constraints aren't met.
|
||||||
type DownloadValidationError struct {
|
type DownloadTaskValidationError struct {
|
||||||
field string
|
field string
|
||||||
reason string
|
reason string
|
||||||
cause error
|
cause error
|
||||||
|
@ -2060,22 +2497,22 @@ type DownloadValidationError struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Field function returns field value.
|
// Field function returns field value.
|
||||||
func (e DownloadValidationError) Field() string { return e.field }
|
func (e DownloadTaskValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
// Reason function returns reason value.
|
// Reason function returns reason value.
|
||||||
func (e DownloadValidationError) Reason() string { return e.reason }
|
func (e DownloadTaskValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
// Cause function returns cause value.
|
// Cause function returns cause value.
|
||||||
func (e DownloadValidationError) Cause() error { return e.cause }
|
func (e DownloadTaskValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
// Key function returns key value.
|
// Key function returns key value.
|
||||||
func (e DownloadValidationError) Key() bool { return e.key }
|
func (e DownloadTaskValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
// ErrorName returns error name.
|
// ErrorName returns error name.
|
||||||
func (e DownloadValidationError) ErrorName() string { return "DownloadValidationError" }
|
func (e DownloadTaskValidationError) ErrorName() string { return "DownloadTaskValidationError" }
|
||||||
|
|
||||||
// Error satisfies the builtin error interface
|
// Error satisfies the builtin error interface
|
||||||
func (e DownloadValidationError) Error() string {
|
func (e DownloadTaskValidationError) Error() string {
|
||||||
cause := ""
|
cause := ""
|
||||||
if e.cause != nil {
|
if e.cause != nil {
|
||||||
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
@ -2087,14 +2524,14 @@ func (e DownloadValidationError) Error() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Sprintf(
|
return fmt.Sprintf(
|
||||||
"invalid %sDownload.%s: %s%s",
|
"invalid %sDownloadTask.%s: %s%s",
|
||||||
key,
|
key,
|
||||||
e.field,
|
e.field,
|
||||||
e.reason,
|
e.reason,
|
||||||
cause)
|
cause)
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ error = DownloadValidationError{}
|
var _ error = DownloadTaskValidationError{}
|
||||||
|
|
||||||
var _ interface {
|
var _ interface {
|
||||||
Field() string
|
Field() string
|
||||||
|
@ -2102,9 +2539,9 @@ var _ interface {
|
||||||
Key() bool
|
Key() bool
|
||||||
Cause() error
|
Cause() error
|
||||||
ErrorName() string
|
ErrorName() string
|
||||||
} = DownloadValidationError{}
|
} = DownloadTaskValidationError{}
|
||||||
|
|
||||||
var _Download_Digest_Pattern = regexp.MustCompile("^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$")
|
var _DownloadTask_Digest_Pattern = regexp.MustCompile("^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$")
|
||||||
|
|
||||||
// Validate checks the field values on Range with the rules defined in the
|
// Validate checks the field values on Range with the rules defined in the
|
||||||
// proto definition for this message. If any rules are violated, the first
|
// proto definition for this message. If any rules are violated, the first
|
||||||
|
|
|
@ -132,6 +132,28 @@ message Peer {
|
||||||
google.protobuf.Timestamp updated_at = 11 [(validate.rules).timestamp.required = true];
|
google.protobuf.Timestamp updated_at = 11 [(validate.rules).timestamp.required = true];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CachePeer metadata.
|
||||||
|
message CachePeer {
|
||||||
|
// Peer id.
|
||||||
|
string id = 1 [(validate.rules).string.min_len = 1];
|
||||||
|
// Persistent represents whether the cache peer is persistent.
|
||||||
|
// If the cache peer is persistent, the cache peer will
|
||||||
|
// not be deleted when dfdamon runs garbage collection.
|
||||||
|
bool persistent = 2;
|
||||||
|
// Peer downloads costs time.
|
||||||
|
google.protobuf.Duration cost = 3 [(validate.rules).duration.required = true];
|
||||||
|
// Peer state.
|
||||||
|
string state = 4 [(validate.rules).string.min_len = 1];
|
||||||
|
// Task info.
|
||||||
|
CacheTask task = 5 [(validate.rules).message.required = true];
|
||||||
|
// Host info.
|
||||||
|
Host host = 6 [(validate.rules).message.required = true];
|
||||||
|
// Peer create time.
|
||||||
|
google.protobuf.Timestamp created_at = 7 [(validate.rules).timestamp.required = true];
|
||||||
|
// Peer update time.
|
||||||
|
google.protobuf.Timestamp updated_at = 8 [(validate.rules).timestamp.required = true];
|
||||||
|
}
|
||||||
|
|
||||||
// Task metadata.
|
// Task metadata.
|
||||||
message Task {
|
message Task {
|
||||||
// Task id.
|
// Task id.
|
||||||
|
@ -140,7 +162,7 @@ message Task {
|
||||||
TaskType type = 2 [(validate.rules).enum.defined_only = true];
|
TaskType type = 2 [(validate.rules).enum.defined_only = true];
|
||||||
// Download url.
|
// Download url.
|
||||||
string url = 3 [(validate.rules).string.uri = true];
|
string url = 3 [(validate.rules).string.uri = true];
|
||||||
// Digest of the task digest, for example md5:xxx or sha256:yyy.
|
// Digest of the task digest, for example blake3:xxx or sha256:yyy.
|
||||||
optional string digest = 4 [(validate.rules).string = {pattern: "^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$", ignore_empty: true}];
|
optional string digest = 4 [(validate.rules).string = {pattern: "^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$", ignore_empty: true}];
|
||||||
// URL tag identifies different task for same url.
|
// URL tag identifies different task for same url.
|
||||||
optional string tag = 5;
|
optional string tag = 5;
|
||||||
|
@ -155,7 +177,7 @@ message Task {
|
||||||
// Task request headers.
|
// Task request headers.
|
||||||
map<string, string> request_header = 8;
|
map<string, string> request_header = 8;
|
||||||
// Task piece length.
|
// Task piece length.
|
||||||
uint32 piece_length = 9 [(validate.rules).uint32.gte = 1];
|
uint64 piece_length = 9 [(validate.rules).uint64.gte = 1];
|
||||||
// Task content length.
|
// Task content length.
|
||||||
uint64 content_length = 10;
|
uint64 content_length = 10;
|
||||||
// Task piece count.
|
// Task piece count.
|
||||||
|
@ -176,6 +198,34 @@ message Task {
|
||||||
google.protobuf.Timestamp updated_at = 18 [(validate.rules).timestamp.required = true];
|
google.protobuf.Timestamp updated_at = 18 [(validate.rules).timestamp.required = true];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CacheTask metadata.
|
||||||
|
message CacheTask {
|
||||||
|
// Task id.
|
||||||
|
string id = 1 [(validate.rules).string.min_len = 1];
|
||||||
|
// Replica count of the persistent cache task.
|
||||||
|
uint64 persistent_replica_count = 2 [(validate.rules).uint64.gte = 1];
|
||||||
|
// Replica count of the cache task.
|
||||||
|
uint64 replica_count = 3 [(validate.rules).uint64.gte = 1];
|
||||||
|
// Digest of the task digest, for example blake3:xxx or sha256:yyy.
|
||||||
|
string digest = 4 [(validate.rules).string = {pattern: "^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$"}];
|
||||||
|
// Tag is used to distinguish different cache tasks.
|
||||||
|
optional string tag = 5;
|
||||||
|
// Application of task.
|
||||||
|
optional string application = 6;
|
||||||
|
// Task piece length.
|
||||||
|
uint64 piece_length = 7 [(validate.rules).uint64.gte = 1];
|
||||||
|
// Task content length.
|
||||||
|
uint64 content_length = 8;
|
||||||
|
// Task piece count.
|
||||||
|
uint32 piece_count = 9;
|
||||||
|
// Task state.
|
||||||
|
string state = 10 [(validate.rules).string.min_len = 1];
|
||||||
|
// Task create time.
|
||||||
|
google.protobuf.Timestamp created_at = 11 [(validate.rules).timestamp.required = true];
|
||||||
|
// Task update time.
|
||||||
|
google.protobuf.Timestamp updated_at = 12 [(validate.rules).timestamp.required = true];
|
||||||
|
}
|
||||||
|
|
||||||
// Host metadata.
|
// Host metadata.
|
||||||
message Host {
|
message Host {
|
||||||
// Host id.
|
// Host id.
|
||||||
|
@ -315,11 +365,11 @@ message Build {
|
||||||
optional string platform = 5;
|
optional string platform = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Download information.
|
// DownloadTask information.
|
||||||
message Download {
|
message DownloadTask {
|
||||||
// Download url.
|
// Download url.
|
||||||
string url = 1 [(validate.rules).string.uri = true];
|
string url = 1 [(validate.rules).string.uri = true];
|
||||||
// Digest of the task digest, for example md5:xxx or sha256:yyy.
|
// Digest of the task digest, for example blake3:xxx or sha256:yyy.
|
||||||
optional string digest = 2 [(validate.rules).string = {pattern: "^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$", ignore_empty: true}];
|
optional string digest = 2 [(validate.rules).string = {pattern: "^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$", ignore_empty: true}];
|
||||||
// Range is url range of request. If protocol is http, range
|
// Range is url range of request. If protocol is http, range
|
||||||
// will set in request header. If protocol is others, range
|
// will set in request header. If protocol is others, range
|
||||||
|
@ -342,7 +392,7 @@ message Download {
|
||||||
// Task request headers.
|
// Task request headers.
|
||||||
map<string, string> request_header = 9;
|
map<string, string> request_header = 9;
|
||||||
// Task piece length.
|
// Task piece length.
|
||||||
uint32 piece_length = 10 [(validate.rules).uint32.gte = 1];
|
uint64 piece_length = 10 [(validate.rules).uint64.gte = 1];
|
||||||
// File path to be exported.
|
// File path to be exported.
|
||||||
optional string output_path = 11 [(validate.rules).string = {min_len: 1, ignore_empty: true}];
|
optional string output_path = 11 [(validate.rules).string = {min_len: 1, ignore_empty: true}];
|
||||||
// Download timeout.
|
// Download timeout.
|
||||||
|
@ -375,7 +425,7 @@ message Piece {
|
||||||
uint64 offset = 3;
|
uint64 offset = 3;
|
||||||
// Piece length.
|
// Piece length.
|
||||||
uint64 length = 4;
|
uint64 length = 4;
|
||||||
// Digest of the piece data, for example md5:xxx or sha256:yyy.
|
// Digest of the piece data, for example blake3:xxx or sha256:yyy.
|
||||||
string digest = 5 [(validate.rules).string = {pattern: "^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$", ignore_empty: true}];
|
string digest = 5 [(validate.rules).string = {pattern: "^(md5:[a-fA-F0-9]{32}|sha1:[a-fA-F0-9]{40}|sha256:[a-fA-F0-9]{64}|sha512:[a-fA-F0-9]{128}|blake3:[a-fA-F0-9]{64})$", ignore_empty: true}];
|
||||||
// Piece content.
|
// Piece content.
|
||||||
optional bytes content = 6 [(validate.rules).bytes = {min_len: 1, ignore_empty: true}];
|
optional bytes content = 6 [(validate.rules).bytes = {min_len: 1, ignore_empty: true}];
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -57,9 +57,9 @@ func (m *DownloadTaskRequest) validate(all bool) error {
|
||||||
|
|
||||||
var errors []error
|
var errors []error
|
||||||
|
|
||||||
if m.GetDownload() == nil {
|
if m.GetDownloadTask() == nil {
|
||||||
err := DownloadTaskRequestValidationError{
|
err := DownloadTaskRequestValidationError{
|
||||||
field: "Download",
|
field: "DownloadTask",
|
||||||
reason: "value is required",
|
reason: "value is required",
|
||||||
}
|
}
|
||||||
if !all {
|
if !all {
|
||||||
|
@ -69,11 +69,11 @@ func (m *DownloadTaskRequest) validate(all bool) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if all {
|
if all {
|
||||||
switch v := interface{}(m.GetDownload()).(type) {
|
switch v := interface{}(m.GetDownloadTask()).(type) {
|
||||||
case interface{ ValidateAll() error }:
|
case interface{ ValidateAll() error }:
|
||||||
if err := v.ValidateAll(); err != nil {
|
if err := v.ValidateAll(); err != nil {
|
||||||
errors = append(errors, DownloadTaskRequestValidationError{
|
errors = append(errors, DownloadTaskRequestValidationError{
|
||||||
field: "Download",
|
field: "DownloadTask",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
})
|
})
|
||||||
|
@ -81,16 +81,16 @@ func (m *DownloadTaskRequest) validate(all bool) error {
|
||||||
case interface{ Validate() error }:
|
case interface{ Validate() error }:
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
errors = append(errors, DownloadTaskRequestValidationError{
|
errors = append(errors, DownloadTaskRequestValidationError{
|
||||||
field: "Download",
|
field: "DownloadTask",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if v, ok := interface{}(m.GetDownload()).(interface{ Validate() error }); ok {
|
} else if v, ok := interface{}(m.GetDownloadTask()).(interface{ Validate() error }); ok {
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
return DownloadTaskRequestValidationError{
|
return DownloadTaskRequestValidationError{
|
||||||
field: "Download",
|
field: "DownloadTask",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
}
|
}
|
||||||
|
@ -1605,3 +1605,932 @@ var _ interface {
|
||||||
Cause() error
|
Cause() error
|
||||||
ErrorName() string
|
ErrorName() string
|
||||||
} = DeleteTaskRequestValidationError{}
|
} = DeleteTaskRequestValidationError{}
|
||||||
|
|
||||||
|
// Validate checks the field values on DownloadCacheTaskRequest with the rules
|
||||||
|
// defined in the proto definition for this message. If any rules are
|
||||||
|
// violated, the first error encountered is returned, or nil if there are no violations.
|
||||||
|
func (m *DownloadCacheTaskRequest) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on DownloadCacheTaskRequest with the
|
||||||
|
// rules defined in the proto definition for this message. If any rules are
|
||||||
|
// violated, the result is a list of violation errors wrapped in
|
||||||
|
// DownloadCacheTaskRequestMultiError, or nil if none found.
|
||||||
|
func (m *DownloadCacheTaskRequest) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *DownloadCacheTaskRequest) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetHostId()) < 1 {
|
||||||
|
err := DownloadCacheTaskRequestValidationError{
|
||||||
|
field: "HostId",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetTaskId()) < 1 {
|
||||||
|
err := DownloadCacheTaskRequestValidationError{
|
||||||
|
field: "TaskId",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetPieceLength() < 1 {
|
||||||
|
err := DownloadCacheTaskRequestValidationError{
|
||||||
|
field: "PieceLength",
|
||||||
|
reason: "value must be greater than or equal to 1",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetOutputPath()) < 1 {
|
||||||
|
err := DownloadCacheTaskRequestValidationError{
|
||||||
|
field: "OutputPath",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Tag != nil {
|
||||||
|
// no validation rules for Tag
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Application != nil {
|
||||||
|
// no validation rules for Application
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Timeout != nil {
|
||||||
|
|
||||||
|
if all {
|
||||||
|
switch v := interface{}(m.GetTimeout()).(type) {
|
||||||
|
case interface{ ValidateAll() error }:
|
||||||
|
if err := v.ValidateAll(); err != nil {
|
||||||
|
errors = append(errors, DownloadCacheTaskRequestValidationError{
|
||||||
|
field: "Timeout",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
case interface{ Validate() error }:
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
errors = append(errors, DownloadCacheTaskRequestValidationError{
|
||||||
|
field: "Timeout",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if v, ok := interface{}(m.GetTimeout()).(interface{ Validate() error }); ok {
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
return DownloadCacheTaskRequestValidationError{
|
||||||
|
field: "Timeout",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return DownloadCacheTaskRequestMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DownloadCacheTaskRequestMultiError is an error wrapping multiple validation
|
||||||
|
// errors returned by DownloadCacheTaskRequest.ValidateAll() if the designated
|
||||||
|
// constraints aren't met.
|
||||||
|
type DownloadCacheTaskRequestMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m DownloadCacheTaskRequestMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m DownloadCacheTaskRequestMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// DownloadCacheTaskRequestValidationError is the validation error returned by
|
||||||
|
// DownloadCacheTaskRequest.Validate if the designated constraints aren't met.
|
||||||
|
type DownloadCacheTaskRequestValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e DownloadCacheTaskRequestValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e DownloadCacheTaskRequestValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e DownloadCacheTaskRequestValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e DownloadCacheTaskRequestValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e DownloadCacheTaskRequestValidationError) ErrorName() string {
|
||||||
|
return "DownloadCacheTaskRequestValidationError"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e DownloadCacheTaskRequestValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sDownloadCacheTaskRequest.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = DownloadCacheTaskRequestValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = DownloadCacheTaskRequestValidationError{}
|
||||||
|
|
||||||
|
// Validate checks the field values on DownloadCacheTaskStartedResponse with
|
||||||
|
// the rules defined in the proto definition for this message. If any rules
|
||||||
|
// are violated, the first error encountered is returned, or nil if there are
|
||||||
|
// no violations.
|
||||||
|
func (m *DownloadCacheTaskStartedResponse) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on DownloadCacheTaskStartedResponse with
|
||||||
|
// the rules defined in the proto definition for this message. If any rules
|
||||||
|
// are violated, the result is a list of violation errors wrapped in
|
||||||
|
// DownloadCacheTaskStartedResponseMultiError, or nil if none found.
|
||||||
|
func (m *DownloadCacheTaskStartedResponse) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *DownloadCacheTaskStartedResponse) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return DownloadCacheTaskStartedResponseMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DownloadCacheTaskStartedResponseMultiError is an error wrapping multiple
|
||||||
|
// validation errors returned by
|
||||||
|
// DownloadCacheTaskStartedResponse.ValidateAll() if the designated
|
||||||
|
// constraints aren't met.
|
||||||
|
type DownloadCacheTaskStartedResponseMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m DownloadCacheTaskStartedResponseMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m DownloadCacheTaskStartedResponseMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// DownloadCacheTaskStartedResponseValidationError is the validation error
|
||||||
|
// returned by DownloadCacheTaskStartedResponse.Validate if the designated
|
||||||
|
// constraints aren't met.
|
||||||
|
type DownloadCacheTaskStartedResponseValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e DownloadCacheTaskStartedResponseValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e DownloadCacheTaskStartedResponseValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e DownloadCacheTaskStartedResponseValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e DownloadCacheTaskStartedResponseValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e DownloadCacheTaskStartedResponseValidationError) ErrorName() string {
|
||||||
|
return "DownloadCacheTaskStartedResponseValidationError"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e DownloadCacheTaskStartedResponseValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sDownloadCacheTaskStartedResponse.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = DownloadCacheTaskStartedResponseValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = DownloadCacheTaskStartedResponseValidationError{}
|
||||||
|
|
||||||
|
// Validate checks the field values on DownloadCacheTaskResponse with the rules
|
||||||
|
// defined in the proto definition for this message. If any rules are
|
||||||
|
// violated, the first error encountered is returned, or nil if there are no violations.
|
||||||
|
func (m *DownloadCacheTaskResponse) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on DownloadCacheTaskResponse with the
|
||||||
|
// rules defined in the proto definition for this message. If any rules are
|
||||||
|
// violated, the result is a list of violation errors wrapped in
|
||||||
|
// DownloadCacheTaskResponseMultiError, or nil if none found.
|
||||||
|
func (m *DownloadCacheTaskResponse) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *DownloadCacheTaskResponse) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetHostId()) < 1 {
|
||||||
|
err := DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "HostId",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetTaskId()) < 1 {
|
||||||
|
err := DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "TaskId",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetPeerId()) < 1 {
|
||||||
|
err := DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "PeerId",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
oneofResponsePresent := false
|
||||||
|
switch v := m.Response.(type) {
|
||||||
|
case *DownloadCacheTaskResponse_DownloadCacheTaskStartedResponse:
|
||||||
|
if v == nil {
|
||||||
|
err := DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "Response",
|
||||||
|
reason: "oneof value cannot be a typed-nil",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
oneofResponsePresent = true
|
||||||
|
|
||||||
|
if all {
|
||||||
|
switch v := interface{}(m.GetDownloadCacheTaskStartedResponse()).(type) {
|
||||||
|
case interface{ ValidateAll() error }:
|
||||||
|
if err := v.ValidateAll(); err != nil {
|
||||||
|
errors = append(errors, DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "DownloadCacheTaskStartedResponse",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
case interface{ Validate() error }:
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
errors = append(errors, DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "DownloadCacheTaskStartedResponse",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if v, ok := interface{}(m.GetDownloadCacheTaskStartedResponse()).(interface{ Validate() error }); ok {
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
return DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "DownloadCacheTaskStartedResponse",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case *DownloadCacheTaskResponse_DownloadPieceFinishedResponse:
|
||||||
|
if v == nil {
|
||||||
|
err := DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "Response",
|
||||||
|
reason: "oneof value cannot be a typed-nil",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
oneofResponsePresent = true
|
||||||
|
|
||||||
|
if all {
|
||||||
|
switch v := interface{}(m.GetDownloadPieceFinishedResponse()).(type) {
|
||||||
|
case interface{ ValidateAll() error }:
|
||||||
|
if err := v.ValidateAll(); err != nil {
|
||||||
|
errors = append(errors, DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "DownloadPieceFinishedResponse",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
case interface{ Validate() error }:
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
errors = append(errors, DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "DownloadPieceFinishedResponse",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if v, ok := interface{}(m.GetDownloadPieceFinishedResponse()).(interface{ Validate() error }); ok {
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
return DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "DownloadPieceFinishedResponse",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
_ = v // ensures v is used
|
||||||
|
}
|
||||||
|
if !oneofResponsePresent {
|
||||||
|
err := DownloadCacheTaskResponseValidationError{
|
||||||
|
field: "Response",
|
||||||
|
reason: "value is required",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return DownloadCacheTaskResponseMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DownloadCacheTaskResponseMultiError is an error wrapping multiple validation
|
||||||
|
// errors returned by DownloadCacheTaskResponse.ValidateAll() if the
|
||||||
|
// designated constraints aren't met.
|
||||||
|
type DownloadCacheTaskResponseMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m DownloadCacheTaskResponseMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m DownloadCacheTaskResponseMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// DownloadCacheTaskResponseValidationError is the validation error returned by
|
||||||
|
// DownloadCacheTaskResponse.Validate if the designated constraints aren't met.
|
||||||
|
type DownloadCacheTaskResponseValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e DownloadCacheTaskResponseValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e DownloadCacheTaskResponseValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e DownloadCacheTaskResponseValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e DownloadCacheTaskResponseValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e DownloadCacheTaskResponseValidationError) ErrorName() string {
|
||||||
|
return "DownloadCacheTaskResponseValidationError"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e DownloadCacheTaskResponseValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sDownloadCacheTaskResponse.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = DownloadCacheTaskResponseValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = DownloadCacheTaskResponseValidationError{}
|
||||||
|
|
||||||
|
// Validate checks the field values on UploadCacheTaskRequest with the rules
|
||||||
|
// defined in the proto definition for this message. If any rules are
|
||||||
|
// violated, the first error encountered is returned, or nil if there are no violations.
|
||||||
|
func (m *UploadCacheTaskRequest) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on UploadCacheTaskRequest with the rules
|
||||||
|
// defined in the proto definition for this message. If any rules are
|
||||||
|
// violated, the result is a list of violation errors wrapped in
|
||||||
|
// UploadCacheTaskRequestMultiError, or nil if none found.
|
||||||
|
func (m *UploadCacheTaskRequest) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *UploadCacheTaskRequest) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetPath()) < 1 {
|
||||||
|
err := UploadCacheTaskRequestValidationError{
|
||||||
|
field: "Path",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetPersistentReplicaCount() < 1 {
|
||||||
|
err := UploadCacheTaskRequestValidationError{
|
||||||
|
field: "PersistentReplicaCount",
|
||||||
|
reason: "value must be greater than or equal to 1",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.GetPieceLength() < 1 {
|
||||||
|
err := UploadCacheTaskRequestValidationError{
|
||||||
|
field: "PieceLength",
|
||||||
|
reason: "value must be greater than or equal to 1",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Tag != nil {
|
||||||
|
// no validation rules for Tag
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Application != nil {
|
||||||
|
// no validation rules for Application
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Timeout != nil {
|
||||||
|
|
||||||
|
if all {
|
||||||
|
switch v := interface{}(m.GetTimeout()).(type) {
|
||||||
|
case interface{ ValidateAll() error }:
|
||||||
|
if err := v.ValidateAll(); err != nil {
|
||||||
|
errors = append(errors, UploadCacheTaskRequestValidationError{
|
||||||
|
field: "Timeout",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
case interface{ Validate() error }:
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
errors = append(errors, UploadCacheTaskRequestValidationError{
|
||||||
|
field: "Timeout",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if v, ok := interface{}(m.GetTimeout()).(interface{ Validate() error }); ok {
|
||||||
|
if err := v.Validate(); err != nil {
|
||||||
|
return UploadCacheTaskRequestValidationError{
|
||||||
|
field: "Timeout",
|
||||||
|
reason: "embedded message failed validation",
|
||||||
|
cause: err,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return UploadCacheTaskRequestMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// UploadCacheTaskRequestMultiError is an error wrapping multiple validation
|
||||||
|
// errors returned by UploadCacheTaskRequest.ValidateAll() if the designated
|
||||||
|
// constraints aren't met.
|
||||||
|
type UploadCacheTaskRequestMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m UploadCacheTaskRequestMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m UploadCacheTaskRequestMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// UploadCacheTaskRequestValidationError is the validation error returned by
|
||||||
|
// UploadCacheTaskRequest.Validate if the designated constraints aren't met.
|
||||||
|
type UploadCacheTaskRequestValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e UploadCacheTaskRequestValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e UploadCacheTaskRequestValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e UploadCacheTaskRequestValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e UploadCacheTaskRequestValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e UploadCacheTaskRequestValidationError) ErrorName() string {
|
||||||
|
return "UploadCacheTaskRequestValidationError"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e UploadCacheTaskRequestValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sUploadCacheTaskRequest.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = UploadCacheTaskRequestValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = UploadCacheTaskRequestValidationError{}
|
||||||
|
|
||||||
|
// Validate checks the field values on StatCacheTaskRequest with the rules
|
||||||
|
// defined in the proto definition for this message. If any rules are
|
||||||
|
// violated, the first error encountered is returned, or nil if there are no violations.
|
||||||
|
func (m *StatCacheTaskRequest) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on StatCacheTaskRequest with the rules
|
||||||
|
// defined in the proto definition for this message. If any rules are
|
||||||
|
// violated, the result is a list of violation errors wrapped in
|
||||||
|
// StatCacheTaskRequestMultiError, or nil if none found.
|
||||||
|
func (m *StatCacheTaskRequest) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *StatCacheTaskRequest) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetTaskId()) < 1 {
|
||||||
|
err := StatCacheTaskRequestValidationError{
|
||||||
|
field: "TaskId",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return StatCacheTaskRequestMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatCacheTaskRequestMultiError is an error wrapping multiple validation
|
||||||
|
// errors returned by StatCacheTaskRequest.ValidateAll() if the designated
|
||||||
|
// constraints aren't met.
|
||||||
|
type StatCacheTaskRequestMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m StatCacheTaskRequestMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m StatCacheTaskRequestMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// StatCacheTaskRequestValidationError is the validation error returned by
|
||||||
|
// StatCacheTaskRequest.Validate if the designated constraints aren't met.
|
||||||
|
type StatCacheTaskRequestValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e StatCacheTaskRequestValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e StatCacheTaskRequestValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e StatCacheTaskRequestValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e StatCacheTaskRequestValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e StatCacheTaskRequestValidationError) ErrorName() string {
|
||||||
|
return "StatCacheTaskRequestValidationError"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e StatCacheTaskRequestValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sStatCacheTaskRequest.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = StatCacheTaskRequestValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = StatCacheTaskRequestValidationError{}
|
||||||
|
|
||||||
|
// Validate checks the field values on DeleteCacheTaskRequest with the rules
|
||||||
|
// defined in the proto definition for this message. If any rules are
|
||||||
|
// violated, the first error encountered is returned, or nil if there are no violations.
|
||||||
|
func (m *DeleteCacheTaskRequest) Validate() error {
|
||||||
|
return m.validate(false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateAll checks the field values on DeleteCacheTaskRequest with the rules
|
||||||
|
// defined in the proto definition for this message. If any rules are
|
||||||
|
// violated, the result is a list of violation errors wrapped in
|
||||||
|
// DeleteCacheTaskRequestMultiError, or nil if none found.
|
||||||
|
func (m *DeleteCacheTaskRequest) ValidateAll() error {
|
||||||
|
return m.validate(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *DeleteCacheTaskRequest) validate(all bool) error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var errors []error
|
||||||
|
|
||||||
|
if utf8.RuneCountInString(m.GetTaskId()) < 1 {
|
||||||
|
err := DeleteCacheTaskRequestValidationError{
|
||||||
|
field: "TaskId",
|
||||||
|
reason: "value length must be at least 1 runes",
|
||||||
|
}
|
||||||
|
if !all {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
errors = append(errors, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(errors) > 0 {
|
||||||
|
return DeleteCacheTaskRequestMultiError(errors)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteCacheTaskRequestMultiError is an error wrapping multiple validation
|
||||||
|
// errors returned by DeleteCacheTaskRequest.ValidateAll() if the designated
|
||||||
|
// constraints aren't met.
|
||||||
|
type DeleteCacheTaskRequestMultiError []error
|
||||||
|
|
||||||
|
// Error returns a concatenation of all the error messages it wraps.
|
||||||
|
func (m DeleteCacheTaskRequestMultiError) Error() string {
|
||||||
|
var msgs []string
|
||||||
|
for _, err := range m {
|
||||||
|
msgs = append(msgs, err.Error())
|
||||||
|
}
|
||||||
|
return strings.Join(msgs, "; ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// AllErrors returns a list of validation violation errors.
|
||||||
|
func (m DeleteCacheTaskRequestMultiError) AllErrors() []error { return m }
|
||||||
|
|
||||||
|
// DeleteCacheTaskRequestValidationError is the validation error returned by
|
||||||
|
// DeleteCacheTaskRequest.Validate if the designated constraints aren't met.
|
||||||
|
type DeleteCacheTaskRequestValidationError struct {
|
||||||
|
field string
|
||||||
|
reason string
|
||||||
|
cause error
|
||||||
|
key bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Field function returns field value.
|
||||||
|
func (e DeleteCacheTaskRequestValidationError) Field() string { return e.field }
|
||||||
|
|
||||||
|
// Reason function returns reason value.
|
||||||
|
func (e DeleteCacheTaskRequestValidationError) Reason() string { return e.reason }
|
||||||
|
|
||||||
|
// Cause function returns cause value.
|
||||||
|
func (e DeleteCacheTaskRequestValidationError) Cause() error { return e.cause }
|
||||||
|
|
||||||
|
// Key function returns key value.
|
||||||
|
func (e DeleteCacheTaskRequestValidationError) Key() bool { return e.key }
|
||||||
|
|
||||||
|
// ErrorName returns error name.
|
||||||
|
func (e DeleteCacheTaskRequestValidationError) ErrorName() string {
|
||||||
|
return "DeleteCacheTaskRequestValidationError"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error satisfies the builtin error interface
|
||||||
|
func (e DeleteCacheTaskRequestValidationError) Error() string {
|
||||||
|
cause := ""
|
||||||
|
if e.cause != nil {
|
||||||
|
cause = fmt.Sprintf(" | caused by: %v", e.cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
key := ""
|
||||||
|
if e.key {
|
||||||
|
key = "key for "
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf(
|
||||||
|
"invalid %sDeleteCacheTaskRequest.%s: %s%s",
|
||||||
|
key,
|
||||||
|
e.field,
|
||||||
|
e.reason,
|
||||||
|
cause)
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ error = DeleteCacheTaskRequestValidationError{}
|
||||||
|
|
||||||
|
var _ interface {
|
||||||
|
Field() string
|
||||||
|
Reason() string
|
||||||
|
Key() bool
|
||||||
|
Cause() error
|
||||||
|
ErrorName() string
|
||||||
|
} = DeleteCacheTaskRequestValidationError{}
|
||||||
|
|
|
@ -19,6 +19,7 @@ syntax = "proto3";
|
||||||
package dfdaemon.v2;
|
package dfdaemon.v2;
|
||||||
|
|
||||||
import "pkg/apis/common/v2/common.proto";
|
import "pkg/apis/common/v2/common.proto";
|
||||||
|
import "google/protobuf/duration.proto";
|
||||||
import "google/protobuf/empty.proto";
|
import "google/protobuf/empty.proto";
|
||||||
import "validate/validate.proto";
|
import "validate/validate.proto";
|
||||||
|
|
||||||
|
@ -27,7 +28,7 @@ option go_package = "d7y.io/api/v2/pkg/apis/dfdaemon/v2;dfdaemon";
|
||||||
// DownloadTaskRequest represents request of DownloadTask.
|
// DownloadTaskRequest represents request of DownloadTask.
|
||||||
message DownloadTaskRequest {
|
message DownloadTaskRequest {
|
||||||
// Download information.
|
// Download information.
|
||||||
common.v2.Download download = 1 [(validate.rules).message.required = true];
|
common.v2.DownloadTask download_task = 1 [(validate.rules).message.required = true];
|
||||||
}
|
}
|
||||||
|
|
||||||
// DownloadTaskStartedResponse represents task download started response of DownloadTaskResponse.
|
// DownloadTaskStartedResponse represents task download started response of DownloadTaskResponse.
|
||||||
|
@ -106,18 +107,6 @@ message DownloadPieceResponse {
|
||||||
common.v2.Piece piece = 1 [(validate.rules).message.required = true];
|
common.v2.Piece piece = 1 [(validate.rules).message.required = true];
|
||||||
}
|
}
|
||||||
|
|
||||||
// DfdaemonUpload represents dfdaemon upload service.
|
|
||||||
service DfdaemonUpload {
|
|
||||||
// DownloadTask downloads task from p2p network.
|
|
||||||
rpc DownloadTask(DownloadTaskRequest) returns(stream DownloadTaskResponse);
|
|
||||||
|
|
||||||
// SyncPieces syncs piece metadatas from remote peer.
|
|
||||||
rpc SyncPieces(SyncPiecesRequest) returns(stream SyncPiecesResponse);
|
|
||||||
|
|
||||||
// DownloadPiece downloads piece from the remote peer.
|
|
||||||
rpc DownloadPiece(DownloadPieceRequest)returns(DownloadPieceResponse);
|
|
||||||
}
|
|
||||||
|
|
||||||
// UploadTaskRequest represents request of UploadTask.
|
// UploadTaskRequest represents request of UploadTask.
|
||||||
message UploadTaskRequest {
|
message UploadTaskRequest {
|
||||||
// Task metadata.
|
// Task metadata.
|
||||||
|
@ -136,6 +125,93 @@ message DeleteTaskRequest {
|
||||||
string task_id = 1 [(validate.rules).string.min_len = 1];
|
string task_id = 1 [(validate.rules).string.min_len = 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DownloadCacheTaskRequest represents request of DownloadCacheTask.
|
||||||
|
message DownloadCacheTaskRequest {
|
||||||
|
// Host id.
|
||||||
|
string host_id = 1 [(validate.rules).string.min_len = 1];
|
||||||
|
// Task id.
|
||||||
|
string task_id = 2 [(validate.rules).string.min_len = 1];
|
||||||
|
// Tag is used to distinguish different cache tasks.
|
||||||
|
optional string tag = 3;
|
||||||
|
// Application of task.
|
||||||
|
optional string application = 4;
|
||||||
|
// Task piece length.
|
||||||
|
uint64 piece_length = 5 [(validate.rules).uint64.gte = 1];
|
||||||
|
// File path to be exported.
|
||||||
|
string output_path = 6 [(validate.rules).string = {min_len: 1}];
|
||||||
|
// Download timeout.
|
||||||
|
optional google.protobuf.Duration timeout = 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DownloadCacheTaskStartedResponse represents task download started response of DownloadCacheTaskResponse.
|
||||||
|
message DownloadCacheTaskStartedResponse {}
|
||||||
|
|
||||||
|
// DownloadCacheTaskResponse represents response of DownloadCacheTask.
|
||||||
|
message DownloadCacheTaskResponse {
|
||||||
|
// Host id.
|
||||||
|
string host_id = 1 [(validate.rules).string.min_len = 1];
|
||||||
|
// Task id.
|
||||||
|
string task_id = 2 [(validate.rules).string.min_len = 1];
|
||||||
|
// Peer id.
|
||||||
|
string peer_id = 3 [(validate.rules).string.min_len = 1];
|
||||||
|
|
||||||
|
oneof response {
|
||||||
|
option (validate.required) = true;
|
||||||
|
|
||||||
|
DownloadCacheTaskStartedResponse download_cache_task_started_response = 4;
|
||||||
|
DownloadPieceFinishedResponse download_piece_finished_response = 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// UploadCacheTaskRequest represents request of UploadCacheTask.
|
||||||
|
message UploadCacheTaskRequest {
|
||||||
|
// Upload file path of cache task.
|
||||||
|
string path = 1 [(validate.rules).string = {min_len: 1}];
|
||||||
|
// Replica count of the persistent cache task.
|
||||||
|
uint64 persistent_replica_count = 2 [(validate.rules).uint64.gte = 1];
|
||||||
|
// Tag is used to distinguish different cache tasks.
|
||||||
|
optional string tag = 3;
|
||||||
|
// Application of task.
|
||||||
|
optional string application = 4;
|
||||||
|
// Task piece length.
|
||||||
|
uint64 piece_length = 5 [(validate.rules).uint64.gte = 1];
|
||||||
|
// Download timeout.
|
||||||
|
optional google.protobuf.Duration timeout = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatCacheTaskRequest represents request of StatCacheTask.
|
||||||
|
message StatCacheTaskRequest {
|
||||||
|
// Task id.
|
||||||
|
string task_id = 1 [(validate.rules).string.min_len = 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteCacheTaskRequest represents request of DeleteCacheTask.
|
||||||
|
message DeleteCacheTaskRequest {
|
||||||
|
// Task id.
|
||||||
|
string task_id = 1 [(validate.rules).string.min_len = 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// DfdaemonUpload represents dfdaemon upload service.
|
||||||
|
service DfdaemonUpload {
|
||||||
|
// DownloadTask downloads task from p2p network.
|
||||||
|
rpc DownloadTask(DownloadTaskRequest) returns(stream DownloadTaskResponse);
|
||||||
|
|
||||||
|
// SyncPieces syncs piece metadatas from remote peer.
|
||||||
|
rpc SyncPieces(SyncPiecesRequest) returns(stream SyncPiecesResponse);
|
||||||
|
|
||||||
|
// DownloadPiece downloads piece from the remote peer.
|
||||||
|
rpc DownloadPiece(DownloadPieceRequest)returns(DownloadPieceResponse);
|
||||||
|
|
||||||
|
// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
rpc DownloadCacheTask(DownloadCacheTaskRequest) returns(stream DownloadCacheTaskResponse);
|
||||||
|
|
||||||
|
// StatCacheTask stats cache task information.
|
||||||
|
rpc StatCacheTask(StatCacheTaskRequest) returns(common.v2.CacheTask);
|
||||||
|
|
||||||
|
// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
rpc DeleteCacheTask(DeleteCacheTaskRequest) returns(google.protobuf.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
// DfdaemonDownload represents dfdaemon download service.
|
// DfdaemonDownload represents dfdaemon download service.
|
||||||
service DfdaemonDownload {
|
service DfdaemonDownload {
|
||||||
// DownloadTask downloads task from p2p network.
|
// DownloadTask downloads task from p2p network.
|
||||||
|
@ -152,4 +228,16 @@ service DfdaemonDownload {
|
||||||
|
|
||||||
// LeaveHost releases host in scheduler.
|
// LeaveHost releases host in scheduler.
|
||||||
rpc LeaveHost(google.protobuf.Empty)returns(google.protobuf.Empty);
|
rpc LeaveHost(google.protobuf.Empty)returns(google.protobuf.Empty);
|
||||||
|
|
||||||
|
// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
rpc DownloadCacheTask(DownloadCacheTaskRequest) returns(stream DownloadCacheTaskResponse);
|
||||||
|
|
||||||
|
// UploadCacheTask uploads cache task to p2p network.
|
||||||
|
rpc UploadCacheTask(UploadCacheTaskRequest) returns(common.v2.CacheTask);
|
||||||
|
|
||||||
|
// StatCacheTask stats cache task information.
|
||||||
|
rpc StatCacheTask(StatCacheTaskRequest) returns(common.v2.CacheTask);
|
||||||
|
|
||||||
|
// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
rpc DeleteCacheTask(DeleteCacheTaskRequest) returns(google.protobuf.Empty);
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,6 +30,12 @@ type DfdaemonUploadClient interface {
|
||||||
SyncPieces(ctx context.Context, in *SyncPiecesRequest, opts ...grpc.CallOption) (DfdaemonUpload_SyncPiecesClient, error)
|
SyncPieces(ctx context.Context, in *SyncPiecesRequest, opts ...grpc.CallOption) (DfdaemonUpload_SyncPiecesClient, error)
|
||||||
// DownloadPiece downloads piece from the remote peer.
|
// DownloadPiece downloads piece from the remote peer.
|
||||||
DownloadPiece(ctx context.Context, in *DownloadPieceRequest, opts ...grpc.CallOption) (*DownloadPieceResponse, error)
|
DownloadPiece(ctx context.Context, in *DownloadPieceRequest, opts ...grpc.CallOption) (*DownloadPieceResponse, error)
|
||||||
|
// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
DownloadCacheTask(ctx context.Context, in *DownloadCacheTaskRequest, opts ...grpc.CallOption) (DfdaemonUpload_DownloadCacheTaskClient, error)
|
||||||
|
// StatCacheTask stats cache task information.
|
||||||
|
StatCacheTask(ctx context.Context, in *StatCacheTaskRequest, opts ...grpc.CallOption) (*v2.CacheTask, error)
|
||||||
|
// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
DeleteCacheTask(ctx context.Context, in *DeleteCacheTaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type dfdaemonUploadClient struct {
|
type dfdaemonUploadClient struct {
|
||||||
|
@ -113,6 +119,56 @@ func (c *dfdaemonUploadClient) DownloadPiece(ctx context.Context, in *DownloadPi
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *dfdaemonUploadClient) DownloadCacheTask(ctx context.Context, in *DownloadCacheTaskRequest, opts ...grpc.CallOption) (DfdaemonUpload_DownloadCacheTaskClient, error) {
|
||||||
|
stream, err := c.cc.NewStream(ctx, &DfdaemonUpload_ServiceDesc.Streams[2], "/dfdaemon.v2.DfdaemonUpload/DownloadCacheTask", opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
x := &dfdaemonUploadDownloadCacheTaskClient{stream}
|
||||||
|
if err := x.ClientStream.SendMsg(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := x.ClientStream.CloseSend(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return x, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type DfdaemonUpload_DownloadCacheTaskClient interface {
|
||||||
|
Recv() (*DownloadCacheTaskResponse, error)
|
||||||
|
grpc.ClientStream
|
||||||
|
}
|
||||||
|
|
||||||
|
type dfdaemonUploadDownloadCacheTaskClient struct {
|
||||||
|
grpc.ClientStream
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *dfdaemonUploadDownloadCacheTaskClient) Recv() (*DownloadCacheTaskResponse, error) {
|
||||||
|
m := new(DownloadCacheTaskResponse)
|
||||||
|
if err := x.ClientStream.RecvMsg(m); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return m, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *dfdaemonUploadClient) StatCacheTask(ctx context.Context, in *StatCacheTaskRequest, opts ...grpc.CallOption) (*v2.CacheTask, error) {
|
||||||
|
out := new(v2.CacheTask)
|
||||||
|
err := c.cc.Invoke(ctx, "/dfdaemon.v2.DfdaemonUpload/StatCacheTask", in, out, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *dfdaemonUploadClient) DeleteCacheTask(ctx context.Context, in *DeleteCacheTaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
|
||||||
|
out := new(emptypb.Empty)
|
||||||
|
err := c.cc.Invoke(ctx, "/dfdaemon.v2.DfdaemonUpload/DeleteCacheTask", in, out, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
// DfdaemonUploadServer is the server API for DfdaemonUpload service.
|
// DfdaemonUploadServer is the server API for DfdaemonUpload service.
|
||||||
// All implementations should embed UnimplementedDfdaemonUploadServer
|
// All implementations should embed UnimplementedDfdaemonUploadServer
|
||||||
// for forward compatibility
|
// for forward compatibility
|
||||||
|
@ -123,6 +179,12 @@ type DfdaemonUploadServer interface {
|
||||||
SyncPieces(*SyncPiecesRequest, DfdaemonUpload_SyncPiecesServer) error
|
SyncPieces(*SyncPiecesRequest, DfdaemonUpload_SyncPiecesServer) error
|
||||||
// DownloadPiece downloads piece from the remote peer.
|
// DownloadPiece downloads piece from the remote peer.
|
||||||
DownloadPiece(context.Context, *DownloadPieceRequest) (*DownloadPieceResponse, error)
|
DownloadPiece(context.Context, *DownloadPieceRequest) (*DownloadPieceResponse, error)
|
||||||
|
// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
DownloadCacheTask(*DownloadCacheTaskRequest, DfdaemonUpload_DownloadCacheTaskServer) error
|
||||||
|
// StatCacheTask stats cache task information.
|
||||||
|
StatCacheTask(context.Context, *StatCacheTaskRequest) (*v2.CacheTask, error)
|
||||||
|
// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
DeleteCacheTask(context.Context, *DeleteCacheTaskRequest) (*emptypb.Empty, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnimplementedDfdaemonUploadServer should be embedded to have forward compatible implementations.
|
// UnimplementedDfdaemonUploadServer should be embedded to have forward compatible implementations.
|
||||||
|
@ -138,6 +200,15 @@ func (UnimplementedDfdaemonUploadServer) SyncPieces(*SyncPiecesRequest, Dfdaemon
|
||||||
func (UnimplementedDfdaemonUploadServer) DownloadPiece(context.Context, *DownloadPieceRequest) (*DownloadPieceResponse, error) {
|
func (UnimplementedDfdaemonUploadServer) DownloadPiece(context.Context, *DownloadPieceRequest) (*DownloadPieceResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method DownloadPiece not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method DownloadPiece not implemented")
|
||||||
}
|
}
|
||||||
|
func (UnimplementedDfdaemonUploadServer) DownloadCacheTask(*DownloadCacheTaskRequest, DfdaemonUpload_DownloadCacheTaskServer) error {
|
||||||
|
return status.Errorf(codes.Unimplemented, "method DownloadCacheTask not implemented")
|
||||||
|
}
|
||||||
|
func (UnimplementedDfdaemonUploadServer) StatCacheTask(context.Context, *StatCacheTaskRequest) (*v2.CacheTask, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method StatCacheTask not implemented")
|
||||||
|
}
|
||||||
|
func (UnimplementedDfdaemonUploadServer) DeleteCacheTask(context.Context, *DeleteCacheTaskRequest) (*emptypb.Empty, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method DeleteCacheTask not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
// UnsafeDfdaemonUploadServer may be embedded to opt out of forward compatibility for this service.
|
// UnsafeDfdaemonUploadServer may be embedded to opt out of forward compatibility for this service.
|
||||||
// Use of this interface is not recommended, as added methods to DfdaemonUploadServer will
|
// Use of this interface is not recommended, as added methods to DfdaemonUploadServer will
|
||||||
|
@ -210,6 +281,63 @@ func _DfdaemonUpload_DownloadPiece_Handler(srv interface{}, ctx context.Context,
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _DfdaemonUpload_DownloadCacheTask_Handler(srv interface{}, stream grpc.ServerStream) error {
|
||||||
|
m := new(DownloadCacheTaskRequest)
|
||||||
|
if err := stream.RecvMsg(m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return srv.(DfdaemonUploadServer).DownloadCacheTask(m, &dfdaemonUploadDownloadCacheTaskServer{stream})
|
||||||
|
}
|
||||||
|
|
||||||
|
type DfdaemonUpload_DownloadCacheTaskServer interface {
|
||||||
|
Send(*DownloadCacheTaskResponse) error
|
||||||
|
grpc.ServerStream
|
||||||
|
}
|
||||||
|
|
||||||
|
type dfdaemonUploadDownloadCacheTaskServer struct {
|
||||||
|
grpc.ServerStream
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *dfdaemonUploadDownloadCacheTaskServer) Send(m *DownloadCacheTaskResponse) error {
|
||||||
|
return x.ServerStream.SendMsg(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
func _DfdaemonUpload_StatCacheTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(StatCacheTaskRequest)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(DfdaemonUploadServer).StatCacheTask(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: "/dfdaemon.v2.DfdaemonUpload/StatCacheTask",
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(DfdaemonUploadServer).StatCacheTask(ctx, req.(*StatCacheTaskRequest))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
func _DfdaemonUpload_DeleteCacheTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(DeleteCacheTaskRequest)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(DfdaemonUploadServer).DeleteCacheTask(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: "/dfdaemon.v2.DfdaemonUpload/DeleteCacheTask",
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(DfdaemonUploadServer).DeleteCacheTask(ctx, req.(*DeleteCacheTaskRequest))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
// DfdaemonUpload_ServiceDesc is the grpc.ServiceDesc for DfdaemonUpload service.
|
// DfdaemonUpload_ServiceDesc is the grpc.ServiceDesc for DfdaemonUpload service.
|
||||||
// It's only intended for direct use with grpc.RegisterService,
|
// It's only intended for direct use with grpc.RegisterService,
|
||||||
// and not to be introspected or modified (even as a copy)
|
// and not to be introspected or modified (even as a copy)
|
||||||
|
@ -221,6 +349,14 @@ var DfdaemonUpload_ServiceDesc = grpc.ServiceDesc{
|
||||||
MethodName: "DownloadPiece",
|
MethodName: "DownloadPiece",
|
||||||
Handler: _DfdaemonUpload_DownloadPiece_Handler,
|
Handler: _DfdaemonUpload_DownloadPiece_Handler,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
MethodName: "StatCacheTask",
|
||||||
|
Handler: _DfdaemonUpload_StatCacheTask_Handler,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
MethodName: "DeleteCacheTask",
|
||||||
|
Handler: _DfdaemonUpload_DeleteCacheTask_Handler,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Streams: []grpc.StreamDesc{
|
Streams: []grpc.StreamDesc{
|
||||||
{
|
{
|
||||||
|
@ -233,6 +369,11 @@ var DfdaemonUpload_ServiceDesc = grpc.ServiceDesc{
|
||||||
Handler: _DfdaemonUpload_SyncPieces_Handler,
|
Handler: _DfdaemonUpload_SyncPieces_Handler,
|
||||||
ServerStreams: true,
|
ServerStreams: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
StreamName: "DownloadCacheTask",
|
||||||
|
Handler: _DfdaemonUpload_DownloadCacheTask_Handler,
|
||||||
|
ServerStreams: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Metadata: "pkg/apis/dfdaemon/v2/dfdaemon.proto",
|
Metadata: "pkg/apis/dfdaemon/v2/dfdaemon.proto",
|
||||||
}
|
}
|
||||||
|
@ -251,6 +392,14 @@ type DfdaemonDownloadClient interface {
|
||||||
DeleteTask(ctx context.Context, in *DeleteTaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
DeleteTask(ctx context.Context, in *DeleteTaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
||||||
// LeaveHost releases host in scheduler.
|
// LeaveHost releases host in scheduler.
|
||||||
LeaveHost(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
LeaveHost(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
||||||
|
// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
DownloadCacheTask(ctx context.Context, in *DownloadCacheTaskRequest, opts ...grpc.CallOption) (DfdaemonDownload_DownloadCacheTaskClient, error)
|
||||||
|
// UploadCacheTask uploads cache task to p2p network.
|
||||||
|
UploadCacheTask(ctx context.Context, in *UploadCacheTaskRequest, opts ...grpc.CallOption) (*v2.CacheTask, error)
|
||||||
|
// StatCacheTask stats cache task information.
|
||||||
|
StatCacheTask(ctx context.Context, in *StatCacheTaskRequest, opts ...grpc.CallOption) (*v2.CacheTask, error)
|
||||||
|
// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
DeleteCacheTask(ctx context.Context, in *DeleteCacheTaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type dfdaemonDownloadClient struct {
|
type dfdaemonDownloadClient struct {
|
||||||
|
@ -329,6 +478,65 @@ func (c *dfdaemonDownloadClient) LeaveHost(ctx context.Context, in *emptypb.Empt
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *dfdaemonDownloadClient) DownloadCacheTask(ctx context.Context, in *DownloadCacheTaskRequest, opts ...grpc.CallOption) (DfdaemonDownload_DownloadCacheTaskClient, error) {
|
||||||
|
stream, err := c.cc.NewStream(ctx, &DfdaemonDownload_ServiceDesc.Streams[1], "/dfdaemon.v2.DfdaemonDownload/DownloadCacheTask", opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
x := &dfdaemonDownloadDownloadCacheTaskClient{stream}
|
||||||
|
if err := x.ClientStream.SendMsg(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := x.ClientStream.CloseSend(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return x, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type DfdaemonDownload_DownloadCacheTaskClient interface {
|
||||||
|
Recv() (*DownloadCacheTaskResponse, error)
|
||||||
|
grpc.ClientStream
|
||||||
|
}
|
||||||
|
|
||||||
|
type dfdaemonDownloadDownloadCacheTaskClient struct {
|
||||||
|
grpc.ClientStream
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *dfdaemonDownloadDownloadCacheTaskClient) Recv() (*DownloadCacheTaskResponse, error) {
|
||||||
|
m := new(DownloadCacheTaskResponse)
|
||||||
|
if err := x.ClientStream.RecvMsg(m); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return m, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *dfdaemonDownloadClient) UploadCacheTask(ctx context.Context, in *UploadCacheTaskRequest, opts ...grpc.CallOption) (*v2.CacheTask, error) {
|
||||||
|
out := new(v2.CacheTask)
|
||||||
|
err := c.cc.Invoke(ctx, "/dfdaemon.v2.DfdaemonDownload/UploadCacheTask", in, out, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *dfdaemonDownloadClient) StatCacheTask(ctx context.Context, in *StatCacheTaskRequest, opts ...grpc.CallOption) (*v2.CacheTask, error) {
|
||||||
|
out := new(v2.CacheTask)
|
||||||
|
err := c.cc.Invoke(ctx, "/dfdaemon.v2.DfdaemonDownload/StatCacheTask", in, out, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *dfdaemonDownloadClient) DeleteCacheTask(ctx context.Context, in *DeleteCacheTaskRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
|
||||||
|
out := new(emptypb.Empty)
|
||||||
|
err := c.cc.Invoke(ctx, "/dfdaemon.v2.DfdaemonDownload/DeleteCacheTask", in, out, opts...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
|
}
|
||||||
|
|
||||||
// DfdaemonDownloadServer is the server API for DfdaemonDownload service.
|
// DfdaemonDownloadServer is the server API for DfdaemonDownload service.
|
||||||
// All implementations should embed UnimplementedDfdaemonDownloadServer
|
// All implementations should embed UnimplementedDfdaemonDownloadServer
|
||||||
// for forward compatibility
|
// for forward compatibility
|
||||||
|
@ -343,6 +551,14 @@ type DfdaemonDownloadServer interface {
|
||||||
DeleteTask(context.Context, *DeleteTaskRequest) (*emptypb.Empty, error)
|
DeleteTask(context.Context, *DeleteTaskRequest) (*emptypb.Empty, error)
|
||||||
// LeaveHost releases host in scheduler.
|
// LeaveHost releases host in scheduler.
|
||||||
LeaveHost(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
|
LeaveHost(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
|
||||||
|
// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
DownloadCacheTask(*DownloadCacheTaskRequest, DfdaemonDownload_DownloadCacheTaskServer) error
|
||||||
|
// UploadCacheTask uploads cache task to p2p network.
|
||||||
|
UploadCacheTask(context.Context, *UploadCacheTaskRequest) (*v2.CacheTask, error)
|
||||||
|
// StatCacheTask stats cache task information.
|
||||||
|
StatCacheTask(context.Context, *StatCacheTaskRequest) (*v2.CacheTask, error)
|
||||||
|
// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
DeleteCacheTask(context.Context, *DeleteCacheTaskRequest) (*emptypb.Empty, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnimplementedDfdaemonDownloadServer should be embedded to have forward compatible implementations.
|
// UnimplementedDfdaemonDownloadServer should be embedded to have forward compatible implementations.
|
||||||
|
@ -364,6 +580,18 @@ func (UnimplementedDfdaemonDownloadServer) DeleteTask(context.Context, *DeleteTa
|
||||||
func (UnimplementedDfdaemonDownloadServer) LeaveHost(context.Context, *emptypb.Empty) (*emptypb.Empty, error) {
|
func (UnimplementedDfdaemonDownloadServer) LeaveHost(context.Context, *emptypb.Empty) (*emptypb.Empty, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method LeaveHost not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method LeaveHost not implemented")
|
||||||
}
|
}
|
||||||
|
func (UnimplementedDfdaemonDownloadServer) DownloadCacheTask(*DownloadCacheTaskRequest, DfdaemonDownload_DownloadCacheTaskServer) error {
|
||||||
|
return status.Errorf(codes.Unimplemented, "method DownloadCacheTask not implemented")
|
||||||
|
}
|
||||||
|
func (UnimplementedDfdaemonDownloadServer) UploadCacheTask(context.Context, *UploadCacheTaskRequest) (*v2.CacheTask, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method UploadCacheTask not implemented")
|
||||||
|
}
|
||||||
|
func (UnimplementedDfdaemonDownloadServer) StatCacheTask(context.Context, *StatCacheTaskRequest) (*v2.CacheTask, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method StatCacheTask not implemented")
|
||||||
|
}
|
||||||
|
func (UnimplementedDfdaemonDownloadServer) DeleteCacheTask(context.Context, *DeleteCacheTaskRequest) (*emptypb.Empty, error) {
|
||||||
|
return nil, status.Errorf(codes.Unimplemented, "method DeleteCacheTask not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
// UnsafeDfdaemonDownloadServer may be embedded to opt out of forward compatibility for this service.
|
// UnsafeDfdaemonDownloadServer may be embedded to opt out of forward compatibility for this service.
|
||||||
// Use of this interface is not recommended, as added methods to DfdaemonDownloadServer will
|
// Use of this interface is not recommended, as added methods to DfdaemonDownloadServer will
|
||||||
|
@ -469,6 +697,81 @@ func _DfdaemonDownload_LeaveHost_Handler(srv interface{}, ctx context.Context, d
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func _DfdaemonDownload_DownloadCacheTask_Handler(srv interface{}, stream grpc.ServerStream) error {
|
||||||
|
m := new(DownloadCacheTaskRequest)
|
||||||
|
if err := stream.RecvMsg(m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return srv.(DfdaemonDownloadServer).DownloadCacheTask(m, &dfdaemonDownloadDownloadCacheTaskServer{stream})
|
||||||
|
}
|
||||||
|
|
||||||
|
type DfdaemonDownload_DownloadCacheTaskServer interface {
|
||||||
|
Send(*DownloadCacheTaskResponse) error
|
||||||
|
grpc.ServerStream
|
||||||
|
}
|
||||||
|
|
||||||
|
type dfdaemonDownloadDownloadCacheTaskServer struct {
|
||||||
|
grpc.ServerStream
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *dfdaemonDownloadDownloadCacheTaskServer) Send(m *DownloadCacheTaskResponse) error {
|
||||||
|
return x.ServerStream.SendMsg(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
func _DfdaemonDownload_UploadCacheTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(UploadCacheTaskRequest)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(DfdaemonDownloadServer).UploadCacheTask(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: "/dfdaemon.v2.DfdaemonDownload/UploadCacheTask",
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(DfdaemonDownloadServer).UploadCacheTask(ctx, req.(*UploadCacheTaskRequest))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
func _DfdaemonDownload_StatCacheTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(StatCacheTaskRequest)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(DfdaemonDownloadServer).StatCacheTask(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: "/dfdaemon.v2.DfdaemonDownload/StatCacheTask",
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(DfdaemonDownloadServer).StatCacheTask(ctx, req.(*StatCacheTaskRequest))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
func _DfdaemonDownload_DeleteCacheTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
|
in := new(DeleteCacheTaskRequest)
|
||||||
|
if err := dec(in); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if interceptor == nil {
|
||||||
|
return srv.(DfdaemonDownloadServer).DeleteCacheTask(ctx, in)
|
||||||
|
}
|
||||||
|
info := &grpc.UnaryServerInfo{
|
||||||
|
Server: srv,
|
||||||
|
FullMethod: "/dfdaemon.v2.DfdaemonDownload/DeleteCacheTask",
|
||||||
|
}
|
||||||
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
|
return srv.(DfdaemonDownloadServer).DeleteCacheTask(ctx, req.(*DeleteCacheTaskRequest))
|
||||||
|
}
|
||||||
|
return interceptor(ctx, in, info, handler)
|
||||||
|
}
|
||||||
|
|
||||||
// DfdaemonDownload_ServiceDesc is the grpc.ServiceDesc for DfdaemonDownload service.
|
// DfdaemonDownload_ServiceDesc is the grpc.ServiceDesc for DfdaemonDownload service.
|
||||||
// It's only intended for direct use with grpc.RegisterService,
|
// It's only intended for direct use with grpc.RegisterService,
|
||||||
// and not to be introspected or modified (even as a copy)
|
// and not to be introspected or modified (even as a copy)
|
||||||
|
@ -492,6 +795,18 @@ var DfdaemonDownload_ServiceDesc = grpc.ServiceDesc{
|
||||||
MethodName: "LeaveHost",
|
MethodName: "LeaveHost",
|
||||||
Handler: _DfdaemonDownload_LeaveHost_Handler,
|
Handler: _DfdaemonDownload_LeaveHost_Handler,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
MethodName: "UploadCacheTask",
|
||||||
|
Handler: _DfdaemonDownload_UploadCacheTask_Handler,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
MethodName: "StatCacheTask",
|
||||||
|
Handler: _DfdaemonDownload_StatCacheTask_Handler,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
MethodName: "DeleteCacheTask",
|
||||||
|
Handler: _DfdaemonDownload_DeleteCacheTask_Handler,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Streams: []grpc.StreamDesc{
|
Streams: []grpc.StreamDesc{
|
||||||
{
|
{
|
||||||
|
@ -499,6 +814,11 @@ var DfdaemonDownload_ServiceDesc = grpc.ServiceDesc{
|
||||||
Handler: _DfdaemonDownload_DownloadTask_Handler,
|
Handler: _DfdaemonDownload_DownloadTask_Handler,
|
||||||
ServerStreams: true,
|
ServerStreams: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
StreamName: "DownloadCacheTask",
|
||||||
|
Handler: _DfdaemonDownload_DownloadCacheTask_Handler,
|
||||||
|
ServerStreams: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Metadata: "pkg/apis/dfdaemon/v2/dfdaemon.proto",
|
Metadata: "pkg/apis/dfdaemon/v2/dfdaemon.proto",
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ type RegisterPeerRequest struct {
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
// Download information.
|
// Download information.
|
||||||
Download *v2.Download `protobuf:"bytes,1,opt,name=download,proto3" json:"download,omitempty"`
|
DownloadTask *v2.DownloadTask `protobuf:"bytes,1,opt,name=download_task,json=downloadTask,proto3" json:"download_task,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *RegisterPeerRequest) Reset() {
|
func (x *RegisterPeerRequest) Reset() {
|
||||||
|
@ -83,9 +83,9 @@ func (*RegisterPeerRequest) Descriptor() ([]byte, []int) {
|
||||||
return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{0}
|
return file_pkg_apis_scheduler_v2_scheduler_proto_rawDescGZIP(), []int{0}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *RegisterPeerRequest) GetDownload() *v2.Download {
|
func (x *RegisterPeerRequest) GetDownloadTask() *v2.DownloadTask {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Download
|
return x.DownloadTask
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -2057,367 +2057,368 @@ var file_pkg_apis_scheduler_v2_scheduler_proto_rawDesc = []byte{
|
||||||
0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74,
|
0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74,
|
||||||
0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||||
0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73,
|
0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73,
|
||||||
0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x50, 0x0a, 0x13, 0x52, 0x65,
|
0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5d, 0x0a, 0x13, 0x52, 0x65,
|
||||||
0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||||
0x74, 0x12, 0x39, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20,
|
0x74, 0x12, 0x46, 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x61,
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e,
|
0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
||||||
0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02,
|
0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x61, 0x73,
|
||||||
0x10, 0x01, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x1c, 0x0a, 0x1a,
|
0x6b, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x64, 0x6f, 0x77,
|
||||||
0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72,
|
0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x22, 0x1c, 0x0a, 0x1a, 0x44, 0x6f, 0x77,
|
||||||
0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6b, 0x0a, 0x26, 0x44, 0x6f,
|
0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64,
|
||||||
0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f,
|
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6b, 0x0a, 0x26, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
|
||||||
0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71,
|
0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75,
|
||||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
|
0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||||
0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05,
|
0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
||||||
0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0,
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63,
|
0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
|
||||||
0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x63,
|
0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
|
||||||
0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a,
|
0x74, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64,
|
||||||
0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e,
|
0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x11, 0x63, 0x61,
|
||||||
0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18,
|
||||||
0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x10, 0x63, 0x61, 0x6e, 0x64, 0x69,
|
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76,
|
||||||
0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x0b, 0x64,
|
0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x10, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74,
|
||||||
0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
|
||||||
0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b,
|
0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa,
|
||||||
0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e,
|
0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73,
|
||||||
0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x65,
|
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f,
|
||||||
0x0a, 0x1b, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69,
|
0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x1b, 0x44,
|
||||||
|
0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73,
|
||||||
|
0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f,
|
||||||
|
0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01,
|
||||||
|
0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74,
|
||||||
|
0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
|
||||||
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x69, 0x65, 0x63, 0x65, 0x43, 0x6f, 0x75,
|
||||||
|
0x6e, 0x74, 0x22, 0x71, 0x0a, 0x27, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65,
|
||||||
|
0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69,
|
||||||
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a,
|
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a,
|
||||||
0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18,
|
0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18,
|
||||||
0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65,
|
0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65,
|
||||||
0x6e, 0x67, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f,
|
0x6e, 0x67, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6f,
|
||||||
0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x69, 0x65, 0x63, 0x65,
|
0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x69, 0x65, 0x63, 0x65,
|
||||||
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x71, 0x0a, 0x27, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
|
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5e, 0x0a, 0x19, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
|
||||||
0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63,
|
|
||||||
0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
|
||||||
0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67,
|
|
||||||
0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
|
|
||||||
0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65,
|
|
||||||
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x69,
|
|
||||||
0x65, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5e, 0x0a, 0x19, 0x44, 0x6f, 0x77, 0x6e,
|
|
||||||
0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65,
|
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
|
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72,
|
|
||||||
0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
|
|
||||||
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73,
|
|
||||||
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0x0a, 0x25, 0x44, 0x6f, 0x77, 0x6e,
|
|
||||||
0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f,
|
|
||||||
0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
|
||||||
0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0,
|
|
||||||
0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
|
|
||||||
0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
|
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x1c, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
|
|
||||||
0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71,
|
|
||||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x69, 0x65, 0x63, 0x65, 0x18, 0x01, 0x20,
|
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e,
|
|
||||||
0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52,
|
|
||||||
0x05, 0x70, 0x69, 0x65, 0x63, 0x65, 0x22, 0x5c, 0x0a, 0x28, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
|
|
||||||
0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75,
|
|
||||||
0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
|
|
||||||
0x73, 0x74, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x69, 0x65, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
|
||||||
0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x69,
|
|
||||||
0x65, 0x63, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x70,
|
|
||||||
0x69, 0x65, 0x63, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x1a, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
|
|
||||||
0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
|
|
||||||
0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d,
|
|
||||||
0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x65,
|
|
||||||
0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x09, 0x70,
|
|
||||||
0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
|
|
||||||
0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49,
|
|
||||||
0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x18, 0x03,
|
|
||||||
0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x42,
|
|
||||||
0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
|
|
||||||
0x22, 0xa8, 0x01, 0x0a, 0x26, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65,
|
|
||||||
0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61,
|
|
||||||
0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x70,
|
|
||||||
0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
|
|
||||||
0x0d, 0x48, 0x01, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72,
|
|
||||||
0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x02,
|
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x74, 0x61,
|
|
||||||
0x69, 0x6c, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x48, 0x00,
|
|
||||||
0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x42, 0x0f, 0x0a, 0x08, 0x72, 0x65, 0x73,
|
|
||||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70,
|
|
||||||
0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xe0, 0x0c, 0x0a, 0x13,
|
|
||||||
0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
|
|
||||||
0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
|
|
||||||
0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68,
|
|
||||||
0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64,
|
|
||||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52,
|
|
||||||
0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f,
|
|
||||||
0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
|
|
||||||
0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x15, 0x72, 0x65, 0x67,
|
|
||||||
0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
|
|
||||||
0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64,
|
|
||||||
0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72,
|
|
||||||
0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x13, 0x72,
|
|
||||||
0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
|
|
||||||
0x73, 0x74, 0x12, 0x6d, 0x0a, 0x1d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70,
|
|
||||||
0x65, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75,
|
|
||||||
0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x63, 0x68, 0x65,
|
|
||||||
0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
|
|
||||||
0x64, 0x50, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
|
|
||||||
0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50,
|
|
||||||
0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
|
||||||
0x74, 0x12, 0x94, 0x01, 0x0a, 0x2c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70,
|
|
||||||
0x65, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72,
|
|
||||||
0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
|
|
||||||
0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64,
|
|
||||||
0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
|
|
||||||
0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
|
|
||||||
0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00,
|
|
||||||
0x52, 0x26, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61,
|
|
||||||
0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65,
|
|
||||||
0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x63,
|
|
||||||
0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07,
|
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65,
|
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64,
|
|
||||||
0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x70, 0x0a, 0x1e, 0x64, 0x6f,
|
|
||||||
0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6e, 0x69,
|
|
||||||
0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01,
|
|
||||||
0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
|
|
||||||
0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69,
|
|
||||||
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
|
|
||||||
0x1b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e,
|
|
||||||
0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x97, 0x01, 0x0a,
|
|
||||||
0x2d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x62,
|
|
||||||
0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69,
|
|
||||||
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x09,
|
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72,
|
|
||||||
0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69,
|
|
||||||
0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x27, 0x64,
|
|
||||||
0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54,
|
|
||||||
0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52,
|
|
||||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6a, 0x0a, 0x1c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
|
|
||||||
0x61, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72,
|
|
||||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73,
|
|
||||||
0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e,
|
|
||||||
0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65,
|
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x19, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
|
|
||||||
0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
|
0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
0x73, 0x74, 0x12, 0x91, 0x01, 0x0a, 0x2b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
|
0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
|
||||||
0x70, 0x65, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75,
|
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01,
|
||||||
0x72, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
|
0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
|
||||||
0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64,
|
0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
|
||||||
0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
|
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0x0a, 0x25, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
|
||||||
0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
|
0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63,
|
||||||
0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
|
0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31,
|
||||||
0x25, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63,
|
0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
|
||||||
0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52,
|
0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48,
|
||||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x73, 0x0a, 0x1f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
|
0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01,
|
||||||
0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
|
0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
|
||||||
0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x6e, 0x22, 0x50, 0x0a, 0x1c, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65,
|
||||||
0x2a, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44,
|
0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||||
0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69,
|
0x74, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x69, 0x65, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
||||||
0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1c, 0x64,
|
0x32, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x69, 0x65,
|
||||||
0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69,
|
0x63, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x70, 0x69,
|
||||||
0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x9a, 0x01, 0x0a, 0x2e,
|
0x65, 0x63, 0x65, 0x22, 0x5c, 0x0a, 0x28, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50,
|
||||||
0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x62,
|
0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
|
||||||
0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69,
|
0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
|
||||||
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0d,
|
0x30, 0x0a, 0x05, 0x70, 0x69, 0x65, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
|
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x69, 0x65, 0x63, 0x65,
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63,
|
0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x70, 0x69, 0x65, 0x63,
|
||||||
0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e,
|
0x65, 0x22, 0x99, 0x01, 0x0a, 0x1a, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69,
|
||||||
0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x28,
|
0x65, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63,
|
0x12, 0x26, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
|
||||||
0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4e,
|
||||||
0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6d, 0x0a, 0x1d, 0x64, 0x6f, 0x77, 0x6e,
|
0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65,
|
||||||
0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65,
|
0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04,
|
||||||
0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c,
|
||||||
0x28, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44,
|
0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||||
0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c,
|
0x08, 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x42, 0x0f, 0x0a, 0x0d,
|
||||||
0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x64, 0x6f, 0x77,
|
0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa8, 0x01,
|
||||||
0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64,
|
0x0a, 0x26, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42,
|
||||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x94, 0x01, 0x0a, 0x2c, 0x64, 0x6f, 0x77, 0x6e,
|
0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65,
|
||||||
0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f,
|
0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x69, 0x65, 0x63,
|
||||||
0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64,
|
0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01,
|
||||||
0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34,
|
0x52, 0x0b, 0x70, 0x69, 0x65, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01,
|
||||||
0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f,
|
0x12, 0x34, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54,
|
0x0b, 0x32, 0x18, 0x2e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,
|
||||||
0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71,
|
0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x07, 0x62,
|
||||||
0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x26, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
|
0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x42, 0x0f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||||
0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63,
|
0x73, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x69, 0x65, 0x63,
|
||||||
0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0e,
|
0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xe0, 0x0c, 0x0a, 0x13, 0x41, 0x6e, 0x6e,
|
||||||
0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x13,
|
0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
0x0a, 0x11, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
|
||||||
0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x12, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x61, 0x73,
|
|
||||||
0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x63, 0x61, 0x6e,
|
|
||||||
0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01,
|
|
||||||
0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32,
|
|
||||||
0x2e, 0x50, 0x65, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52,
|
|
||||||
0x10, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74,
|
|
||||||
0x73, 0x22, 0x5d, 0x0a, 0x18, 0x4e, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53,
|
|
||||||
0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a,
|
|
||||||
0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
|
|
||||||
0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00,
|
|
||||||
0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01,
|
|
||||||
0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
|
||||||
0x22, 0xba, 0x02, 0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65,
|
|
||||||
0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x13, 0x65, 0x6d, 0x70,
|
|
||||||
0x74, 0x79, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
|
|
||||||
0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52,
|
|
||||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x11, 0x65, 0x6d, 0x70, 0x74, 0x79,
|
|
||||||
0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x14,
|
|
||||||
0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70,
|
|
||||||
0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x63, 0x68,
|
|
||||||
0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c,
|
|
||||||
0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x12,
|
|
||||||
0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
|
||||||
0x73, 0x65, 0x12, 0x68, 0x0a, 0x1c, 0x6e, 0x65, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f,
|
|
||||||
0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
|
||||||
0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64,
|
|
||||||
0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b,
|
|
||||||
0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
|
||||||
0x48, 0x00, 0x52, 0x18, 0x6e, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f,
|
|
||||||
0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x0a, 0x08,
|
|
||||||
0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x77, 0x0a,
|
|
||||||
0x0f, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
|
||||||
0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74,
|
0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74,
|
||||||
0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
|
0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
|
||||||
0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61,
|
0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61,
|
||||||
0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
|
0x73, 0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
|
||||||
0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06,
|
0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06,
|
||||||
0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x13, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e,
|
0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x15, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74,
|
||||||
0x67, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a,
|
0x65, 0x72, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
|
||||||
|
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
|
||||||
|
0x72, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65,
|
||||||
|
0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x13, 0x72, 0x65, 0x67, 0x69,
|
||||||
|
0x73, 0x74, 0x65, 0x72, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
|
||||||
|
0x6d, 0x0a, 0x1d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72,
|
||||||
|
0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
|
0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
|
||||||
|
0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65,
|
||||||
|
0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
|
0x48, 0x00, 0x52, 0x1a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72,
|
||||||
|
0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x94,
|
||||||
|
0x01, 0x0a, 0x2c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72,
|
||||||
|
0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f,
|
||||||
|
0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
|
||||||
|
0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
|
||||||
|
0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65,
|
||||||
|
0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61,
|
||||||
|
0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x26, 0x64,
|
||||||
|
0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54,
|
||||||
|
0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65,
|
||||||
|
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64,
|
||||||
|
0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
|
||||||
|
0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
|
||||||
|
0x2e, 0x52, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
|
0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
|
||||||
|
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x70, 0x0a, 0x1e, 0x64, 0x6f, 0x77, 0x6e, 0x6c,
|
||||||
|
0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
|
||||||
|
0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||||
|
0x29, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44,
|
||||||
|
0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73,
|
||||||
|
0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1b, 0x64, 0x6f,
|
||||||
|
0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68,
|
||||||
|
0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x97, 0x01, 0x0a, 0x2d, 0x64, 0x6f,
|
||||||
|
0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b,
|
||||||
|
0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73,
|
||||||
|
0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28,
|
||||||
|
0x0b, 0x32, 0x35, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
|
||||||
|
0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63,
|
||||||
|
0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
|
||||||
|
0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x27, 0x64, 0x6f, 0x77, 0x6e,
|
||||||
|
0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f,
|
||||||
|
0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
|
||||||
|
0x65, 0x73, 0x74, 0x12, 0x6a, 0x0a, 0x1c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
|
||||||
|
0x70, 0x65, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75,
|
||||||
|
0x65, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x63, 0x68, 0x65,
|
||||||
|
0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
|
||||||
|
0x64, 0x50, 0x65, 0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
|
0x73, 0x74, 0x48, 0x00, 0x52, 0x19, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65,
|
||||||
|
0x65, 0x72, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
|
||||||
|
0x91, 0x01, 0x0a, 0x2b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x65,
|
||||||
|
0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
|
||||||
|
0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
|
||||||
|
0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
|
||||||
|
0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65,
|
||||||
|
0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69,
|
||||||
|
0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x25, 0x64, 0x6f,
|
||||||
|
0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f,
|
||||||
|
0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
|
||||||
|
0x65, 0x73, 0x74, 0x12, 0x73, 0x0a, 0x1f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
|
||||||
|
0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73,
|
||||||
|
0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e,
|
||||||
|
0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
|
||||||
|
0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1c, 0x64, 0x6f, 0x77, 0x6e,
|
||||||
|
0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
|
||||||
|
0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x9a, 0x01, 0x0a, 0x2e, 0x64, 0x6f, 0x77,
|
||||||
|
0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b,
|
||||||
|
0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73,
|
||||||
|
0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28,
|
||||||
|
0x0b, 0x32, 0x36, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
|
||||||
|
0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61,
|
||||||
|
0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68,
|
||||||
|
0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x28, 0x64, 0x6f, 0x77,
|
||||||
|
0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f,
|
||||||
|
0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65,
|
||||||
|
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6d, 0x0a, 0x1d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
|
||||||
|
0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73,
|
||||||
|
0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e,
|
||||||
|
0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x1a, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f,
|
||||||
|
0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71,
|
||||||
|
0x75, 0x65, 0x73, 0x74, 0x12, 0x94, 0x01, 0x0a, 0x2c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
|
||||||
|
0x64, 0x5f, 0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f,
|
||||||
|
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65,
|
||||||
|
0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x63,
|
||||||
|
0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
|
||||||
|
0x6f, 0x61, 0x64, 0x50, 0x69, 0x65, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f,
|
||||||
|
0x75, 0x72, 0x63, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||||
|
0x74, 0x48, 0x00, 0x52, 0x26, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x69, 0x65,
|
||||||
|
0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x61,
|
||||||
|
0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x07, 0x72,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x13, 0x0a, 0x11, 0x45,
|
||||||
|
0x6d, 0x70, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||||
|
0x22, 0x5c, 0x0a, 0x12, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65,
|
||||||
|
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64,
|
||||||
|
0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
|
||||||
|
0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65,
|
||||||
|
0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x10, 0x63, 0x61,
|
||||||
|
0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x5d,
|
||||||
|
0x0a, 0x18, 0x4e, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72,
|
||||||
|
0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65,
|
||||||
|
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
|
||||||
|
0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64,
|
||||||
|
0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a,
|
||||||
|
0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xba, 0x02,
|
||||||
|
0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65,
|
||||||
|
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x13, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f,
|
||||||
|
0x74, 0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20,
|
||||||
|
0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
|
||||||
|
0x76, 0x32, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70,
|
||||||
|
0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x11, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x54, 0x61, 0x73,
|
||||||
|
0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x14, 0x6e, 0x6f, 0x72,
|
||||||
|
0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||||
|
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75,
|
||||||
|
0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x61, 0x73,
|
||||||
|
0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x12, 0x6e, 0x6f, 0x72,
|
||||||
|
0x6d, 0x61, 0x6c, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||||
|
0x68, 0x0a, 0x1c, 0x6e, 0x65, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x6f, 0x5f,
|
||||||
|
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18,
|
||||||
|
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
|
||||||
|
0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53,
|
||||||
|
0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52,
|
||||||
|
0x18, 0x6e, 0x65, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x54, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63,
|
||||||
|
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x0a, 0x08, 0x72, 0x65, 0x73,
|
||||||
|
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x77, 0x0a, 0x0f, 0x53, 0x74,
|
||||||
|
0x61, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a,
|
||||||
0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
|
0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07,
|
||||||
0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12,
|
0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12,
|
||||||
0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||||
0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49,
|
0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49,
|
||||||
0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
|
0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
|
||||||
0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65,
|
0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65,
|
||||||
0x72, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50,
|
0x72, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x13, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50,
|
||||||
0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x78, 0x0a, 0x10, 0x4c,
|
0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f,
|
||||||
0x65, 0x61, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
|
0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04,
|
||||||
0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07,
|
||||||
0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49,
|
0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa,
|
||||||
0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
|
0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x20,
|
||||||
0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73,
|
0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
|
||||||
0x6b, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03,
|
0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70,
|
0x22, 0x16, 0x0a, 0x14, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x65, 0x65, 0x72,
|
||||||
0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73,
|
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x78, 0x0a, 0x10, 0x4c, 0x65, 0x61, 0x76,
|
||||||
0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
|
0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69,
|
0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa,
|
||||||
0x64, 0x22, 0x56, 0x0a, 0x10, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65,
|
0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20,
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64,
|
0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52,
|
0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
|
||||||
0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f,
|
0x12, 0x20, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||||
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
|
0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72,
|
||||||
0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x13, 0x41, 0x6e, 0x6e,
|
0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65,
|
||||||
0x6f, 0x75, 0x6e, 0x63, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x12, 0x2d, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
|
0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x56,
|
||||||
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x42,
|
0x0a, 0x10, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x22,
|
0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
|
||||||
0x2b, 0x0a, 0x10, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75,
|
0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x68, 0x6f,
|
||||||
0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
|
0x73, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18,
|
||||||
0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13,
|
0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06,
|
||||||
0x50, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75,
|
0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x13, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e,
|
||||||
0x65, 0x73, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x05, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x2d, 0x0a,
|
0x63, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a,
|
||||||
0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f,
|
0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f,
|
||||||
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x42, 0x08, 0xfa, 0x42,
|
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x42, 0x08, 0xfa, 0x42,
|
||||||
0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x03,
|
0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x22, 0x2b, 0x0a, 0x10,
|
||||||
0x72, 0x74, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
|
0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x08, 0x01, 0x52, 0x03,
|
0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x50, 0x72, 0x6f,
|
||||||
0x72, 0x74, 0x74, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61,
|
0x62, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
0x22, 0xb2, 0x01, 0x0a, 0x05, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x68, 0x6f,
|
||||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
|
0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
||||||
0x61, 0x6d, 0x70, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x09, 0x63,
|
0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01,
|
||||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4d, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x62,
|
0x02, 0x10, 0x01, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x72, 0x74, 0x74,
|
||||||
0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
||||||
0x12, 0x35, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
|
||||||
0x32, 0x13, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
|
0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x08, 0x01, 0x52, 0x03, 0x72, 0x74, 0x74,
|
||||||
0x50, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52,
|
0x12, 0x43, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03,
|
||||||
0x06, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x22, 0x7f, 0x0a, 0x0b, 0x46, 0x61, 0x69, 0x6c, 0x65,
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||||
0x64, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01,
|
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32,
|
0x42, 0x08, 0xfa, 0x42, 0x05, 0xb2, 0x01, 0x02, 0x08, 0x01, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61,
|
||||||
0x2e, 0x48, 0x6f, 0x73, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52,
|
0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x4d, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x69,
|
||||||
0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
|
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a,
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72,
|
0x06, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
|
||||||
0x05, 0x10, 0x01, 0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
|
0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f,
|
||||||
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73,
|
0x62, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x06, 0x70, 0x72,
|
||||||
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x62,
|
0x6f, 0x62, 0x65, 0x73, 0x22, 0x7f, 0x0a, 0x0b, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x50, 0x72,
|
||||||
0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b,
|
0x6f, 0x62, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x0a, 0x06, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,
|
0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f,
|
||||||
0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x61,
|
0x73, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x68, 0x6f,
|
||||||
0x69, 0x6c, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01,
|
0x73, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
|
||||||
0x02, 0x08, 0x01, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x22, 0xdd, 0x02, 0x0a, 0x11,
|
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01,
|
||||||
0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
0xd0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
|
||||||
0x74, 0x12, 0x2d, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
|
||||||
0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f, 0x73, 0x74,
|
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x61,
|
||||||
0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74,
|
0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x70,
|
||||||
0x12, 0x57, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65,
|
0x72, 0x6f, 0x62, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x63,
|
||||||
0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x65,
|
||||||
0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50,
|
0x64, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01,
|
||||||
0x72, 0x6f, 0x62, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
|
0x52, 0x06, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x22, 0xdd, 0x02, 0x0a, 0x11, 0x53, 0x79, 0x6e,
|
||||||
0x73, 0x74, 0x48, 0x00, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74,
|
0x63, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d,
|
||||||
0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x16, 0x70, 0x72, 0x6f,
|
0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63,
|
||||||
0x62, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75,
|
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x42, 0x08, 0xfa,
|
||||||
0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65,
|
0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x57, 0x0a,
|
||||||
0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x69,
|
0x15, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72,
|
||||||
0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73,
|
||||||
0x14, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65,
|
0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x62,
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x66,
|
0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
|
||||||
0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20,
|
0x00, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52,
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f,
|
||||||
0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65,
|
0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x61,
|
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
|
||||||
0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x07, 0x72,
|
0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73,
|
||||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x47, 0x0a, 0x12, 0x53,
|
0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x70, 0x72,
|
||||||
0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
0x6f, 0x62, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
0x65, 0x12, 0x31, 0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
|
0x73, 0x74, 0x12, 0x54, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c,
|
||||||
0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f, 0x73,
|
0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
|
||||||
0x74, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x92, 0x01, 0x04, 0x08, 0x01, 0x28, 0x01, 0x52, 0x05, 0x68,
|
0x32, 0x20, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e,
|
||||||
0x6f, 0x73, 0x74, 0x73, 0x32, 0xa4, 0x05, 0x0a, 0x09, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
|
0x50, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
0x65, 0x72, 0x12, 0x59, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65,
|
0x73, 0x74, 0x48, 0x00, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65,
|
||||||
0x65, 0x72, 0x12, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
|
0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x0e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75,
|
||||||
|
0x65, 0x73, 0x74, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x47, 0x0a, 0x12, 0x53, 0x79, 0x6e, 0x63,
|
||||||
|
0x50, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31,
|
||||||
|
0x0a, 0x05, 0x68, 0x6f, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
|
||||||
|
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x42, 0x0a,
|
||||||
|
0xfa, 0x42, 0x07, 0x92, 0x01, 0x04, 0x08, 0x01, 0x28, 0x01, 0x52, 0x05, 0x68, 0x6f, 0x73, 0x74,
|
||||||
|
0x73, 0x32, 0xa4, 0x05, 0x0a, 0x09, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12,
|
||||||
|
0x59, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12,
|
||||||
|
0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41,
|
||||||
|
0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
|
0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
|
||||||
0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65,
|
0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65,
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
|
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x53, 0x74,
|
||||||
0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x50, 0x65, 0x65,
|
0x61, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
|
||||||
0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x3a, 0x0a,
|
0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65,
|
||||||
0x08, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65,
|
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76,
|
||||||
0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x50, 0x65, 0x65,
|
0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x09, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50,
|
||||||
0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
0x65, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
|
||||||
0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x09, 0x4c, 0x65, 0x61,
|
0x76, 0x32, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
|
||||||
0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
|
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
||||||
0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52,
|
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x55, 0x0a, 0x0c, 0x45,
|
||||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x73, 0x63,
|
||||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x55,
|
0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61,
|
||||||
0x0a, 0x0c, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x21,
|
0x6e, 0x67, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22,
|
||||||
0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78,
|
0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78,
|
||||||
0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||||
0x74, 0x1a, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
|
0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1d,
|
||||||
0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x73,
|
0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74,
|
||||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73,
|
0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e,
|
||||||
0x6b, 0x12, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
|
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x43,
|
||||||
0x2e, 0x53, 0x74, 0x61, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
0x0a, 0x09, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e, 0x2e, 0x73, 0x63,
|
||||||
0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x73,
|
0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65,
|
||||||
0x6b, 0x12, 0x43, 0x0a, 0x09, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x1e,
|
0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
|
||||||
0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x65,
|
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
|
||||||
0x61, 0x76, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x48,
|
||||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
0x6f, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e,
|
||||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e,
|
0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52,
|
||||||
0x63, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
||||||
0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x48, 0x6f,
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43,
|
||||||
0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
|
0x0a, 0x09, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x73, 0x63,
|
||||||
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
|
0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65,
|
||||||
0x79, 0x12, 0x43, 0x0a, 0x09, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1e,
|
0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
|
||||||
0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x65,
|
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
|
||||||
0x61, 0x76, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
0x70, 0x74, 0x79, 0x12, 0x53, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x62, 0x65,
|
||||||
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
0x73, 0x12, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76, 0x32,
|
||||||
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x53, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72,
|
0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
0x6f, 0x62, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
|
0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x76,
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x52, 0x65,
|
0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65,
|
0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0x2f, 0x5a, 0x2d, 0x64, 0x37, 0x79, 0x2e,
|
||||||
0x72, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x52,
|
0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70,
|
||||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0x2f, 0x5a, 0x2d, 0x64,
|
0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2f, 0x76, 0x32, 0x3b,
|
||||||
0x37, 0x79, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x6b, 0x67,
|
0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||||
0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2f,
|
0x33,
|
||||||
0x76, 0x32, 0x3b, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72,
|
|
||||||
0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -2466,7 +2467,7 @@ var file_pkg_apis_scheduler_v2_scheduler_proto_goTypes = []interface{}{
|
||||||
(*ProbeFailedRequest)(nil), // 29: scheduler.v2.ProbeFailedRequest
|
(*ProbeFailedRequest)(nil), // 29: scheduler.v2.ProbeFailedRequest
|
||||||
(*SyncProbesRequest)(nil), // 30: scheduler.v2.SyncProbesRequest
|
(*SyncProbesRequest)(nil), // 30: scheduler.v2.SyncProbesRequest
|
||||||
(*SyncProbesResponse)(nil), // 31: scheduler.v2.SyncProbesResponse
|
(*SyncProbesResponse)(nil), // 31: scheduler.v2.SyncProbesResponse
|
||||||
(*v2.Download)(nil), // 32: common.v2.Download
|
(*v2.DownloadTask)(nil), // 32: common.v2.DownloadTask
|
||||||
(*v2.Peer)(nil), // 33: common.v2.Peer
|
(*v2.Peer)(nil), // 33: common.v2.Peer
|
||||||
(*v2.Piece)(nil), // 34: common.v2.Piece
|
(*v2.Piece)(nil), // 34: common.v2.Piece
|
||||||
(*v21.Backend)(nil), // 35: errordetails.v2.Backend
|
(*v21.Backend)(nil), // 35: errordetails.v2.Backend
|
||||||
|
@ -2477,7 +2478,7 @@ var file_pkg_apis_scheduler_v2_scheduler_proto_goTypes = []interface{}{
|
||||||
(*v2.Task)(nil), // 40: common.v2.Task
|
(*v2.Task)(nil), // 40: common.v2.Task
|
||||||
}
|
}
|
||||||
var file_pkg_apis_scheduler_v2_scheduler_proto_depIdxs = []int32{
|
var file_pkg_apis_scheduler_v2_scheduler_proto_depIdxs = []int32{
|
||||||
32, // 0: scheduler.v2.RegisterPeerRequest.download:type_name -> common.v2.Download
|
32, // 0: scheduler.v2.RegisterPeerRequest.download_task:type_name -> common.v2.DownloadTask
|
||||||
33, // 1: scheduler.v2.RescheduleRequest.candidate_parents:type_name -> common.v2.Peer
|
33, // 1: scheduler.v2.RescheduleRequest.candidate_parents:type_name -> common.v2.Peer
|
||||||
34, // 2: scheduler.v2.DownloadPieceFinishedRequest.piece:type_name -> common.v2.Piece
|
34, // 2: scheduler.v2.DownloadPieceFinishedRequest.piece:type_name -> common.v2.Piece
|
||||||
34, // 3: scheduler.v2.DownloadPieceBackToSourceFinishedRequest.piece:type_name -> common.v2.Piece
|
34, // 3: scheduler.v2.DownloadPieceBackToSourceFinishedRequest.piece:type_name -> common.v2.Piece
|
||||||
|
|
|
@ -57,9 +57,9 @@ func (m *RegisterPeerRequest) validate(all bool) error {
|
||||||
|
|
||||||
var errors []error
|
var errors []error
|
||||||
|
|
||||||
if m.GetDownload() == nil {
|
if m.GetDownloadTask() == nil {
|
||||||
err := RegisterPeerRequestValidationError{
|
err := RegisterPeerRequestValidationError{
|
||||||
field: "Download",
|
field: "DownloadTask",
|
||||||
reason: "value is required",
|
reason: "value is required",
|
||||||
}
|
}
|
||||||
if !all {
|
if !all {
|
||||||
|
@ -69,11 +69,11 @@ func (m *RegisterPeerRequest) validate(all bool) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if all {
|
if all {
|
||||||
switch v := interface{}(m.GetDownload()).(type) {
|
switch v := interface{}(m.GetDownloadTask()).(type) {
|
||||||
case interface{ ValidateAll() error }:
|
case interface{ ValidateAll() error }:
|
||||||
if err := v.ValidateAll(); err != nil {
|
if err := v.ValidateAll(); err != nil {
|
||||||
errors = append(errors, RegisterPeerRequestValidationError{
|
errors = append(errors, RegisterPeerRequestValidationError{
|
||||||
field: "Download",
|
field: "DownloadTask",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
})
|
})
|
||||||
|
@ -81,16 +81,16 @@ func (m *RegisterPeerRequest) validate(all bool) error {
|
||||||
case interface{ Validate() error }:
|
case interface{ Validate() error }:
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
errors = append(errors, RegisterPeerRequestValidationError{
|
errors = append(errors, RegisterPeerRequestValidationError{
|
||||||
field: "Download",
|
field: "DownloadTask",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if v, ok := interface{}(m.GetDownload()).(interface{ Validate() error }); ok {
|
} else if v, ok := interface{}(m.GetDownloadTask()).(interface{ Validate() error }); ok {
|
||||||
if err := v.Validate(); err != nil {
|
if err := v.Validate(); err != nil {
|
||||||
return RegisterPeerRequestValidationError{
|
return RegisterPeerRequestValidationError{
|
||||||
field: "Download",
|
field: "DownloadTask",
|
||||||
reason: "embedded message failed validation",
|
reason: "embedded message failed validation",
|
||||||
cause: err,
|
cause: err,
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ option go_package = "d7y.io/api/v2/pkg/apis/scheduler/v2;scheduler";
|
||||||
// RegisterPeerRequest represents peer registered request of AnnouncePeerRequest.
|
// RegisterPeerRequest represents peer registered request of AnnouncePeerRequest.
|
||||||
message RegisterPeerRequest {
|
message RegisterPeerRequest {
|
||||||
// Download information.
|
// Download information.
|
||||||
common.v2.Download download = 1 [(validate.rules).message.required = true];
|
common.v2.DownloadTask download_task = 1 [(validate.rules).message.required = true];
|
||||||
}
|
}
|
||||||
|
|
||||||
// DownloadPeerStartedRequest represents peer download started request of AnnouncePeerRequest.
|
// DownloadPeerStartedRequest represents peer download started request of AnnouncePeerRequest.
|
||||||
|
|
|
@ -126,6 +126,28 @@ message Peer {
|
||||||
google.protobuf.Timestamp updated_at = 11;
|
google.protobuf.Timestamp updated_at = 11;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CachePeer metadata.
|
||||||
|
message CachePeer {
|
||||||
|
// Peer id.
|
||||||
|
string id = 1;
|
||||||
|
// Persistent represents whether the cache peer is persistent.
|
||||||
|
// If the cache peer is persistent, the cache peer will
|
||||||
|
// not be deleted when dfdamon runs garbage collection.
|
||||||
|
bool persistent = 2;
|
||||||
|
// Peer downloads costs time.
|
||||||
|
google.protobuf.Duration cost = 3;
|
||||||
|
// Peer state.
|
||||||
|
string state = 4;
|
||||||
|
// Task info.
|
||||||
|
CacheTask task = 5;
|
||||||
|
// Host info.
|
||||||
|
Host host = 6;
|
||||||
|
// Peer create time.
|
||||||
|
google.protobuf.Timestamp created_at = 7;
|
||||||
|
// Peer update time.
|
||||||
|
google.protobuf.Timestamp updated_at = 8;
|
||||||
|
}
|
||||||
|
|
||||||
// Task metadata.
|
// Task metadata.
|
||||||
message Task {
|
message Task {
|
||||||
// Task id.
|
// Task id.
|
||||||
|
@ -134,7 +156,7 @@ message Task {
|
||||||
TaskType type = 2;
|
TaskType type = 2;
|
||||||
// Download url.
|
// Download url.
|
||||||
string url = 3;
|
string url = 3;
|
||||||
// Digest of the task digest, for example md5:xxx or sha256:yyy.
|
// Digest of the task digest, for example blake3:xxx or sha256:yyy.
|
||||||
optional string digest = 4;
|
optional string digest = 4;
|
||||||
// URL tag identifies different task for same url.
|
// URL tag identifies different task for same url.
|
||||||
optional string tag = 5;
|
optional string tag = 5;
|
||||||
|
@ -170,6 +192,34 @@ message Task {
|
||||||
google.protobuf.Timestamp updated_at = 18;
|
google.protobuf.Timestamp updated_at = 18;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CacheTask metadata.
|
||||||
|
message CacheTask {
|
||||||
|
// Task id.
|
||||||
|
string id = 1;
|
||||||
|
// Replica count of the persistent cache task.
|
||||||
|
uint64 persistent_replica_count = 2;
|
||||||
|
// Replica count of the cache task.
|
||||||
|
uint64 replica_count = 3;
|
||||||
|
// Digest of the task digest, for example blake3:xxx or sha256:yyy.
|
||||||
|
string digest = 4;
|
||||||
|
// Tag is used to distinguish different cache tasks.
|
||||||
|
optional string tag = 5;
|
||||||
|
// Application of task.
|
||||||
|
optional string application = 6;
|
||||||
|
// Task piece length.
|
||||||
|
uint64 piece_length = 7;
|
||||||
|
// Task content length.
|
||||||
|
uint64 content_length = 8;
|
||||||
|
// Task piece count.
|
||||||
|
uint32 piece_count = 9;
|
||||||
|
// Task state.
|
||||||
|
string state = 10;
|
||||||
|
// Task create time.
|
||||||
|
google.protobuf.Timestamp created_at = 11;
|
||||||
|
// Task update time.
|
||||||
|
google.protobuf.Timestamp updated_at = 12;
|
||||||
|
}
|
||||||
|
|
||||||
// Host metadata.
|
// Host metadata.
|
||||||
message Host {
|
message Host {
|
||||||
// Host id.
|
// Host id.
|
||||||
|
@ -309,11 +359,11 @@ message Build {
|
||||||
optional string platform = 5;
|
optional string platform = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Download information.
|
// DownloadTask information.
|
||||||
message Download {
|
message DownloadTask {
|
||||||
// Download url.
|
// Download url.
|
||||||
string url = 1;
|
string url = 1;
|
||||||
// Digest of the task digest, for example md5:xxx or sha256:yyy.
|
// Digest of the task digest, for example :xxx or sha256:yyy.
|
||||||
optional string digest = 2;
|
optional string digest = 2;
|
||||||
// Range is url range of request. If protocol is http, range
|
// Range is url range of request. If protocol is http, range
|
||||||
// will set in request header. If protocol is others, range
|
// will set in request header. If protocol is others, range
|
||||||
|
@ -369,7 +419,7 @@ message Piece {
|
||||||
uint64 offset = 3;
|
uint64 offset = 3;
|
||||||
// Piece length.
|
// Piece length.
|
||||||
uint64 length = 4;
|
uint64 length = 4;
|
||||||
// Digest of the piece data, for example md5:xxx or sha256:yyy.
|
// Digest of the piece data, for example blake3:xxx or sha256:yyy.
|
||||||
string digest = 5;
|
string digest = 5;
|
||||||
// Piece content.
|
// Piece content.
|
||||||
optional bytes content = 6;
|
optional bytes content = 6;
|
||||||
|
|
|
@ -19,12 +19,13 @@ syntax = "proto3";
|
||||||
package dfdaemon.v2;
|
package dfdaemon.v2;
|
||||||
|
|
||||||
import "common.proto";
|
import "common.proto";
|
||||||
|
import "google/protobuf/duration.proto";
|
||||||
import "google/protobuf/empty.proto";
|
import "google/protobuf/empty.proto";
|
||||||
|
|
||||||
// DownloadTaskRequest represents request of DownloadTask.
|
// DownloadTaskRequest represents request of DownloadTask.
|
||||||
message DownloadTaskRequest {
|
message DownloadTaskRequest {
|
||||||
// Download information.
|
// Download information.
|
||||||
common.v2.Download download = 1;
|
common.v2.DownloadTask download_task = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// DownloadTaskStartedResponse represents task download started response of DownloadTaskResponse.
|
// DownloadTaskStartedResponse represents task download started response of DownloadTaskResponse.
|
||||||
|
@ -101,24 +102,6 @@ message DownloadPieceResponse {
|
||||||
common.v2.Piece piece = 1;
|
common.v2.Piece piece = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// DfdaemonUpload represents upload service of dfdaemon.
|
|
||||||
service DfdaemonUpload{
|
|
||||||
// DownloadTask downloads task from p2p network.
|
|
||||||
rpc DownloadTask(DownloadTaskRequest) returns(stream DownloadTaskResponse);
|
|
||||||
|
|
||||||
// SyncPieces syncs piece metadatas from remote peer.
|
|
||||||
rpc SyncPieces(SyncPiecesRequest) returns(stream SyncPiecesResponse);
|
|
||||||
|
|
||||||
// DownloadPiece downloads piece from the remote peer.
|
|
||||||
rpc DownloadPiece(DownloadPieceRequest)returns(DownloadPieceResponse);
|
|
||||||
}
|
|
||||||
|
|
||||||
// UploadTaskRequest represents request of UploadTask.
|
|
||||||
message UploadTaskRequest {
|
|
||||||
// Task metadata.
|
|
||||||
common.v2.Task task = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// StatTaskRequest represents request of StatTask.
|
// StatTaskRequest represents request of StatTask.
|
||||||
message StatTaskRequest {
|
message StatTaskRequest {
|
||||||
// Task id.
|
// Task id.
|
||||||
|
@ -131,14 +114,96 @@ message DeleteTaskRequest {
|
||||||
string task_id = 1;
|
string task_id = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DownloadCacheTaskRequest represents request of DownloadCacheTask.
|
||||||
|
message DownloadCacheTaskRequest {
|
||||||
|
// Host id.
|
||||||
|
string host_id = 1;
|
||||||
|
// Task id.
|
||||||
|
string task_id = 2;
|
||||||
|
// Tag is used to distinguish different cache tasks.
|
||||||
|
optional string tag = 3;
|
||||||
|
// Application of task.
|
||||||
|
optional string application = 4;
|
||||||
|
// Task piece length.
|
||||||
|
uint64 piece_length = 5;
|
||||||
|
// File path to be exported.
|
||||||
|
string output_path = 6;
|
||||||
|
// Download timeout.
|
||||||
|
optional google.protobuf.Duration timeout = 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DownloadCacheTaskStartedResponse represents task download started response of DownloadCacheTaskResponse.
|
||||||
|
message DownloadCacheTaskStartedResponse {}
|
||||||
|
|
||||||
|
// DownloadCacheTaskResponse represents response of DownloadCacheTask.
|
||||||
|
message DownloadCacheTaskResponse {
|
||||||
|
// Host id.
|
||||||
|
string host_id = 1;
|
||||||
|
// Task id.
|
||||||
|
string task_id = 2;
|
||||||
|
// Peer id.
|
||||||
|
string peer_id = 3;
|
||||||
|
|
||||||
|
oneof response {
|
||||||
|
DownloadCacheTaskStartedResponse download_cache_task_started_response = 4;
|
||||||
|
DownloadPieceFinishedResponse download_piece_finished_response = 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// UploadCacheTaskRequest represents request of UploadCacheTask.
|
||||||
|
message UploadCacheTaskRequest {
|
||||||
|
// Upload file path of cache task.
|
||||||
|
string path = 1;
|
||||||
|
// Replica count of the persistent cache task.
|
||||||
|
uint64 persistent_replica_count = 2;
|
||||||
|
// Tag is used to distinguish different cache tasks.
|
||||||
|
optional string tag = 3;
|
||||||
|
// Application of task.
|
||||||
|
optional string application = 4;
|
||||||
|
// Task piece length.
|
||||||
|
uint64 piece_length = 5;
|
||||||
|
// Download timeout.
|
||||||
|
optional google.protobuf.Duration timeout = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
// StatCacheTaskRequest represents request of StatCacheTask.
|
||||||
|
message StatCacheTaskRequest {
|
||||||
|
// Task id.
|
||||||
|
string task_id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteCacheTaskRequest represents request of DeleteCacheTask.
|
||||||
|
message DeleteCacheTaskRequest {
|
||||||
|
// Task id.
|
||||||
|
string task_id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DfdaemonUpload represents upload service of dfdaemon.
|
||||||
|
service DfdaemonUpload{
|
||||||
|
// DownloadTask downloads task from p2p network.
|
||||||
|
rpc DownloadTask(DownloadTaskRequest) returns(stream DownloadTaskResponse);
|
||||||
|
|
||||||
|
// SyncPieces syncs piece metadatas from remote peer.
|
||||||
|
rpc SyncPieces(SyncPiecesRequest) returns(stream SyncPiecesResponse);
|
||||||
|
|
||||||
|
// DownloadPiece downloads piece from the remote peer.
|
||||||
|
rpc DownloadPiece(DownloadPieceRequest)returns(DownloadPieceResponse);
|
||||||
|
|
||||||
|
// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
rpc DownloadCacheTask(DownloadCacheTaskRequest) returns(stream DownloadCacheTaskResponse);
|
||||||
|
|
||||||
|
// StatCacheTask stats cache task information.
|
||||||
|
rpc StatCacheTask(StatCacheTaskRequest) returns(common.v2.CacheTask);
|
||||||
|
|
||||||
|
// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
rpc DeleteCacheTask(DeleteCacheTaskRequest) returns(google.protobuf.Empty);
|
||||||
|
}
|
||||||
|
|
||||||
// DfdaemonDownload represents download service of dfdaemon.
|
// DfdaemonDownload represents download service of dfdaemon.
|
||||||
service DfdaemonDownload{
|
service DfdaemonDownload{
|
||||||
// DownloadTask downloads task from p2p network.
|
// DownloadTask downloads task from p2p network.
|
||||||
rpc DownloadTask(DownloadTaskRequest) returns(stream DownloadTaskResponse);
|
rpc DownloadTask(DownloadTaskRequest) returns(stream DownloadTaskResponse);
|
||||||
|
|
||||||
// UploadTask uploads task to p2p network.
|
|
||||||
rpc UploadTask(UploadTaskRequest) returns(google.protobuf.Empty);
|
|
||||||
|
|
||||||
// StatTask stats task information.
|
// StatTask stats task information.
|
||||||
rpc StatTask(StatTaskRequest) returns(common.v2.Task);
|
rpc StatTask(StatTaskRequest) returns(common.v2.Task);
|
||||||
|
|
||||||
|
@ -147,4 +212,16 @@ service DfdaemonDownload{
|
||||||
|
|
||||||
// LeaveHost releases host in scheduler.
|
// LeaveHost releases host in scheduler.
|
||||||
rpc LeaveHost(google.protobuf.Empty)returns(google.protobuf.Empty);
|
rpc LeaveHost(google.protobuf.Empty)returns(google.protobuf.Empty);
|
||||||
|
|
||||||
|
// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
rpc DownloadCacheTask(DownloadCacheTaskRequest) returns(stream DownloadCacheTaskResponse);
|
||||||
|
|
||||||
|
// UploadCacheTask uploads cache task to p2p network.
|
||||||
|
rpc UploadCacheTask(UploadCacheTaskRequest) returns(common.v2.CacheTask);
|
||||||
|
|
||||||
|
// StatCacheTask stats cache task information.
|
||||||
|
rpc StatCacheTask(StatCacheTaskRequest) returns(common.v2.CacheTask);
|
||||||
|
|
||||||
|
// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
rpc DeleteCacheTask(DeleteCacheTaskRequest) returns(google.protobuf.Empty);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ import "google/protobuf/timestamp.proto";
|
||||||
// RegisterPeerRequest represents peer registered request of AnnouncePeerRequest.
|
// RegisterPeerRequest represents peer registered request of AnnouncePeerRequest.
|
||||||
message RegisterPeerRequest {
|
message RegisterPeerRequest {
|
||||||
// Download information.
|
// Download information.
|
||||||
common.v2.Download download = 1;
|
common.v2.DownloadTask download_task = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// DownloadPeerStartedRequest represents peer download started request of AnnouncePeerRequest.
|
// DownloadPeerStartedRequest represents peer download started request of AnnouncePeerRequest.
|
||||||
|
|
|
@ -37,6 +37,38 @@ pub struct Peer {
|
||||||
#[prost(message, optional, tag = "11")]
|
#[prost(message, optional, tag = "11")]
|
||||||
pub updated_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
|
pub updated_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
|
||||||
}
|
}
|
||||||
|
/// CachePeer metadata.
|
||||||
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||||
|
pub struct CachePeer {
|
||||||
|
/// Peer id.
|
||||||
|
#[prost(string, tag = "1")]
|
||||||
|
pub id: ::prost::alloc::string::String,
|
||||||
|
/// Persistent represents whether the cache peer is persistent.
|
||||||
|
/// If the cache peer is persistent, the cache peer will
|
||||||
|
/// not be deleted when dfdamon runs garbage collection.
|
||||||
|
#[prost(bool, tag = "2")]
|
||||||
|
pub persistent: bool,
|
||||||
|
/// Peer downloads costs time.
|
||||||
|
#[prost(message, optional, tag = "3")]
|
||||||
|
pub cost: ::core::option::Option<::prost_wkt_types::Duration>,
|
||||||
|
/// Peer state.
|
||||||
|
#[prost(string, tag = "4")]
|
||||||
|
pub state: ::prost::alloc::string::String,
|
||||||
|
/// Task info.
|
||||||
|
#[prost(message, optional, tag = "5")]
|
||||||
|
pub task: ::core::option::Option<CacheTask>,
|
||||||
|
/// Host info.
|
||||||
|
#[prost(message, optional, tag = "6")]
|
||||||
|
pub host: ::core::option::Option<Host>,
|
||||||
|
/// Peer create time.
|
||||||
|
#[prost(message, optional, tag = "7")]
|
||||||
|
pub created_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
|
||||||
|
/// Peer update time.
|
||||||
|
#[prost(message, optional, tag = "8")]
|
||||||
|
pub updated_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
|
||||||
|
}
|
||||||
/// Task metadata.
|
/// Task metadata.
|
||||||
#[derive(serde::Serialize, serde::Deserialize)]
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
@ -51,7 +83,7 @@ pub struct Task {
|
||||||
/// Download url.
|
/// Download url.
|
||||||
#[prost(string, tag = "3")]
|
#[prost(string, tag = "3")]
|
||||||
pub url: ::prost::alloc::string::String,
|
pub url: ::prost::alloc::string::String,
|
||||||
/// Digest of the task digest, for example md5:xxx or sha256:yyy.
|
/// Digest of the task digest, for example blake3:xxx or sha256:yyy.
|
||||||
#[prost(string, optional, tag = "4")]
|
#[prost(string, optional, tag = "4")]
|
||||||
pub digest: ::core::option::Option<::prost::alloc::string::String>,
|
pub digest: ::core::option::Option<::prost::alloc::string::String>,
|
||||||
/// URL tag identifies different task for same url.
|
/// URL tag identifies different task for same url.
|
||||||
|
@ -104,6 +136,48 @@ pub struct Task {
|
||||||
#[prost(message, optional, tag = "18")]
|
#[prost(message, optional, tag = "18")]
|
||||||
pub updated_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
|
pub updated_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
|
||||||
}
|
}
|
||||||
|
/// CacheTask metadata.
|
||||||
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||||
|
pub struct CacheTask {
|
||||||
|
/// Task id.
|
||||||
|
#[prost(string, tag = "1")]
|
||||||
|
pub id: ::prost::alloc::string::String,
|
||||||
|
/// Replica count of the persistent cache task.
|
||||||
|
#[prost(uint64, tag = "2")]
|
||||||
|
pub persistent_replica_count: u64,
|
||||||
|
/// Replica count of the cache task.
|
||||||
|
#[prost(uint64, tag = "3")]
|
||||||
|
pub replica_count: u64,
|
||||||
|
/// Digest of the task digest, for example blake3:xxx or sha256:yyy.
|
||||||
|
#[prost(string, tag = "4")]
|
||||||
|
pub digest: ::prost::alloc::string::String,
|
||||||
|
/// Tag is used to distinguish different cache tasks.
|
||||||
|
#[prost(string, optional, tag = "5")]
|
||||||
|
pub tag: ::core::option::Option<::prost::alloc::string::String>,
|
||||||
|
/// Application of task.
|
||||||
|
#[prost(string, optional, tag = "6")]
|
||||||
|
pub application: ::core::option::Option<::prost::alloc::string::String>,
|
||||||
|
/// Task piece length.
|
||||||
|
#[prost(uint64, tag = "7")]
|
||||||
|
pub piece_length: u64,
|
||||||
|
/// Task content length.
|
||||||
|
#[prost(uint64, tag = "8")]
|
||||||
|
pub content_length: u64,
|
||||||
|
/// Task piece count.
|
||||||
|
#[prost(uint32, tag = "9")]
|
||||||
|
pub piece_count: u32,
|
||||||
|
/// Task state.
|
||||||
|
#[prost(string, tag = "10")]
|
||||||
|
pub state: ::prost::alloc::string::String,
|
||||||
|
/// Task create time.
|
||||||
|
#[prost(message, optional, tag = "11")]
|
||||||
|
pub created_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
|
||||||
|
/// Task update time.
|
||||||
|
#[prost(message, optional, tag = "12")]
|
||||||
|
pub updated_at: ::core::option::Option<::prost_wkt_types::Timestamp>,
|
||||||
|
}
|
||||||
/// Host metadata.
|
/// Host metadata.
|
||||||
#[derive(serde::Serialize, serde::Deserialize)]
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
@ -312,15 +386,15 @@ pub struct Build {
|
||||||
#[prost(string, optional, tag = "5")]
|
#[prost(string, optional, tag = "5")]
|
||||||
pub platform: ::core::option::Option<::prost::alloc::string::String>,
|
pub platform: ::core::option::Option<::prost::alloc::string::String>,
|
||||||
}
|
}
|
||||||
/// Download information.
|
/// DownloadTask information.
|
||||||
#[derive(serde::Serialize, serde::Deserialize)]
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||||
pub struct Download {
|
pub struct DownloadTask {
|
||||||
/// Download url.
|
/// Download url.
|
||||||
#[prost(string, tag = "1")]
|
#[prost(string, tag = "1")]
|
||||||
pub url: ::prost::alloc::string::String,
|
pub url: ::prost::alloc::string::String,
|
||||||
/// Digest of the task digest, for example md5:xxx or sha256:yyy.
|
/// Digest of the task digest, for example :xxx or sha256:yyy.
|
||||||
#[prost(string, optional, tag = "2")]
|
#[prost(string, optional, tag = "2")]
|
||||||
pub digest: ::core::option::Option<::prost::alloc::string::String>,
|
pub digest: ::core::option::Option<::prost::alloc::string::String>,
|
||||||
/// Range is url range of request. If protocol is http, range
|
/// Range is url range of request. If protocol is http, range
|
||||||
|
@ -404,7 +478,7 @@ pub struct Piece {
|
||||||
/// Piece length.
|
/// Piece length.
|
||||||
#[prost(uint64, tag = "4")]
|
#[prost(uint64, tag = "4")]
|
||||||
pub length: u64,
|
pub length: u64,
|
||||||
/// Digest of the piece data, for example md5:xxx or sha256:yyy.
|
/// Digest of the piece data, for example blake3:xxx or sha256:yyy.
|
||||||
#[prost(string, tag = "5")]
|
#[prost(string, tag = "5")]
|
||||||
pub digest: ::prost::alloc::string::String,
|
pub digest: ::prost::alloc::string::String,
|
||||||
/// Piece content.
|
/// Piece content.
|
||||||
|
|
Binary file not shown.
|
@ -5,7 +5,7 @@
|
||||||
pub struct DownloadTaskRequest {
|
pub struct DownloadTaskRequest {
|
||||||
/// Download information.
|
/// Download information.
|
||||||
#[prost(message, optional, tag = "1")]
|
#[prost(message, optional, tag = "1")]
|
||||||
pub download: ::core::option::Option<super::super::common::v2::Download>,
|
pub download_task: ::core::option::Option<super::super::common::v2::DownloadTask>,
|
||||||
}
|
}
|
||||||
/// DownloadTaskStartedResponse represents task download started response of DownloadTaskResponse.
|
/// DownloadTaskStartedResponse represents task download started response of DownloadTaskResponse.
|
||||||
#[derive(serde::Serialize, serde::Deserialize)]
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
|
@ -122,15 +122,6 @@ pub struct DownloadPieceResponse {
|
||||||
#[prost(message, optional, tag = "1")]
|
#[prost(message, optional, tag = "1")]
|
||||||
pub piece: ::core::option::Option<super::super::common::v2::Piece>,
|
pub piece: ::core::option::Option<super::super::common::v2::Piece>,
|
||||||
}
|
}
|
||||||
/// UploadTaskRequest represents request of UploadTask.
|
|
||||||
#[derive(serde::Serialize, serde::Deserialize)]
|
|
||||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
|
||||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
|
||||||
pub struct UploadTaskRequest {
|
|
||||||
/// Task metadata.
|
|
||||||
#[prost(message, optional, tag = "1")]
|
|
||||||
pub task: ::core::option::Option<super::super::common::v2::Task>,
|
|
||||||
}
|
|
||||||
/// StatTaskRequest represents request of StatTask.
|
/// StatTaskRequest represents request of StatTask.
|
||||||
#[derive(serde::Serialize, serde::Deserialize)]
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
#[allow(clippy::derive_partial_eq_without_eq)]
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
@ -149,6 +140,109 @@ pub struct DeleteTaskRequest {
|
||||||
#[prost(string, tag = "1")]
|
#[prost(string, tag = "1")]
|
||||||
pub task_id: ::prost::alloc::string::String,
|
pub task_id: ::prost::alloc::string::String,
|
||||||
}
|
}
|
||||||
|
/// DownloadCacheTaskRequest represents request of DownloadCacheTask.
|
||||||
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||||
|
pub struct DownloadCacheTaskRequest {
|
||||||
|
/// Host id.
|
||||||
|
#[prost(string, tag = "1")]
|
||||||
|
pub host_id: ::prost::alloc::string::String,
|
||||||
|
/// Task id.
|
||||||
|
#[prost(string, tag = "2")]
|
||||||
|
pub task_id: ::prost::alloc::string::String,
|
||||||
|
/// Tag is used to distinguish different cache tasks.
|
||||||
|
#[prost(string, optional, tag = "3")]
|
||||||
|
pub tag: ::core::option::Option<::prost::alloc::string::String>,
|
||||||
|
/// Application of task.
|
||||||
|
#[prost(string, optional, tag = "4")]
|
||||||
|
pub application: ::core::option::Option<::prost::alloc::string::String>,
|
||||||
|
/// Task piece length.
|
||||||
|
#[prost(uint64, tag = "5")]
|
||||||
|
pub piece_length: u64,
|
||||||
|
/// File path to be exported.
|
||||||
|
#[prost(string, tag = "6")]
|
||||||
|
pub output_path: ::prost::alloc::string::String,
|
||||||
|
/// Download timeout.
|
||||||
|
#[prost(message, optional, tag = "7")]
|
||||||
|
pub timeout: ::core::option::Option<::prost_wkt_types::Duration>,
|
||||||
|
}
|
||||||
|
/// DownloadCacheTaskStartedResponse represents task download started response of DownloadCacheTaskResponse.
|
||||||
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||||
|
pub struct DownloadCacheTaskStartedResponse {}
|
||||||
|
/// DownloadCacheTaskResponse represents response of DownloadCacheTask.
|
||||||
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||||
|
pub struct DownloadCacheTaskResponse {
|
||||||
|
/// Host id.
|
||||||
|
#[prost(string, tag = "1")]
|
||||||
|
pub host_id: ::prost::alloc::string::String,
|
||||||
|
/// Task id.
|
||||||
|
#[prost(string, tag = "2")]
|
||||||
|
pub task_id: ::prost::alloc::string::String,
|
||||||
|
/// Peer id.
|
||||||
|
#[prost(string, tag = "3")]
|
||||||
|
pub peer_id: ::prost::alloc::string::String,
|
||||||
|
#[prost(oneof = "download_cache_task_response::Response", tags = "4, 5")]
|
||||||
|
pub response: ::core::option::Option<download_cache_task_response::Response>,
|
||||||
|
}
|
||||||
|
/// Nested message and enum types in `DownloadCacheTaskResponse`.
|
||||||
|
pub mod download_cache_task_response {
|
||||||
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
#[derive(Clone, PartialEq, ::prost::Oneof)]
|
||||||
|
pub enum Response {
|
||||||
|
#[prost(message, tag = "4")]
|
||||||
|
DownloadCacheTaskStartedResponse(super::DownloadCacheTaskStartedResponse),
|
||||||
|
#[prost(message, tag = "5")]
|
||||||
|
DownloadPieceFinishedResponse(super::DownloadPieceFinishedResponse),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// UploadCacheTaskRequest represents request of UploadCacheTask.
|
||||||
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||||
|
pub struct UploadCacheTaskRequest {
|
||||||
|
/// Upload file path of cache task.
|
||||||
|
#[prost(string, tag = "1")]
|
||||||
|
pub path: ::prost::alloc::string::String,
|
||||||
|
/// Replica count of the persistent cache task.
|
||||||
|
#[prost(uint64, tag = "2")]
|
||||||
|
pub persistent_replica_count: u64,
|
||||||
|
/// Tag is used to distinguish different cache tasks.
|
||||||
|
#[prost(string, optional, tag = "3")]
|
||||||
|
pub tag: ::core::option::Option<::prost::alloc::string::String>,
|
||||||
|
/// Application of task.
|
||||||
|
#[prost(string, optional, tag = "4")]
|
||||||
|
pub application: ::core::option::Option<::prost::alloc::string::String>,
|
||||||
|
/// Task piece length.
|
||||||
|
#[prost(uint64, tag = "5")]
|
||||||
|
pub piece_length: u64,
|
||||||
|
/// Download timeout.
|
||||||
|
#[prost(message, optional, tag = "6")]
|
||||||
|
pub timeout: ::core::option::Option<::prost_wkt_types::Duration>,
|
||||||
|
}
|
||||||
|
/// StatCacheTaskRequest represents request of StatCacheTask.
|
||||||
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||||
|
pub struct StatCacheTaskRequest {
|
||||||
|
/// Task id.
|
||||||
|
#[prost(string, tag = "1")]
|
||||||
|
pub task_id: ::prost::alloc::string::String,
|
||||||
|
}
|
||||||
|
/// DeleteCacheTaskRequest represents request of DeleteCacheTask.
|
||||||
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
|
#[allow(clippy::derive_partial_eq_without_eq)]
|
||||||
|
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||||
|
pub struct DeleteCacheTaskRequest {
|
||||||
|
/// Task id.
|
||||||
|
#[prost(string, tag = "1")]
|
||||||
|
pub task_id: ::prost::alloc::string::String,
|
||||||
|
}
|
||||||
/// Generated client implementations.
|
/// Generated client implementations.
|
||||||
pub mod dfdaemon_upload_client {
|
pub mod dfdaemon_upload_client {
|
||||||
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
|
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
|
||||||
|
@ -313,6 +407,85 @@ pub mod dfdaemon_upload_client {
|
||||||
.insert(GrpcMethod::new("dfdaemon.v2.DfdaemonUpload", "DownloadPiece"));
|
.insert(GrpcMethod::new("dfdaemon.v2.DfdaemonUpload", "DownloadPiece"));
|
||||||
self.inner.unary(req, path, codec).await
|
self.inner.unary(req, path, codec).await
|
||||||
}
|
}
|
||||||
|
/// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
pub async fn download_cache_task(
|
||||||
|
&mut self,
|
||||||
|
request: impl tonic::IntoRequest<super::DownloadCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<
|
||||||
|
tonic::Response<tonic::codec::Streaming<super::DownloadCacheTaskResponse>>,
|
||||||
|
tonic::Status,
|
||||||
|
> {
|
||||||
|
self.inner
|
||||||
|
.ready()
|
||||||
|
.await
|
||||||
|
.map_err(|e| {
|
||||||
|
tonic::Status::new(
|
||||||
|
tonic::Code::Unknown,
|
||||||
|
format!("Service was not ready: {}", e.into()),
|
||||||
|
)
|
||||||
|
})?;
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let path = http::uri::PathAndQuery::from_static(
|
||||||
|
"/dfdaemon.v2.DfdaemonUpload/DownloadCacheTask",
|
||||||
|
);
|
||||||
|
let mut req = request.into_request();
|
||||||
|
req.extensions_mut()
|
||||||
|
.insert(
|
||||||
|
GrpcMethod::new("dfdaemon.v2.DfdaemonUpload", "DownloadCacheTask"),
|
||||||
|
);
|
||||||
|
self.inner.server_streaming(req, path, codec).await
|
||||||
|
}
|
||||||
|
/// StatCacheTask stats cache task information.
|
||||||
|
pub async fn stat_cache_task(
|
||||||
|
&mut self,
|
||||||
|
request: impl tonic::IntoRequest<super::StatCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<
|
||||||
|
tonic::Response<super::super::super::common::v2::CacheTask>,
|
||||||
|
tonic::Status,
|
||||||
|
> {
|
||||||
|
self.inner
|
||||||
|
.ready()
|
||||||
|
.await
|
||||||
|
.map_err(|e| {
|
||||||
|
tonic::Status::new(
|
||||||
|
tonic::Code::Unknown,
|
||||||
|
format!("Service was not ready: {}", e.into()),
|
||||||
|
)
|
||||||
|
})?;
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let path = http::uri::PathAndQuery::from_static(
|
||||||
|
"/dfdaemon.v2.DfdaemonUpload/StatCacheTask",
|
||||||
|
);
|
||||||
|
let mut req = request.into_request();
|
||||||
|
req.extensions_mut()
|
||||||
|
.insert(GrpcMethod::new("dfdaemon.v2.DfdaemonUpload", "StatCacheTask"));
|
||||||
|
self.inner.unary(req, path, codec).await
|
||||||
|
}
|
||||||
|
/// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
pub async fn delete_cache_task(
|
||||||
|
&mut self,
|
||||||
|
request: impl tonic::IntoRequest<super::DeleteCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<tonic::Response<()>, tonic::Status> {
|
||||||
|
self.inner
|
||||||
|
.ready()
|
||||||
|
.await
|
||||||
|
.map_err(|e| {
|
||||||
|
tonic::Status::new(
|
||||||
|
tonic::Code::Unknown,
|
||||||
|
format!("Service was not ready: {}", e.into()),
|
||||||
|
)
|
||||||
|
})?;
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let path = http::uri::PathAndQuery::from_static(
|
||||||
|
"/dfdaemon.v2.DfdaemonUpload/DeleteCacheTask",
|
||||||
|
);
|
||||||
|
let mut req = request.into_request();
|
||||||
|
req.extensions_mut()
|
||||||
|
.insert(
|
||||||
|
GrpcMethod::new("dfdaemon.v2.DfdaemonUpload", "DeleteCacheTask"),
|
||||||
|
);
|
||||||
|
self.inner.unary(req, path, codec).await
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// Generated client implementations.
|
/// Generated client implementations.
|
||||||
|
@ -427,29 +600,6 @@ pub mod dfdaemon_download_client {
|
||||||
.insert(GrpcMethod::new("dfdaemon.v2.DfdaemonDownload", "DownloadTask"));
|
.insert(GrpcMethod::new("dfdaemon.v2.DfdaemonDownload", "DownloadTask"));
|
||||||
self.inner.server_streaming(req, path, codec).await
|
self.inner.server_streaming(req, path, codec).await
|
||||||
}
|
}
|
||||||
/// UploadTask uploads task to p2p network.
|
|
||||||
pub async fn upload_task(
|
|
||||||
&mut self,
|
|
||||||
request: impl tonic::IntoRequest<super::UploadTaskRequest>,
|
|
||||||
) -> std::result::Result<tonic::Response<()>, tonic::Status> {
|
|
||||||
self.inner
|
|
||||||
.ready()
|
|
||||||
.await
|
|
||||||
.map_err(|e| {
|
|
||||||
tonic::Status::new(
|
|
||||||
tonic::Code::Unknown,
|
|
||||||
format!("Service was not ready: {}", e.into()),
|
|
||||||
)
|
|
||||||
})?;
|
|
||||||
let codec = tonic::codec::ProstCodec::default();
|
|
||||||
let path = http::uri::PathAndQuery::from_static(
|
|
||||||
"/dfdaemon.v2.DfdaemonDownload/UploadTask",
|
|
||||||
);
|
|
||||||
let mut req = request.into_request();
|
|
||||||
req.extensions_mut()
|
|
||||||
.insert(GrpcMethod::new("dfdaemon.v2.DfdaemonDownload", "UploadTask"));
|
|
||||||
self.inner.unary(req, path, codec).await
|
|
||||||
}
|
|
||||||
/// StatTask stats task information.
|
/// StatTask stats task information.
|
||||||
pub async fn stat_task(
|
pub async fn stat_task(
|
||||||
&mut self,
|
&mut self,
|
||||||
|
@ -522,6 +672,115 @@ pub mod dfdaemon_download_client {
|
||||||
.insert(GrpcMethod::new("dfdaemon.v2.DfdaemonDownload", "LeaveHost"));
|
.insert(GrpcMethod::new("dfdaemon.v2.DfdaemonDownload", "LeaveHost"));
|
||||||
self.inner.unary(req, path, codec).await
|
self.inner.unary(req, path, codec).await
|
||||||
}
|
}
|
||||||
|
/// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
pub async fn download_cache_task(
|
||||||
|
&mut self,
|
||||||
|
request: impl tonic::IntoRequest<super::DownloadCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<
|
||||||
|
tonic::Response<tonic::codec::Streaming<super::DownloadCacheTaskResponse>>,
|
||||||
|
tonic::Status,
|
||||||
|
> {
|
||||||
|
self.inner
|
||||||
|
.ready()
|
||||||
|
.await
|
||||||
|
.map_err(|e| {
|
||||||
|
tonic::Status::new(
|
||||||
|
tonic::Code::Unknown,
|
||||||
|
format!("Service was not ready: {}", e.into()),
|
||||||
|
)
|
||||||
|
})?;
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let path = http::uri::PathAndQuery::from_static(
|
||||||
|
"/dfdaemon.v2.DfdaemonDownload/DownloadCacheTask",
|
||||||
|
);
|
||||||
|
let mut req = request.into_request();
|
||||||
|
req.extensions_mut()
|
||||||
|
.insert(
|
||||||
|
GrpcMethod::new("dfdaemon.v2.DfdaemonDownload", "DownloadCacheTask"),
|
||||||
|
);
|
||||||
|
self.inner.server_streaming(req, path, codec).await
|
||||||
|
}
|
||||||
|
/// UploadCacheTask uploads cache task to p2p network.
|
||||||
|
pub async fn upload_cache_task(
|
||||||
|
&mut self,
|
||||||
|
request: impl tonic::IntoRequest<super::UploadCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<
|
||||||
|
tonic::Response<super::super::super::common::v2::CacheTask>,
|
||||||
|
tonic::Status,
|
||||||
|
> {
|
||||||
|
self.inner
|
||||||
|
.ready()
|
||||||
|
.await
|
||||||
|
.map_err(|e| {
|
||||||
|
tonic::Status::new(
|
||||||
|
tonic::Code::Unknown,
|
||||||
|
format!("Service was not ready: {}", e.into()),
|
||||||
|
)
|
||||||
|
})?;
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let path = http::uri::PathAndQuery::from_static(
|
||||||
|
"/dfdaemon.v2.DfdaemonDownload/UploadCacheTask",
|
||||||
|
);
|
||||||
|
let mut req = request.into_request();
|
||||||
|
req.extensions_mut()
|
||||||
|
.insert(
|
||||||
|
GrpcMethod::new("dfdaemon.v2.DfdaemonDownload", "UploadCacheTask"),
|
||||||
|
);
|
||||||
|
self.inner.unary(req, path, codec).await
|
||||||
|
}
|
||||||
|
/// StatCacheTask stats cache task information.
|
||||||
|
pub async fn stat_cache_task(
|
||||||
|
&mut self,
|
||||||
|
request: impl tonic::IntoRequest<super::StatCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<
|
||||||
|
tonic::Response<super::super::super::common::v2::CacheTask>,
|
||||||
|
tonic::Status,
|
||||||
|
> {
|
||||||
|
self.inner
|
||||||
|
.ready()
|
||||||
|
.await
|
||||||
|
.map_err(|e| {
|
||||||
|
tonic::Status::new(
|
||||||
|
tonic::Code::Unknown,
|
||||||
|
format!("Service was not ready: {}", e.into()),
|
||||||
|
)
|
||||||
|
})?;
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let path = http::uri::PathAndQuery::from_static(
|
||||||
|
"/dfdaemon.v2.DfdaemonDownload/StatCacheTask",
|
||||||
|
);
|
||||||
|
let mut req = request.into_request();
|
||||||
|
req.extensions_mut()
|
||||||
|
.insert(
|
||||||
|
GrpcMethod::new("dfdaemon.v2.DfdaemonDownload", "StatCacheTask"),
|
||||||
|
);
|
||||||
|
self.inner.unary(req, path, codec).await
|
||||||
|
}
|
||||||
|
/// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
pub async fn delete_cache_task(
|
||||||
|
&mut self,
|
||||||
|
request: impl tonic::IntoRequest<super::DeleteCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<tonic::Response<()>, tonic::Status> {
|
||||||
|
self.inner
|
||||||
|
.ready()
|
||||||
|
.await
|
||||||
|
.map_err(|e| {
|
||||||
|
tonic::Status::new(
|
||||||
|
tonic::Code::Unknown,
|
||||||
|
format!("Service was not ready: {}", e.into()),
|
||||||
|
)
|
||||||
|
})?;
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let path = http::uri::PathAndQuery::from_static(
|
||||||
|
"/dfdaemon.v2.DfdaemonDownload/DeleteCacheTask",
|
||||||
|
);
|
||||||
|
let mut req = request.into_request();
|
||||||
|
req.extensions_mut()
|
||||||
|
.insert(
|
||||||
|
GrpcMethod::new("dfdaemon.v2.DfdaemonDownload", "DeleteCacheTask"),
|
||||||
|
);
|
||||||
|
self.inner.unary(req, path, codec).await
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// Generated server implementations.
|
/// Generated server implementations.
|
||||||
|
@ -564,6 +823,36 @@ pub mod dfdaemon_upload_server {
|
||||||
tonic::Response<super::DownloadPieceResponse>,
|
tonic::Response<super::DownloadPieceResponse>,
|
||||||
tonic::Status,
|
tonic::Status,
|
||||||
>;
|
>;
|
||||||
|
/// Server streaming response type for the DownloadCacheTask method.
|
||||||
|
type DownloadCacheTaskStream: futures_core::Stream<
|
||||||
|
Item = std::result::Result<
|
||||||
|
super::DownloadCacheTaskResponse,
|
||||||
|
tonic::Status,
|
||||||
|
>,
|
||||||
|
>
|
||||||
|
+ Send
|
||||||
|
+ 'static;
|
||||||
|
/// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
async fn download_cache_task(
|
||||||
|
&self,
|
||||||
|
request: tonic::Request<super::DownloadCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<
|
||||||
|
tonic::Response<Self::DownloadCacheTaskStream>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
/// StatCacheTask stats cache task information.
|
||||||
|
async fn stat_cache_task(
|
||||||
|
&self,
|
||||||
|
request: tonic::Request<super::StatCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<
|
||||||
|
tonic::Response<super::super::super::common::v2::CacheTask>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
/// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
async fn delete_cache_task(
|
||||||
|
&self,
|
||||||
|
request: tonic::Request<super::DeleteCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<tonic::Response<()>, tonic::Status>;
|
||||||
}
|
}
|
||||||
/// DfdaemonUpload represents upload service of dfdaemon.
|
/// DfdaemonUpload represents upload service of dfdaemon.
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
@ -783,6 +1072,146 @@ pub mod dfdaemon_upload_server {
|
||||||
};
|
};
|
||||||
Box::pin(fut)
|
Box::pin(fut)
|
||||||
}
|
}
|
||||||
|
"/dfdaemon.v2.DfdaemonUpload/DownloadCacheTask" => {
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
|
struct DownloadCacheTaskSvc<T: DfdaemonUpload>(pub Arc<T>);
|
||||||
|
impl<
|
||||||
|
T: DfdaemonUpload,
|
||||||
|
> tonic::server::ServerStreamingService<
|
||||||
|
super::DownloadCacheTaskRequest,
|
||||||
|
> for DownloadCacheTaskSvc<T> {
|
||||||
|
type Response = super::DownloadCacheTaskResponse;
|
||||||
|
type ResponseStream = T::DownloadCacheTaskStream;
|
||||||
|
type Future = BoxFuture<
|
||||||
|
tonic::Response<Self::ResponseStream>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
fn call(
|
||||||
|
&mut self,
|
||||||
|
request: tonic::Request<super::DownloadCacheTaskRequest>,
|
||||||
|
) -> Self::Future {
|
||||||
|
let inner = Arc::clone(&self.0);
|
||||||
|
let fut = async move {
|
||||||
|
(*inner).download_cache_task(request).await
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let accept_compression_encodings = self.accept_compression_encodings;
|
||||||
|
let send_compression_encodings = self.send_compression_encodings;
|
||||||
|
let max_decoding_message_size = self.max_decoding_message_size;
|
||||||
|
let max_encoding_message_size = self.max_encoding_message_size;
|
||||||
|
let inner = self.inner.clone();
|
||||||
|
let fut = async move {
|
||||||
|
let inner = inner.0;
|
||||||
|
let method = DownloadCacheTaskSvc(inner);
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let mut grpc = tonic::server::Grpc::new(codec)
|
||||||
|
.apply_compression_config(
|
||||||
|
accept_compression_encodings,
|
||||||
|
send_compression_encodings,
|
||||||
|
)
|
||||||
|
.apply_max_message_size_config(
|
||||||
|
max_decoding_message_size,
|
||||||
|
max_encoding_message_size,
|
||||||
|
);
|
||||||
|
let res = grpc.server_streaming(method, req).await;
|
||||||
|
Ok(res)
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
"/dfdaemon.v2.DfdaemonUpload/StatCacheTask" => {
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
|
struct StatCacheTaskSvc<T: DfdaemonUpload>(pub Arc<T>);
|
||||||
|
impl<
|
||||||
|
T: DfdaemonUpload,
|
||||||
|
> tonic::server::UnaryService<super::StatCacheTaskRequest>
|
||||||
|
for StatCacheTaskSvc<T> {
|
||||||
|
type Response = super::super::super::common::v2::CacheTask;
|
||||||
|
type Future = BoxFuture<
|
||||||
|
tonic::Response<Self::Response>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
fn call(
|
||||||
|
&mut self,
|
||||||
|
request: tonic::Request<super::StatCacheTaskRequest>,
|
||||||
|
) -> Self::Future {
|
||||||
|
let inner = Arc::clone(&self.0);
|
||||||
|
let fut = async move {
|
||||||
|
(*inner).stat_cache_task(request).await
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let accept_compression_encodings = self.accept_compression_encodings;
|
||||||
|
let send_compression_encodings = self.send_compression_encodings;
|
||||||
|
let max_decoding_message_size = self.max_decoding_message_size;
|
||||||
|
let max_encoding_message_size = self.max_encoding_message_size;
|
||||||
|
let inner = self.inner.clone();
|
||||||
|
let fut = async move {
|
||||||
|
let inner = inner.0;
|
||||||
|
let method = StatCacheTaskSvc(inner);
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let mut grpc = tonic::server::Grpc::new(codec)
|
||||||
|
.apply_compression_config(
|
||||||
|
accept_compression_encodings,
|
||||||
|
send_compression_encodings,
|
||||||
|
)
|
||||||
|
.apply_max_message_size_config(
|
||||||
|
max_decoding_message_size,
|
||||||
|
max_encoding_message_size,
|
||||||
|
);
|
||||||
|
let res = grpc.unary(method, req).await;
|
||||||
|
Ok(res)
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
"/dfdaemon.v2.DfdaemonUpload/DeleteCacheTask" => {
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
|
struct DeleteCacheTaskSvc<T: DfdaemonUpload>(pub Arc<T>);
|
||||||
|
impl<
|
||||||
|
T: DfdaemonUpload,
|
||||||
|
> tonic::server::UnaryService<super::DeleteCacheTaskRequest>
|
||||||
|
for DeleteCacheTaskSvc<T> {
|
||||||
|
type Response = ();
|
||||||
|
type Future = BoxFuture<
|
||||||
|
tonic::Response<Self::Response>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
fn call(
|
||||||
|
&mut self,
|
||||||
|
request: tonic::Request<super::DeleteCacheTaskRequest>,
|
||||||
|
) -> Self::Future {
|
||||||
|
let inner = Arc::clone(&self.0);
|
||||||
|
let fut = async move {
|
||||||
|
(*inner).delete_cache_task(request).await
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let accept_compression_encodings = self.accept_compression_encodings;
|
||||||
|
let send_compression_encodings = self.send_compression_encodings;
|
||||||
|
let max_decoding_message_size = self.max_decoding_message_size;
|
||||||
|
let max_encoding_message_size = self.max_encoding_message_size;
|
||||||
|
let inner = self.inner.clone();
|
||||||
|
let fut = async move {
|
||||||
|
let inner = inner.0;
|
||||||
|
let method = DeleteCacheTaskSvc(inner);
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let mut grpc = tonic::server::Grpc::new(codec)
|
||||||
|
.apply_compression_config(
|
||||||
|
accept_compression_encodings,
|
||||||
|
send_compression_encodings,
|
||||||
|
)
|
||||||
|
.apply_max_message_size_config(
|
||||||
|
max_decoding_message_size,
|
||||||
|
max_encoding_message_size,
|
||||||
|
);
|
||||||
|
let res = grpc.unary(method, req).await;
|
||||||
|
Ok(res)
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
Box::pin(async move {
|
Box::pin(async move {
|
||||||
Ok(
|
Ok(
|
||||||
|
@ -845,11 +1274,6 @@ pub mod dfdaemon_download_server {
|
||||||
tonic::Response<Self::DownloadTaskStream>,
|
tonic::Response<Self::DownloadTaskStream>,
|
||||||
tonic::Status,
|
tonic::Status,
|
||||||
>;
|
>;
|
||||||
/// UploadTask uploads task to p2p network.
|
|
||||||
async fn upload_task(
|
|
||||||
&self,
|
|
||||||
request: tonic::Request<super::UploadTaskRequest>,
|
|
||||||
) -> std::result::Result<tonic::Response<()>, tonic::Status>;
|
|
||||||
/// StatTask stats task information.
|
/// StatTask stats task information.
|
||||||
async fn stat_task(
|
async fn stat_task(
|
||||||
&self,
|
&self,
|
||||||
|
@ -868,6 +1292,44 @@ pub mod dfdaemon_download_server {
|
||||||
&self,
|
&self,
|
||||||
request: tonic::Request<()>,
|
request: tonic::Request<()>,
|
||||||
) -> std::result::Result<tonic::Response<()>, tonic::Status>;
|
) -> std::result::Result<tonic::Response<()>, tonic::Status>;
|
||||||
|
/// Server streaming response type for the DownloadCacheTask method.
|
||||||
|
type DownloadCacheTaskStream: futures_core::Stream<
|
||||||
|
Item = std::result::Result<
|
||||||
|
super::DownloadCacheTaskResponse,
|
||||||
|
tonic::Status,
|
||||||
|
>,
|
||||||
|
>
|
||||||
|
+ Send
|
||||||
|
+ 'static;
|
||||||
|
/// DownloadCacheTask downloads cache task from p2p network.
|
||||||
|
async fn download_cache_task(
|
||||||
|
&self,
|
||||||
|
request: tonic::Request<super::DownloadCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<
|
||||||
|
tonic::Response<Self::DownloadCacheTaskStream>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
/// UploadCacheTask uploads cache task to p2p network.
|
||||||
|
async fn upload_cache_task(
|
||||||
|
&self,
|
||||||
|
request: tonic::Request<super::UploadCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<
|
||||||
|
tonic::Response<super::super::super::common::v2::CacheTask>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
/// StatCacheTask stats cache task information.
|
||||||
|
async fn stat_cache_task(
|
||||||
|
&self,
|
||||||
|
request: tonic::Request<super::StatCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<
|
||||||
|
tonic::Response<super::super::super::common::v2::CacheTask>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
/// DeleteCacheTask deletes cache task from p2p network.
|
||||||
|
async fn delete_cache_task(
|
||||||
|
&self,
|
||||||
|
request: tonic::Request<super::DeleteCacheTaskRequest>,
|
||||||
|
) -> std::result::Result<tonic::Response<()>, tonic::Status>;
|
||||||
}
|
}
|
||||||
/// DfdaemonDownload represents download service of dfdaemon.
|
/// DfdaemonDownload represents download service of dfdaemon.
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
@ -996,50 +1458,6 @@ pub mod dfdaemon_download_server {
|
||||||
};
|
};
|
||||||
Box::pin(fut)
|
Box::pin(fut)
|
||||||
}
|
}
|
||||||
"/dfdaemon.v2.DfdaemonDownload/UploadTask" => {
|
|
||||||
#[allow(non_camel_case_types)]
|
|
||||||
struct UploadTaskSvc<T: DfdaemonDownload>(pub Arc<T>);
|
|
||||||
impl<
|
|
||||||
T: DfdaemonDownload,
|
|
||||||
> tonic::server::UnaryService<super::UploadTaskRequest>
|
|
||||||
for UploadTaskSvc<T> {
|
|
||||||
type Response = ();
|
|
||||||
type Future = BoxFuture<
|
|
||||||
tonic::Response<Self::Response>,
|
|
||||||
tonic::Status,
|
|
||||||
>;
|
|
||||||
fn call(
|
|
||||||
&mut self,
|
|
||||||
request: tonic::Request<super::UploadTaskRequest>,
|
|
||||||
) -> Self::Future {
|
|
||||||
let inner = Arc::clone(&self.0);
|
|
||||||
let fut = async move { (*inner).upload_task(request).await };
|
|
||||||
Box::pin(fut)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let accept_compression_encodings = self.accept_compression_encodings;
|
|
||||||
let send_compression_encodings = self.send_compression_encodings;
|
|
||||||
let max_decoding_message_size = self.max_decoding_message_size;
|
|
||||||
let max_encoding_message_size = self.max_encoding_message_size;
|
|
||||||
let inner = self.inner.clone();
|
|
||||||
let fut = async move {
|
|
||||||
let inner = inner.0;
|
|
||||||
let method = UploadTaskSvc(inner);
|
|
||||||
let codec = tonic::codec::ProstCodec::default();
|
|
||||||
let mut grpc = tonic::server::Grpc::new(codec)
|
|
||||||
.apply_compression_config(
|
|
||||||
accept_compression_encodings,
|
|
||||||
send_compression_encodings,
|
|
||||||
)
|
|
||||||
.apply_max_message_size_config(
|
|
||||||
max_decoding_message_size,
|
|
||||||
max_encoding_message_size,
|
|
||||||
);
|
|
||||||
let res = grpc.unary(method, req).await;
|
|
||||||
Ok(res)
|
|
||||||
};
|
|
||||||
Box::pin(fut)
|
|
||||||
}
|
|
||||||
"/dfdaemon.v2.DfdaemonDownload/StatTask" => {
|
"/dfdaemon.v2.DfdaemonDownload/StatTask" => {
|
||||||
#[allow(non_camel_case_types)]
|
#[allow(non_camel_case_types)]
|
||||||
struct StatTaskSvc<T: DfdaemonDownload>(pub Arc<T>);
|
struct StatTaskSvc<T: DfdaemonDownload>(pub Arc<T>);
|
||||||
|
@ -1167,6 +1585,192 @@ pub mod dfdaemon_download_server {
|
||||||
};
|
};
|
||||||
Box::pin(fut)
|
Box::pin(fut)
|
||||||
}
|
}
|
||||||
|
"/dfdaemon.v2.DfdaemonDownload/DownloadCacheTask" => {
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
|
struct DownloadCacheTaskSvc<T: DfdaemonDownload>(pub Arc<T>);
|
||||||
|
impl<
|
||||||
|
T: DfdaemonDownload,
|
||||||
|
> tonic::server::ServerStreamingService<
|
||||||
|
super::DownloadCacheTaskRequest,
|
||||||
|
> for DownloadCacheTaskSvc<T> {
|
||||||
|
type Response = super::DownloadCacheTaskResponse;
|
||||||
|
type ResponseStream = T::DownloadCacheTaskStream;
|
||||||
|
type Future = BoxFuture<
|
||||||
|
tonic::Response<Self::ResponseStream>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
fn call(
|
||||||
|
&mut self,
|
||||||
|
request: tonic::Request<super::DownloadCacheTaskRequest>,
|
||||||
|
) -> Self::Future {
|
||||||
|
let inner = Arc::clone(&self.0);
|
||||||
|
let fut = async move {
|
||||||
|
(*inner).download_cache_task(request).await
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let accept_compression_encodings = self.accept_compression_encodings;
|
||||||
|
let send_compression_encodings = self.send_compression_encodings;
|
||||||
|
let max_decoding_message_size = self.max_decoding_message_size;
|
||||||
|
let max_encoding_message_size = self.max_encoding_message_size;
|
||||||
|
let inner = self.inner.clone();
|
||||||
|
let fut = async move {
|
||||||
|
let inner = inner.0;
|
||||||
|
let method = DownloadCacheTaskSvc(inner);
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let mut grpc = tonic::server::Grpc::new(codec)
|
||||||
|
.apply_compression_config(
|
||||||
|
accept_compression_encodings,
|
||||||
|
send_compression_encodings,
|
||||||
|
)
|
||||||
|
.apply_max_message_size_config(
|
||||||
|
max_decoding_message_size,
|
||||||
|
max_encoding_message_size,
|
||||||
|
);
|
||||||
|
let res = grpc.server_streaming(method, req).await;
|
||||||
|
Ok(res)
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
"/dfdaemon.v2.DfdaemonDownload/UploadCacheTask" => {
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
|
struct UploadCacheTaskSvc<T: DfdaemonDownload>(pub Arc<T>);
|
||||||
|
impl<
|
||||||
|
T: DfdaemonDownload,
|
||||||
|
> tonic::server::UnaryService<super::UploadCacheTaskRequest>
|
||||||
|
for UploadCacheTaskSvc<T> {
|
||||||
|
type Response = super::super::super::common::v2::CacheTask;
|
||||||
|
type Future = BoxFuture<
|
||||||
|
tonic::Response<Self::Response>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
fn call(
|
||||||
|
&mut self,
|
||||||
|
request: tonic::Request<super::UploadCacheTaskRequest>,
|
||||||
|
) -> Self::Future {
|
||||||
|
let inner = Arc::clone(&self.0);
|
||||||
|
let fut = async move {
|
||||||
|
(*inner).upload_cache_task(request).await
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let accept_compression_encodings = self.accept_compression_encodings;
|
||||||
|
let send_compression_encodings = self.send_compression_encodings;
|
||||||
|
let max_decoding_message_size = self.max_decoding_message_size;
|
||||||
|
let max_encoding_message_size = self.max_encoding_message_size;
|
||||||
|
let inner = self.inner.clone();
|
||||||
|
let fut = async move {
|
||||||
|
let inner = inner.0;
|
||||||
|
let method = UploadCacheTaskSvc(inner);
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let mut grpc = tonic::server::Grpc::new(codec)
|
||||||
|
.apply_compression_config(
|
||||||
|
accept_compression_encodings,
|
||||||
|
send_compression_encodings,
|
||||||
|
)
|
||||||
|
.apply_max_message_size_config(
|
||||||
|
max_decoding_message_size,
|
||||||
|
max_encoding_message_size,
|
||||||
|
);
|
||||||
|
let res = grpc.unary(method, req).await;
|
||||||
|
Ok(res)
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
"/dfdaemon.v2.DfdaemonDownload/StatCacheTask" => {
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
|
struct StatCacheTaskSvc<T: DfdaemonDownload>(pub Arc<T>);
|
||||||
|
impl<
|
||||||
|
T: DfdaemonDownload,
|
||||||
|
> tonic::server::UnaryService<super::StatCacheTaskRequest>
|
||||||
|
for StatCacheTaskSvc<T> {
|
||||||
|
type Response = super::super::super::common::v2::CacheTask;
|
||||||
|
type Future = BoxFuture<
|
||||||
|
tonic::Response<Self::Response>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
fn call(
|
||||||
|
&mut self,
|
||||||
|
request: tonic::Request<super::StatCacheTaskRequest>,
|
||||||
|
) -> Self::Future {
|
||||||
|
let inner = Arc::clone(&self.0);
|
||||||
|
let fut = async move {
|
||||||
|
(*inner).stat_cache_task(request).await
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let accept_compression_encodings = self.accept_compression_encodings;
|
||||||
|
let send_compression_encodings = self.send_compression_encodings;
|
||||||
|
let max_decoding_message_size = self.max_decoding_message_size;
|
||||||
|
let max_encoding_message_size = self.max_encoding_message_size;
|
||||||
|
let inner = self.inner.clone();
|
||||||
|
let fut = async move {
|
||||||
|
let inner = inner.0;
|
||||||
|
let method = StatCacheTaskSvc(inner);
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let mut grpc = tonic::server::Grpc::new(codec)
|
||||||
|
.apply_compression_config(
|
||||||
|
accept_compression_encodings,
|
||||||
|
send_compression_encodings,
|
||||||
|
)
|
||||||
|
.apply_max_message_size_config(
|
||||||
|
max_decoding_message_size,
|
||||||
|
max_encoding_message_size,
|
||||||
|
);
|
||||||
|
let res = grpc.unary(method, req).await;
|
||||||
|
Ok(res)
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
"/dfdaemon.v2.DfdaemonDownload/DeleteCacheTask" => {
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
|
struct DeleteCacheTaskSvc<T: DfdaemonDownload>(pub Arc<T>);
|
||||||
|
impl<
|
||||||
|
T: DfdaemonDownload,
|
||||||
|
> tonic::server::UnaryService<super::DeleteCacheTaskRequest>
|
||||||
|
for DeleteCacheTaskSvc<T> {
|
||||||
|
type Response = ();
|
||||||
|
type Future = BoxFuture<
|
||||||
|
tonic::Response<Self::Response>,
|
||||||
|
tonic::Status,
|
||||||
|
>;
|
||||||
|
fn call(
|
||||||
|
&mut self,
|
||||||
|
request: tonic::Request<super::DeleteCacheTaskRequest>,
|
||||||
|
) -> Self::Future {
|
||||||
|
let inner = Arc::clone(&self.0);
|
||||||
|
let fut = async move {
|
||||||
|
(*inner).delete_cache_task(request).await
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let accept_compression_encodings = self.accept_compression_encodings;
|
||||||
|
let send_compression_encodings = self.send_compression_encodings;
|
||||||
|
let max_decoding_message_size = self.max_decoding_message_size;
|
||||||
|
let max_encoding_message_size = self.max_encoding_message_size;
|
||||||
|
let inner = self.inner.clone();
|
||||||
|
let fut = async move {
|
||||||
|
let inner = inner.0;
|
||||||
|
let method = DeleteCacheTaskSvc(inner);
|
||||||
|
let codec = tonic::codec::ProstCodec::default();
|
||||||
|
let mut grpc = tonic::server::Grpc::new(codec)
|
||||||
|
.apply_compression_config(
|
||||||
|
accept_compression_encodings,
|
||||||
|
send_compression_encodings,
|
||||||
|
)
|
||||||
|
.apply_max_message_size_config(
|
||||||
|
max_decoding_message_size,
|
||||||
|
max_encoding_message_size,
|
||||||
|
);
|
||||||
|
let res = grpc.unary(method, req).await;
|
||||||
|
Ok(res)
|
||||||
|
};
|
||||||
|
Box::pin(fut)
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
Box::pin(async move {
|
Box::pin(async move {
|
||||||
Ok(
|
Ok(
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
pub struct RegisterPeerRequest {
|
pub struct RegisterPeerRequest {
|
||||||
/// Download information.
|
/// Download information.
|
||||||
#[prost(message, optional, tag = "1")]
|
#[prost(message, optional, tag = "1")]
|
||||||
pub download: ::core::option::Option<super::super::common::v2::Download>,
|
pub download_task: ::core::option::Option<super::super::common::v2::DownloadTask>,
|
||||||
}
|
}
|
||||||
/// DownloadPeerStartedRequest represents peer download started request of AnnouncePeerRequest.
|
/// DownloadPeerStartedRequest represents peer download started request of AnnouncePeerRequest.
|
||||||
#[derive(serde::Serialize, serde::Deserialize)]
|
#[derive(serde::Serialize, serde::Deserialize)]
|
||||||
|
|
Loading…
Reference in New Issue