Files
seaweedfs/weed/pb/master_pb/master.pb.go
Chris Lu 300e906330 admin: report file and delete counts for EC volumes (#9060)
* admin: report file and delete counts for EC volumes

The admin bucket size fix (#9058) left object counts at zero for
EC-encoded data because VolumeEcShardInformationMessage carried no file
count. Billing/monitoring dashboards therefore still under-report
objects once a bucket is EC-encoded.

Thread file_count and delete_count end-to-end:

- Add file_count/delete_count to VolumeEcShardInformationMessage (proto
  fields 8 and 9) and regenerate master_pb.
- Compute them lazily on volume servers by walking the .ecx index once
  per EcVolume, cache on the struct, and keep the cache in sync inside
  DeleteNeedleFromEcx (distinguishing live vs already-tombstoned
  entries so idempotent deletes do not drift the counts).
- Populate the new proto fields from EcVolume.ToVolumeEcShardInformationMessage
  and carry them through the master-side EcVolumeInfo / topology sync.
- Aggregate in admin collectCollectionStats, deduping per volume id:
  every node holding shards of an EC volume reports the same counts, so
  summing across nodes would otherwise multiply the object count by the
  number of shard holders.

Regression tests cover the initial .ecx walk, live/tombstoned delete
bookkeeping (including idempotent and missing-key cases), and the admin
dedup path for an EC volume reported by multiple nodes.

* ec: include .ecj journal in EcVolume delete count

The initial delete count only reflected .ecx tombstones, missing any
needle that was journaled in .ecj but not yet folded into .ecx — e.g.
on partial recovery. Expand initCountsLocked to take the union of
.ecx tombstones and .ecj journal entries, deduped by needle id, so:

  - an id that is both tombstoned in .ecx and listed in .ecj counts once
  - a duplicate .ecj entry counts once
  - an .ecj id with a live .ecx entry is counted as deleted (not live)
  - an .ecj id with no matching .ecx entry is still counted

Covered by TestEcVolumeFileAndDeleteCountEcjUnion.

* ec: report delete count authoritatively and tombstone once per delete

Address two issues with the previous EcVolume file/delete count work:

1. The delete count was computed lazily on first heartbeat and mixed
   in a .ecj-union fallback to "recover" partial state. That diverged
   from how regular volumes report counts (always live from the needle
   map) and had drift cases when .ecj got reconciled. Replace with an
   eager walk of .ecx at NewEcVolume time, maintained incrementally on
   every DeleteNeedleFromEcx call. Semantics now match needle_map_metric:
   FileCount is the total number of needles ever recorded in .ecx
   (live + tombstoned), DeleteCount is the tombstones — so live =
   FileCount - DeleteCount. Drop the .ecj-union logic entirely.

2. A single EC needle delete fanned out to every node holding a replica
   of the primary data shard and called DeleteNeedleFromEcx on each,
   which inflated the per-volume delete total by the replica factor.
   Rewrite doDeleteNeedleFromRemoteEcShardServers to try replicas in
   order and stop at the first success (one tombstone per delete), and
   only fall back to other shards when the primary shard has no home
   (ErrEcShardMissing sentinel), not on transient RPC errors.

Admin aggregation now folds EC counts correctly: FileCount is deduped
per volume id (every shard holder has an identical .ecx) and DeleteCount
is summed across nodes (each delete tombstones exactly one node). Live
object count = deduped FileCount - summed DeleteCount.

Tests updated to match the new semantics:
  - EC volume counts seed FileCount as total .ecx entries (live +
    tombstoned), DeleteCount as tombstones.
  - DeleteNeedleFromEcx keeps FileCount constant and increments
    DeleteCount only on live->tombstone transitions.
  - Admin dedup test uses distinct per-node delete counts (5 + 3 + 2)
    to prove they're summed, while FileCount=100 is applied once.

* ec: test fixture uses real vid; admin warns on skewed ec counts

- writeFixture now builds the .ecx/.ecj/.ec00/.vif filenames from the
  actual vid passed in, instead of hardcoding "_1". The existing tests
  all use vid=1 so behaviour is unchanged, but the helper no longer
  silently diverges from its documented parameter.
- collectCollectionStats logs a glog warning when an EC volume's summed
  delete count exceeds its deduped file count, surfacing the anomaly
  (stale heartbeat, counter drift, etc.) instead of silently dropping
  the volume from the object count.

* ec: derive file/delete counts from .ecx/.ecj file sizes

seedCountsFromEcx walked the full .ecx index at volume load, which is
wasted work: .ecx has fixed-size entries (NeedleMapEntrySize) and .ecj
has fixed-size deletion records (NeedleIdSize), so both counts are pure
file-size arithmetic.

  fileCount   = ecxFileSize / NeedleMapEntrySize
  deleteCount = ecjFileSize / NeedleIdSize

Rip out the cached counters, countsLock, seedCountsFromEcx, and the
recordDelete helper. Track ecjFileSize directly on the EcVolume struct,
seed it from Stat() at load, and bump it on every successful .ecj append
inside DeleteNeedleFromEcx under ecjFileAccessLock. Skip the .ecj write
entirely when the needle is already tombstoned so the derived delete
count stays idempotent on repeat deletes. Heartbeats now compute counts
in O(1).

Tests updated: the initial fixture pre-populates .ecj with two ids to
verify the file-size derivation end-to-end, and the delete test keeps
its idempotent-re-delete / missing-needle invariants (unchanged
externally, now enforced by the early return rather than a cache guard).

* ec: sync Rust volume server with Go file/delete count semantics

Mirror the Go-side EC file/delete count work in the Rust volume server
so mixed Go/Rust clusters report consistent bucket object counts in
the admin dashboard.

- Add file_count (8) and delete_count (9) to the Rust copy of
  VolumeEcShardInformationMessage (seaweed-volume/proto/master.proto).
- EcVolume gains ecj_file_size, seeded from the journal's metadata on
  open and bumped inside journal_delete on every successful append.
- file_and_delete_count() returns counts derived in O(1) from
  ecx_file_size / NEEDLE_MAP_ENTRY_SIZE and
  ecj_file_size / NEEDLE_ID_SIZE, matching Go's FileAndDeleteCount.
- to_volume_ec_shard_information_messages populates the new proto
  fields instead of defaulting them to zero.
- mark_needle_deleted_in_ecx now returns a DeleteOutcome enum
  (NotFound / AlreadyDeleted / Tombstoned) so journal_delete can skip
  both the .ecj append and the size bump when the needle is missing
  or already tombstoned, keeping the derived delete_count idempotent
  on repeat or no-op deletes.
- Rust's EcVolume::new no longer replays .ecj into .ecx on load. Go's
  RebuildEcxFile is only called from specific decode/rebuild gRPC
  handlers, not on volume open, and replaying on load was hiding the
  deletion journal from the new file-size-derived delete counter.
  rebuild_ecx_from_journal is kept as dead_code for future decode
  paths that may want the same replay semantics.

Also clean up the Go FileAndDeleteCount to drop unnecessary runtime
guards against zero constants — NeedleMapEntrySize and NeedleIdSize
are compile-time non-zero.

test_ec_volume_journal updated to pre-populate the .ecx with the
needles it deletes, and extended to verify that repeat and
missing-id deletes do not drift the derived counts.

* ec: document enterprise-reserved proto field range on ec shard info

Both OSS master.proto copies now note that fields 10-19 are reserved
for future upstream additions while 20+ are owned by the enterprise
fork. Enterprise already pins data_shards/parity_shards at 20/21, so
keeping OSS additions inside 8-19 avoids wire-level collisions for
mixed deployments.

* ec(rust): resolve .ecx/.ecj helpers from ecx_actual_dir

ecx_file_name() and ecj_file_name() resolved from self.dir_idx, but
new() opens the actual files from ecx_actual_dir (which may fall back
to the data dir when the idx dir does not contain the index). After a
fallback, read_deleted_needles() and rebuild_ecx_from_journal() would
read/rebuild the wrong (nonexistent) path while heartbeats reported
counts from the file actually in use — silently dropping deletes.

Point idx_base_name() at ecx_actual_dir, which is initialized to
dir_idx and only diverges after a successful fallback, so every call
site agrees with the file new() has open. The pre-fallback call in
new() (line 142) still returns the dir_idx path because
ecx_actual_dir == dir_idx at that point.

Update the destroy() sweep to build the dir_idx cleanup paths
explicitly instead of leaning on the helpers, so post-fallback stale
files in the idx dir are still removed.

* ec: reset ecj size after rebuild; rollback ecx tombstone on ecj failure

Two EC delete-count correctness fixes applied symmetrically to Go and
Rust volume servers.

1. rebuild_ecx_from_journal (Rust) now sets ecj_file_size = 0 after
   recreating the empty journal, matching the on-disk truth.
   Previously the cached size still reflected the pre-rebuild journal
   and file_and_delete_count() would keep reporting stale delete
   counts. The Go side has no equivalent bug because RebuildEcxFile
   runs in an offline helper that does not touch an EcVolume struct.

2. DeleteNeedleFromEcx / journal_delete used to tombstone the .ecx
   entry before writing the .ecj record. If the .ecj append then
   failed, the needle was permanently marked deleted but the
   heartbeat-reported delete_count never advanced (it is derived from
   .ecj file size), and a retry would see AlreadyDeleted and early-
   return, leaving the drift permanent.

   Both languages now capture the entry's file offset and original
   size bytes during the mark step, attempt the .ecj append, and on
   failure roll the .ecx tombstone back by writing the original size
   bytes at the known offset. A rollback that itself errors is
   logged (glog / tracing) but cannot re-sync the files — this is
   the same failure mode a double disk error would produce, and is
   unavoidable without a full on-disk transaction log.

Go: wrap MarkNeedleDeleted in a closure that captures the file
offset into an outer variable, then pass the offset + oldSize to the
new rollbackEcxTombstone helper on .ecj seek/write errors.

Rust: DeleteOutcome::Tombstoned now carries the size_offset and a
[u8; SIZE_SIZE] copy of the pre-tombstone size field. journal_delete
destructures on Tombstoned and calls restore_ecx_size on .ecj append
failure.

* test(ec): widen admin /health wait to 180s for cold CI

TestEcEndToEnd starts master, 14 volume servers, filer, 2 workers and
admin in sequence, then waited only 60s for admin's HTTP server to come
up. On cold GitHub runners the tail of the earlier subprocess startups
eats most of that budget and the wait occasionally times out (last hit
on run 24374773031). The local fast path is still ~20s total, so the
bump only extends the timeout ceiling, not the happy path.

* test(ec): fork volume servers in parallel in TestEcEndToEnd

startWeed is non-blocking (just cmd.Start()), so the per-process fork +
mkdir + log-file-open overhead for 14 volume servers was serialized for
no reason. On cold CI disks that overhead stacks up and eats into the
subsequent admin /health wait, which is how run 24374773031 flaked.

Wrap the volume-server loop in a sync.WaitGroup and guard runningCmds
with a mutex so concurrent appends are safe. startWeed still calls
t.Fatalf on failure, which is fine from a goroutine for a fatal test
abort; the fail-fast isn't something we rely on for precise ordering.

* ec: fsync ecx before ecj, truncate on failure, harden rebuild

Four correctness fixes covering both volume servers.

1. Durability ordering (Go + Rust). After marking the .ecx tombstone
   we now fsync .ecx before touching .ecj, so a crash between the two
   files cannot leave the journal with an entry for a needle whose
   tombstone is still sitting in page cache. Once the fsync returns,
   the tombstone is the source of truth: reads see "deleted",
   delete_count may under-count by one (benign, idempotent retries)
   but never over-reports. If the fsync itself fails we restore the
   original size bytes and surface the error. The .ecj append is then
   followed by its own Sync so the reported delete_count matches the
   on-disk journal once the write returns.

2. .ecj truncation on append failure. write_all may have extended the
   journal on disk before sync_all / Sync errors out, leaving the
   cached ecj_file_size out of sync with the physical length and
   drifting delete_count permanently after restart. Both languages
   now capture the pre-append size, truncate the file back via
   set_len / Truncate on any write or sync failure, and only then
   restore the .ecx tombstone. Truncation errors are logged — same-fd
   length resets cannot realistically fail — but cannot themselves
   re-sync the files.

3. Atomic rebuild_ecx_from_journal (Rust, dead code today but wired
   up on any future decode path). Previously a failed
   mark_needle_deleted_in_ecx call was swallowed with `let _ = ...`
   and the journal was still removed, silently losing tombstones.
   We now bubble up any non-NotFound error, fsync .ecx after the
   whole replay succeeds, and only then drop and recreate .ecj.
   NotFound is still ignored (expected race between delete and encode).

4. Missing-.ecx hardening (Rust). mark_needle_deleted_in_ecx used to
   return Ok(NotFound) when self.ecx_file was None, hiding a closed or
   corrupt volume behind what looks like an idempotent no-op. It now
   returns an io::Error carrying the volume id so callers (e.g.
   journal_delete) fail loudly instead.

Existing Go and Rust EC test suites stay green.

* ec: make .ecx immutable at runtime; track deletes in memory + .ecj

Refactors both volume servers so the sealed sorted .ecx index is never
mutated during normal operation. Runtime deletes are committed to the
.ecj deletion journal and tracked in an in-memory deleted-needle set;
read-path lookups consult that set to mask out deleted ids on top of
the immutable .ecx record. Mirrors the intended design on both Go and
Rust sides.

EcVolume gains a `deletedNeedles` / `deleted_needles` set seeded from
.ecj in NewEcVolume / EcVolume::new. DeleteNeedleFromEcx /
journal_delete:

  1. Looks the needle up read-only in .ecx.
  2. Missing needle -> no-op.
  3. Pre-existing .ecx tombstone (from a prior decode/rebuild) ->
     mirror into the in-memory set, no .ecj append.
  4. Otherwise append the id to .ecj, fsync, and only then publish
     the id into the set. A partial write is truncated back to the
     pre-append length so the on-disk journal and the in-memory set
     cannot drift.

FindNeedleFromEcx / find_needle_from_ecx now return
TombstoneFileSize when the id is in the in-memory set, even though
the bytes on disk still show the original size.

FileAndDeleteCount:
  fileCount   = .ecx size / NeedleMapEntrySize (unchanged)
  deleteCount = len(deletedNeedles) (was: .ecj size / NeedleIdSize)

The RebuildEcxFile / rebuild_ecx_from_journal decode-time helpers
still fold .ecj into .ecx — that is the one place tombstones land in
the physical index, and it runs offline on closed files. Rust's
rebuild helper now also clears the in-memory set when it succeeds.

Dead code removed on the Rust side: `DeleteOutcome`,
`mark_needle_deleted_in_ecx`, `restore_ecx_size`. Go drops the
runtime `rollbackEcxTombstone` path. Neither helper was needed once
.ecx stopped being a runtime mutation target.

TestEcVolumeSyncEnsuresDeletionsVisible (issue #7751) is rewritten
as TestEcVolumeDeleteDurableToJournal, which exercises the full
durability chain: delete -> .ecj fsync -> FindNeedleFromEcx masks
via the in-memory set -> raw .ecx bytes are *unchanged* -> Close +
RebuildEcxFile folds the journal into .ecx -> raw bytes now show
the tombstone, as CopyFile in the decode path expects.
2026-04-13 21:10:36 -07:00

4986 lines
160 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.6
// protoc v6.33.4
// source: master.proto
package master_pb
import (
volume_server_pb "github.com/seaweedfs/seaweedfs/weed/pb/volume_server_pb"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
unsafe "unsafe"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type DiskTag struct {
state protoimpl.MessageState `protogen:"open.v1"`
DiskId uint32 `protobuf:"varint,1,opt,name=disk_id,json=diskId,proto3" json:"disk_id,omitempty"`
Tags []string `protobuf:"bytes,2,rep,name=tags,proto3" json:"tags,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DiskTag) Reset() {
*x = DiskTag{}
mi := &file_master_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DiskTag) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DiskTag) ProtoMessage() {}
func (x *DiskTag) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[0]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DiskTag.ProtoReflect.Descriptor instead.
func (*DiskTag) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{0}
}
func (x *DiskTag) GetDiskId() uint32 {
if x != nil {
return x.DiskId
}
return 0
}
func (x *DiskTag) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
type Heartbeat struct {
state protoimpl.MessageState `protogen:"open.v1"`
Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
PublicUrl string `protobuf:"bytes,3,opt,name=public_url,json=publicUrl,proto3" json:"public_url,omitempty"`
MaxFileKey uint64 `protobuf:"varint,5,opt,name=max_file_key,json=maxFileKey,proto3" json:"max_file_key,omitempty"`
DataCenter string `protobuf:"bytes,6,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"`
Rack string `protobuf:"bytes,7,opt,name=rack,proto3" json:"rack,omitempty"`
AdminPort uint32 `protobuf:"varint,8,opt,name=admin_port,json=adminPort,proto3" json:"admin_port,omitempty"`
Volumes []*VolumeInformationMessage `protobuf:"bytes,9,rep,name=volumes,proto3" json:"volumes,omitempty"`
// delta volumes
NewVolumes []*VolumeShortInformationMessage `protobuf:"bytes,10,rep,name=new_volumes,json=newVolumes,proto3" json:"new_volumes,omitempty"`
DeletedVolumes []*VolumeShortInformationMessage `protobuf:"bytes,11,rep,name=deleted_volumes,json=deletedVolumes,proto3" json:"deleted_volumes,omitempty"`
HasNoVolumes bool `protobuf:"varint,12,opt,name=has_no_volumes,json=hasNoVolumes,proto3" json:"has_no_volumes,omitempty"`
// erasure coding
EcShards []*VolumeEcShardInformationMessage `protobuf:"bytes,16,rep,name=ec_shards,json=ecShards,proto3" json:"ec_shards,omitempty"`
// delta erasure coding shards
NewEcShards []*VolumeEcShardInformationMessage `protobuf:"bytes,17,rep,name=new_ec_shards,json=newEcShards,proto3" json:"new_ec_shards,omitempty"`
DeletedEcShards []*VolumeEcShardInformationMessage `protobuf:"bytes,18,rep,name=deleted_ec_shards,json=deletedEcShards,proto3" json:"deleted_ec_shards,omitempty"`
HasNoEcShards bool `protobuf:"varint,19,opt,name=has_no_ec_shards,json=hasNoEcShards,proto3" json:"has_no_ec_shards,omitempty"`
MaxVolumeCounts map[string]uint32 `protobuf:"bytes,4,rep,name=max_volume_counts,json=maxVolumeCounts,proto3" json:"max_volume_counts,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
GrpcPort uint32 `protobuf:"varint,20,opt,name=grpc_port,json=grpcPort,proto3" json:"grpc_port,omitempty"`
LocationUuids []string `protobuf:"bytes,21,rep,name=location_uuids,json=locationUuids,proto3" json:"location_uuids,omitempty"`
Id string `protobuf:"bytes,22,opt,name=id,proto3" json:"id,omitempty"` // volume server id, independent of ip:port for stable identification
// state flags
State *volume_server_pb.VolumeServerState `protobuf:"bytes,23,opt,name=state,proto3" json:"state,omitempty"`
DiskTags []*DiskTag `protobuf:"bytes,24,rep,name=disk_tags,json=diskTags,proto3" json:"disk_tags,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Heartbeat) Reset() {
*x = Heartbeat{}
mi := &file_master_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Heartbeat) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Heartbeat) ProtoMessage() {}
func (x *Heartbeat) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[1]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Heartbeat.ProtoReflect.Descriptor instead.
func (*Heartbeat) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{1}
}
func (x *Heartbeat) GetIp() string {
if x != nil {
return x.Ip
}
return ""
}
func (x *Heartbeat) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *Heartbeat) GetPublicUrl() string {
if x != nil {
return x.PublicUrl
}
return ""
}
func (x *Heartbeat) GetMaxFileKey() uint64 {
if x != nil {
return x.MaxFileKey
}
return 0
}
func (x *Heartbeat) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
func (x *Heartbeat) GetRack() string {
if x != nil {
return x.Rack
}
return ""
}
func (x *Heartbeat) GetAdminPort() uint32 {
if x != nil {
return x.AdminPort
}
return 0
}
func (x *Heartbeat) GetVolumes() []*VolumeInformationMessage {
if x != nil {
return x.Volumes
}
return nil
}
func (x *Heartbeat) GetNewVolumes() []*VolumeShortInformationMessage {
if x != nil {
return x.NewVolumes
}
return nil
}
func (x *Heartbeat) GetDeletedVolumes() []*VolumeShortInformationMessage {
if x != nil {
return x.DeletedVolumes
}
return nil
}
func (x *Heartbeat) GetHasNoVolumes() bool {
if x != nil {
return x.HasNoVolumes
}
return false
}
func (x *Heartbeat) GetEcShards() []*VolumeEcShardInformationMessage {
if x != nil {
return x.EcShards
}
return nil
}
func (x *Heartbeat) GetNewEcShards() []*VolumeEcShardInformationMessage {
if x != nil {
return x.NewEcShards
}
return nil
}
func (x *Heartbeat) GetDeletedEcShards() []*VolumeEcShardInformationMessage {
if x != nil {
return x.DeletedEcShards
}
return nil
}
func (x *Heartbeat) GetHasNoEcShards() bool {
if x != nil {
return x.HasNoEcShards
}
return false
}
func (x *Heartbeat) GetMaxVolumeCounts() map[string]uint32 {
if x != nil {
return x.MaxVolumeCounts
}
return nil
}
func (x *Heartbeat) GetGrpcPort() uint32 {
if x != nil {
return x.GrpcPort
}
return 0
}
func (x *Heartbeat) GetLocationUuids() []string {
if x != nil {
return x.LocationUuids
}
return nil
}
func (x *Heartbeat) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Heartbeat) GetState() *volume_server_pb.VolumeServerState {
if x != nil {
return x.State
}
return nil
}
func (x *Heartbeat) GetDiskTags() []*DiskTag {
if x != nil {
return x.DiskTags
}
return nil
}
type HeartbeatResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
VolumeSizeLimit uint64 `protobuf:"varint,1,opt,name=volume_size_limit,json=volumeSizeLimit,proto3" json:"volume_size_limit,omitempty"`
Leader string `protobuf:"bytes,2,opt,name=leader,proto3" json:"leader,omitempty"`
MetricsAddress string `protobuf:"bytes,3,opt,name=metrics_address,json=metricsAddress,proto3" json:"metrics_address,omitempty"`
MetricsIntervalSeconds uint32 `protobuf:"varint,4,opt,name=metrics_interval_seconds,json=metricsIntervalSeconds,proto3" json:"metrics_interval_seconds,omitempty"`
StorageBackends []*StorageBackend `protobuf:"bytes,5,rep,name=storage_backends,json=storageBackends,proto3" json:"storage_backends,omitempty"`
DuplicatedUuids []string `protobuf:"bytes,6,rep,name=duplicated_uuids,json=duplicatedUuids,proto3" json:"duplicated_uuids,omitempty"`
Preallocate bool `protobuf:"varint,7,opt,name=preallocate,proto3" json:"preallocate,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *HeartbeatResponse) Reset() {
*x = HeartbeatResponse{}
mi := &file_master_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *HeartbeatResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*HeartbeatResponse) ProtoMessage() {}
func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[2]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use HeartbeatResponse.ProtoReflect.Descriptor instead.
func (*HeartbeatResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{2}
}
func (x *HeartbeatResponse) GetVolumeSizeLimit() uint64 {
if x != nil {
return x.VolumeSizeLimit
}
return 0
}
func (x *HeartbeatResponse) GetLeader() string {
if x != nil {
return x.Leader
}
return ""
}
func (x *HeartbeatResponse) GetMetricsAddress() string {
if x != nil {
return x.MetricsAddress
}
return ""
}
func (x *HeartbeatResponse) GetMetricsIntervalSeconds() uint32 {
if x != nil {
return x.MetricsIntervalSeconds
}
return 0
}
func (x *HeartbeatResponse) GetStorageBackends() []*StorageBackend {
if x != nil {
return x.StorageBackends
}
return nil
}
func (x *HeartbeatResponse) GetDuplicatedUuids() []string {
if x != nil {
return x.DuplicatedUuids
}
return nil
}
func (x *HeartbeatResponse) GetPreallocate() bool {
if x != nil {
return x.Preallocate
}
return false
}
type VolumeInformationMessage struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Size uint64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`
Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
FileCount uint64 `protobuf:"varint,4,opt,name=file_count,json=fileCount,proto3" json:"file_count,omitempty"`
DeleteCount uint64 `protobuf:"varint,5,opt,name=delete_count,json=deleteCount,proto3" json:"delete_count,omitempty"`
DeletedByteCount uint64 `protobuf:"varint,6,opt,name=deleted_byte_count,json=deletedByteCount,proto3" json:"deleted_byte_count,omitempty"`
ReadOnly bool `protobuf:"varint,7,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"`
ReplicaPlacement uint32 `protobuf:"varint,8,opt,name=replica_placement,json=replicaPlacement,proto3" json:"replica_placement,omitempty"`
Version uint32 `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"`
Ttl uint32 `protobuf:"varint,10,opt,name=ttl,proto3" json:"ttl,omitempty"`
CompactRevision uint32 `protobuf:"varint,11,opt,name=compact_revision,json=compactRevision,proto3" json:"compact_revision,omitempty"`
ModifiedAtSecond int64 `protobuf:"varint,12,opt,name=modified_at_second,json=modifiedAtSecond,proto3" json:"modified_at_second,omitempty"`
RemoteStorageName string `protobuf:"bytes,13,opt,name=remote_storage_name,json=remoteStorageName,proto3" json:"remote_storage_name,omitempty"`
RemoteStorageKey string `protobuf:"bytes,14,opt,name=remote_storage_key,json=remoteStorageKey,proto3" json:"remote_storage_key,omitempty"`
DiskType string `protobuf:"bytes,15,opt,name=disk_type,json=diskType,proto3" json:"disk_type,omitempty"`
DiskId uint32 `protobuf:"varint,16,opt,name=disk_id,json=diskId,proto3" json:"disk_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VolumeInformationMessage) Reset() {
*x = VolumeInformationMessage{}
mi := &file_master_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VolumeInformationMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VolumeInformationMessage) ProtoMessage() {}
func (x *VolumeInformationMessage) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VolumeInformationMessage.ProtoReflect.Descriptor instead.
func (*VolumeInformationMessage) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{3}
}
func (x *VolumeInformationMessage) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *VolumeInformationMessage) GetSize() uint64 {
if x != nil {
return x.Size
}
return 0
}
func (x *VolumeInformationMessage) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *VolumeInformationMessage) GetFileCount() uint64 {
if x != nil {
return x.FileCount
}
return 0
}
func (x *VolumeInformationMessage) GetDeleteCount() uint64 {
if x != nil {
return x.DeleteCount
}
return 0
}
func (x *VolumeInformationMessage) GetDeletedByteCount() uint64 {
if x != nil {
return x.DeletedByteCount
}
return 0
}
func (x *VolumeInformationMessage) GetReadOnly() bool {
if x != nil {
return x.ReadOnly
}
return false
}
func (x *VolumeInformationMessage) GetReplicaPlacement() uint32 {
if x != nil {
return x.ReplicaPlacement
}
return 0
}
func (x *VolumeInformationMessage) GetVersion() uint32 {
if x != nil {
return x.Version
}
return 0
}
func (x *VolumeInformationMessage) GetTtl() uint32 {
if x != nil {
return x.Ttl
}
return 0
}
func (x *VolumeInformationMessage) GetCompactRevision() uint32 {
if x != nil {
return x.CompactRevision
}
return 0
}
func (x *VolumeInformationMessage) GetModifiedAtSecond() int64 {
if x != nil {
return x.ModifiedAtSecond
}
return 0
}
func (x *VolumeInformationMessage) GetRemoteStorageName() string {
if x != nil {
return x.RemoteStorageName
}
return ""
}
func (x *VolumeInformationMessage) GetRemoteStorageKey() string {
if x != nil {
return x.RemoteStorageKey
}
return ""
}
func (x *VolumeInformationMessage) GetDiskType() string {
if x != nil {
return x.DiskType
}
return ""
}
func (x *VolumeInformationMessage) GetDiskId() uint32 {
if x != nil {
return x.DiskId
}
return 0
}
type VolumeShortInformationMessage struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
ReplicaPlacement uint32 `protobuf:"varint,8,opt,name=replica_placement,json=replicaPlacement,proto3" json:"replica_placement,omitempty"`
Version uint32 `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"`
Ttl uint32 `protobuf:"varint,10,opt,name=ttl,proto3" json:"ttl,omitempty"`
DiskType string `protobuf:"bytes,15,opt,name=disk_type,json=diskType,proto3" json:"disk_type,omitempty"`
DiskId uint32 `protobuf:"varint,16,opt,name=disk_id,json=diskId,proto3" json:"disk_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VolumeShortInformationMessage) Reset() {
*x = VolumeShortInformationMessage{}
mi := &file_master_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VolumeShortInformationMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VolumeShortInformationMessage) ProtoMessage() {}
func (x *VolumeShortInformationMessage) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VolumeShortInformationMessage.ProtoReflect.Descriptor instead.
func (*VolumeShortInformationMessage) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{4}
}
func (x *VolumeShortInformationMessage) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *VolumeShortInformationMessage) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *VolumeShortInformationMessage) GetReplicaPlacement() uint32 {
if x != nil {
return x.ReplicaPlacement
}
return 0
}
func (x *VolumeShortInformationMessage) GetVersion() uint32 {
if x != nil {
return x.Version
}
return 0
}
func (x *VolumeShortInformationMessage) GetTtl() uint32 {
if x != nil {
return x.Ttl
}
return 0
}
func (x *VolumeShortInformationMessage) GetDiskType() string {
if x != nil {
return x.DiskType
}
return ""
}
func (x *VolumeShortInformationMessage) GetDiskId() uint32 {
if x != nil {
return x.DiskId
}
return 0
}
type VolumeEcShardInformationMessage struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"`
EcIndexBits uint32 `protobuf:"varint,3,opt,name=ec_index_bits,json=ecIndexBits,proto3" json:"ec_index_bits,omitempty"`
DiskType string `protobuf:"bytes,4,opt,name=disk_type,json=diskType,proto3" json:"disk_type,omitempty"`
ExpireAtSec uint64 `protobuf:"varint,5,opt,name=expire_at_sec,json=expireAtSec,proto3" json:"expire_at_sec,omitempty"` // used to record the destruction time of ec volume
DiskId uint32 `protobuf:"varint,6,opt,name=disk_id,json=diskId,proto3" json:"disk_id,omitempty"`
ShardSizes []int64 `protobuf:"varint,7,rep,packed,name=shard_sizes,json=shardSizes,proto3" json:"shard_sizes,omitempty"` // optimized: sizes for shards in order of set bits in ec_index_bits
FileCount uint64 `protobuf:"varint,8,opt,name=file_count,json=fileCount,proto3" json:"file_count,omitempty"` // total needles in the .ecx index (live + tombstoned)
DeleteCount uint64 `protobuf:"varint,9,opt,name=delete_count,json=deleteCount,proto3" json:"delete_count,omitempty"` // node-local tombstones in the .ecj deletion journal
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VolumeEcShardInformationMessage) Reset() {
*x = VolumeEcShardInformationMessage{}
mi := &file_master_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VolumeEcShardInformationMessage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VolumeEcShardInformationMessage) ProtoMessage() {}
func (x *VolumeEcShardInformationMessage) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VolumeEcShardInformationMessage.ProtoReflect.Descriptor instead.
func (*VolumeEcShardInformationMessage) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{5}
}
func (x *VolumeEcShardInformationMessage) GetId() uint32 {
if x != nil {
return x.Id
}
return 0
}
func (x *VolumeEcShardInformationMessage) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *VolumeEcShardInformationMessage) GetEcIndexBits() uint32 {
if x != nil {
return x.EcIndexBits
}
return 0
}
func (x *VolumeEcShardInformationMessage) GetDiskType() string {
if x != nil {
return x.DiskType
}
return ""
}
func (x *VolumeEcShardInformationMessage) GetExpireAtSec() uint64 {
if x != nil {
return x.ExpireAtSec
}
return 0
}
func (x *VolumeEcShardInformationMessage) GetDiskId() uint32 {
if x != nil {
return x.DiskId
}
return 0
}
func (x *VolumeEcShardInformationMessage) GetShardSizes() []int64 {
if x != nil {
return x.ShardSizes
}
return nil
}
func (x *VolumeEcShardInformationMessage) GetFileCount() uint64 {
if x != nil {
return x.FileCount
}
return 0
}
func (x *VolumeEcShardInformationMessage) GetDeleteCount() uint64 {
if x != nil {
return x.DeleteCount
}
return 0
}
type StorageBackend struct {
state protoimpl.MessageState `protogen:"open.v1"`
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
Properties map[string]string `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *StorageBackend) Reset() {
*x = StorageBackend{}
mi := &file_master_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *StorageBackend) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StorageBackend) ProtoMessage() {}
func (x *StorageBackend) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StorageBackend.ProtoReflect.Descriptor instead.
func (*StorageBackend) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{6}
}
func (x *StorageBackend) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *StorageBackend) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *StorageBackend) GetProperties() map[string]string {
if x != nil {
return x.Properties
}
return nil
}
type Empty struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Empty) Reset() {
*x = Empty{}
mi := &file_master_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Empty) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Empty) ProtoMessage() {}
func (x *Empty) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Empty.ProtoReflect.Descriptor instead.
func (*Empty) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{7}
}
type SuperBlockExtra struct {
state protoimpl.MessageState `protogen:"open.v1"`
ErasureCoding *SuperBlockExtra_ErasureCoding `protobuf:"bytes,1,opt,name=erasure_coding,json=erasureCoding,proto3" json:"erasure_coding,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SuperBlockExtra) Reset() {
*x = SuperBlockExtra{}
mi := &file_master_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *SuperBlockExtra) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SuperBlockExtra) ProtoMessage() {}
func (x *SuperBlockExtra) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SuperBlockExtra.ProtoReflect.Descriptor instead.
func (*SuperBlockExtra) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{8}
}
func (x *SuperBlockExtra) GetErasureCoding() *SuperBlockExtra_ErasureCoding {
if x != nil {
return x.ErasureCoding
}
return nil
}
type KeepConnectedRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
ClientType string `protobuf:"bytes,1,opt,name=client_type,json=clientType,proto3" json:"client_type,omitempty"`
ClientAddress string `protobuf:"bytes,3,opt,name=client_address,json=clientAddress,proto3" json:"client_address,omitempty"`
Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
FilerGroup string `protobuf:"bytes,5,opt,name=filer_group,json=filerGroup,proto3" json:"filer_group,omitempty"`
DataCenter string `protobuf:"bytes,6,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"`
Rack string `protobuf:"bytes,7,opt,name=rack,proto3" json:"rack,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *KeepConnectedRequest) Reset() {
*x = KeepConnectedRequest{}
mi := &file_master_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *KeepConnectedRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KeepConnectedRequest) ProtoMessage() {}
func (x *KeepConnectedRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KeepConnectedRequest.ProtoReflect.Descriptor instead.
func (*KeepConnectedRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{9}
}
func (x *KeepConnectedRequest) GetClientType() string {
if x != nil {
return x.ClientType
}
return ""
}
func (x *KeepConnectedRequest) GetClientAddress() string {
if x != nil {
return x.ClientAddress
}
return ""
}
func (x *KeepConnectedRequest) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *KeepConnectedRequest) GetFilerGroup() string {
if x != nil {
return x.FilerGroup
}
return ""
}
func (x *KeepConnectedRequest) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
func (x *KeepConnectedRequest) GetRack() string {
if x != nil {
return x.Rack
}
return ""
}
type VolumeLocation struct {
state protoimpl.MessageState `protogen:"open.v1"`
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
PublicUrl string `protobuf:"bytes,2,opt,name=public_url,json=publicUrl,proto3" json:"public_url,omitempty"`
NewVids []uint32 `protobuf:"varint,3,rep,packed,name=new_vids,json=newVids,proto3" json:"new_vids,omitempty"`
DeletedVids []uint32 `protobuf:"varint,4,rep,packed,name=deleted_vids,json=deletedVids,proto3" json:"deleted_vids,omitempty"`
Leader string `protobuf:"bytes,5,opt,name=leader,proto3" json:"leader,omitempty"` // optional when leader is not itself
DataCenter string `protobuf:"bytes,6,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"` // optional when DataCenter is in use
GrpcPort uint32 `protobuf:"varint,7,opt,name=grpc_port,json=grpcPort,proto3" json:"grpc_port,omitempty"`
NewEcVids []uint32 `protobuf:"varint,8,rep,packed,name=new_ec_vids,json=newEcVids,proto3" json:"new_ec_vids,omitempty"`
DeletedEcVids []uint32 `protobuf:"varint,9,rep,packed,name=deleted_ec_vids,json=deletedEcVids,proto3" json:"deleted_ec_vids,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VolumeLocation) Reset() {
*x = VolumeLocation{}
mi := &file_master_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VolumeLocation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VolumeLocation) ProtoMessage() {}
func (x *VolumeLocation) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[10]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VolumeLocation.ProtoReflect.Descriptor instead.
func (*VolumeLocation) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{10}
}
func (x *VolumeLocation) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *VolumeLocation) GetPublicUrl() string {
if x != nil {
return x.PublicUrl
}
return ""
}
func (x *VolumeLocation) GetNewVids() []uint32 {
if x != nil {
return x.NewVids
}
return nil
}
func (x *VolumeLocation) GetDeletedVids() []uint32 {
if x != nil {
return x.DeletedVids
}
return nil
}
func (x *VolumeLocation) GetLeader() string {
if x != nil {
return x.Leader
}
return ""
}
func (x *VolumeLocation) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
func (x *VolumeLocation) GetGrpcPort() uint32 {
if x != nil {
return x.GrpcPort
}
return 0
}
func (x *VolumeLocation) GetNewEcVids() []uint32 {
if x != nil {
return x.NewEcVids
}
return nil
}
func (x *VolumeLocation) GetDeletedEcVids() []uint32 {
if x != nil {
return x.DeletedEcVids
}
return nil
}
type ClusterNodeUpdate struct {
state protoimpl.MessageState `protogen:"open.v1"`
NodeType string `protobuf:"bytes,1,opt,name=node_type,json=nodeType,proto3" json:"node_type,omitempty"`
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
IsAdd bool `protobuf:"varint,4,opt,name=is_add,json=isAdd,proto3" json:"is_add,omitempty"`
FilerGroup string `protobuf:"bytes,5,opt,name=filer_group,json=filerGroup,proto3" json:"filer_group,omitempty"`
CreatedAtNs int64 `protobuf:"varint,6,opt,name=created_at_ns,json=createdAtNs,proto3" json:"created_at_ns,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ClusterNodeUpdate) Reset() {
*x = ClusterNodeUpdate{}
mi := &file_master_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ClusterNodeUpdate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClusterNodeUpdate) ProtoMessage() {}
func (x *ClusterNodeUpdate) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ClusterNodeUpdate.ProtoReflect.Descriptor instead.
func (*ClusterNodeUpdate) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{11}
}
func (x *ClusterNodeUpdate) GetNodeType() string {
if x != nil {
return x.NodeType
}
return ""
}
func (x *ClusterNodeUpdate) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *ClusterNodeUpdate) GetIsAdd() bool {
if x != nil {
return x.IsAdd
}
return false
}
func (x *ClusterNodeUpdate) GetFilerGroup() string {
if x != nil {
return x.FilerGroup
}
return ""
}
func (x *ClusterNodeUpdate) GetCreatedAtNs() int64 {
if x != nil {
return x.CreatedAtNs
}
return 0
}
type KeepConnectedResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
VolumeLocation *VolumeLocation `protobuf:"bytes,1,opt,name=volume_location,json=volumeLocation,proto3" json:"volume_location,omitempty"`
ClusterNodeUpdate *ClusterNodeUpdate `protobuf:"bytes,2,opt,name=cluster_node_update,json=clusterNodeUpdate,proto3" json:"cluster_node_update,omitempty"`
LockRingUpdate *LockRingUpdate `protobuf:"bytes,3,opt,name=lock_ring_update,json=lockRingUpdate,proto3" json:"lock_ring_update,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *KeepConnectedResponse) Reset() {
*x = KeepConnectedResponse{}
mi := &file_master_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *KeepConnectedResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KeepConnectedResponse) ProtoMessage() {}
func (x *KeepConnectedResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[12]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KeepConnectedResponse.ProtoReflect.Descriptor instead.
func (*KeepConnectedResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{12}
}
func (x *KeepConnectedResponse) GetVolumeLocation() *VolumeLocation {
if x != nil {
return x.VolumeLocation
}
return nil
}
func (x *KeepConnectedResponse) GetClusterNodeUpdate() *ClusterNodeUpdate {
if x != nil {
return x.ClusterNodeUpdate
}
return nil
}
func (x *KeepConnectedResponse) GetLockRingUpdate() *LockRingUpdate {
if x != nil {
return x.LockRingUpdate
}
return nil
}
// LockRingUpdate is sent by the master to all filers when the lock ring
// membership changes. The master batches rapid changes (e.g., node drop + join)
// and sends the complete member list atomically, avoiding intermediate ring
// states that would cause unnecessary lock churn.
type LockRingUpdate struct {
state protoimpl.MessageState `protogen:"open.v1"`
FilerGroup string `protobuf:"bytes,1,opt,name=filer_group,json=filerGroup,proto3" json:"filer_group,omitempty"`
Servers []string `protobuf:"bytes,2,rep,name=servers,proto3" json:"servers,omitempty"`
Version int64 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LockRingUpdate) Reset() {
*x = LockRingUpdate{}
mi := &file_master_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LockRingUpdate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LockRingUpdate) ProtoMessage() {}
func (x *LockRingUpdate) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[13]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LockRingUpdate.ProtoReflect.Descriptor instead.
func (*LockRingUpdate) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{13}
}
func (x *LockRingUpdate) GetFilerGroup() string {
if x != nil {
return x.FilerGroup
}
return ""
}
func (x *LockRingUpdate) GetServers() []string {
if x != nil {
return x.Servers
}
return nil
}
func (x *LockRingUpdate) GetVersion() int64 {
if x != nil {
return x.Version
}
return 0
}
type LookupVolumeRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
VolumeOrFileIds []string `protobuf:"bytes,1,rep,name=volume_or_file_ids,json=volumeOrFileIds,proto3" json:"volume_or_file_ids,omitempty"`
Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"` // optional, a bit faster if provided.
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupVolumeRequest) Reset() {
*x = LookupVolumeRequest{}
mi := &file_master_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupVolumeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupVolumeRequest) ProtoMessage() {}
func (x *LookupVolumeRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[14]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupVolumeRequest.ProtoReflect.Descriptor instead.
func (*LookupVolumeRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{14}
}
func (x *LookupVolumeRequest) GetVolumeOrFileIds() []string {
if x != nil {
return x.VolumeOrFileIds
}
return nil
}
func (x *LookupVolumeRequest) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
type LookupVolumeResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
VolumeIdLocations []*LookupVolumeResponse_VolumeIdLocation `protobuf:"bytes,1,rep,name=volume_id_locations,json=volumeIdLocations,proto3" json:"volume_id_locations,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupVolumeResponse) Reset() {
*x = LookupVolumeResponse{}
mi := &file_master_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupVolumeResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupVolumeResponse) ProtoMessage() {}
func (x *LookupVolumeResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[15]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupVolumeResponse.ProtoReflect.Descriptor instead.
func (*LookupVolumeResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{15}
}
func (x *LookupVolumeResponse) GetVolumeIdLocations() []*LookupVolumeResponse_VolumeIdLocation {
if x != nil {
return x.VolumeIdLocations
}
return nil
}
type Location struct {
state protoimpl.MessageState `protogen:"open.v1"`
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
PublicUrl string `protobuf:"bytes,2,opt,name=public_url,json=publicUrl,proto3" json:"public_url,omitempty"`
GrpcPort uint32 `protobuf:"varint,3,opt,name=grpc_port,json=grpcPort,proto3" json:"grpc_port,omitempty"`
DataCenter string `protobuf:"bytes,4,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Location) Reset() {
*x = Location{}
mi := &file_master_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Location) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Location) ProtoMessage() {}
func (x *Location) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[16]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Location.ProtoReflect.Descriptor instead.
func (*Location) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{16}
}
func (x *Location) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
func (x *Location) GetPublicUrl() string {
if x != nil {
return x.PublicUrl
}
return ""
}
func (x *Location) GetGrpcPort() uint32 {
if x != nil {
return x.GrpcPort
}
return 0
}
func (x *Location) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
type AssignRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Count uint64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
Replication string `protobuf:"bytes,2,opt,name=replication,proto3" json:"replication,omitempty"`
Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
Ttl string `protobuf:"bytes,4,opt,name=ttl,proto3" json:"ttl,omitempty"`
DataCenter string `protobuf:"bytes,5,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"`
Rack string `protobuf:"bytes,6,opt,name=rack,proto3" json:"rack,omitempty"`
DataNode string `protobuf:"bytes,7,opt,name=data_node,json=dataNode,proto3" json:"data_node,omitempty"`
MemoryMapMaxSizeMb uint32 `protobuf:"varint,8,opt,name=memory_map_max_size_mb,json=memoryMapMaxSizeMb,proto3" json:"memory_map_max_size_mb,omitempty"`
WritableVolumeCount uint32 `protobuf:"varint,9,opt,name=writable_volume_count,json=writableVolumeCount,proto3" json:"writable_volume_count,omitempty"`
DiskType string `protobuf:"bytes,10,opt,name=disk_type,json=diskType,proto3" json:"disk_type,omitempty"`
ExpectedDataSize uint64 `protobuf:"varint,11,opt,name=expected_data_size,json=expectedDataSize,proto3" json:"expected_data_size,omitempty"` // hint for size-aware volume selection
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AssignRequest) Reset() {
*x = AssignRequest{}
mi := &file_master_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AssignRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AssignRequest) ProtoMessage() {}
func (x *AssignRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[17]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AssignRequest.ProtoReflect.Descriptor instead.
func (*AssignRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{17}
}
func (x *AssignRequest) GetCount() uint64 {
if x != nil {
return x.Count
}
return 0
}
func (x *AssignRequest) GetReplication() string {
if x != nil {
return x.Replication
}
return ""
}
func (x *AssignRequest) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *AssignRequest) GetTtl() string {
if x != nil {
return x.Ttl
}
return ""
}
func (x *AssignRequest) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
func (x *AssignRequest) GetRack() string {
if x != nil {
return x.Rack
}
return ""
}
func (x *AssignRequest) GetDataNode() string {
if x != nil {
return x.DataNode
}
return ""
}
func (x *AssignRequest) GetMemoryMapMaxSizeMb() uint32 {
if x != nil {
return x.MemoryMapMaxSizeMb
}
return 0
}
func (x *AssignRequest) GetWritableVolumeCount() uint32 {
if x != nil {
return x.WritableVolumeCount
}
return 0
}
func (x *AssignRequest) GetDiskType() string {
if x != nil {
return x.DiskType
}
return ""
}
func (x *AssignRequest) GetExpectedDataSize() uint64 {
if x != nil {
return x.ExpectedDataSize
}
return 0
}
type VolumeGrowRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
WritableVolumeCount uint32 `protobuf:"varint,1,opt,name=writable_volume_count,json=writableVolumeCount,proto3" json:"writable_volume_count,omitempty"`
Replication string `protobuf:"bytes,2,opt,name=replication,proto3" json:"replication,omitempty"`
Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
Ttl string `protobuf:"bytes,4,opt,name=ttl,proto3" json:"ttl,omitempty"`
DataCenter string `protobuf:"bytes,5,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"`
Rack string `protobuf:"bytes,6,opt,name=rack,proto3" json:"rack,omitempty"`
DataNode string `protobuf:"bytes,7,opt,name=data_node,json=dataNode,proto3" json:"data_node,omitempty"`
MemoryMapMaxSizeMb uint32 `protobuf:"varint,8,opt,name=memory_map_max_size_mb,json=memoryMapMaxSizeMb,proto3" json:"memory_map_max_size_mb,omitempty"`
DiskType string `protobuf:"bytes,9,opt,name=disk_type,json=diskType,proto3" json:"disk_type,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VolumeGrowRequest) Reset() {
*x = VolumeGrowRequest{}
mi := &file_master_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VolumeGrowRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VolumeGrowRequest) ProtoMessage() {}
func (x *VolumeGrowRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VolumeGrowRequest.ProtoReflect.Descriptor instead.
func (*VolumeGrowRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{18}
}
func (x *VolumeGrowRequest) GetWritableVolumeCount() uint32 {
if x != nil {
return x.WritableVolumeCount
}
return 0
}
func (x *VolumeGrowRequest) GetReplication() string {
if x != nil {
return x.Replication
}
return ""
}
func (x *VolumeGrowRequest) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *VolumeGrowRequest) GetTtl() string {
if x != nil {
return x.Ttl
}
return ""
}
func (x *VolumeGrowRequest) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
func (x *VolumeGrowRequest) GetRack() string {
if x != nil {
return x.Rack
}
return ""
}
func (x *VolumeGrowRequest) GetDataNode() string {
if x != nil {
return x.DataNode
}
return ""
}
func (x *VolumeGrowRequest) GetMemoryMapMaxSizeMb() uint32 {
if x != nil {
return x.MemoryMapMaxSizeMb
}
return 0
}
func (x *VolumeGrowRequest) GetDiskType() string {
if x != nil {
return x.DiskType
}
return ""
}
type AssignResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Fid string `protobuf:"bytes,1,opt,name=fid,proto3" json:"fid,omitempty"`
Count uint64 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"`
Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"`
Auth string `protobuf:"bytes,6,opt,name=auth,proto3" json:"auth,omitempty"`
Replicas []*Location `protobuf:"bytes,7,rep,name=replicas,proto3" json:"replicas,omitempty"`
Location *Location `protobuf:"bytes,8,opt,name=location,proto3" json:"location,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *AssignResponse) Reset() {
*x = AssignResponse{}
mi := &file_master_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *AssignResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AssignResponse) ProtoMessage() {}
func (x *AssignResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AssignResponse.ProtoReflect.Descriptor instead.
func (*AssignResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{19}
}
func (x *AssignResponse) GetFid() string {
if x != nil {
return x.Fid
}
return ""
}
func (x *AssignResponse) GetCount() uint64 {
if x != nil {
return x.Count
}
return 0
}
func (x *AssignResponse) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *AssignResponse) GetAuth() string {
if x != nil {
return x.Auth
}
return ""
}
func (x *AssignResponse) GetReplicas() []*Location {
if x != nil {
return x.Replicas
}
return nil
}
func (x *AssignResponse) GetLocation() *Location {
if x != nil {
return x.Location
}
return nil
}
type StatisticsRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Replication string `protobuf:"bytes,1,opt,name=replication,proto3" json:"replication,omitempty"`
Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"`
Ttl string `protobuf:"bytes,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
DiskType string `protobuf:"bytes,4,opt,name=disk_type,json=diskType,proto3" json:"disk_type,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *StatisticsRequest) Reset() {
*x = StatisticsRequest{}
mi := &file_master_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *StatisticsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatisticsRequest) ProtoMessage() {}
func (x *StatisticsRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[20]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatisticsRequest.ProtoReflect.Descriptor instead.
func (*StatisticsRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{20}
}
func (x *StatisticsRequest) GetReplication() string {
if x != nil {
return x.Replication
}
return ""
}
func (x *StatisticsRequest) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *StatisticsRequest) GetTtl() string {
if x != nil {
return x.Ttl
}
return ""
}
func (x *StatisticsRequest) GetDiskType() string {
if x != nil {
return x.DiskType
}
return ""
}
type StatisticsResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
TotalSize uint64 `protobuf:"varint,4,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"`
UsedSize uint64 `protobuf:"varint,5,opt,name=used_size,json=usedSize,proto3" json:"used_size,omitempty"`
FileCount uint64 `protobuf:"varint,6,opt,name=file_count,json=fileCount,proto3" json:"file_count,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *StatisticsResponse) Reset() {
*x = StatisticsResponse{}
mi := &file_master_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *StatisticsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StatisticsResponse) ProtoMessage() {}
func (x *StatisticsResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[21]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use StatisticsResponse.ProtoReflect.Descriptor instead.
func (*StatisticsResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{21}
}
func (x *StatisticsResponse) GetTotalSize() uint64 {
if x != nil {
return x.TotalSize
}
return 0
}
func (x *StatisticsResponse) GetUsedSize() uint64 {
if x != nil {
return x.UsedSize
}
return 0
}
func (x *StatisticsResponse) GetFileCount() uint64 {
if x != nil {
return x.FileCount
}
return 0
}
// collection related
type Collection struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Collection) Reset() {
*x = Collection{}
mi := &file_master_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Collection) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Collection) ProtoMessage() {}
func (x *Collection) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[22]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Collection.ProtoReflect.Descriptor instead.
func (*Collection) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{22}
}
func (x *Collection) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type CollectionListRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
IncludeNormalVolumes bool `protobuf:"varint,1,opt,name=include_normal_volumes,json=includeNormalVolumes,proto3" json:"include_normal_volumes,omitempty"`
IncludeEcVolumes bool `protobuf:"varint,2,opt,name=include_ec_volumes,json=includeEcVolumes,proto3" json:"include_ec_volumes,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CollectionListRequest) Reset() {
*x = CollectionListRequest{}
mi := &file_master_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CollectionListRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CollectionListRequest) ProtoMessage() {}
func (x *CollectionListRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[23]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CollectionListRequest.ProtoReflect.Descriptor instead.
func (*CollectionListRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{23}
}
func (x *CollectionListRequest) GetIncludeNormalVolumes() bool {
if x != nil {
return x.IncludeNormalVolumes
}
return false
}
func (x *CollectionListRequest) GetIncludeEcVolumes() bool {
if x != nil {
return x.IncludeEcVolumes
}
return false
}
type CollectionListResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Collections []*Collection `protobuf:"bytes,1,rep,name=collections,proto3" json:"collections,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CollectionListResponse) Reset() {
*x = CollectionListResponse{}
mi := &file_master_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CollectionListResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CollectionListResponse) ProtoMessage() {}
func (x *CollectionListResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[24]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CollectionListResponse.ProtoReflect.Descriptor instead.
func (*CollectionListResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{24}
}
func (x *CollectionListResponse) GetCollections() []*Collection {
if x != nil {
return x.Collections
}
return nil
}
type CollectionDeleteRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CollectionDeleteRequest) Reset() {
*x = CollectionDeleteRequest{}
mi := &file_master_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CollectionDeleteRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CollectionDeleteRequest) ProtoMessage() {}
func (x *CollectionDeleteRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[25]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CollectionDeleteRequest.ProtoReflect.Descriptor instead.
func (*CollectionDeleteRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{25}
}
func (x *CollectionDeleteRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
type CollectionDeleteResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CollectionDeleteResponse) Reset() {
*x = CollectionDeleteResponse{}
mi := &file_master_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CollectionDeleteResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CollectionDeleteResponse) ProtoMessage() {}
func (x *CollectionDeleteResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[26]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CollectionDeleteResponse.ProtoReflect.Descriptor instead.
func (*CollectionDeleteResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{26}
}
// volume related
type DiskInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
VolumeCount int64 `protobuf:"varint,2,opt,name=volume_count,json=volumeCount,proto3" json:"volume_count,omitempty"`
MaxVolumeCount int64 `protobuf:"varint,3,opt,name=max_volume_count,json=maxVolumeCount,proto3" json:"max_volume_count,omitempty"`
FreeVolumeCount int64 `protobuf:"varint,4,opt,name=free_volume_count,json=freeVolumeCount,proto3" json:"free_volume_count,omitempty"`
ActiveVolumeCount int64 `protobuf:"varint,5,opt,name=active_volume_count,json=activeVolumeCount,proto3" json:"active_volume_count,omitempty"`
VolumeInfos []*VolumeInformationMessage `protobuf:"bytes,6,rep,name=volume_infos,json=volumeInfos,proto3" json:"volume_infos,omitempty"`
EcShardInfos []*VolumeEcShardInformationMessage `protobuf:"bytes,7,rep,name=ec_shard_infos,json=ecShardInfos,proto3" json:"ec_shard_infos,omitempty"`
RemoteVolumeCount int64 `protobuf:"varint,8,opt,name=remote_volume_count,json=remoteVolumeCount,proto3" json:"remote_volume_count,omitempty"`
DiskId uint32 `protobuf:"varint,9,opt,name=disk_id,json=diskId,proto3" json:"disk_id,omitempty"`
Tags []string `protobuf:"bytes,10,rep,name=tags,proto3" json:"tags,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DiskInfo) Reset() {
*x = DiskInfo{}
mi := &file_master_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DiskInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DiskInfo) ProtoMessage() {}
func (x *DiskInfo) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[27]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DiskInfo.ProtoReflect.Descriptor instead.
func (*DiskInfo) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{27}
}
func (x *DiskInfo) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *DiskInfo) GetVolumeCount() int64 {
if x != nil {
return x.VolumeCount
}
return 0
}
func (x *DiskInfo) GetMaxVolumeCount() int64 {
if x != nil {
return x.MaxVolumeCount
}
return 0
}
func (x *DiskInfo) GetFreeVolumeCount() int64 {
if x != nil {
return x.FreeVolumeCount
}
return 0
}
func (x *DiskInfo) GetActiveVolumeCount() int64 {
if x != nil {
return x.ActiveVolumeCount
}
return 0
}
func (x *DiskInfo) GetVolumeInfos() []*VolumeInformationMessage {
if x != nil {
return x.VolumeInfos
}
return nil
}
func (x *DiskInfo) GetEcShardInfos() []*VolumeEcShardInformationMessage {
if x != nil {
return x.EcShardInfos
}
return nil
}
func (x *DiskInfo) GetRemoteVolumeCount() int64 {
if x != nil {
return x.RemoteVolumeCount
}
return 0
}
func (x *DiskInfo) GetDiskId() uint32 {
if x != nil {
return x.DiskId
}
return 0
}
func (x *DiskInfo) GetTags() []string {
if x != nil {
return x.Tags
}
return nil
}
type DataNodeInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
DiskInfos map[string]*DiskInfo `protobuf:"bytes,2,rep,name=diskInfos,proto3" json:"diskInfos,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
GrpcPort uint32 `protobuf:"varint,3,opt,name=grpc_port,json=grpcPort,proto3" json:"grpc_port,omitempty"`
Address string `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"` // ip:port for connecting to the volume server
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DataNodeInfo) Reset() {
*x = DataNodeInfo{}
mi := &file_master_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DataNodeInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DataNodeInfo) ProtoMessage() {}
func (x *DataNodeInfo) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[28]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DataNodeInfo.ProtoReflect.Descriptor instead.
func (*DataNodeInfo) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{28}
}
func (x *DataNodeInfo) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DataNodeInfo) GetDiskInfos() map[string]*DiskInfo {
if x != nil {
return x.DiskInfos
}
return nil
}
func (x *DataNodeInfo) GetGrpcPort() uint32 {
if x != nil {
return x.GrpcPort
}
return 0
}
func (x *DataNodeInfo) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
type RackInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
DataNodeInfos []*DataNodeInfo `protobuf:"bytes,2,rep,name=data_node_infos,json=dataNodeInfos,proto3" json:"data_node_infos,omitempty"`
DiskInfos map[string]*DiskInfo `protobuf:"bytes,3,rep,name=diskInfos,proto3" json:"diskInfos,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RackInfo) Reset() {
*x = RackInfo{}
mi := &file_master_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RackInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RackInfo) ProtoMessage() {}
func (x *RackInfo) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[29]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RackInfo.ProtoReflect.Descriptor instead.
func (*RackInfo) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{29}
}
func (x *RackInfo) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *RackInfo) GetDataNodeInfos() []*DataNodeInfo {
if x != nil {
return x.DataNodeInfos
}
return nil
}
func (x *RackInfo) GetDiskInfos() map[string]*DiskInfo {
if x != nil {
return x.DiskInfos
}
return nil
}
type DataCenterInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
RackInfos []*RackInfo `protobuf:"bytes,2,rep,name=rack_infos,json=rackInfos,proto3" json:"rack_infos,omitempty"`
DiskInfos map[string]*DiskInfo `protobuf:"bytes,3,rep,name=diskInfos,proto3" json:"diskInfos,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DataCenterInfo) Reset() {
*x = DataCenterInfo{}
mi := &file_master_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DataCenterInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DataCenterInfo) ProtoMessage() {}
func (x *DataCenterInfo) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[30]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DataCenterInfo.ProtoReflect.Descriptor instead.
func (*DataCenterInfo) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{30}
}
func (x *DataCenterInfo) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *DataCenterInfo) GetRackInfos() []*RackInfo {
if x != nil {
return x.RackInfos
}
return nil
}
func (x *DataCenterInfo) GetDiskInfos() map[string]*DiskInfo {
if x != nil {
return x.DiskInfos
}
return nil
}
type TopologyInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
DataCenterInfos []*DataCenterInfo `protobuf:"bytes,2,rep,name=data_center_infos,json=dataCenterInfos,proto3" json:"data_center_infos,omitempty"`
DiskInfos map[string]*DiskInfo `protobuf:"bytes,3,rep,name=diskInfos,proto3" json:"diskInfos,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *TopologyInfo) Reset() {
*x = TopologyInfo{}
mi := &file_master_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *TopologyInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TopologyInfo) ProtoMessage() {}
func (x *TopologyInfo) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[31]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TopologyInfo.ProtoReflect.Descriptor instead.
func (*TopologyInfo) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{31}
}
func (x *TopologyInfo) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *TopologyInfo) GetDataCenterInfos() []*DataCenterInfo {
if x != nil {
return x.DataCenterInfos
}
return nil
}
func (x *TopologyInfo) GetDiskInfos() map[string]*DiskInfo {
if x != nil {
return x.DiskInfos
}
return nil
}
type VolumeListRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VolumeListRequest) Reset() {
*x = VolumeListRequest{}
mi := &file_master_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VolumeListRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VolumeListRequest) ProtoMessage() {}
func (x *VolumeListRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[32]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VolumeListRequest.ProtoReflect.Descriptor instead.
func (*VolumeListRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{32}
}
type VolumeListResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
TopologyInfo *TopologyInfo `protobuf:"bytes,1,opt,name=topology_info,json=topologyInfo,proto3" json:"topology_info,omitempty"`
VolumeSizeLimitMb uint64 `protobuf:"varint,2,opt,name=volume_size_limit_mb,json=volumeSizeLimitMb,proto3" json:"volume_size_limit_mb,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VolumeListResponse) Reset() {
*x = VolumeListResponse{}
mi := &file_master_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VolumeListResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VolumeListResponse) ProtoMessage() {}
func (x *VolumeListResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[33]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VolumeListResponse.ProtoReflect.Descriptor instead.
func (*VolumeListResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{33}
}
func (x *VolumeListResponse) GetTopologyInfo() *TopologyInfo {
if x != nil {
return x.TopologyInfo
}
return nil
}
func (x *VolumeListResponse) GetVolumeSizeLimitMb() uint64 {
if x != nil {
return x.VolumeSizeLimitMb
}
return 0
}
type LookupEcVolumeRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupEcVolumeRequest) Reset() {
*x = LookupEcVolumeRequest{}
mi := &file_master_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupEcVolumeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupEcVolumeRequest) ProtoMessage() {}
func (x *LookupEcVolumeRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[34]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupEcVolumeRequest.ProtoReflect.Descriptor instead.
func (*LookupEcVolumeRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{34}
}
func (x *LookupEcVolumeRequest) GetVolumeId() uint32 {
if x != nil {
return x.VolumeId
}
return 0
}
type LookupEcVolumeResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
VolumeId uint32 `protobuf:"varint,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
ShardIdLocations []*LookupEcVolumeResponse_EcShardIdLocation `protobuf:"bytes,2,rep,name=shard_id_locations,json=shardIdLocations,proto3" json:"shard_id_locations,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupEcVolumeResponse) Reset() {
*x = LookupEcVolumeResponse{}
mi := &file_master_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupEcVolumeResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupEcVolumeResponse) ProtoMessage() {}
func (x *LookupEcVolumeResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[35]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupEcVolumeResponse.ProtoReflect.Descriptor instead.
func (*LookupEcVolumeResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{35}
}
func (x *LookupEcVolumeResponse) GetVolumeId() uint32 {
if x != nil {
return x.VolumeId
}
return 0
}
func (x *LookupEcVolumeResponse) GetShardIdLocations() []*LookupEcVolumeResponse_EcShardIdLocation {
if x != nil {
return x.ShardIdLocations
}
return nil
}
type VacuumVolumeRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
GarbageThreshold float32 `protobuf:"fixed32,1,opt,name=garbage_threshold,json=garbageThreshold,proto3" json:"garbage_threshold,omitempty"`
VolumeId uint32 `protobuf:"varint,2,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
Collection string `protobuf:"bytes,3,opt,name=collection,proto3" json:"collection,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VacuumVolumeRequest) Reset() {
*x = VacuumVolumeRequest{}
mi := &file_master_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VacuumVolumeRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VacuumVolumeRequest) ProtoMessage() {}
func (x *VacuumVolumeRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[36]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VacuumVolumeRequest.ProtoReflect.Descriptor instead.
func (*VacuumVolumeRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{36}
}
func (x *VacuumVolumeRequest) GetGarbageThreshold() float32 {
if x != nil {
return x.GarbageThreshold
}
return 0
}
func (x *VacuumVolumeRequest) GetVolumeId() uint32 {
if x != nil {
return x.VolumeId
}
return 0
}
func (x *VacuumVolumeRequest) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
type VacuumVolumeResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VacuumVolumeResponse) Reset() {
*x = VacuumVolumeResponse{}
mi := &file_master_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VacuumVolumeResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VacuumVolumeResponse) ProtoMessage() {}
func (x *VacuumVolumeResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[37]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VacuumVolumeResponse.ProtoReflect.Descriptor instead.
func (*VacuumVolumeResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{37}
}
type DisableVacuumRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
ByPlugin bool `protobuf:"varint,1,opt,name=by_plugin,json=byPlugin,proto3" json:"by_plugin,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DisableVacuumRequest) Reset() {
*x = DisableVacuumRequest{}
mi := &file_master_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DisableVacuumRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DisableVacuumRequest) ProtoMessage() {}
func (x *DisableVacuumRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[38]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DisableVacuumRequest.ProtoReflect.Descriptor instead.
func (*DisableVacuumRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{38}
}
func (x *DisableVacuumRequest) GetByPlugin() bool {
if x != nil {
return x.ByPlugin
}
return false
}
type DisableVacuumResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *DisableVacuumResponse) Reset() {
*x = DisableVacuumResponse{}
mi := &file_master_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *DisableVacuumResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DisableVacuumResponse) ProtoMessage() {}
func (x *DisableVacuumResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[39]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DisableVacuumResponse.ProtoReflect.Descriptor instead.
func (*DisableVacuumResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{39}
}
type EnableVacuumRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
ByPlugin bool `protobuf:"varint,1,opt,name=by_plugin,json=byPlugin,proto3" json:"by_plugin,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *EnableVacuumRequest) Reset() {
*x = EnableVacuumRequest{}
mi := &file_master_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *EnableVacuumRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EnableVacuumRequest) ProtoMessage() {}
func (x *EnableVacuumRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[40]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EnableVacuumRequest.ProtoReflect.Descriptor instead.
func (*EnableVacuumRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{40}
}
func (x *EnableVacuumRequest) GetByPlugin() bool {
if x != nil {
return x.ByPlugin
}
return false
}
type EnableVacuumResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *EnableVacuumResponse) Reset() {
*x = EnableVacuumResponse{}
mi := &file_master_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *EnableVacuumResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EnableVacuumResponse) ProtoMessage() {}
func (x *EnableVacuumResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[41]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EnableVacuumResponse.ProtoReflect.Descriptor instead.
func (*EnableVacuumResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{41}
}
type VolumeMarkReadonlyRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
VolumeId uint32 `protobuf:"varint,4,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
Collection string `protobuf:"bytes,5,opt,name=collection,proto3" json:"collection,omitempty"`
ReplicaPlacement uint32 `protobuf:"varint,6,opt,name=replica_placement,json=replicaPlacement,proto3" json:"replica_placement,omitempty"`
Version uint32 `protobuf:"varint,7,opt,name=version,proto3" json:"version,omitempty"`
Ttl uint32 `protobuf:"varint,8,opt,name=ttl,proto3" json:"ttl,omitempty"`
DiskType string `protobuf:"bytes,9,opt,name=disk_type,json=diskType,proto3" json:"disk_type,omitempty"`
IsReadonly bool `protobuf:"varint,10,opt,name=is_readonly,json=isReadonly,proto3" json:"is_readonly,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VolumeMarkReadonlyRequest) Reset() {
*x = VolumeMarkReadonlyRequest{}
mi := &file_master_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VolumeMarkReadonlyRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VolumeMarkReadonlyRequest) ProtoMessage() {}
func (x *VolumeMarkReadonlyRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[42]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VolumeMarkReadonlyRequest.ProtoReflect.Descriptor instead.
func (*VolumeMarkReadonlyRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{42}
}
func (x *VolumeMarkReadonlyRequest) GetIp() string {
if x != nil {
return x.Ip
}
return ""
}
func (x *VolumeMarkReadonlyRequest) GetPort() uint32 {
if x != nil {
return x.Port
}
return 0
}
func (x *VolumeMarkReadonlyRequest) GetVolumeId() uint32 {
if x != nil {
return x.VolumeId
}
return 0
}
func (x *VolumeMarkReadonlyRequest) GetCollection() string {
if x != nil {
return x.Collection
}
return ""
}
func (x *VolumeMarkReadonlyRequest) GetReplicaPlacement() uint32 {
if x != nil {
return x.ReplicaPlacement
}
return 0
}
func (x *VolumeMarkReadonlyRequest) GetVersion() uint32 {
if x != nil {
return x.Version
}
return 0
}
func (x *VolumeMarkReadonlyRequest) GetTtl() uint32 {
if x != nil {
return x.Ttl
}
return 0
}
func (x *VolumeMarkReadonlyRequest) GetDiskType() string {
if x != nil {
return x.DiskType
}
return ""
}
func (x *VolumeMarkReadonlyRequest) GetIsReadonly() bool {
if x != nil {
return x.IsReadonly
}
return false
}
type VolumeMarkReadonlyResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VolumeMarkReadonlyResponse) Reset() {
*x = VolumeMarkReadonlyResponse{}
mi := &file_master_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VolumeMarkReadonlyResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VolumeMarkReadonlyResponse) ProtoMessage() {}
func (x *VolumeMarkReadonlyResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[43]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VolumeMarkReadonlyResponse.ProtoReflect.Descriptor instead.
func (*VolumeMarkReadonlyResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{43}
}
type GetMasterConfigurationRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetMasterConfigurationRequest) Reset() {
*x = GetMasterConfigurationRequest{}
mi := &file_master_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetMasterConfigurationRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetMasterConfigurationRequest) ProtoMessage() {}
func (x *GetMasterConfigurationRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[44]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetMasterConfigurationRequest.ProtoReflect.Descriptor instead.
func (*GetMasterConfigurationRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{44}
}
type GetMasterConfigurationResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
MetricsAddress string `protobuf:"bytes,1,opt,name=metrics_address,json=metricsAddress,proto3" json:"metrics_address,omitempty"`
MetricsIntervalSeconds uint32 `protobuf:"varint,2,opt,name=metrics_interval_seconds,json=metricsIntervalSeconds,proto3" json:"metrics_interval_seconds,omitempty"`
StorageBackends []*StorageBackend `protobuf:"bytes,3,rep,name=storage_backends,json=storageBackends,proto3" json:"storage_backends,omitempty"`
DefaultReplication string `protobuf:"bytes,4,opt,name=default_replication,json=defaultReplication,proto3" json:"default_replication,omitempty"`
Leader string `protobuf:"bytes,5,opt,name=leader,proto3" json:"leader,omitempty"`
VolumeSizeLimitMB uint32 `protobuf:"varint,6,opt,name=volume_size_limit_m_b,json=volumeSizeLimitMB,proto3" json:"volume_size_limit_m_b,omitempty"`
VolumePreallocate bool `protobuf:"varint,7,opt,name=volume_preallocate,json=volumePreallocate,proto3" json:"volume_preallocate,omitempty"`
// MIGRATION: fields 8-9 help migrate master.toml [master.maintenance] to admin script plugin. Remove after March 2027.
MaintenanceScripts string `protobuf:"bytes,8,opt,name=maintenance_scripts,json=maintenanceScripts,proto3" json:"maintenance_scripts,omitempty"`
MaintenanceSleepMinutes uint32 `protobuf:"varint,9,opt,name=maintenance_sleep_minutes,json=maintenanceSleepMinutes,proto3" json:"maintenance_sleep_minutes,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetMasterConfigurationResponse) Reset() {
*x = GetMasterConfigurationResponse{}
mi := &file_master_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetMasterConfigurationResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetMasterConfigurationResponse) ProtoMessage() {}
func (x *GetMasterConfigurationResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[45]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetMasterConfigurationResponse.ProtoReflect.Descriptor instead.
func (*GetMasterConfigurationResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{45}
}
func (x *GetMasterConfigurationResponse) GetMetricsAddress() string {
if x != nil {
return x.MetricsAddress
}
return ""
}
func (x *GetMasterConfigurationResponse) GetMetricsIntervalSeconds() uint32 {
if x != nil {
return x.MetricsIntervalSeconds
}
return 0
}
func (x *GetMasterConfigurationResponse) GetStorageBackends() []*StorageBackend {
if x != nil {
return x.StorageBackends
}
return nil
}
func (x *GetMasterConfigurationResponse) GetDefaultReplication() string {
if x != nil {
return x.DefaultReplication
}
return ""
}
func (x *GetMasterConfigurationResponse) GetLeader() string {
if x != nil {
return x.Leader
}
return ""
}
func (x *GetMasterConfigurationResponse) GetVolumeSizeLimitMB() uint32 {
if x != nil {
return x.VolumeSizeLimitMB
}
return 0
}
func (x *GetMasterConfigurationResponse) GetVolumePreallocate() bool {
if x != nil {
return x.VolumePreallocate
}
return false
}
func (x *GetMasterConfigurationResponse) GetMaintenanceScripts() string {
if x != nil {
return x.MaintenanceScripts
}
return ""
}
func (x *GetMasterConfigurationResponse) GetMaintenanceSleepMinutes() uint32 {
if x != nil {
return x.MaintenanceSleepMinutes
}
return 0
}
type ListClusterNodesRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
ClientType string `protobuf:"bytes,1,opt,name=client_type,json=clientType,proto3" json:"client_type,omitempty"`
FilerGroup string `protobuf:"bytes,2,opt,name=filer_group,json=filerGroup,proto3" json:"filer_group,omitempty"`
Limit int32 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListClusterNodesRequest) Reset() {
*x = ListClusterNodesRequest{}
mi := &file_master_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListClusterNodesRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListClusterNodesRequest) ProtoMessage() {}
func (x *ListClusterNodesRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[46]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListClusterNodesRequest.ProtoReflect.Descriptor instead.
func (*ListClusterNodesRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{46}
}
func (x *ListClusterNodesRequest) GetClientType() string {
if x != nil {
return x.ClientType
}
return ""
}
func (x *ListClusterNodesRequest) GetFilerGroup() string {
if x != nil {
return x.FilerGroup
}
return ""
}
func (x *ListClusterNodesRequest) GetLimit() int32 {
if x != nil {
return x.Limit
}
return 0
}
type ListClusterNodesResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
ClusterNodes []*ListClusterNodesResponse_ClusterNode `protobuf:"bytes,1,rep,name=cluster_nodes,json=clusterNodes,proto3" json:"cluster_nodes,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListClusterNodesResponse) Reset() {
*x = ListClusterNodesResponse{}
mi := &file_master_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListClusterNodesResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListClusterNodesResponse) ProtoMessage() {}
func (x *ListClusterNodesResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[47]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListClusterNodesResponse.ProtoReflect.Descriptor instead.
func (*ListClusterNodesResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{47}
}
func (x *ListClusterNodesResponse) GetClusterNodes() []*ListClusterNodesResponse_ClusterNode {
if x != nil {
return x.ClusterNodes
}
return nil
}
type LeaseAdminTokenRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
PreviousToken int64 `protobuf:"varint,1,opt,name=previous_token,json=previousToken,proto3" json:"previous_token,omitempty"`
PreviousLockTime int64 `protobuf:"varint,2,opt,name=previous_lock_time,json=previousLockTime,proto3" json:"previous_lock_time,omitempty"`
LockName string `protobuf:"bytes,3,opt,name=lock_name,json=lockName,proto3" json:"lock_name,omitempty"`
ClientName string `protobuf:"bytes,4,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"`
Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LeaseAdminTokenRequest) Reset() {
*x = LeaseAdminTokenRequest{}
mi := &file_master_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LeaseAdminTokenRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LeaseAdminTokenRequest) ProtoMessage() {}
func (x *LeaseAdminTokenRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[48]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LeaseAdminTokenRequest.ProtoReflect.Descriptor instead.
func (*LeaseAdminTokenRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{48}
}
func (x *LeaseAdminTokenRequest) GetPreviousToken() int64 {
if x != nil {
return x.PreviousToken
}
return 0
}
func (x *LeaseAdminTokenRequest) GetPreviousLockTime() int64 {
if x != nil {
return x.PreviousLockTime
}
return 0
}
func (x *LeaseAdminTokenRequest) GetLockName() string {
if x != nil {
return x.LockName
}
return ""
}
func (x *LeaseAdminTokenRequest) GetClientName() string {
if x != nil {
return x.ClientName
}
return ""
}
func (x *LeaseAdminTokenRequest) GetMessage() string {
if x != nil {
return x.Message
}
return ""
}
type LeaseAdminTokenResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Token int64 `protobuf:"varint,1,opt,name=token,proto3" json:"token,omitempty"`
LockTsNs int64 `protobuf:"varint,2,opt,name=lock_ts_ns,json=lockTsNs,proto3" json:"lock_ts_ns,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LeaseAdminTokenResponse) Reset() {
*x = LeaseAdminTokenResponse{}
mi := &file_master_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LeaseAdminTokenResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LeaseAdminTokenResponse) ProtoMessage() {}
func (x *LeaseAdminTokenResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[49]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LeaseAdminTokenResponse.ProtoReflect.Descriptor instead.
func (*LeaseAdminTokenResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{49}
}
func (x *LeaseAdminTokenResponse) GetToken() int64 {
if x != nil {
return x.Token
}
return 0
}
func (x *LeaseAdminTokenResponse) GetLockTsNs() int64 {
if x != nil {
return x.LockTsNs
}
return 0
}
type ReleaseAdminTokenRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
PreviousToken int64 `protobuf:"varint,1,opt,name=previous_token,json=previousToken,proto3" json:"previous_token,omitempty"`
PreviousLockTime int64 `protobuf:"varint,2,opt,name=previous_lock_time,json=previousLockTime,proto3" json:"previous_lock_time,omitempty"`
LockName string `protobuf:"bytes,3,opt,name=lock_name,json=lockName,proto3" json:"lock_name,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ReleaseAdminTokenRequest) Reset() {
*x = ReleaseAdminTokenRequest{}
mi := &file_master_proto_msgTypes[50]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ReleaseAdminTokenRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReleaseAdminTokenRequest) ProtoMessage() {}
func (x *ReleaseAdminTokenRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[50]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReleaseAdminTokenRequest.ProtoReflect.Descriptor instead.
func (*ReleaseAdminTokenRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{50}
}
func (x *ReleaseAdminTokenRequest) GetPreviousToken() int64 {
if x != nil {
return x.PreviousToken
}
return 0
}
func (x *ReleaseAdminTokenRequest) GetPreviousLockTime() int64 {
if x != nil {
return x.PreviousLockTime
}
return 0
}
func (x *ReleaseAdminTokenRequest) GetLockName() string {
if x != nil {
return x.LockName
}
return ""
}
type ReleaseAdminTokenResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ReleaseAdminTokenResponse) Reset() {
*x = ReleaseAdminTokenResponse{}
mi := &file_master_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ReleaseAdminTokenResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReleaseAdminTokenResponse) ProtoMessage() {}
func (x *ReleaseAdminTokenResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[51]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReleaseAdminTokenResponse.ProtoReflect.Descriptor instead.
func (*ReleaseAdminTokenResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{51}
}
type PingRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Target string `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"` // default to ping itself
TargetType string `protobuf:"bytes,2,opt,name=target_type,json=targetType,proto3" json:"target_type,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PingRequest) Reset() {
*x = PingRequest{}
mi := &file_master_proto_msgTypes[52]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PingRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PingRequest) ProtoMessage() {}
func (x *PingRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[52]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PingRequest.ProtoReflect.Descriptor instead.
func (*PingRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{52}
}
func (x *PingRequest) GetTarget() string {
if x != nil {
return x.Target
}
return ""
}
func (x *PingRequest) GetTargetType() string {
if x != nil {
return x.TargetType
}
return ""
}
type PingResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
StartTimeNs int64 `protobuf:"varint,1,opt,name=start_time_ns,json=startTimeNs,proto3" json:"start_time_ns,omitempty"`
RemoteTimeNs int64 `protobuf:"varint,2,opt,name=remote_time_ns,json=remoteTimeNs,proto3" json:"remote_time_ns,omitempty"`
StopTimeNs int64 `protobuf:"varint,3,opt,name=stop_time_ns,json=stopTimeNs,proto3" json:"stop_time_ns,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *PingResponse) Reset() {
*x = PingResponse{}
mi := &file_master_proto_msgTypes[53]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *PingResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PingResponse) ProtoMessage() {}
func (x *PingResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[53]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PingResponse.ProtoReflect.Descriptor instead.
func (*PingResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{53}
}
func (x *PingResponse) GetStartTimeNs() int64 {
if x != nil {
return x.StartTimeNs
}
return 0
}
func (x *PingResponse) GetRemoteTimeNs() int64 {
if x != nil {
return x.RemoteTimeNs
}
return 0
}
func (x *PingResponse) GetStopTimeNs() int64 {
if x != nil {
return x.StopTimeNs
}
return 0
}
type RaftAddServerRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
Voter bool `protobuf:"varint,3,opt,name=voter,proto3" json:"voter,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RaftAddServerRequest) Reset() {
*x = RaftAddServerRequest{}
mi := &file_master_proto_msgTypes[54]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RaftAddServerRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RaftAddServerRequest) ProtoMessage() {}
func (x *RaftAddServerRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[54]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RaftAddServerRequest.ProtoReflect.Descriptor instead.
func (*RaftAddServerRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{54}
}
func (x *RaftAddServerRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *RaftAddServerRequest) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *RaftAddServerRequest) GetVoter() bool {
if x != nil {
return x.Voter
}
return false
}
type RaftAddServerResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RaftAddServerResponse) Reset() {
*x = RaftAddServerResponse{}
mi := &file_master_proto_msgTypes[55]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RaftAddServerResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RaftAddServerResponse) ProtoMessage() {}
func (x *RaftAddServerResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[55]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RaftAddServerResponse.ProtoReflect.Descriptor instead.
func (*RaftAddServerResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{55}
}
type RaftRemoveServerRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RaftRemoveServerRequest) Reset() {
*x = RaftRemoveServerRequest{}
mi := &file_master_proto_msgTypes[56]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RaftRemoveServerRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RaftRemoveServerRequest) ProtoMessage() {}
func (x *RaftRemoveServerRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[56]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RaftRemoveServerRequest.ProtoReflect.Descriptor instead.
func (*RaftRemoveServerRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{56}
}
func (x *RaftRemoveServerRequest) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *RaftRemoveServerRequest) GetForce() bool {
if x != nil {
return x.Force
}
return false
}
type RaftRemoveServerResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RaftRemoveServerResponse) Reset() {
*x = RaftRemoveServerResponse{}
mi := &file_master_proto_msgTypes[57]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RaftRemoveServerResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RaftRemoveServerResponse) ProtoMessage() {}
func (x *RaftRemoveServerResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[57]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RaftRemoveServerResponse.ProtoReflect.Descriptor instead.
func (*RaftRemoveServerResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{57}
}
type RaftListClusterServersRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RaftListClusterServersRequest) Reset() {
*x = RaftListClusterServersRequest{}
mi := &file_master_proto_msgTypes[58]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RaftListClusterServersRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RaftListClusterServersRequest) ProtoMessage() {}
func (x *RaftListClusterServersRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[58]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RaftListClusterServersRequest.ProtoReflect.Descriptor instead.
func (*RaftListClusterServersRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{58}
}
type RaftListClusterServersResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
ClusterServers []*RaftListClusterServersResponse_ClusterServers `protobuf:"bytes,1,rep,name=cluster_servers,json=clusterServers,proto3" json:"cluster_servers,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RaftListClusterServersResponse) Reset() {
*x = RaftListClusterServersResponse{}
mi := &file_master_proto_msgTypes[59]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RaftListClusterServersResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RaftListClusterServersResponse) ProtoMessage() {}
func (x *RaftListClusterServersResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[59]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RaftListClusterServersResponse.ProtoReflect.Descriptor instead.
func (*RaftListClusterServersResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{59}
}
func (x *RaftListClusterServersResponse) GetClusterServers() []*RaftListClusterServersResponse_ClusterServers {
if x != nil {
return x.ClusterServers
}
return nil
}
type RaftLeadershipTransferRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
TargetId string `protobuf:"bytes,1,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"` // Optional: target server ID. If empty, transfers to any eligible follower
TargetAddress string `protobuf:"bytes,2,opt,name=target_address,json=targetAddress,proto3" json:"target_address,omitempty"` // Optional: target server address. Required if target_id is specified
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RaftLeadershipTransferRequest) Reset() {
*x = RaftLeadershipTransferRequest{}
mi := &file_master_proto_msgTypes[60]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RaftLeadershipTransferRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RaftLeadershipTransferRequest) ProtoMessage() {}
func (x *RaftLeadershipTransferRequest) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[60]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RaftLeadershipTransferRequest.ProtoReflect.Descriptor instead.
func (*RaftLeadershipTransferRequest) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{60}
}
func (x *RaftLeadershipTransferRequest) GetTargetId() string {
if x != nil {
return x.TargetId
}
return ""
}
func (x *RaftLeadershipTransferRequest) GetTargetAddress() string {
if x != nil {
return x.TargetAddress
}
return ""
}
type RaftLeadershipTransferResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
PreviousLeader string `protobuf:"bytes,1,opt,name=previous_leader,json=previousLeader,proto3" json:"previous_leader,omitempty"`
NewLeader string `protobuf:"bytes,2,opt,name=new_leader,json=newLeader,proto3" json:"new_leader,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RaftLeadershipTransferResponse) Reset() {
*x = RaftLeadershipTransferResponse{}
mi := &file_master_proto_msgTypes[61]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RaftLeadershipTransferResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RaftLeadershipTransferResponse) ProtoMessage() {}
func (x *RaftLeadershipTransferResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[61]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RaftLeadershipTransferResponse.ProtoReflect.Descriptor instead.
func (*RaftLeadershipTransferResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{61}
}
func (x *RaftLeadershipTransferResponse) GetPreviousLeader() string {
if x != nil {
return x.PreviousLeader
}
return ""
}
func (x *RaftLeadershipTransferResponse) GetNewLeader() string {
if x != nil {
return x.NewLeader
}
return ""
}
type VolumeGrowResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VolumeGrowResponse) Reset() {
*x = VolumeGrowResponse{}
mi := &file_master_proto_msgTypes[62]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VolumeGrowResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VolumeGrowResponse) ProtoMessage() {}
func (x *VolumeGrowResponse) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[62]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VolumeGrowResponse.ProtoReflect.Descriptor instead.
func (*VolumeGrowResponse) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{62}
}
type SuperBlockExtra_ErasureCoding struct {
state protoimpl.MessageState `protogen:"open.v1"`
Data uint32 `protobuf:"varint,1,opt,name=data,proto3" json:"data,omitempty"`
Parity uint32 `protobuf:"varint,2,opt,name=parity,proto3" json:"parity,omitempty"`
VolumeIds []uint32 `protobuf:"varint,3,rep,packed,name=volume_ids,json=volumeIds,proto3" json:"volume_ids,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *SuperBlockExtra_ErasureCoding) Reset() {
*x = SuperBlockExtra_ErasureCoding{}
mi := &file_master_proto_msgTypes[65]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *SuperBlockExtra_ErasureCoding) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SuperBlockExtra_ErasureCoding) ProtoMessage() {}
func (x *SuperBlockExtra_ErasureCoding) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[65]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SuperBlockExtra_ErasureCoding.ProtoReflect.Descriptor instead.
func (*SuperBlockExtra_ErasureCoding) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{8, 0}
}
func (x *SuperBlockExtra_ErasureCoding) GetData() uint32 {
if x != nil {
return x.Data
}
return 0
}
func (x *SuperBlockExtra_ErasureCoding) GetParity() uint32 {
if x != nil {
return x.Parity
}
return 0
}
func (x *SuperBlockExtra_ErasureCoding) GetVolumeIds() []uint32 {
if x != nil {
return x.VolumeIds
}
return nil
}
type LookupVolumeResponse_VolumeIdLocation struct {
state protoimpl.MessageState `protogen:"open.v1"`
VolumeOrFileId string `protobuf:"bytes,1,opt,name=volume_or_file_id,json=volumeOrFileId,proto3" json:"volume_or_file_id,omitempty"`
Locations []*Location `protobuf:"bytes,2,rep,name=locations,proto3" json:"locations,omitempty"`
Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
Auth string `protobuf:"bytes,4,opt,name=auth,proto3" json:"auth,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupVolumeResponse_VolumeIdLocation) Reset() {
*x = LookupVolumeResponse_VolumeIdLocation{}
mi := &file_master_proto_msgTypes[66]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupVolumeResponse_VolumeIdLocation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupVolumeResponse_VolumeIdLocation) ProtoMessage() {}
func (x *LookupVolumeResponse_VolumeIdLocation) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[66]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupVolumeResponse_VolumeIdLocation.ProtoReflect.Descriptor instead.
func (*LookupVolumeResponse_VolumeIdLocation) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{15, 0}
}
func (x *LookupVolumeResponse_VolumeIdLocation) GetVolumeOrFileId() string {
if x != nil {
return x.VolumeOrFileId
}
return ""
}
func (x *LookupVolumeResponse_VolumeIdLocation) GetLocations() []*Location {
if x != nil {
return x.Locations
}
return nil
}
func (x *LookupVolumeResponse_VolumeIdLocation) GetError() string {
if x != nil {
return x.Error
}
return ""
}
func (x *LookupVolumeResponse_VolumeIdLocation) GetAuth() string {
if x != nil {
return x.Auth
}
return ""
}
type LookupEcVolumeResponse_EcShardIdLocation struct {
state protoimpl.MessageState `protogen:"open.v1"`
ShardId uint32 `protobuf:"varint,1,opt,name=shard_id,json=shardId,proto3" json:"shard_id,omitempty"`
Locations []*Location `protobuf:"bytes,2,rep,name=locations,proto3" json:"locations,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *LookupEcVolumeResponse_EcShardIdLocation) Reset() {
*x = LookupEcVolumeResponse_EcShardIdLocation{}
mi := &file_master_proto_msgTypes[71]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *LookupEcVolumeResponse_EcShardIdLocation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LookupEcVolumeResponse_EcShardIdLocation) ProtoMessage() {}
func (x *LookupEcVolumeResponse_EcShardIdLocation) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[71]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LookupEcVolumeResponse_EcShardIdLocation.ProtoReflect.Descriptor instead.
func (*LookupEcVolumeResponse_EcShardIdLocation) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{35, 0}
}
func (x *LookupEcVolumeResponse_EcShardIdLocation) GetShardId() uint32 {
if x != nil {
return x.ShardId
}
return 0
}
func (x *LookupEcVolumeResponse_EcShardIdLocation) GetLocations() []*Location {
if x != nil {
return x.Locations
}
return nil
}
type ListClusterNodesResponse_ClusterNode struct {
state protoimpl.MessageState `protogen:"open.v1"`
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
CreatedAtNs int64 `protobuf:"varint,4,opt,name=created_at_ns,json=createdAtNs,proto3" json:"created_at_ns,omitempty"`
DataCenter string `protobuf:"bytes,5,opt,name=data_center,json=dataCenter,proto3" json:"data_center,omitempty"`
Rack string `protobuf:"bytes,6,opt,name=rack,proto3" json:"rack,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ListClusterNodesResponse_ClusterNode) Reset() {
*x = ListClusterNodesResponse_ClusterNode{}
mi := &file_master_proto_msgTypes[72]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ListClusterNodesResponse_ClusterNode) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListClusterNodesResponse_ClusterNode) ProtoMessage() {}
func (x *ListClusterNodesResponse_ClusterNode) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[72]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ListClusterNodesResponse_ClusterNode.ProtoReflect.Descriptor instead.
func (*ListClusterNodesResponse_ClusterNode) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{47, 0}
}
func (x *ListClusterNodesResponse_ClusterNode) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *ListClusterNodesResponse_ClusterNode) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
func (x *ListClusterNodesResponse_ClusterNode) GetCreatedAtNs() int64 {
if x != nil {
return x.CreatedAtNs
}
return 0
}
func (x *ListClusterNodesResponse_ClusterNode) GetDataCenter() string {
if x != nil {
return x.DataCenter
}
return ""
}
func (x *ListClusterNodesResponse_ClusterNode) GetRack() string {
if x != nil {
return x.Rack
}
return ""
}
type RaftListClusterServersResponse_ClusterServers struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
Suffrage string `protobuf:"bytes,3,opt,name=suffrage,proto3" json:"suffrage,omitempty"`
IsLeader bool `protobuf:"varint,4,opt,name=isLeader,proto3" json:"isLeader,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *RaftListClusterServersResponse_ClusterServers) Reset() {
*x = RaftListClusterServersResponse_ClusterServers{}
mi := &file_master_proto_msgTypes[73]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *RaftListClusterServersResponse_ClusterServers) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RaftListClusterServersResponse_ClusterServers) ProtoMessage() {}
func (x *RaftListClusterServersResponse_ClusterServers) ProtoReflect() protoreflect.Message {
mi := &file_master_proto_msgTypes[73]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RaftListClusterServersResponse_ClusterServers.ProtoReflect.Descriptor instead.
func (*RaftListClusterServersResponse_ClusterServers) Descriptor() ([]byte, []int) {
return file_master_proto_rawDescGZIP(), []int{59, 0}
}
func (x *RaftListClusterServersResponse_ClusterServers) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *RaftListClusterServersResponse_ClusterServers) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *RaftListClusterServersResponse_ClusterServers) GetSuffrage() string {
if x != nil {
return x.Suffrage
}
return ""
}
func (x *RaftListClusterServersResponse_ClusterServers) GetIsLeader() bool {
if x != nil {
return x.IsLeader
}
return false
}
var File_master_proto protoreflect.FileDescriptor
const file_master_proto_rawDesc = "" +
"\n" +
"\fmaster.proto\x12\tmaster_pb\x1a\x13volume_server.proto\"6\n" +
"\aDiskTag\x12\x17\n" +
"\adisk_id\x18\x01 \x01(\rR\x06diskId\x12\x12\n" +
"\x04tags\x18\x02 \x03(\tR\x04tags\"\xbc\b\n" +
"\tHeartbeat\x12\x0e\n" +
"\x02ip\x18\x01 \x01(\tR\x02ip\x12\x12\n" +
"\x04port\x18\x02 \x01(\rR\x04port\x12\x1d\n" +
"\n" +
"public_url\x18\x03 \x01(\tR\tpublicUrl\x12 \n" +
"\fmax_file_key\x18\x05 \x01(\x04R\n" +
"maxFileKey\x12\x1f\n" +
"\vdata_center\x18\x06 \x01(\tR\n" +
"dataCenter\x12\x12\n" +
"\x04rack\x18\a \x01(\tR\x04rack\x12\x1d\n" +
"\n" +
"admin_port\x18\b \x01(\rR\tadminPort\x12=\n" +
"\avolumes\x18\t \x03(\v2#.master_pb.VolumeInformationMessageR\avolumes\x12I\n" +
"\vnew_volumes\x18\n" +
" \x03(\v2(.master_pb.VolumeShortInformationMessageR\n" +
"newVolumes\x12Q\n" +
"\x0fdeleted_volumes\x18\v \x03(\v2(.master_pb.VolumeShortInformationMessageR\x0edeletedVolumes\x12$\n" +
"\x0ehas_no_volumes\x18\f \x01(\bR\fhasNoVolumes\x12G\n" +
"\tec_shards\x18\x10 \x03(\v2*.master_pb.VolumeEcShardInformationMessageR\becShards\x12N\n" +
"\rnew_ec_shards\x18\x11 \x03(\v2*.master_pb.VolumeEcShardInformationMessageR\vnewEcShards\x12V\n" +
"\x11deleted_ec_shards\x18\x12 \x03(\v2*.master_pb.VolumeEcShardInformationMessageR\x0fdeletedEcShards\x12'\n" +
"\x10has_no_ec_shards\x18\x13 \x01(\bR\rhasNoEcShards\x12U\n" +
"\x11max_volume_counts\x18\x04 \x03(\v2).master_pb.Heartbeat.MaxVolumeCountsEntryR\x0fmaxVolumeCounts\x12\x1b\n" +
"\tgrpc_port\x18\x14 \x01(\rR\bgrpcPort\x12%\n" +
"\x0elocation_uuids\x18\x15 \x03(\tR\rlocationUuids\x12\x0e\n" +
"\x02id\x18\x16 \x01(\tR\x02id\x129\n" +
"\x05state\x18\x17 \x01(\v2#.volume_server_pb.VolumeServerStateR\x05state\x12/\n" +
"\tdisk_tags\x18\x18 \x03(\v2\x12.master_pb.DiskTagR\bdiskTags\x1aB\n" +
"\x14MaxVolumeCountsEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\rR\x05value:\x028\x01\"\xcd\x02\n" +
"\x11HeartbeatResponse\x12*\n" +
"\x11volume_size_limit\x18\x01 \x01(\x04R\x0fvolumeSizeLimit\x12\x16\n" +
"\x06leader\x18\x02 \x01(\tR\x06leader\x12'\n" +
"\x0fmetrics_address\x18\x03 \x01(\tR\x0emetricsAddress\x128\n" +
"\x18metrics_interval_seconds\x18\x04 \x01(\rR\x16metricsIntervalSeconds\x12D\n" +
"\x10storage_backends\x18\x05 \x03(\v2\x19.master_pb.StorageBackendR\x0fstorageBackends\x12)\n" +
"\x10duplicated_uuids\x18\x06 \x03(\tR\x0fduplicatedUuids\x12 \n" +
"\vpreallocate\x18\a \x01(\bR\vpreallocate\"\xb1\x04\n" +
"\x18VolumeInformationMessage\x12\x0e\n" +
"\x02id\x18\x01 \x01(\rR\x02id\x12\x12\n" +
"\x04size\x18\x02 \x01(\x04R\x04size\x12\x1e\n" +
"\n" +
"collection\x18\x03 \x01(\tR\n" +
"collection\x12\x1d\n" +
"\n" +
"file_count\x18\x04 \x01(\x04R\tfileCount\x12!\n" +
"\fdelete_count\x18\x05 \x01(\x04R\vdeleteCount\x12,\n" +
"\x12deleted_byte_count\x18\x06 \x01(\x04R\x10deletedByteCount\x12\x1b\n" +
"\tread_only\x18\a \x01(\bR\breadOnly\x12+\n" +
"\x11replica_placement\x18\b \x01(\rR\x10replicaPlacement\x12\x18\n" +
"\aversion\x18\t \x01(\rR\aversion\x12\x10\n" +
"\x03ttl\x18\n" +
" \x01(\rR\x03ttl\x12)\n" +
"\x10compact_revision\x18\v \x01(\rR\x0fcompactRevision\x12,\n" +
"\x12modified_at_second\x18\f \x01(\x03R\x10modifiedAtSecond\x12.\n" +
"\x13remote_storage_name\x18\r \x01(\tR\x11remoteStorageName\x12,\n" +
"\x12remote_storage_key\x18\x0e \x01(\tR\x10remoteStorageKey\x12\x1b\n" +
"\tdisk_type\x18\x0f \x01(\tR\bdiskType\x12\x17\n" +
"\adisk_id\x18\x10 \x01(\rR\x06diskId\"\xde\x01\n" +
"\x1dVolumeShortInformationMessage\x12\x0e\n" +
"\x02id\x18\x01 \x01(\rR\x02id\x12\x1e\n" +
"\n" +
"collection\x18\x03 \x01(\tR\n" +
"collection\x12+\n" +
"\x11replica_placement\x18\b \x01(\rR\x10replicaPlacement\x12\x18\n" +
"\aversion\x18\t \x01(\rR\aversion\x12\x10\n" +
"\x03ttl\x18\n" +
" \x01(\rR\x03ttl\x12\x1b\n" +
"\tdisk_type\x18\x0f \x01(\tR\bdiskType\x12\x17\n" +
"\adisk_id\x18\x10 \x01(\rR\x06diskId\"\xb2\x02\n" +
"\x1fVolumeEcShardInformationMessage\x12\x0e\n" +
"\x02id\x18\x01 \x01(\rR\x02id\x12\x1e\n" +
"\n" +
"collection\x18\x02 \x01(\tR\n" +
"collection\x12\"\n" +
"\rec_index_bits\x18\x03 \x01(\rR\vecIndexBits\x12\x1b\n" +
"\tdisk_type\x18\x04 \x01(\tR\bdiskType\x12\"\n" +
"\rexpire_at_sec\x18\x05 \x01(\x04R\vexpireAtSec\x12\x17\n" +
"\adisk_id\x18\x06 \x01(\rR\x06diskId\x12\x1f\n" +
"\vshard_sizes\x18\a \x03(\x03R\n" +
"shardSizes\x12\x1d\n" +
"\n" +
"file_count\x18\b \x01(\x04R\tfileCount\x12!\n" +
"\fdelete_count\x18\t \x01(\x04R\vdeleteCount\"\xbe\x01\n" +
"\x0eStorageBackend\x12\x12\n" +
"\x04type\x18\x01 \x01(\tR\x04type\x12\x0e\n" +
"\x02id\x18\x02 \x01(\tR\x02id\x12I\n" +
"\n" +
"properties\x18\x03 \x03(\v2).master_pb.StorageBackend.PropertiesEntryR\n" +
"properties\x1a=\n" +
"\x0fPropertiesEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\a\n" +
"\x05Empty\"\xbe\x01\n" +
"\x0fSuperBlockExtra\x12O\n" +
"\x0eerasure_coding\x18\x01 \x01(\v2(.master_pb.SuperBlockExtra.ErasureCodingR\rerasureCoding\x1aZ\n" +
"\rErasureCoding\x12\x12\n" +
"\x04data\x18\x01 \x01(\rR\x04data\x12\x16\n" +
"\x06parity\x18\x02 \x01(\rR\x06parity\x12\x1d\n" +
"\n" +
"volume_ids\x18\x03 \x03(\rR\tvolumeIds\"\xce\x01\n" +
"\x14KeepConnectedRequest\x12\x1f\n" +
"\vclient_type\x18\x01 \x01(\tR\n" +
"clientType\x12%\n" +
"\x0eclient_address\x18\x03 \x01(\tR\rclientAddress\x12\x18\n" +
"\aversion\x18\x04 \x01(\tR\aversion\x12\x1f\n" +
"\vfiler_group\x18\x05 \x01(\tR\n" +
"filerGroup\x12\x1f\n" +
"\vdata_center\x18\x06 \x01(\tR\n" +
"dataCenter\x12\x12\n" +
"\x04rack\x18\a \x01(\tR\x04rack\"\x9d\x02\n" +
"\x0eVolumeLocation\x12\x10\n" +
"\x03url\x18\x01 \x01(\tR\x03url\x12\x1d\n" +
"\n" +
"public_url\x18\x02 \x01(\tR\tpublicUrl\x12\x19\n" +
"\bnew_vids\x18\x03 \x03(\rR\anewVids\x12!\n" +
"\fdeleted_vids\x18\x04 \x03(\rR\vdeletedVids\x12\x16\n" +
"\x06leader\x18\x05 \x01(\tR\x06leader\x12\x1f\n" +
"\vdata_center\x18\x06 \x01(\tR\n" +
"dataCenter\x12\x1b\n" +
"\tgrpc_port\x18\a \x01(\rR\bgrpcPort\x12\x1e\n" +
"\vnew_ec_vids\x18\b \x03(\rR\tnewEcVids\x12&\n" +
"\x0fdeleted_ec_vids\x18\t \x03(\rR\rdeletedEcVids\"\xa6\x01\n" +
"\x11ClusterNodeUpdate\x12\x1b\n" +
"\tnode_type\x18\x01 \x01(\tR\bnodeType\x12\x18\n" +
"\aaddress\x18\x02 \x01(\tR\aaddress\x12\x15\n" +
"\x06is_add\x18\x04 \x01(\bR\x05isAdd\x12\x1f\n" +
"\vfiler_group\x18\x05 \x01(\tR\n" +
"filerGroup\x12\"\n" +
"\rcreated_at_ns\x18\x06 \x01(\x03R\vcreatedAtNs\"\xee\x01\n" +
"\x15KeepConnectedResponse\x12B\n" +
"\x0fvolume_location\x18\x01 \x01(\v2\x19.master_pb.VolumeLocationR\x0evolumeLocation\x12L\n" +
"\x13cluster_node_update\x18\x02 \x01(\v2\x1c.master_pb.ClusterNodeUpdateR\x11clusterNodeUpdate\x12C\n" +
"\x10lock_ring_update\x18\x03 \x01(\v2\x19.master_pb.LockRingUpdateR\x0elockRingUpdate\"e\n" +
"\x0eLockRingUpdate\x12\x1f\n" +
"\vfiler_group\x18\x01 \x01(\tR\n" +
"filerGroup\x12\x18\n" +
"\aservers\x18\x02 \x03(\tR\aservers\x12\x18\n" +
"\aversion\x18\x03 \x01(\x03R\aversion\"b\n" +
"\x13LookupVolumeRequest\x12+\n" +
"\x12volume_or_file_ids\x18\x01 \x03(\tR\x0fvolumeOrFileIds\x12\x1e\n" +
"\n" +
"collection\x18\x02 \x01(\tR\n" +
"collection\"\x95\x02\n" +
"\x14LookupVolumeResponse\x12`\n" +
"\x13volume_id_locations\x18\x01 \x03(\v20.master_pb.LookupVolumeResponse.VolumeIdLocationR\x11volumeIdLocations\x1a\x9a\x01\n" +
"\x10VolumeIdLocation\x12)\n" +
"\x11volume_or_file_id\x18\x01 \x01(\tR\x0evolumeOrFileId\x121\n" +
"\tlocations\x18\x02 \x03(\v2\x13.master_pb.LocationR\tlocations\x12\x14\n" +
"\x05error\x18\x03 \x01(\tR\x05error\x12\x12\n" +
"\x04auth\x18\x04 \x01(\tR\x04auth\"y\n" +
"\bLocation\x12\x10\n" +
"\x03url\x18\x01 \x01(\tR\x03url\x12\x1d\n" +
"\n" +
"public_url\x18\x02 \x01(\tR\tpublicUrl\x12\x1b\n" +
"\tgrpc_port\x18\x03 \x01(\rR\bgrpcPort\x12\x1f\n" +
"\vdata_center\x18\x04 \x01(\tR\n" +
"dataCenter\"\xfe\x02\n" +
"\rAssignRequest\x12\x14\n" +
"\x05count\x18\x01 \x01(\x04R\x05count\x12 \n" +
"\vreplication\x18\x02 \x01(\tR\vreplication\x12\x1e\n" +
"\n" +
"collection\x18\x03 \x01(\tR\n" +
"collection\x12\x10\n" +
"\x03ttl\x18\x04 \x01(\tR\x03ttl\x12\x1f\n" +
"\vdata_center\x18\x05 \x01(\tR\n" +
"dataCenter\x12\x12\n" +
"\x04rack\x18\x06 \x01(\tR\x04rack\x12\x1b\n" +
"\tdata_node\x18\a \x01(\tR\bdataNode\x122\n" +
"\x16memory_map_max_size_mb\x18\b \x01(\rR\x12memoryMapMaxSizeMb\x122\n" +
"\x15writable_volume_count\x18\t \x01(\rR\x13writableVolumeCount\x12\x1b\n" +
"\tdisk_type\x18\n" +
" \x01(\tR\bdiskType\x12,\n" +
"\x12expected_data_size\x18\v \x01(\x04R\x10expectedDataSize\"\xbe\x02\n" +
"\x11VolumeGrowRequest\x122\n" +
"\x15writable_volume_count\x18\x01 \x01(\rR\x13writableVolumeCount\x12 \n" +
"\vreplication\x18\x02 \x01(\tR\vreplication\x12\x1e\n" +
"\n" +
"collection\x18\x03 \x01(\tR\n" +
"collection\x12\x10\n" +
"\x03ttl\x18\x04 \x01(\tR\x03ttl\x12\x1f\n" +
"\vdata_center\x18\x05 \x01(\tR\n" +
"dataCenter\x12\x12\n" +
"\x04rack\x18\x06 \x01(\tR\x04rack\x12\x1b\n" +
"\tdata_node\x18\a \x01(\tR\bdataNode\x122\n" +
"\x16memory_map_max_size_mb\x18\b \x01(\rR\x12memoryMapMaxSizeMb\x12\x1b\n" +
"\tdisk_type\x18\t \x01(\tR\bdiskType\"\xc4\x01\n" +
"\x0eAssignResponse\x12\x10\n" +
"\x03fid\x18\x01 \x01(\tR\x03fid\x12\x14\n" +
"\x05count\x18\x04 \x01(\x04R\x05count\x12\x14\n" +
"\x05error\x18\x05 \x01(\tR\x05error\x12\x12\n" +
"\x04auth\x18\x06 \x01(\tR\x04auth\x12/\n" +
"\breplicas\x18\a \x03(\v2\x13.master_pb.LocationR\breplicas\x12/\n" +
"\blocation\x18\b \x01(\v2\x13.master_pb.LocationR\blocation\"\x84\x01\n" +
"\x11StatisticsRequest\x12 \n" +
"\vreplication\x18\x01 \x01(\tR\vreplication\x12\x1e\n" +
"\n" +
"collection\x18\x02 \x01(\tR\n" +
"collection\x12\x10\n" +
"\x03ttl\x18\x03 \x01(\tR\x03ttl\x12\x1b\n" +
"\tdisk_type\x18\x04 \x01(\tR\bdiskType\"o\n" +
"\x12StatisticsResponse\x12\x1d\n" +
"\n" +
"total_size\x18\x04 \x01(\x04R\ttotalSize\x12\x1b\n" +
"\tused_size\x18\x05 \x01(\x04R\busedSize\x12\x1d\n" +
"\n" +
"file_count\x18\x06 \x01(\x04R\tfileCount\" \n" +
"\n" +
"Collection\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\"{\n" +
"\x15CollectionListRequest\x124\n" +
"\x16include_normal_volumes\x18\x01 \x01(\bR\x14includeNormalVolumes\x12,\n" +
"\x12include_ec_volumes\x18\x02 \x01(\bR\x10includeEcVolumes\"Q\n" +
"\x16CollectionListResponse\x127\n" +
"\vcollections\x18\x01 \x03(\v2\x15.master_pb.CollectionR\vcollections\"-\n" +
"\x17CollectionDeleteRequest\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\"\x1a\n" +
"\x18CollectionDeleteResponse\"\xbe\x03\n" +
"\bDiskInfo\x12\x12\n" +
"\x04type\x18\x01 \x01(\tR\x04type\x12!\n" +
"\fvolume_count\x18\x02 \x01(\x03R\vvolumeCount\x12(\n" +
"\x10max_volume_count\x18\x03 \x01(\x03R\x0emaxVolumeCount\x12*\n" +
"\x11free_volume_count\x18\x04 \x01(\x03R\x0ffreeVolumeCount\x12.\n" +
"\x13active_volume_count\x18\x05 \x01(\x03R\x11activeVolumeCount\x12F\n" +
"\fvolume_infos\x18\x06 \x03(\v2#.master_pb.VolumeInformationMessageR\vvolumeInfos\x12P\n" +
"\x0eec_shard_infos\x18\a \x03(\v2*.master_pb.VolumeEcShardInformationMessageR\fecShardInfos\x12.\n" +
"\x13remote_volume_count\x18\b \x01(\x03R\x11remoteVolumeCount\x12\x17\n" +
"\adisk_id\x18\t \x01(\rR\x06diskId\x12\x12\n" +
"\x04tags\x18\n" +
" \x03(\tR\x04tags\"\xee\x01\n" +
"\fDataNodeInfo\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12D\n" +
"\tdiskInfos\x18\x02 \x03(\v2&.master_pb.DataNodeInfo.DiskInfosEntryR\tdiskInfos\x12\x1b\n" +
"\tgrpc_port\x18\x03 \x01(\rR\bgrpcPort\x12\x18\n" +
"\aaddress\x18\x04 \x01(\tR\aaddress\x1aQ\n" +
"\x0eDiskInfosEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12)\n" +
"\x05value\x18\x02 \x01(\v2\x13.master_pb.DiskInfoR\x05value:\x028\x01\"\xf0\x01\n" +
"\bRackInfo\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12?\n" +
"\x0fdata_node_infos\x18\x02 \x03(\v2\x17.master_pb.DataNodeInfoR\rdataNodeInfos\x12@\n" +
"\tdiskInfos\x18\x03 \x03(\v2\".master_pb.RackInfo.DiskInfosEntryR\tdiskInfos\x1aQ\n" +
"\x0eDiskInfosEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12)\n" +
"\x05value\x18\x02 \x01(\v2\x13.master_pb.DiskInfoR\x05value:\x028\x01\"\xef\x01\n" +
"\x0eDataCenterInfo\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x122\n" +
"\n" +
"rack_infos\x18\x02 \x03(\v2\x13.master_pb.RackInfoR\trackInfos\x12F\n" +
"\tdiskInfos\x18\x03 \x03(\v2(.master_pb.DataCenterInfo.DiskInfosEntryR\tdiskInfos\x1aQ\n" +
"\x0eDiskInfosEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12)\n" +
"\x05value\x18\x02 \x01(\v2\x13.master_pb.DiskInfoR\x05value:\x028\x01\"\xfe\x01\n" +
"\fTopologyInfo\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12E\n" +
"\x11data_center_infos\x18\x02 \x03(\v2\x19.master_pb.DataCenterInfoR\x0fdataCenterInfos\x12D\n" +
"\tdiskInfos\x18\x03 \x03(\v2&.master_pb.TopologyInfo.DiskInfosEntryR\tdiskInfos\x1aQ\n" +
"\x0eDiskInfosEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12)\n" +
"\x05value\x18\x02 \x01(\v2\x13.master_pb.DiskInfoR\x05value:\x028\x01\"\x13\n" +
"\x11VolumeListRequest\"\x83\x01\n" +
"\x12VolumeListResponse\x12<\n" +
"\rtopology_info\x18\x01 \x01(\v2\x17.master_pb.TopologyInfoR\ftopologyInfo\x12/\n" +
"\x14volume_size_limit_mb\x18\x02 \x01(\x04R\x11volumeSizeLimitMb\"4\n" +
"\x15LookupEcVolumeRequest\x12\x1b\n" +
"\tvolume_id\x18\x01 \x01(\rR\bvolumeId\"\xfb\x01\n" +
"\x16LookupEcVolumeResponse\x12\x1b\n" +
"\tvolume_id\x18\x01 \x01(\rR\bvolumeId\x12a\n" +
"\x12shard_id_locations\x18\x02 \x03(\v23.master_pb.LookupEcVolumeResponse.EcShardIdLocationR\x10shardIdLocations\x1aa\n" +
"\x11EcShardIdLocation\x12\x19\n" +
"\bshard_id\x18\x01 \x01(\rR\ashardId\x121\n" +
"\tlocations\x18\x02 \x03(\v2\x13.master_pb.LocationR\tlocations\"\x7f\n" +
"\x13VacuumVolumeRequest\x12+\n" +
"\x11garbage_threshold\x18\x01 \x01(\x02R\x10garbageThreshold\x12\x1b\n" +
"\tvolume_id\x18\x02 \x01(\rR\bvolumeId\x12\x1e\n" +
"\n" +
"collection\x18\x03 \x01(\tR\n" +
"collection\"\x16\n" +
"\x14VacuumVolumeResponse\"3\n" +
"\x14DisableVacuumRequest\x12\x1b\n" +
"\tby_plugin\x18\x01 \x01(\bR\bbyPlugin\"\x17\n" +
"\x15DisableVacuumResponse\"2\n" +
"\x13EnableVacuumRequest\x12\x1b\n" +
"\tby_plugin\x18\x01 \x01(\bR\bbyPlugin\"\x16\n" +
"\x14EnableVacuumResponse\"\x93\x02\n" +
"\x19VolumeMarkReadonlyRequest\x12\x0e\n" +
"\x02ip\x18\x01 \x01(\tR\x02ip\x12\x12\n" +
"\x04port\x18\x02 \x01(\rR\x04port\x12\x1b\n" +
"\tvolume_id\x18\x04 \x01(\rR\bvolumeId\x12\x1e\n" +
"\n" +
"collection\x18\x05 \x01(\tR\n" +
"collection\x12+\n" +
"\x11replica_placement\x18\x06 \x01(\rR\x10replicaPlacement\x12\x18\n" +
"\aversion\x18\a \x01(\rR\aversion\x12\x10\n" +
"\x03ttl\x18\b \x01(\rR\x03ttl\x12\x1b\n" +
"\tdisk_type\x18\t \x01(\tR\bdiskType\x12\x1f\n" +
"\vis_readonly\x18\n" +
" \x01(\bR\n" +
"isReadonly\"\x1c\n" +
"\x1aVolumeMarkReadonlyResponse\"\x1f\n" +
"\x1dGetMasterConfigurationRequest\"\xe0\x03\n" +
"\x1eGetMasterConfigurationResponse\x12'\n" +
"\x0fmetrics_address\x18\x01 \x01(\tR\x0emetricsAddress\x128\n" +
"\x18metrics_interval_seconds\x18\x02 \x01(\rR\x16metricsIntervalSeconds\x12D\n" +
"\x10storage_backends\x18\x03 \x03(\v2\x19.master_pb.StorageBackendR\x0fstorageBackends\x12/\n" +
"\x13default_replication\x18\x04 \x01(\tR\x12defaultReplication\x12\x16\n" +
"\x06leader\x18\x05 \x01(\tR\x06leader\x120\n" +
"\x15volume_size_limit_m_b\x18\x06 \x01(\rR\x11volumeSizeLimitMB\x12-\n" +
"\x12volume_preallocate\x18\a \x01(\bR\x11volumePreallocate\x12/\n" +
"\x13maintenance_scripts\x18\b \x01(\tR\x12maintenanceScripts\x12:\n" +
"\x19maintenance_sleep_minutes\x18\t \x01(\rR\x17maintenanceSleepMinutes\"q\n" +
"\x17ListClusterNodesRequest\x12\x1f\n" +
"\vclient_type\x18\x01 \x01(\tR\n" +
"clientType\x12\x1f\n" +
"\vfiler_group\x18\x02 \x01(\tR\n" +
"filerGroup\x12\x14\n" +
"\x05limit\x18\x04 \x01(\x05R\x05limit\"\x8d\x02\n" +
"\x18ListClusterNodesResponse\x12T\n" +
"\rcluster_nodes\x18\x01 \x03(\v2/.master_pb.ListClusterNodesResponse.ClusterNodeR\fclusterNodes\x1a\x9a\x01\n" +
"\vClusterNode\x12\x18\n" +
"\aaddress\x18\x01 \x01(\tR\aaddress\x12\x18\n" +
"\aversion\x18\x02 \x01(\tR\aversion\x12\"\n" +
"\rcreated_at_ns\x18\x04 \x01(\x03R\vcreatedAtNs\x12\x1f\n" +
"\vdata_center\x18\x05 \x01(\tR\n" +
"dataCenter\x12\x12\n" +
"\x04rack\x18\x06 \x01(\tR\x04rack\"\xc5\x01\n" +
"\x16LeaseAdminTokenRequest\x12%\n" +
"\x0eprevious_token\x18\x01 \x01(\x03R\rpreviousToken\x12,\n" +
"\x12previous_lock_time\x18\x02 \x01(\x03R\x10previousLockTime\x12\x1b\n" +
"\tlock_name\x18\x03 \x01(\tR\blockName\x12\x1f\n" +
"\vclient_name\x18\x04 \x01(\tR\n" +
"clientName\x12\x18\n" +
"\amessage\x18\x05 \x01(\tR\amessage\"M\n" +
"\x17LeaseAdminTokenResponse\x12\x14\n" +
"\x05token\x18\x01 \x01(\x03R\x05token\x12\x1c\n" +
"\n" +
"lock_ts_ns\x18\x02 \x01(\x03R\blockTsNs\"\x8c\x01\n" +
"\x18ReleaseAdminTokenRequest\x12%\n" +
"\x0eprevious_token\x18\x01 \x01(\x03R\rpreviousToken\x12,\n" +
"\x12previous_lock_time\x18\x02 \x01(\x03R\x10previousLockTime\x12\x1b\n" +
"\tlock_name\x18\x03 \x01(\tR\blockName\"\x1b\n" +
"\x19ReleaseAdminTokenResponse\"F\n" +
"\vPingRequest\x12\x16\n" +
"\x06target\x18\x01 \x01(\tR\x06target\x12\x1f\n" +
"\vtarget_type\x18\x02 \x01(\tR\n" +
"targetType\"z\n" +
"\fPingResponse\x12\"\n" +
"\rstart_time_ns\x18\x01 \x01(\x03R\vstartTimeNs\x12$\n" +
"\x0eremote_time_ns\x18\x02 \x01(\x03R\fremoteTimeNs\x12 \n" +
"\fstop_time_ns\x18\x03 \x01(\x03R\n" +
"stopTimeNs\"V\n" +
"\x14RaftAddServerRequest\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n" +
"\aaddress\x18\x02 \x01(\tR\aaddress\x12\x14\n" +
"\x05voter\x18\x03 \x01(\bR\x05voter\"\x17\n" +
"\x15RaftAddServerResponse\"?\n" +
"\x17RaftRemoveServerRequest\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n" +
"\x05force\x18\x02 \x01(\bR\x05force\"\x1a\n" +
"\x18RaftRemoveServerResponse\"\x1f\n" +
"\x1dRaftListClusterServersRequest\"\xf7\x01\n" +
"\x1eRaftListClusterServersResponse\x12a\n" +
"\x0fcluster_servers\x18\x01 \x03(\v28.master_pb.RaftListClusterServersResponse.ClusterServersR\x0eclusterServers\x1ar\n" +
"\x0eClusterServers\x12\x0e\n" +
"\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n" +
"\aaddress\x18\x02 \x01(\tR\aaddress\x12\x1a\n" +
"\bsuffrage\x18\x03 \x01(\tR\bsuffrage\x12\x1a\n" +
"\bisLeader\x18\x04 \x01(\bR\bisLeader\"c\n" +
"\x1dRaftLeadershipTransferRequest\x12\x1b\n" +
"\ttarget_id\x18\x01 \x01(\tR\btargetId\x12%\n" +
"\x0etarget_address\x18\x02 \x01(\tR\rtargetAddress\"h\n" +
"\x1eRaftLeadershipTransferResponse\x12'\n" +
"\x0fprevious_leader\x18\x01 \x01(\tR\x0epreviousLeader\x12\x1d\n" +
"\n" +
"new_leader\x18\x02 \x01(\tR\tnewLeader\"\x14\n" +
"\x12VolumeGrowResponse2\xc6\x10\n" +
"\aSeaweed\x12I\n" +
"\rSendHeartbeat\x12\x14.master_pb.Heartbeat\x1a\x1c.master_pb.HeartbeatResponse\"\x00(\x010\x01\x12X\n" +
"\rKeepConnected\x12\x1f.master_pb.KeepConnectedRequest\x1a .master_pb.KeepConnectedResponse\"\x00(\x010\x01\x12Q\n" +
"\fLookupVolume\x12\x1e.master_pb.LookupVolumeRequest\x1a\x1f.master_pb.LookupVolumeResponse\"\x00\x12?\n" +
"\x06Assign\x12\x18.master_pb.AssignRequest\x1a\x19.master_pb.AssignResponse\"\x00\x12I\n" +
"\fStreamAssign\x12\x18.master_pb.AssignRequest\x1a\x19.master_pb.AssignResponse\"\x00(\x010\x01\x12K\n" +
"\n" +
"Statistics\x12\x1c.master_pb.StatisticsRequest\x1a\x1d.master_pb.StatisticsResponse\"\x00\x12W\n" +
"\x0eCollectionList\x12 .master_pb.CollectionListRequest\x1a!.master_pb.CollectionListResponse\"\x00\x12]\n" +
"\x10CollectionDelete\x12\".master_pb.CollectionDeleteRequest\x1a#.master_pb.CollectionDeleteResponse\"\x00\x12K\n" +
"\n" +
"VolumeList\x12\x1c.master_pb.VolumeListRequest\x1a\x1d.master_pb.VolumeListResponse\"\x00\x12W\n" +
"\x0eLookupEcVolume\x12 .master_pb.LookupEcVolumeRequest\x1a!.master_pb.LookupEcVolumeResponse\"\x00\x12Q\n" +
"\fVacuumVolume\x12\x1e.master_pb.VacuumVolumeRequest\x1a\x1f.master_pb.VacuumVolumeResponse\"\x00\x12T\n" +
"\rDisableVacuum\x12\x1f.master_pb.DisableVacuumRequest\x1a .master_pb.DisableVacuumResponse\"\x00\x12Q\n" +
"\fEnableVacuum\x12\x1e.master_pb.EnableVacuumRequest\x1a\x1f.master_pb.EnableVacuumResponse\"\x00\x12c\n" +
"\x12VolumeMarkReadonly\x12$.master_pb.VolumeMarkReadonlyRequest\x1a%.master_pb.VolumeMarkReadonlyResponse\"\x00\x12o\n" +
"\x16GetMasterConfiguration\x12(.master_pb.GetMasterConfigurationRequest\x1a).master_pb.GetMasterConfigurationResponse\"\x00\x12]\n" +
"\x10ListClusterNodes\x12\".master_pb.ListClusterNodesRequest\x1a#.master_pb.ListClusterNodesResponse\"\x00\x12Z\n" +
"\x0fLeaseAdminToken\x12!.master_pb.LeaseAdminTokenRequest\x1a\".master_pb.LeaseAdminTokenResponse\"\x00\x12`\n" +
"\x11ReleaseAdminToken\x12#.master_pb.ReleaseAdminTokenRequest\x1a$.master_pb.ReleaseAdminTokenResponse\"\x00\x129\n" +
"\x04Ping\x12\x16.master_pb.PingRequest\x1a\x17.master_pb.PingResponse\"\x00\x12o\n" +
"\x16RaftListClusterServers\x12(.master_pb.RaftListClusterServersRequest\x1a).master_pb.RaftListClusterServersResponse\"\x00\x12T\n" +
"\rRaftAddServer\x12\x1f.master_pb.RaftAddServerRequest\x1a .master_pb.RaftAddServerResponse\"\x00\x12]\n" +
"\x10RaftRemoveServer\x12\".master_pb.RaftRemoveServerRequest\x1a#.master_pb.RaftRemoveServerResponse\"\x00\x12o\n" +
"\x16RaftLeadershipTransfer\x12(.master_pb.RaftLeadershipTransferRequest\x1a).master_pb.RaftLeadershipTransferResponse\"\x00\x12K\n" +
"\n" +
"VolumeGrow\x12\x1c.master_pb.VolumeGrowRequest\x1a\x1d.master_pb.VolumeGrowResponse\"\x00B2Z0github.com/seaweedfs/seaweedfs/weed/pb/master_pbb\x06proto3"
var (
file_master_proto_rawDescOnce sync.Once
file_master_proto_rawDescData []byte
)
func file_master_proto_rawDescGZIP() []byte {
file_master_proto_rawDescOnce.Do(func() {
file_master_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_master_proto_rawDesc), len(file_master_proto_rawDesc)))
})
return file_master_proto_rawDescData
}
var file_master_proto_msgTypes = make([]protoimpl.MessageInfo, 74)
var file_master_proto_goTypes = []any{
(*DiskTag)(nil), // 0: master_pb.DiskTag
(*Heartbeat)(nil), // 1: master_pb.Heartbeat
(*HeartbeatResponse)(nil), // 2: master_pb.HeartbeatResponse
(*VolumeInformationMessage)(nil), // 3: master_pb.VolumeInformationMessage
(*VolumeShortInformationMessage)(nil), // 4: master_pb.VolumeShortInformationMessage
(*VolumeEcShardInformationMessage)(nil), // 5: master_pb.VolumeEcShardInformationMessage
(*StorageBackend)(nil), // 6: master_pb.StorageBackend
(*Empty)(nil), // 7: master_pb.Empty
(*SuperBlockExtra)(nil), // 8: master_pb.SuperBlockExtra
(*KeepConnectedRequest)(nil), // 9: master_pb.KeepConnectedRequest
(*VolumeLocation)(nil), // 10: master_pb.VolumeLocation
(*ClusterNodeUpdate)(nil), // 11: master_pb.ClusterNodeUpdate
(*KeepConnectedResponse)(nil), // 12: master_pb.KeepConnectedResponse
(*LockRingUpdate)(nil), // 13: master_pb.LockRingUpdate
(*LookupVolumeRequest)(nil), // 14: master_pb.LookupVolumeRequest
(*LookupVolumeResponse)(nil), // 15: master_pb.LookupVolumeResponse
(*Location)(nil), // 16: master_pb.Location
(*AssignRequest)(nil), // 17: master_pb.AssignRequest
(*VolumeGrowRequest)(nil), // 18: master_pb.VolumeGrowRequest
(*AssignResponse)(nil), // 19: master_pb.AssignResponse
(*StatisticsRequest)(nil), // 20: master_pb.StatisticsRequest
(*StatisticsResponse)(nil), // 21: master_pb.StatisticsResponse
(*Collection)(nil), // 22: master_pb.Collection
(*CollectionListRequest)(nil), // 23: master_pb.CollectionListRequest
(*CollectionListResponse)(nil), // 24: master_pb.CollectionListResponse
(*CollectionDeleteRequest)(nil), // 25: master_pb.CollectionDeleteRequest
(*CollectionDeleteResponse)(nil), // 26: master_pb.CollectionDeleteResponse
(*DiskInfo)(nil), // 27: master_pb.DiskInfo
(*DataNodeInfo)(nil), // 28: master_pb.DataNodeInfo
(*RackInfo)(nil), // 29: master_pb.RackInfo
(*DataCenterInfo)(nil), // 30: master_pb.DataCenterInfo
(*TopologyInfo)(nil), // 31: master_pb.TopologyInfo
(*VolumeListRequest)(nil), // 32: master_pb.VolumeListRequest
(*VolumeListResponse)(nil), // 33: master_pb.VolumeListResponse
(*LookupEcVolumeRequest)(nil), // 34: master_pb.LookupEcVolumeRequest
(*LookupEcVolumeResponse)(nil), // 35: master_pb.LookupEcVolumeResponse
(*VacuumVolumeRequest)(nil), // 36: master_pb.VacuumVolumeRequest
(*VacuumVolumeResponse)(nil), // 37: master_pb.VacuumVolumeResponse
(*DisableVacuumRequest)(nil), // 38: master_pb.DisableVacuumRequest
(*DisableVacuumResponse)(nil), // 39: master_pb.DisableVacuumResponse
(*EnableVacuumRequest)(nil), // 40: master_pb.EnableVacuumRequest
(*EnableVacuumResponse)(nil), // 41: master_pb.EnableVacuumResponse
(*VolumeMarkReadonlyRequest)(nil), // 42: master_pb.VolumeMarkReadonlyRequest
(*VolumeMarkReadonlyResponse)(nil), // 43: master_pb.VolumeMarkReadonlyResponse
(*GetMasterConfigurationRequest)(nil), // 44: master_pb.GetMasterConfigurationRequest
(*GetMasterConfigurationResponse)(nil), // 45: master_pb.GetMasterConfigurationResponse
(*ListClusterNodesRequest)(nil), // 46: master_pb.ListClusterNodesRequest
(*ListClusterNodesResponse)(nil), // 47: master_pb.ListClusterNodesResponse
(*LeaseAdminTokenRequest)(nil), // 48: master_pb.LeaseAdminTokenRequest
(*LeaseAdminTokenResponse)(nil), // 49: master_pb.LeaseAdminTokenResponse
(*ReleaseAdminTokenRequest)(nil), // 50: master_pb.ReleaseAdminTokenRequest
(*ReleaseAdminTokenResponse)(nil), // 51: master_pb.ReleaseAdminTokenResponse
(*PingRequest)(nil), // 52: master_pb.PingRequest
(*PingResponse)(nil), // 53: master_pb.PingResponse
(*RaftAddServerRequest)(nil), // 54: master_pb.RaftAddServerRequest
(*RaftAddServerResponse)(nil), // 55: master_pb.RaftAddServerResponse
(*RaftRemoveServerRequest)(nil), // 56: master_pb.RaftRemoveServerRequest
(*RaftRemoveServerResponse)(nil), // 57: master_pb.RaftRemoveServerResponse
(*RaftListClusterServersRequest)(nil), // 58: master_pb.RaftListClusterServersRequest
(*RaftListClusterServersResponse)(nil), // 59: master_pb.RaftListClusterServersResponse
(*RaftLeadershipTransferRequest)(nil), // 60: master_pb.RaftLeadershipTransferRequest
(*RaftLeadershipTransferResponse)(nil), // 61: master_pb.RaftLeadershipTransferResponse
(*VolumeGrowResponse)(nil), // 62: master_pb.VolumeGrowResponse
nil, // 63: master_pb.Heartbeat.MaxVolumeCountsEntry
nil, // 64: master_pb.StorageBackend.PropertiesEntry
(*SuperBlockExtra_ErasureCoding)(nil), // 65: master_pb.SuperBlockExtra.ErasureCoding
(*LookupVolumeResponse_VolumeIdLocation)(nil), // 66: master_pb.LookupVolumeResponse.VolumeIdLocation
nil, // 67: master_pb.DataNodeInfo.DiskInfosEntry
nil, // 68: master_pb.RackInfo.DiskInfosEntry
nil, // 69: master_pb.DataCenterInfo.DiskInfosEntry
nil, // 70: master_pb.TopologyInfo.DiskInfosEntry
(*LookupEcVolumeResponse_EcShardIdLocation)(nil), // 71: master_pb.LookupEcVolumeResponse.EcShardIdLocation
(*ListClusterNodesResponse_ClusterNode)(nil), // 72: master_pb.ListClusterNodesResponse.ClusterNode
(*RaftListClusterServersResponse_ClusterServers)(nil), // 73: master_pb.RaftListClusterServersResponse.ClusterServers
(*volume_server_pb.VolumeServerState)(nil), // 74: volume_server_pb.VolumeServerState
}
var file_master_proto_depIdxs = []int32{
3, // 0: master_pb.Heartbeat.volumes:type_name -> master_pb.VolumeInformationMessage
4, // 1: master_pb.Heartbeat.new_volumes:type_name -> master_pb.VolumeShortInformationMessage
4, // 2: master_pb.Heartbeat.deleted_volumes:type_name -> master_pb.VolumeShortInformationMessage
5, // 3: master_pb.Heartbeat.ec_shards:type_name -> master_pb.VolumeEcShardInformationMessage
5, // 4: master_pb.Heartbeat.new_ec_shards:type_name -> master_pb.VolumeEcShardInformationMessage
5, // 5: master_pb.Heartbeat.deleted_ec_shards:type_name -> master_pb.VolumeEcShardInformationMessage
63, // 6: master_pb.Heartbeat.max_volume_counts:type_name -> master_pb.Heartbeat.MaxVolumeCountsEntry
74, // 7: master_pb.Heartbeat.state:type_name -> volume_server_pb.VolumeServerState
0, // 8: master_pb.Heartbeat.disk_tags:type_name -> master_pb.DiskTag
6, // 9: master_pb.HeartbeatResponse.storage_backends:type_name -> master_pb.StorageBackend
64, // 10: master_pb.StorageBackend.properties:type_name -> master_pb.StorageBackend.PropertiesEntry
65, // 11: master_pb.SuperBlockExtra.erasure_coding:type_name -> master_pb.SuperBlockExtra.ErasureCoding
10, // 12: master_pb.KeepConnectedResponse.volume_location:type_name -> master_pb.VolumeLocation
11, // 13: master_pb.KeepConnectedResponse.cluster_node_update:type_name -> master_pb.ClusterNodeUpdate
13, // 14: master_pb.KeepConnectedResponse.lock_ring_update:type_name -> master_pb.LockRingUpdate
66, // 15: master_pb.LookupVolumeResponse.volume_id_locations:type_name -> master_pb.LookupVolumeResponse.VolumeIdLocation
16, // 16: master_pb.AssignResponse.replicas:type_name -> master_pb.Location
16, // 17: master_pb.AssignResponse.location:type_name -> master_pb.Location
22, // 18: master_pb.CollectionListResponse.collections:type_name -> master_pb.Collection
3, // 19: master_pb.DiskInfo.volume_infos:type_name -> master_pb.VolumeInformationMessage
5, // 20: master_pb.DiskInfo.ec_shard_infos:type_name -> master_pb.VolumeEcShardInformationMessage
67, // 21: master_pb.DataNodeInfo.diskInfos:type_name -> master_pb.DataNodeInfo.DiskInfosEntry
28, // 22: master_pb.RackInfo.data_node_infos:type_name -> master_pb.DataNodeInfo
68, // 23: master_pb.RackInfo.diskInfos:type_name -> master_pb.RackInfo.DiskInfosEntry
29, // 24: master_pb.DataCenterInfo.rack_infos:type_name -> master_pb.RackInfo
69, // 25: master_pb.DataCenterInfo.diskInfos:type_name -> master_pb.DataCenterInfo.DiskInfosEntry
30, // 26: master_pb.TopologyInfo.data_center_infos:type_name -> master_pb.DataCenterInfo
70, // 27: master_pb.TopologyInfo.diskInfos:type_name -> master_pb.TopologyInfo.DiskInfosEntry
31, // 28: master_pb.VolumeListResponse.topology_info:type_name -> master_pb.TopologyInfo
71, // 29: master_pb.LookupEcVolumeResponse.shard_id_locations:type_name -> master_pb.LookupEcVolumeResponse.EcShardIdLocation
6, // 30: master_pb.GetMasterConfigurationResponse.storage_backends:type_name -> master_pb.StorageBackend
72, // 31: master_pb.ListClusterNodesResponse.cluster_nodes:type_name -> master_pb.ListClusterNodesResponse.ClusterNode
73, // 32: master_pb.RaftListClusterServersResponse.cluster_servers:type_name -> master_pb.RaftListClusterServersResponse.ClusterServers
16, // 33: master_pb.LookupVolumeResponse.VolumeIdLocation.locations:type_name -> master_pb.Location
27, // 34: master_pb.DataNodeInfo.DiskInfosEntry.value:type_name -> master_pb.DiskInfo
27, // 35: master_pb.RackInfo.DiskInfosEntry.value:type_name -> master_pb.DiskInfo
27, // 36: master_pb.DataCenterInfo.DiskInfosEntry.value:type_name -> master_pb.DiskInfo
27, // 37: master_pb.TopologyInfo.DiskInfosEntry.value:type_name -> master_pb.DiskInfo
16, // 38: master_pb.LookupEcVolumeResponse.EcShardIdLocation.locations:type_name -> master_pb.Location
1, // 39: master_pb.Seaweed.SendHeartbeat:input_type -> master_pb.Heartbeat
9, // 40: master_pb.Seaweed.KeepConnected:input_type -> master_pb.KeepConnectedRequest
14, // 41: master_pb.Seaweed.LookupVolume:input_type -> master_pb.LookupVolumeRequest
17, // 42: master_pb.Seaweed.Assign:input_type -> master_pb.AssignRequest
17, // 43: master_pb.Seaweed.StreamAssign:input_type -> master_pb.AssignRequest
20, // 44: master_pb.Seaweed.Statistics:input_type -> master_pb.StatisticsRequest
23, // 45: master_pb.Seaweed.CollectionList:input_type -> master_pb.CollectionListRequest
25, // 46: master_pb.Seaweed.CollectionDelete:input_type -> master_pb.CollectionDeleteRequest
32, // 47: master_pb.Seaweed.VolumeList:input_type -> master_pb.VolumeListRequest
34, // 48: master_pb.Seaweed.LookupEcVolume:input_type -> master_pb.LookupEcVolumeRequest
36, // 49: master_pb.Seaweed.VacuumVolume:input_type -> master_pb.VacuumVolumeRequest
38, // 50: master_pb.Seaweed.DisableVacuum:input_type -> master_pb.DisableVacuumRequest
40, // 51: master_pb.Seaweed.EnableVacuum:input_type -> master_pb.EnableVacuumRequest
42, // 52: master_pb.Seaweed.VolumeMarkReadonly:input_type -> master_pb.VolumeMarkReadonlyRequest
44, // 53: master_pb.Seaweed.GetMasterConfiguration:input_type -> master_pb.GetMasterConfigurationRequest
46, // 54: master_pb.Seaweed.ListClusterNodes:input_type -> master_pb.ListClusterNodesRequest
48, // 55: master_pb.Seaweed.LeaseAdminToken:input_type -> master_pb.LeaseAdminTokenRequest
50, // 56: master_pb.Seaweed.ReleaseAdminToken:input_type -> master_pb.ReleaseAdminTokenRequest
52, // 57: master_pb.Seaweed.Ping:input_type -> master_pb.PingRequest
58, // 58: master_pb.Seaweed.RaftListClusterServers:input_type -> master_pb.RaftListClusterServersRequest
54, // 59: master_pb.Seaweed.RaftAddServer:input_type -> master_pb.RaftAddServerRequest
56, // 60: master_pb.Seaweed.RaftRemoveServer:input_type -> master_pb.RaftRemoveServerRequest
60, // 61: master_pb.Seaweed.RaftLeadershipTransfer:input_type -> master_pb.RaftLeadershipTransferRequest
18, // 62: master_pb.Seaweed.VolumeGrow:input_type -> master_pb.VolumeGrowRequest
2, // 63: master_pb.Seaweed.SendHeartbeat:output_type -> master_pb.HeartbeatResponse
12, // 64: master_pb.Seaweed.KeepConnected:output_type -> master_pb.KeepConnectedResponse
15, // 65: master_pb.Seaweed.LookupVolume:output_type -> master_pb.LookupVolumeResponse
19, // 66: master_pb.Seaweed.Assign:output_type -> master_pb.AssignResponse
19, // 67: master_pb.Seaweed.StreamAssign:output_type -> master_pb.AssignResponse
21, // 68: master_pb.Seaweed.Statistics:output_type -> master_pb.StatisticsResponse
24, // 69: master_pb.Seaweed.CollectionList:output_type -> master_pb.CollectionListResponse
26, // 70: master_pb.Seaweed.CollectionDelete:output_type -> master_pb.CollectionDeleteResponse
33, // 71: master_pb.Seaweed.VolumeList:output_type -> master_pb.VolumeListResponse
35, // 72: master_pb.Seaweed.LookupEcVolume:output_type -> master_pb.LookupEcVolumeResponse
37, // 73: master_pb.Seaweed.VacuumVolume:output_type -> master_pb.VacuumVolumeResponse
39, // 74: master_pb.Seaweed.DisableVacuum:output_type -> master_pb.DisableVacuumResponse
41, // 75: master_pb.Seaweed.EnableVacuum:output_type -> master_pb.EnableVacuumResponse
43, // 76: master_pb.Seaweed.VolumeMarkReadonly:output_type -> master_pb.VolumeMarkReadonlyResponse
45, // 77: master_pb.Seaweed.GetMasterConfiguration:output_type -> master_pb.GetMasterConfigurationResponse
47, // 78: master_pb.Seaweed.ListClusterNodes:output_type -> master_pb.ListClusterNodesResponse
49, // 79: master_pb.Seaweed.LeaseAdminToken:output_type -> master_pb.LeaseAdminTokenResponse
51, // 80: master_pb.Seaweed.ReleaseAdminToken:output_type -> master_pb.ReleaseAdminTokenResponse
53, // 81: master_pb.Seaweed.Ping:output_type -> master_pb.PingResponse
59, // 82: master_pb.Seaweed.RaftListClusterServers:output_type -> master_pb.RaftListClusterServersResponse
55, // 83: master_pb.Seaweed.RaftAddServer:output_type -> master_pb.RaftAddServerResponse
57, // 84: master_pb.Seaweed.RaftRemoveServer:output_type -> master_pb.RaftRemoveServerResponse
61, // 85: master_pb.Seaweed.RaftLeadershipTransfer:output_type -> master_pb.RaftLeadershipTransferResponse
62, // 86: master_pb.Seaweed.VolumeGrow:output_type -> master_pb.VolumeGrowResponse
63, // [63:87] is the sub-list for method output_type
39, // [39:63] is the sub-list for method input_type
39, // [39:39] is the sub-list for extension type_name
39, // [39:39] is the sub-list for extension extendee
0, // [0:39] is the sub-list for field type_name
}
func init() { file_master_proto_init() }
func file_master_proto_init() {
if File_master_proto != nil {
return
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_master_proto_rawDesc), len(file_master_proto_rawDesc)),
NumEnums: 0,
NumMessages: 74,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_master_proto_goTypes,
DependencyIndexes: file_master_proto_depIdxs,
MessageInfos: file_master_proto_msgTypes,
}.Build()
File_master_proto = out.File
file_master_proto_goTypes = nil
file_master_proto_depIdxs = nil
}