mirror of
https://github.com/milvus-io/milvus.git
synced 2026-07-21 10:15:43 +00:00
enhance: add all ddl message into messages (#44407)
issue: #43897 - add ddl messages proto and add some message utilities. - support shard/exclusive resource-key-lock. - add all ddl callbacks future into broadcast registry. --------- Signed-off-by: chyezh <chyezh@outlook.com>
This commit is contained in:
@@ -289,6 +289,14 @@ build-cpp-with-coverage: generated-proto
|
||||
check-proto-product: generated-proto
|
||||
@(env bash $(PWD)/scripts/check_proto_product.sh)
|
||||
|
||||
generate-message-codegen:
|
||||
@if [ -z "$(INSTALL_GOFUMPT)" ]; then \
|
||||
echo "Installing gofumpt v$(GOFUMPT_VERSION) to ./bin/" && GOBIN=$(INSTALL_PATH) go install mvdan.cc/gofumpt@v$(GOFUMPT_VERSION); \
|
||||
else \
|
||||
echo "gofumpt v$(GOFUMPT_VERSION) already installed"; \
|
||||
fi
|
||||
@echo "Generating message codegen ..."
|
||||
@(cd pkg/streaming/util/message/codegen && PATH=$(INSTALL_PATH):$(PATH) go generate .)
|
||||
|
||||
# Run the tests.
|
||||
unittest: test-cpp test-go
|
||||
@@ -468,7 +476,6 @@ generate-mockery-types: getdeps
|
||||
|
||||
generate-mockery-rootcoord: getdeps
|
||||
$(INSTALL_PATH)/mockery --name=IMetaTable --dir=$(PWD)/internal/rootcoord --output=$(PWD)/internal/rootcoord/mocks --filename=meta_table.go --with-expecter --outpkg=mockrootcoord
|
||||
$(INSTALL_PATH)/mockery --name=GarbageCollector --dir=$(PWD)/internal/rootcoord --output=$(PWD)/internal/rootcoord/mocks --filename=garbage_collector.go --with-expecter --outpkg=mockrootcoord
|
||||
|
||||
generate-mockery-proxy: getdeps
|
||||
$(INSTALL_PATH)/mockery --name=Cache --dir=$(PWD)/internal/proxy --output=$(PWD)/internal/proxy --filename=mock_cache.go --structname=MockCache --with-expecter --outpkg=proxy --inpackage
|
||||
@@ -549,10 +556,6 @@ generate-yaml: milvus-tools
|
||||
@echo "Updating milvus config yaml"
|
||||
@$(PWD)/bin/tools/config gen-yaml && mv milvus.yaml configs/milvus.yaml
|
||||
|
||||
generate-message-codegen: getdeps
|
||||
@echo "Generating message codegen ..."
|
||||
@(cd pkg/streaming/util/message/codegen && PATH=$(PWD)/bin:$(PATH) go generate .)
|
||||
|
||||
MMAP_MIGRATION_PATH = $(PWD)/cmd/tools/migration/mmap/tool
|
||||
mmap-migration:
|
||||
@echo "Building migration tool ..."
|
||||
|
||||
@@ -150,7 +150,7 @@ func (r *channelReplicator) replicateLoop() error {
|
||||
panic(fmt.Sprintf("replicate message failed due to unrecoverable error: %v", err))
|
||||
}
|
||||
logger.Debug("replicate message success", log.FieldMessage(msg))
|
||||
if msg.MessageType() == message.MessageTypePutReplicateConfig {
|
||||
if msg.MessageType() == message.MessageTypeAlterReplicateConfig {
|
||||
roleChanged := r.handlePutReplicateConfigMessage(msg)
|
||||
if roleChanged {
|
||||
// Role changed, return and stop replicate.
|
||||
@@ -207,7 +207,7 @@ func (r *channelReplicator) handlePutReplicateConfigMessage(msg message.Immutabl
|
||||
zap.String("targetChannel", r.replicateInfo.GetTargetChannelName()),
|
||||
)
|
||||
logger.Info("handle PutReplicateConfigMessage", log.FieldMessage(msg))
|
||||
prcMsg := message.MustAsImmutablePutReplicateConfigMessageV2(msg)
|
||||
prcMsg := message.MustAsImmutableAlterReplicateConfigMessageV2(msg)
|
||||
replicateConfig := prcMsg.Header().ReplicateConfiguration
|
||||
currentClusterID := paramtable.Get().CommonCfg.ClusterPrefix.GetValue()
|
||||
currentCluster := replicateutil.MustNewConfigHelper(currentClusterID, replicateConfig).GetCurrentCluster()
|
||||
|
||||
@@ -353,11 +353,11 @@ func (s *Server) initDataCoord() error {
|
||||
// initMessageCallback initializes the message callback.
|
||||
// TODO: we should build a ddl framework to handle the message ack callback for ddl messages
|
||||
func (s *Server) initMessageCallback() {
|
||||
registry.RegisterDropPartitionMessageV1AckCallback(func(ctx context.Context, msg message.ImmutableDropPartitionMessageV1) error {
|
||||
registry.RegisterDropPartitionV1AckCallback(func(ctx context.Context, msg message.ImmutableDropPartitionMessageV1) error {
|
||||
return s.NotifyDropPartition(ctx, msg.VChannel(), []int64{msg.Header().PartitionId})
|
||||
})
|
||||
|
||||
registry.RegisterImportMessageV1AckCallback(func(ctx context.Context, msg message.ImmutableImportMessageV1) error {
|
||||
registry.RegisterImportV1AckCallback(func(ctx context.Context, msg message.ImmutableImportMessageV1) error {
|
||||
body := msg.MustBody()
|
||||
importResp, err := s.ImportV2(ctx, &internalpb.ImportRequestInternal{
|
||||
CollectionID: body.GetCollectionID(),
|
||||
@@ -388,7 +388,7 @@ func (s *Server) initMessageCallback() {
|
||||
return nil
|
||||
})
|
||||
|
||||
registry.RegisterImportMessageV1CheckCallback(func(ctx context.Context, msg message.BroadcastImportMessageV1) error {
|
||||
registry.RegisterImportV1CheckCallback(func(ctx context.Context, msg message.BroadcastImportMessageV1) error {
|
||||
b := msg.MustBody()
|
||||
options := funcutil.Map2KeyValuePair(b.GetOptions())
|
||||
_, err := importutilv2.GetTimeoutTs(options)
|
||||
|
||||
@@ -421,7 +421,7 @@ func (_c *MockBalancer_UpdateBalancePolicy_Call) RunAndReturn(run func(context.C
|
||||
}
|
||||
|
||||
// UpdateReplicateConfiguration provides a mock function with given fields: ctx, msgs
|
||||
func (_m *MockBalancer) UpdateReplicateConfiguration(ctx context.Context, msgs ...message.ImmutablePutReplicateConfigMessageV2) error {
|
||||
func (_m *MockBalancer) UpdateReplicateConfiguration(ctx context.Context, msgs ...message.ImmutableAlterReplicateConfigMessageV2) error {
|
||||
_va := make([]interface{}, len(msgs))
|
||||
for _i := range msgs {
|
||||
_va[_i] = msgs[_i]
|
||||
@@ -436,7 +436,7 @@ func (_m *MockBalancer) UpdateReplicateConfiguration(ctx context.Context, msgs .
|
||||
}
|
||||
|
||||
var r0 error
|
||||
if rf, ok := ret.Get(0).(func(context.Context, ...message.ImmutablePutReplicateConfigMessageV2) error); ok {
|
||||
if rf, ok := ret.Get(0).(func(context.Context, ...message.ImmutableAlterReplicateConfigMessageV2) error); ok {
|
||||
r0 = rf(ctx, msgs...)
|
||||
} else {
|
||||
r0 = ret.Error(0)
|
||||
@@ -452,18 +452,18 @@ type MockBalancer_UpdateReplicateConfiguration_Call struct {
|
||||
|
||||
// UpdateReplicateConfiguration is a helper method to define mock.On call
|
||||
// - ctx context.Context
|
||||
// - msgs ...message.ImmutablePutReplicateConfigMessageV2
|
||||
// - msgs ...message.ImmutableAlterReplicateConfigMessageV2
|
||||
func (_e *MockBalancer_Expecter) UpdateReplicateConfiguration(ctx interface{}, msgs ...interface{}) *MockBalancer_UpdateReplicateConfiguration_Call {
|
||||
return &MockBalancer_UpdateReplicateConfiguration_Call{Call: _e.mock.On("UpdateReplicateConfiguration",
|
||||
append([]interface{}{ctx}, msgs...)...)}
|
||||
}
|
||||
|
||||
func (_c *MockBalancer_UpdateReplicateConfiguration_Call) Run(run func(ctx context.Context, msgs ...message.ImmutablePutReplicateConfigMessageV2)) *MockBalancer_UpdateReplicateConfiguration_Call {
|
||||
func (_c *MockBalancer_UpdateReplicateConfiguration_Call) Run(run func(ctx context.Context, msgs ...message.ImmutableAlterReplicateConfigMessageV2)) *MockBalancer_UpdateReplicateConfiguration_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
variadicArgs := make([]message.ImmutablePutReplicateConfigMessageV2, len(args)-1)
|
||||
variadicArgs := make([]message.ImmutableAlterReplicateConfigMessageV2, len(args)-1)
|
||||
for i, a := range args[1:] {
|
||||
if a != nil {
|
||||
variadicArgs[i] = a.(message.ImmutablePutReplicateConfigMessageV2)
|
||||
variadicArgs[i] = a.(message.ImmutableAlterReplicateConfigMessageV2)
|
||||
}
|
||||
}
|
||||
run(args[0].(context.Context), variadicArgs...)
|
||||
@@ -476,7 +476,7 @@ func (_c *MockBalancer_UpdateReplicateConfiguration_Call) Return(_a0 error) *Moc
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockBalancer_UpdateReplicateConfiguration_Call) RunAndReturn(run func(context.Context, ...message.ImmutablePutReplicateConfigMessageV2) error) *MockBalancer_UpdateReplicateConfiguration_Call {
|
||||
func (_c *MockBalancer_UpdateReplicateConfiguration_Call) RunAndReturn(run func(context.Context, ...message.ImmutableAlterReplicateConfigMessageV2) error) *MockBalancer_UpdateReplicateConfiguration_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ type Balancer interface {
|
||||
MarkAsUnavailable(ctx context.Context, pChannels []types.PChannelInfo) error
|
||||
|
||||
// UpdateReplicateConfiguration updates the replicate configuration.
|
||||
UpdateReplicateConfiguration(ctx context.Context, msgs ...message.ImmutablePutReplicateConfigMessageV2) error
|
||||
UpdateReplicateConfiguration(ctx context.Context, msgs ...message.ImmutableAlterReplicateConfigMessageV2) error
|
||||
|
||||
// Trigger is a hint to trigger a balance.
|
||||
Trigger(ctx context.Context) error
|
||||
|
||||
@@ -116,7 +116,7 @@ func (b *balancerImpl) WatchChannelAssignments(ctx context.Context, cb WatchChan
|
||||
}
|
||||
|
||||
// UpdateReplicateConfiguration updates the replicate configuration.
|
||||
func (b *balancerImpl) UpdateReplicateConfiguration(ctx context.Context, msgs ...message.ImmutablePutReplicateConfigMessageV2) error {
|
||||
func (b *balancerImpl) UpdateReplicateConfiguration(ctx context.Context, msgs ...message.ImmutableAlterReplicateConfigMessageV2) error {
|
||||
if !b.lifetime.Add(typeutil.LifetimeStateWorking) {
|
||||
return status.NewOnShutdownError("balancer is closing")
|
||||
}
|
||||
|
||||
@@ -380,7 +380,7 @@ func (cm *ChannelManager) WatchAssignmentResult(ctx context.Context, cb WatchCha
|
||||
}
|
||||
|
||||
// UpdateReplicateConfiguration updates the in-memory replicate configuration.
|
||||
func (cm *ChannelManager) UpdateReplicateConfiguration(ctx context.Context, msgs ...message.ImmutablePutReplicateConfigMessageV2) error {
|
||||
func (cm *ChannelManager) UpdateReplicateConfiguration(ctx context.Context, msgs ...message.ImmutableAlterReplicateConfigMessageV2) error {
|
||||
config := replicateutil.MustNewConfigHelper(paramtable.Get().CommonCfg.ClusterPrefix.GetValue(), msgs[0].Header().ReplicateConfiguration)
|
||||
pchannels := make([]types.AckedCheckpoint, 0, len(msgs))
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ type replicateConfigHelper struct {
|
||||
}
|
||||
|
||||
// newReplicateConfigHelperFromMessage creates a new replicate config helper from message.
|
||||
func newReplicateConfigHelperFromMessage(replicateConfig message.ImmutablePutReplicateConfigMessageV2) *replicateConfigHelper {
|
||||
func newReplicateConfigHelperFromMessage(replicateConfig message.ImmutableAlterReplicateConfigMessageV2) *replicateConfigHelper {
|
||||
return newReplicateConfigHelper(&streamingpb.ReplicateConfigurationMeta{
|
||||
ReplicateConfiguration: nil,
|
||||
AckedResult: types.NewAckedPendings(replicateConfig.BroadcastHeader().VChannels).AckedResult,
|
||||
|
||||
@@ -23,7 +23,7 @@ func TestMessageCallbackRegistration(t *testing.T) {
|
||||
return nil
|
||||
}
|
||||
|
||||
RegisterDropPartitionMessageV1AckCallback(callback)
|
||||
RegisterDropPartitionV1AckCallback(callback)
|
||||
|
||||
// Verify callback was registered
|
||||
callbackFuture, ok := messageAckCallbacks[message.MessageTypeDropPartitionV1]
|
||||
|
||||
@@ -23,7 +23,7 @@ func TestCheckMessageCallbackRegistration(t *testing.T) {
|
||||
}
|
||||
|
||||
// Register callback for DropPartition message type
|
||||
RegisterImportMessageV1CheckCallback(callback)
|
||||
RegisterImportV1CheckCallback(callback)
|
||||
|
||||
// Verify callback was registered
|
||||
callbackFuture, ok := messageCheckCallbacks[message.MessageTypeImportV1]
|
||||
|
||||
@@ -12,6 +12,8 @@ func init() {
|
||||
resetMessageCheckCallbacks()
|
||||
}
|
||||
|
||||
var RegisterImportV1CheckCallback = registerMessageCheckCallback[*message.ImportMessageHeader, *msgpb.ImportMsg]
|
||||
|
||||
// resetMessageCheckCallbacks resets the message check callbacks.
|
||||
func resetMessageCheckCallbacks() {
|
||||
messageCheckCallbacks = map[message.MessageTypeWithVersion]*syncutil.Future[messageInnerCheckCallback]{
|
||||
@@ -20,16 +22,102 @@ func resetMessageCheckCallbacks() {
|
||||
}
|
||||
|
||||
var (
|
||||
RegisterDropPartitionMessageV1AckCallback = registerMessageAckCallback[*message.DropPartitionMessageHeader, *msgpb.DropPartitionRequest]
|
||||
RegisterImportMessageV1AckCallback = registerMessageAckCallback[*message.ImportMessageHeader, *msgpb.ImportMsg]
|
||||
RegisterImportV1AckCallback = registerMessageAckCallback[*message.ImportMessageHeader, *msgpb.ImportMsg]
|
||||
|
||||
// Cluster
|
||||
RegisterAlterReplicateConfigV2AckCallback = registerMessageAckCallback[*message.AlterReplicateConfigMessageHeader, *message.AlterReplicateConfigMessageBody]
|
||||
|
||||
// Collection
|
||||
RegisterAlterCollectionV2AckCallback = registerMessageAckCallback[*message.AlterCollectionMessageHeader, *message.AlterCollectionMessageBody]
|
||||
RegisterCreateCollectionV1AckCallback = registerMessageAckCallback[*message.CreateCollectionMessageHeader, *message.CreateCollectionRequest]
|
||||
RegisterDropCollectionV1AckCallback = registerMessageAckCallback[*message.DropCollectionMessageHeader, *message.DropCollectionRequest]
|
||||
RegisterAlterLoadConfigV2AckCallback = registerMessageAckCallback[*message.AlterLoadConfigMessageHeader, *message.AlterLoadConfigMessageBody]
|
||||
RegisterDropLoadConfigV2AckCallback = registerMessageAckCallback[*message.DropLoadConfigMessageHeader, *message.DropLoadConfigMessageBody]
|
||||
|
||||
// Partition
|
||||
RegisterCreatePartitionV1AckCallback = registerMessageAckCallback[*message.CreatePartitionMessageHeader, *message.CreatePartitionRequest]
|
||||
RegisterDropPartitionV1AckCallback = registerMessageAckCallback[*message.DropPartitionMessageHeader, *message.DropPartitionRequest]
|
||||
|
||||
// Database
|
||||
RegisterCreateDatabaseV2AckCallback = registerMessageAckCallback[*message.CreateDatabaseMessageHeader, *message.CreateDatabaseMessageBody]
|
||||
RegisterAlterDatabaseV2AckCallback = registerMessageAckCallback[*message.AlterDatabaseMessageHeader, *message.AlterDatabaseMessageBody]
|
||||
RegisterDropDatabaseV2AckCallback = registerMessageAckCallback[*message.DropDatabaseMessageHeader, *message.DropDatabaseMessageBody]
|
||||
|
||||
// Alias
|
||||
RegisterAlterAliasV2AckCallback = registerMessageAckCallback[*message.AlterAliasMessageHeader, *message.AlterAliasMessageBody]
|
||||
RegisterDropAliasV2AckCallback = registerMessageAckCallback[*message.DropAliasMessageHeader, *message.DropAliasMessageBody]
|
||||
|
||||
// Index
|
||||
RegisterCreateIndexV2AckCallback = registerMessageAckCallback[*message.CreateIndexMessageHeader, *message.CreateIndexMessageBody]
|
||||
RegisterAlterIndexV2AckCallback = registerMessageAckCallback[*message.AlterIndexMessageHeader, *message.AlterIndexMessageBody]
|
||||
RegisterDropIndexV2AckCallback = registerMessageAckCallback[*message.DropIndexMessageHeader, *message.DropIndexMessageBody]
|
||||
|
||||
// RBAC
|
||||
RegisterAlterUserV2AckCallback = registerMessageAckCallback[*message.AlterUserMessageHeader, *message.AlterUserMessageBody]
|
||||
RegisterDropUserV2AckCallback = registerMessageAckCallback[*message.DropUserMessageHeader, *message.DropUserMessageBody]
|
||||
RegisterAlterRoleV2AckCallback = registerMessageAckCallback[*message.AlterRoleMessageHeader, *message.AlterRoleMessageBody]
|
||||
RegisterDropRoleV2AckCallback = registerMessageAckCallback[*message.DropRoleMessageHeader, *message.DropRoleMessageBody]
|
||||
RegisterAlterUserRoleV2AckCallback = registerMessageAckCallback[*message.AlterUserRoleMessageHeader, *message.AlterUserRoleMessageBody]
|
||||
RegisterDropUserRoleV2AckCallback = registerMessageAckCallback[*message.DropUserRoleMessageHeader, *message.DropUserRoleMessageBody]
|
||||
RegisterAlterPrivilegeV2AckCallback = registerMessageAckCallback[*message.AlterPrivilegeMessageHeader, *message.AlterPrivilegeMessageBody]
|
||||
RegisterDropPrivilegeV2AckCallback = registerMessageAckCallback[*message.DropPrivilegeMessageHeader, *message.DropPrivilegeMessageBody]
|
||||
RegisterAlterPrivilegeGroupV2AckCallback = registerMessageAckCallback[*message.AlterPrivilegeGroupMessageHeader, *message.AlterPrivilegeGroupMessageBody]
|
||||
RegisterDropPrivilegeGroupV2AckCallback = registerMessageAckCallback[*message.DropPrivilegeGroupMessageHeader, *message.DropPrivilegeGroupMessageBody]
|
||||
RegisterRestoreRBACV2AckCallback = registerMessageAckCallback[*message.RestoreRBACMessageHeader, *message.RestoreRBACMessageBody]
|
||||
|
||||
// Resource Group
|
||||
RegisterAlterResourceGroupV2AckCallback = registerMessageAckCallback[*message.AlterResourceGroupMessageHeader, *message.AlterResourceGroupMessageBody]
|
||||
RegisterDropResourceGroupV2AckCallback = registerMessageAckCallback[*message.DropResourceGroupMessageHeader, *message.DropResourceGroupMessageBody]
|
||||
)
|
||||
|
||||
// resetMessageAckCallbacks resets the message ack callbacks.
|
||||
func resetMessageAckCallbacks() {
|
||||
messageAckCallbacks = map[message.MessageTypeWithVersion]*syncutil.Future[messageInnerAckCallback]{
|
||||
message.MessageTypeDropPartitionV1: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeImportV1: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeImportV1: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
|
||||
// Cluster
|
||||
message.MessageTypeAlterReplicateConfigV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
|
||||
// Collection
|
||||
message.MessageTypeAlterCollectionV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeCreateCollectionV1: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropCollectionV1: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeAlterLoadConfigV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropLoadConfigV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
|
||||
// Partition
|
||||
message.MessageTypeCreatePartitionV1: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropPartitionV1: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
|
||||
// Database
|
||||
message.MessageTypeCreateDatabaseV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeAlterDatabaseV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropDatabaseV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
|
||||
// Alias
|
||||
message.MessageTypeAlterAliasV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropAliasV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
|
||||
// Index
|
||||
message.MessageTypeCreateIndexV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeAlterIndexV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropIndexV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
|
||||
// RBAC
|
||||
message.MessageTypeAlterUserV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropUserV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeAlterRoleV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropRoleV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeAlterUserRoleV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropUserRoleV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeAlterPrivilegeV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropPrivilegeV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeAlterPrivilegeGroupV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropPrivilegeGroupV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeRestoreRBACV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
|
||||
// Resource Group
|
||||
message.MessageTypeAlterResourceGroupV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
message.MessageTypeDropResourceGroupV2: syncutil.NewFuture[messageInnerAckCallback](),
|
||||
}
|
||||
}
|
||||
|
||||
var RegisterImportMessageV1CheckCallback = registerMessageCheckCallback[*message.ImportMessageHeader, *msgpb.ImportMsg]
|
||||
|
||||
@@ -75,10 +75,10 @@ func (s *assignmentServiceImpl) UpdateReplicateConfiguration(ctx context.Context
|
||||
// TODO: After recovering from wal, we can get the immutable message from wal system.
|
||||
// Now, we just mock the immutable message here.
|
||||
mutableMsg := msg.SplitIntoMutableMessage()
|
||||
mockMessages := make([]message.ImmutablePutReplicateConfigMessageV2, 0)
|
||||
mockMessages := make([]message.ImmutableAlterReplicateConfigMessageV2, 0)
|
||||
for _, msg := range mutableMsg {
|
||||
mockMessages = append(mockMessages,
|
||||
message.MustAsImmutablePutReplicateConfigMessageV2(msg.WithTimeTick(0).WithLastConfirmedUseMessageID().IntoImmutableMessage(rmq.NewRmqID(1))),
|
||||
message.MustAsImmutableAlterReplicateConfigMessageV2(msg.WithTimeTick(0).WithLastConfirmedUseMessageID().IntoImmutableMessage(rmq.NewRmqID(1))),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -117,11 +117,11 @@ func (s *assignmentServiceImpl) validateReplicateConfiguration(ctx context.Conte
|
||||
if _, err := replicateutil.NewConfigHelper(paramtable.Get().CommonCfg.ClusterPrefix.GetValue(), config); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
b := message.NewPutReplicateConfigMessageBuilderV2().
|
||||
WithHeader(&message.PutReplicateConfigMessageHeader{
|
||||
b := message.NewAlterReplicateConfigMessageBuilderV2().
|
||||
WithHeader(&message.AlterReplicateConfigMessageHeader{
|
||||
ReplicateConfiguration: config,
|
||||
}).
|
||||
WithBody(&message.PutReplicateConfigMessageBody{}).
|
||||
WithBody(&message.AlterReplicateConfigMessageBody{}).
|
||||
WithBroadcast(pchannels).
|
||||
MustBuildBroadcast()
|
||||
|
||||
@@ -132,7 +132,7 @@ func (s *assignmentServiceImpl) validateReplicateConfiguration(ctx context.Conte
|
||||
|
||||
// putReplicateConfiguration puts the replicate configuration into the balancer.
|
||||
// It's a callback function of the broadcast service.
|
||||
func (s *assignmentServiceImpl) putReplicateConfiguration(ctx context.Context, msgs ...message.ImmutablePutReplicateConfigMessageV2) error {
|
||||
func (s *assignmentServiceImpl) putReplicateConfiguration(ctx context.Context, msgs ...message.ImmutableAlterReplicateConfigMessageV2) error {
|
||||
balancer, err := s.balancer.GetWithContext(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -389,6 +389,69 @@ func (_c *MockBroadcastMutableMessage_MessageTypeWithVersion_Call) RunAndReturn(
|
||||
return _c
|
||||
}
|
||||
|
||||
// OverwriteBroadcastHeader provides a mock function with given fields: broadcastID, rks
|
||||
func (_m *MockBroadcastMutableMessage) OverwriteBroadcastHeader(broadcastID uint64, rks ...message.ResourceKey) message.BroadcastMutableMessage {
|
||||
_va := make([]interface{}, len(rks))
|
||||
for _i := range rks {
|
||||
_va[_i] = rks[_i]
|
||||
}
|
||||
var _ca []interface{}
|
||||
_ca = append(_ca, broadcastID)
|
||||
_ca = append(_ca, _va...)
|
||||
ret := _m.Called(_ca...)
|
||||
|
||||
if len(ret) == 0 {
|
||||
panic("no return value specified for OverwriteBroadcastHeader")
|
||||
}
|
||||
|
||||
var r0 message.BroadcastMutableMessage
|
||||
if rf, ok := ret.Get(0).(func(uint64, ...message.ResourceKey) message.BroadcastMutableMessage); ok {
|
||||
r0 = rf(broadcastID, rks...)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(message.BroadcastMutableMessage)
|
||||
}
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
|
||||
// MockBroadcastMutableMessage_OverwriteBroadcastHeader_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'OverwriteBroadcastHeader'
|
||||
type MockBroadcastMutableMessage_OverwriteBroadcastHeader_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// OverwriteBroadcastHeader is a helper method to define mock.On call
|
||||
// - broadcastID uint64
|
||||
// - rks ...message.ResourceKey
|
||||
func (_e *MockBroadcastMutableMessage_Expecter) OverwriteBroadcastHeader(broadcastID interface{}, rks ...interface{}) *MockBroadcastMutableMessage_OverwriteBroadcastHeader_Call {
|
||||
return &MockBroadcastMutableMessage_OverwriteBroadcastHeader_Call{Call: _e.mock.On("OverwriteBroadcastHeader",
|
||||
append([]interface{}{broadcastID}, rks...)...)}
|
||||
}
|
||||
|
||||
func (_c *MockBroadcastMutableMessage_OverwriteBroadcastHeader_Call) Run(run func(broadcastID uint64, rks ...message.ResourceKey)) *MockBroadcastMutableMessage_OverwriteBroadcastHeader_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
variadicArgs := make([]message.ResourceKey, len(args)-1)
|
||||
for i, a := range args[1:] {
|
||||
if a != nil {
|
||||
variadicArgs[i] = a.(message.ResourceKey)
|
||||
}
|
||||
}
|
||||
run(args[0].(uint64), variadicArgs...)
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockBroadcastMutableMessage_OverwriteBroadcastHeader_Call) Return(_a0 message.BroadcastMutableMessage) *MockBroadcastMutableMessage_OverwriteBroadcastHeader_Call {
|
||||
_c.Call.Return(_a0)
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockBroadcastMutableMessage_OverwriteBroadcastHeader_Call) RunAndReturn(run func(uint64, ...message.ResourceKey) message.BroadcastMutableMessage) *MockBroadcastMutableMessage_OverwriteBroadcastHeader_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// Payload provides a mock function with no fields
|
||||
func (_m *MockBroadcastMutableMessage) Payload() []byte {
|
||||
ret := _m.Called()
|
||||
|
||||
@@ -163,6 +163,53 @@ func (_c *MockImmutableMessage_EstimateSize_Call) RunAndReturn(run func() int) *
|
||||
return _c
|
||||
}
|
||||
|
||||
// IntoBroadcastMutableMessage provides a mock function with no fields
|
||||
func (_m *MockImmutableMessage) IntoBroadcastMutableMessage() message.BroadcastMutableMessage {
|
||||
ret := _m.Called()
|
||||
|
||||
if len(ret) == 0 {
|
||||
panic("no return value specified for IntoBroadcastMutableMessage")
|
||||
}
|
||||
|
||||
var r0 message.BroadcastMutableMessage
|
||||
if rf, ok := ret.Get(0).(func() message.BroadcastMutableMessage); ok {
|
||||
r0 = rf()
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(message.BroadcastMutableMessage)
|
||||
}
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
|
||||
// MockImmutableMessage_IntoBroadcastMutableMessage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'IntoBroadcastMutableMessage'
|
||||
type MockImmutableMessage_IntoBroadcastMutableMessage_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// IntoBroadcastMutableMessage is a helper method to define mock.On call
|
||||
func (_e *MockImmutableMessage_Expecter) IntoBroadcastMutableMessage() *MockImmutableMessage_IntoBroadcastMutableMessage_Call {
|
||||
return &MockImmutableMessage_IntoBroadcastMutableMessage_Call{Call: _e.mock.On("IntoBroadcastMutableMessage")}
|
||||
}
|
||||
|
||||
func (_c *MockImmutableMessage_IntoBroadcastMutableMessage_Call) Run(run func()) *MockImmutableMessage_IntoBroadcastMutableMessage_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run()
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockImmutableMessage_IntoBroadcastMutableMessage_Call) Return(_a0 message.BroadcastMutableMessage) *MockImmutableMessage_IntoBroadcastMutableMessage_Call {
|
||||
_c.Call.Return(_a0)
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockImmutableMessage_IntoBroadcastMutableMessage_Call) RunAndReturn(run func() message.BroadcastMutableMessage) *MockImmutableMessage_IntoBroadcastMutableMessage_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// IntoImmutableMessageProto provides a mock function with no fields
|
||||
func (_m *MockImmutableMessage) IntoImmutableMessageProto() *commonpb.ImmutableMessage {
|
||||
ret := _m.Called()
|
||||
|
||||
@@ -257,6 +257,53 @@ func (_c *MockImmutableTxnMessage_EstimateSize_Call) RunAndReturn(run func() int
|
||||
return _c
|
||||
}
|
||||
|
||||
// IntoBroadcastMutableMessage provides a mock function with no fields
|
||||
func (_m *MockImmutableTxnMessage) IntoBroadcastMutableMessage() message.BroadcastMutableMessage {
|
||||
ret := _m.Called()
|
||||
|
||||
if len(ret) == 0 {
|
||||
panic("no return value specified for IntoBroadcastMutableMessage")
|
||||
}
|
||||
|
||||
var r0 message.BroadcastMutableMessage
|
||||
if rf, ok := ret.Get(0).(func() message.BroadcastMutableMessage); ok {
|
||||
r0 = rf()
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(message.BroadcastMutableMessage)
|
||||
}
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
|
||||
// MockImmutableTxnMessage_IntoBroadcastMutableMessage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'IntoBroadcastMutableMessage'
|
||||
type MockImmutableTxnMessage_IntoBroadcastMutableMessage_Call struct {
|
||||
*mock.Call
|
||||
}
|
||||
|
||||
// IntoBroadcastMutableMessage is a helper method to define mock.On call
|
||||
func (_e *MockImmutableTxnMessage_Expecter) IntoBroadcastMutableMessage() *MockImmutableTxnMessage_IntoBroadcastMutableMessage_Call {
|
||||
return &MockImmutableTxnMessage_IntoBroadcastMutableMessage_Call{Call: _e.mock.On("IntoBroadcastMutableMessage")}
|
||||
}
|
||||
|
||||
func (_c *MockImmutableTxnMessage_IntoBroadcastMutableMessage_Call) Run(run func()) *MockImmutableTxnMessage_IntoBroadcastMutableMessage_Call {
|
||||
_c.Call.Run(func(args mock.Arguments) {
|
||||
run()
|
||||
})
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockImmutableTxnMessage_IntoBroadcastMutableMessage_Call) Return(_a0 message.BroadcastMutableMessage) *MockImmutableTxnMessage_IntoBroadcastMutableMessage_Call {
|
||||
_c.Call.Return(_a0)
|
||||
return _c
|
||||
}
|
||||
|
||||
func (_c *MockImmutableTxnMessage_IntoBroadcastMutableMessage_Call) RunAndReturn(run func() message.BroadcastMutableMessage) *MockImmutableTxnMessage_IntoBroadcastMutableMessage_Call {
|
||||
_c.Call.Return(run)
|
||||
return _c
|
||||
}
|
||||
|
||||
// IntoImmutableMessageProto provides a mock function with no fields
|
||||
func (_m *MockImmutableTxnMessage) IntoImmutableMessageProto() *commonpb.ImmutableMessage {
|
||||
ret := _m.Called()
|
||||
|
||||
@@ -23,28 +23,28 @@ message FieldIndexInfo{
|
||||
enum DatabaseState {
|
||||
DatabaseUnknown = 0;
|
||||
DatabaseCreated = 1;
|
||||
DatabaseCreating = 2;
|
||||
DatabaseCreating = 2 [deprecated = true];
|
||||
DatabaseDropping = 3;
|
||||
DatabaseDropped = 4;
|
||||
}
|
||||
|
||||
enum CollectionState {
|
||||
CollectionCreated = 0;
|
||||
CollectionCreating = 1;
|
||||
CollectionCreating = 1 [deprecated = true];
|
||||
CollectionDropping = 2;
|
||||
CollectionDropped = 3;
|
||||
}
|
||||
|
||||
enum PartitionState {
|
||||
PartitionCreated = 0;
|
||||
PartitionCreating = 1;
|
||||
PartitionCreating = 1 [deprecated = true];
|
||||
PartitionDropping = 2;
|
||||
PartitionDropped = 3;
|
||||
}
|
||||
|
||||
enum AliasState {
|
||||
AliasCreated = 0;
|
||||
AliasCreating = 1;
|
||||
AliasCreating = 1 [deprecated = true];
|
||||
AliasDropping = 2;
|
||||
AliasDropped = 3;
|
||||
}
|
||||
|
||||
@@ -25,8 +25,9 @@ const (
|
||||
type DatabaseState int32
|
||||
|
||||
const (
|
||||
DatabaseState_DatabaseUnknown DatabaseState = 0
|
||||
DatabaseState_DatabaseCreated DatabaseState = 1
|
||||
DatabaseState_DatabaseUnknown DatabaseState = 0
|
||||
DatabaseState_DatabaseCreated DatabaseState = 1
|
||||
// Deprecated: Marked as deprecated in etcd_meta.proto.
|
||||
DatabaseState_DatabaseCreating DatabaseState = 2
|
||||
DatabaseState_DatabaseDropping DatabaseState = 3
|
||||
DatabaseState_DatabaseDropped DatabaseState = 4
|
||||
@@ -80,7 +81,8 @@ func (DatabaseState) EnumDescriptor() ([]byte, []int) {
|
||||
type CollectionState int32
|
||||
|
||||
const (
|
||||
CollectionState_CollectionCreated CollectionState = 0
|
||||
CollectionState_CollectionCreated CollectionState = 0
|
||||
// Deprecated: Marked as deprecated in etcd_meta.proto.
|
||||
CollectionState_CollectionCreating CollectionState = 1
|
||||
CollectionState_CollectionDropping CollectionState = 2
|
||||
CollectionState_CollectionDropped CollectionState = 3
|
||||
@@ -132,7 +134,8 @@ func (CollectionState) EnumDescriptor() ([]byte, []int) {
|
||||
type PartitionState int32
|
||||
|
||||
const (
|
||||
PartitionState_PartitionCreated PartitionState = 0
|
||||
PartitionState_PartitionCreated PartitionState = 0
|
||||
// Deprecated: Marked as deprecated in etcd_meta.proto.
|
||||
PartitionState_PartitionCreating PartitionState = 1
|
||||
PartitionState_PartitionDropping PartitionState = 2
|
||||
PartitionState_PartitionDropped PartitionState = 3
|
||||
@@ -184,7 +187,8 @@ func (PartitionState) EnumDescriptor() ([]byte, []int) {
|
||||
type AliasState int32
|
||||
|
||||
const (
|
||||
AliasState_AliasCreated AliasState = 0
|
||||
AliasState_AliasCreated AliasState = 0
|
||||
// Deprecated: Marked as deprecated in etcd_meta.proto.
|
||||
AliasState_AliasCreating AliasState = 1
|
||||
AliasState_AliasDropping AliasState = 2
|
||||
AliasState_AliasDropped AliasState = 3
|
||||
@@ -1216,31 +1220,32 @@ var file_etcd_meta_proto_rawDesc = []byte{
|
||||
0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f,
|
||||
0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18,
|
||||
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x50, 0x61, 0x73,
|
||||
0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0x7a, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
|
||||
0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0x7e, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73,
|
||||
0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61,
|
||||
0x73, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x44,
|
||||
0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01,
|
||||
0x12, 0x14, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61,
|
||||
0x73, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f,
|
||||
0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10,
|
||||
0x04, 0x2a, 0x6f, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x43,
|
||||
0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e,
|
||||
0x67, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43,
|
||||
0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64,
|
||||
0x10, 0x03, 0x2a, 0x6a, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x61,
|
||||
0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x10,
|
||||
0x01, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x72,
|
||||
0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x61, 0x72, 0x74,
|
||||
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x03, 0x2a, 0x56,
|
||||
0x0a, 0x0a, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c,
|
||||
0x41, 0x6c, 0x69, 0x61, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11,
|
||||
0x0a, 0x0d, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x10,
|
||||
0x12, 0x18, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x43, 0x72, 0x65, 0x61,
|
||||
0x74, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x61,
|
||||
0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x03,
|
||||
0x12, 0x13, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x44, 0x72, 0x6f, 0x70,
|
||||
0x70, 0x65, 0x64, 0x10, 0x04, 0x2a, 0x73, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x6f, 0x6c, 0x6c,
|
||||
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x00, 0x12,
|
||||
0x1a, 0x0a, 0x12, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65,
|
||||
0x61, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x43,
|
||||
0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x69, 0x6e,
|
||||
0x67, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x03, 0x2a, 0x6e, 0x0a, 0x0e, 0x50, 0x61,
|
||||
0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10,
|
||||
0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
|
||||
0x10, 0x00, 0x12, 0x19, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43,
|
||||
0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x15, 0x0a,
|
||||
0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x69,
|
||||
0x6e, 0x67, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x03, 0x2a, 0x5a, 0x0a, 0x0a, 0x41, 0x6c,
|
||||
0x69, 0x61, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x6c, 0x69, 0x61,
|
||||
0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x0d, 0x41, 0x6c,
|
||||
0x69, 0x61, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x1a, 0x02, 0x08,
|
||||
0x01, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x69,
|
||||
0x6e, 0x67, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x44, 0x72, 0x6f,
|
||||
0x70, 0x70, 0x65, 0x64, 0x10, 0x03, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
|
||||
|
||||
@@ -262,6 +262,7 @@ message CredentialInfo {
|
||||
bool is_super = 4;
|
||||
// encrypted by sha256 (for good performance in cache mapping)
|
||||
string sha256_password = 5;
|
||||
uint64 time_tick = 6; // the timetick in wal which the credential updates
|
||||
}
|
||||
|
||||
message ListPolicyRequest {
|
||||
|
||||
+264
-254
@@ -2445,6 +2445,7 @@ type CredentialInfo struct {
|
||||
IsSuper bool `protobuf:"varint,4,opt,name=is_super,json=isSuper,proto3" json:"is_super,omitempty"`
|
||||
// encrypted by sha256 (for good performance in cache mapping)
|
||||
Sha256Password string `protobuf:"bytes,5,opt,name=sha256_password,json=sha256Password,proto3" json:"sha256_password,omitempty"`
|
||||
TimeTick uint64 `protobuf:"varint,6,opt,name=time_tick,json=timeTick,proto3" json:"time_tick,omitempty"` // the timetick in wal which the credential updates
|
||||
}
|
||||
|
||||
func (x *CredentialInfo) Reset() {
|
||||
@@ -2514,6 +2515,13 @@ func (x *CredentialInfo) GetSha256Password() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *CredentialInfo) GetTimeTick() uint64 {
|
||||
if x != nil {
|
||||
return x.TimeTick
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type ListPolicyRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@@ -4433,7 +4441,7 @@ var file_internal_proto_rawDesc = []byte{
|
||||
0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65,
|
||||
0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
|
||||
0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69,
|
||||
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb7, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x64,
|
||||
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xd4, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x64,
|
||||
0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73,
|
||||
0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73,
|
||||
0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70,
|
||||
@@ -4445,269 +4453,271 @@ var file_internal_proto_rawDesc = []byte{
|
||||
0x07, 0x69, 0x73, 0x53, 0x75, 0x70, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x32,
|
||||
0x35, 0x36, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
|
||||
0x64, 0x22, 0x45, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61,
|
||||
0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||
0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x18, 0x06,
|
||||
0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x22, 0x45,
|
||||
0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52,
|
||||
0x04, 0x62, 0x61, 0x73, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f,
|
||||
0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06,
|
||||
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d,
|
||||
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
||||
0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
|
||||
0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
|
||||
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x6c,
|
||||
0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x52, 0x6f,
|
||||
0x6c, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65,
|
||||
0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e,
|
||||
0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x6d, 0x69, 0x6c,
|
||||
0x76, 0x75, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f,
|
||||
0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67,
|
||||
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x67, 0x0a, 0x19, 0x53, 0x68, 0x6f, 0x77, 0x43,
|
||||
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65,
|
||||
0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72,
|
||||
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e,
|
||||
0x22, 0x9a, 0x01, 0x0a, 0x1a, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
|
||||
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
||||
0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63,
|
||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
|
||||
0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69,
|
||||
0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6f, 0x6c, 0x69,
|
||||
0x63, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f,
|
||||
0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65,
|
||||
0x72, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x76, 0x69, 0x6c,
|
||||
0x65, 0x67, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
|
||||
0x32, 0x27, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
|
||||
0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x69, 0x6c, 0x65, 0x67, 0x65,
|
||||
0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x76, 0x69,
|
||||
0x6c, 0x65, 0x67, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x67, 0x0a, 0x19, 0x53, 0x68,
|
||||
0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42,
|
||||
0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74,
|
||||
0x74, 0x65, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74,
|
||||
0x65, 0x72, 0x6e, 0x22, 0x9a, 0x01, 0x0a, 0x1a, 0x53, 0x68, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x66,
|
||||
0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||
0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
|
||||
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69,
|
||||
0x67, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,
|
||||
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
|
||||
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69,
|
||||
0x72, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
|
||||
0x22, 0x45, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x02, 0x72, 0x74, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x52, 0x61, 0x74,
|
||||
0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x02, 0x72, 0x74, 0x12, 0x0c, 0x0a, 0x01, 0x72, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x72, 0x22, 0x32, 0x0a, 0x0a, 0x49, 0x6d, 0x70, 0x6f, 0x72,
|
||||
0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02,
|
||||
0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0xb7, 0x03, 0x0a, 0x15,
|
||||
0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x74,
|
||||
0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x04, 0x64, 0x62, 0x49, 0x44, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x64, 0x62, 0x49, 0x44, 0x12, 0x22, 0x0a,
|
||||
0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
|
||||
0x44, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
|
||||
0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c,
|
||||
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61,
|
||||
0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03,
|
||||
0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x23,
|
||||
0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18,
|
||||
0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61,
|
||||
0x6d, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x06, 0x20,
|
||||
0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65,
|
||||
0x6d, 0x61, 0x12, 0x37, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
|
||||
0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x61, 0x74, 0x75, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x61,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69,
|
||||
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
||||
0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0d,
|
||||
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x45, 0x0a,
|
||||
0x04, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x02, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x0e, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x54, 0x79,
|
||||
0x70, 0x65, 0x52, 0x02, 0x72, 0x74, 0x12, 0x0c, 0x0a, 0x01, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x01, 0x52, 0x01, 0x72, 0x22, 0x32, 0x0a, 0x0a, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69,
|
||||
0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02,
|
||||
0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
|
||||
0x09, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0xb7, 0x03, 0x0a, 0x15, 0x49, 0x6d, 0x70,
|
||||
0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e,
|
||||
0x61, 0x6c, 0x12, 0x16, 0x0a, 0x04, 0x64, 0x62, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
|
||||
0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x64, 0x62, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f,
|
||||
0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x27,
|
||||
0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d,
|
||||
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0c, 0x70,
|
||||
0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63,
|
||||
0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03,
|
||||
0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73,
|
||||
0x12, 0x3d, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
|
||||
0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12,
|
||||
0x37, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,
|
||||
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e,
|
||||
0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c,
|
||||
0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
|
||||
0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
|
||||
0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6f, 0x70,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x69,
|
||||
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x64,
|
||||
0x61, 0x74, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05,
|
||||
0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62,
|
||||
0x49, 0x44, 0x22, 0xee, 0x01, 0x0a, 0x0d, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a,
|
||||
0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
|
||||
0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a,
|
||||
0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d,
|
||||
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65,
|
||||
0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52,
|
||||
0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
|
||||
0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4b, 0x65,
|
||||
0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x73, 0x22, 0x5b, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74,
|
||||
0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f,
|
||||
0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44,
|
||||
0x22, 0x49, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f,
|
||||
0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07,
|
||||
0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64,
|
||||
0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x22, 0x81, 0x02, 0x0a, 0x12,
|
||||
0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
|
||||
0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,
|
||||
0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06,
|
||||
0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65,
|
||||
0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
|
||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
|
||||
0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d,
|
||||
0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74,
|
||||
0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06,
|
||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69,
|
||||
0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x07, 0x20, 0x01,
|
||||
0x28, 0x03, 0x52, 0x0c, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73,
|
||||
0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x08,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x22,
|
||||
0xc6, 0x03, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f,
|
||||
0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a,
|
||||
0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
|
||||
0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d,
|
||||
0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
|
||||
0x75, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||
0x0e, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
|
||||
0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x6f,
|
||||
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d,
|
||||
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
||||
0x6f, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52,
|
||||
0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61,
|
||||
0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04,
|
||||
0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
|
||||
0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
|
||||
0x6a, 0x6f, 0x62, 0x49, 0x44, 0x22, 0xee, 0x01, 0x0a, 0x0d, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61,
|
||||
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65,
|
||||
0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e,
|
||||
0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
|
||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72,
|
||||
0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65,
|
||||
0x12, 0x37, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69,
|
||||
0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69,
|
||||
0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c,
|
||||
0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
|
||||
0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6f,
|
||||
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x5b, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
|
||||
0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
|
||||
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53,
|
||||
0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a,
|
||||
0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f,
|
||||
0x62, 0x49, 0x44, 0x22, 0x49, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
|
||||
0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
|
||||
0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49,
|
||||
0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x22, 0x81,
|
||||
0x02, 0x0a, 0x12, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f,
|
||||
0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61,
|
||||
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61,
|
||||
0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18,
|
||||
0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12,
|
||||
0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12,
|
||||
0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72,
|
||||
0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72,
|
||||
0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f,
|
||||
0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70,
|
||||
0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
|
||||
0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23,
|
||||
0x0a, 0x0d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18,
|
||||
0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52,
|
||||
0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77,
|
||||
0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f,
|
||||
0x77, 0x73, 0x22, 0xc6, 0x03, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74,
|
||||
0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||
0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73,
|
||||
0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70,
|
||||
0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61,
|
||||
0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72,
|
||||
0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72,
|
||||
0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63,
|
||||
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12,
|
||||
0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
|
||||
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65,
|
||||
0x54, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x70, 0x72, 0x6f,
|
||||
0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e,
|
||||
0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74,
|
||||
0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b,
|
||||
0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72,
|
||||
0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6d, 0x70, 0x6f,
|
||||
0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52,
|
||||
0x0c, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a,
|
||||
0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28,
|
||||
0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a,
|
||||
0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x1a, 0x4c,
|
||||
0x69, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x62, 0x49,
|
||||
0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x64, 0x62, 0x49, 0x44, 0x12, 0x22, 0x0a,
|
||||
0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
|
||||
0x44, 0x22, 0x56, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73,
|
||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61,
|
||||
0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65,
|
||||
0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e,
|
||||
0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
|
||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x02, 0x0a, 0x13, 0x4c, 0x69,
|
||||
0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||
0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
|
||||
0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x73,
|
||||
0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x73, 0x12, 0x3d,
|
||||
0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25,
|
||||
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e,
|
||||
0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62,
|
||||
0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a,
|
||||
0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,
|
||||
0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x67, 0x72,
|
||||
0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x72, 0x6f,
|
||||
0x67, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
|
||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
|
||||
0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d,
|
||||
0x65, 0x73, 0x22, 0x74, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
|
||||
0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06,
|
||||
0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62,
|
||||
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
|
||||
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d,
|
||||
0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65,
|
||||
0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x73, 0x22, 0x3f, 0x0a, 0x0b, 0x46, 0x69, 0x65, 0x6c,
|
||||
0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64,
|
||||
0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49,
|
||||
0x44, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
|
||||
0x03, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x49, 0x44, 0x73, 0x22, 0x82, 0x04, 0x0a, 0x0b, 0x53, 0x65,
|
||||
0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x67,
|
||||
0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65,
|
||||
0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65,
|
||||
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63,
|
||||
0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70,
|
||||
0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a,
|
||||
0x08, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||
0x08, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d,
|
||||
0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x75, 0x6d,
|
||||
0x52, 0x6f, 0x77, 0x73, 0x12, 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20,
|
||||
0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e,
|
||||
0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a,
|
||||
0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d,
|
||||
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
||||
0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52,
|
||||
0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x6f, 0x72,
|
||||
0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x6f, 0x72,
|
||||
0x74, 0x65, 0x64, 0x12, 0x43, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x6c, 0x6f,
|
||||
0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75,
|
||||
0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
|
||||
0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x0a, 0x69, 0x6e,
|
||||
0x73, 0x65, 0x72, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x74,
|
||||
0x61, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d,
|
||||
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65,
|
||||
0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
|
||||
0x52, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x73,
|
||||
0x74, 0x61, 0x74, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||
0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69,
|
||||
0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e,
|
||||
0x6c, 0x6f, 0x67, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0x96,
|
||||
0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x49, 0x6e,
|
||||
0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74,
|
||||
0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c,
|
||||
0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
|
||||
0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
|
||||
0x46, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18,
|
||||
0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65,
|
||||
0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x4a, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x51, 0x75,
|
||||
0x6f, 0x74, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x12, 0x30, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||
0x1c, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63,
|
||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62,
|
||||
0x61, 0x73, 0x65, 0x22, 0x71, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4d,
|
||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33,
|
||||
0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f,
|
||||
0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f,
|
||||
0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d,
|
||||
0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d,
|
||||
0x65, 0x12, 0x52, 0x0a, 0x0f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
|
||||
0x73, 0x73, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x69, 0x6c,
|
||||
0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e,
|
||||
0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f,
|
||||
0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0e, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x67, 0x72,
|
||||
0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65,
|
||||
0x64, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x69, 0x6d,
|
||||
0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f,
|
||||
0x74, 0x61, 0x6c, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
|
||||
0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61,
|
||||
0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73,
|
||||
0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74,
|
||||
0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e,
|
||||
0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x62, 0x49, 0x44, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x64, 0x62, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f,
|
||||
0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
|
||||
0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x56,
|
||||
0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71,
|
||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a,
|
||||
0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x49,
|
||||
0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33,
|
||||
0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
|
||||
0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f,
|
||||
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
|
||||
0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x69,
|
||||
0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69,
|
||||
0x63, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x2a, 0x45, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x53, 0x63,
|
||||
0x6f, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x10, 0x00,
|
||||
0x12, 0x0c, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x10, 0x01, 0x12, 0x0e,
|
||||
0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x0d,
|
||||
0x0a, 0x09, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x2a, 0xc4, 0x01,
|
||||
0x0a, 0x08, 0x52, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x44,
|
||||
0x4c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x10, 0x0a,
|
||||
0x0c, 0x44, 0x44, 0x4c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12,
|
||||
0x0c, 0x0a, 0x08, 0x44, 0x44, 0x4c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a,
|
||||
0x08, 0x44, 0x44, 0x4c, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x44,
|
||||
0x44, 0x4c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x0d,
|
||||
0x0a, 0x09, 0x44, 0x4d, 0x4c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x10, 0x05, 0x12, 0x0d, 0x0a,
|
||||
0x09, 0x44, 0x4d, 0x4c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b,
|
||||
0x44, 0x4d, 0x4c, 0x42, 0x75, 0x6c, 0x6b, 0x4c, 0x6f, 0x61, 0x64, 0x10, 0x07, 0x12, 0x0d, 0x0a,
|
||||
0x09, 0x44, 0x51, 0x4c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08,
|
||||
0x44, 0x51, 0x4c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x4d,
|
||||
0x4c, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x10, 0x0a, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x44, 0x4c,
|
||||
0x44, 0x42, 0x10, 0x0b, 0x2a, 0x83, 0x01, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a,
|
||||
0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10,
|
||||
0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x10,
|
||||
0x0a, 0x0c, 0x50, 0x72, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x02,
|
||||
0x12, 0x0d, 0x0a, 0x09, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12,
|
||||
0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x43,
|
||||
0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e,
|
||||
0x64, 0x65, 0x78, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x06, 0x12, 0x0b, 0x0a,
|
||||
0x07, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x07, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69,
|
||||
0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d,
|
||||
0x69, 0x6f, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x76, 0x32,
|
||||
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x70,
|
||||
0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20,
|
||||
0x03, 0x28, 0x09, 0x52, 0x06, 0x6a, 0x6f, 0x62, 0x49, 0x44, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x73,
|
||||
0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6d, 0x69,
|
||||
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72,
|
||||
0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61,
|
||||
0x74, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65,
|
||||
0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x61,
|
||||
0x73, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
|
||||
0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
|
||||
0x73, 0x73, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f,
|
||||
0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22,
|
||||
0x74, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x49, 0x6e,
|
||||
0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x62, 0x4e,
|
||||
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d,
|
||||
0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
|
||||
0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
|
||||
0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
|
||||
0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x49, 0x44, 0x73, 0x22, 0x3f, 0x0a, 0x0b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69,
|
||||
0x6e, 0x6c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x16,
|
||||
0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06,
|
||||
0x6c, 0x6f, 0x67, 0x49, 0x44, 0x73, 0x22, 0x82, 0x04, 0x0a, 0x0b, 0x53, 0x65, 0x67, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
|
||||
0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
|
||||
0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c,
|
||||
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74,
|
||||
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70,
|
||||
0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x43,
|
||||
0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x43,
|
||||
0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f,
|
||||
0x77, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77,
|
||||
0x73, 0x12, 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,
|
||||
0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
|
||||
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74,
|
||||
0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x6c, 0x65,
|
||||
0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
|
||||
0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
|
||||
0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65,
|
||||
0x76, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x65, 0x64,
|
||||
0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x6f, 0x72, 0x74, 0x65, 0x64,
|
||||
0x12, 0x43, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18,
|
||||
0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x46, 0x69,
|
||||
0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x65, 0x72,
|
||||
0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x6c,
|
||||
0x6f, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76,
|
||||
0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61,
|
||||
0x6c, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x09, 0x64,
|
||||
0x65, 0x6c, 0x74, 0x61, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74,
|
||||
0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d,
|
||||
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65,
|
||||
0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67,
|
||||
0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x73, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x17,
|
||||
0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
|
||||
0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73,
|
||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x74,
|
||||
0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x46, 0x0a, 0x0c,
|
||||
0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03,
|
||||
0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||
0x6f, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65,
|
||||
0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x73, 0x22, 0x4a, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61,
|
||||
0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30,
|
||||
0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d,
|
||||
0x69, 0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
||||
0x6f, 0x6e, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65,
|
||||
0x22, 0x71, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4d, 0x65, 0x74, 0x72,
|
||||
0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73,
|
||||
0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69,
|
||||
0x6c, 0x76, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
||||
0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
|
||||
0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x49,
|
||||
0x6e, 0x66, 0x6f, 0x2a, 0x45, 0x0a, 0x09, 0x52, 0x61, 0x74, 0x65, 0x53, 0x63, 0x6f, 0x70, 0x65,
|
||||
0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x10, 0x00, 0x12, 0x0c, 0x0a,
|
||||
0x08, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43,
|
||||
0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x50,
|
||||
0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x2a, 0xc4, 0x01, 0x0a, 0x08, 0x52,
|
||||
0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x44, 0x4c, 0x43, 0x6f,
|
||||
0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x44,
|
||||
0x4c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08,
|
||||
0x44, 0x44, 0x4c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x44,
|
||||
0x4c, 0x46, 0x6c, 0x75, 0x73, 0x68, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x44, 0x4c, 0x43,
|
||||
0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x44,
|
||||
0x4d, 0x4c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x4d,
|
||||
0x4c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x4d, 0x4c,
|
||||
0x42, 0x75, 0x6c, 0x6b, 0x4c, 0x6f, 0x61, 0x64, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x51,
|
||||
0x4c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x51, 0x4c,
|
||||
0x51, 0x75, 0x65, 0x72, 0x79, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x4d, 0x4c, 0x55, 0x70,
|
||||
0x73, 0x65, 0x72, 0x74, 0x10, 0x0a, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x44, 0x4c, 0x44, 0x42, 0x10,
|
||||
0x0b, 0x2a, 0x83, 0x01, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53,
|
||||
0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0b,
|
||||
0x0a, 0x07, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50,
|
||||
0x72, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0d, 0x0a,
|
||||
0x09, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06,
|
||||
0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70,
|
||||
0x6c, 0x65, 0x74, 0x65, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x64, 0x65, 0x78,
|
||||
0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x6f,
|
||||
0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x07, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2d, 0x69, 0x6f, 0x2f,
|
||||
0x6d, 0x69, 0x6c, 0x76, 0x75, 0x73, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x70, 0x72,
|
||||
0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x70, 0x62, 0x62, 0x06,
|
||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
|
||||
+371
-22
@@ -7,6 +7,11 @@ option go_package = "github.com/milvus-io/milvus/pkg/v2/proto/messagespb";
|
||||
import "common.proto";
|
||||
import "schema.proto";
|
||||
import "data_coord.proto"; // for SegmentLevel, but it's a basic type should not be in datacoord.proto.
|
||||
import "index_coord.proto";
|
||||
import "internal.proto";
|
||||
import "milvus.proto";
|
||||
import "rg.proto";
|
||||
import "google/protobuf/field_mask.proto";
|
||||
|
||||
// Message is the basic unit of communication between publisher and consumer.
|
||||
message Message {
|
||||
@@ -16,27 +21,51 @@ message Message {
|
||||
|
||||
// MessageType is the type of message.
|
||||
enum MessageType {
|
||||
Unknown = 0;
|
||||
TimeTick = 1;
|
||||
Insert = 2;
|
||||
Delete = 3;
|
||||
Flush = 4;
|
||||
CreateCollection = 5;
|
||||
DropCollection = 6;
|
||||
CreatePartition = 7;
|
||||
DropPartition = 8;
|
||||
ManualFlush = 9;
|
||||
CreateSegment = 10;
|
||||
Import = 11;
|
||||
SchemaChange = 12;
|
||||
Unknown = 0;
|
||||
TimeTick = 1;
|
||||
Insert = 2;
|
||||
Delete = 3;
|
||||
Flush = 4;
|
||||
CreateCollection = 5;
|
||||
DropCollection = 6;
|
||||
CreatePartition = 7;
|
||||
DropPartition = 8;
|
||||
ManualFlush = 9;
|
||||
CreateSegment = 10;
|
||||
Import = 11;
|
||||
SchemaChange = 12 [deprecated = true]; // merged into AlterCollection
|
||||
AlterCollection = 13;
|
||||
AlterLoadConfig = 14; // load config is simple, so CreateLoadConfig and AlterLoadConfig share one message.
|
||||
DropLoadConfig = 15;
|
||||
CreateDatabase = 16;
|
||||
AlterDatabase = 17;
|
||||
DropDatabase = 18;
|
||||
AlterAlias = 19; // alias is simple, so CreateAlias and AlterAlias share one message.
|
||||
DropAlias = 20;
|
||||
RestoreRBAC = 21;
|
||||
AlterUser = 22; // user is simple, so CreateUser and AlterUser share one message.
|
||||
DropUser = 23;
|
||||
AlterRole = 24; // role is simple, so CreateRole and AlterRole share one message.
|
||||
DropRole = 25;
|
||||
AlterUserRole = 26; // user role is simple, so CreateUserRole and AlterUserRole share one message.
|
||||
DropUserRole = 27;
|
||||
AlterPrivilege = 28; // privilege is simple, so CreatePrivilege and AlterPrivilege share one message.
|
||||
DropPrivilege = 29;
|
||||
AlterPrivilegeGroup = 30; // privilege group is simple, so CreatePrivilegeGroup and AlterPrivilegeGroup share one message.
|
||||
DropPrivilegeGroup = 31;
|
||||
AlterResourceGroup = 32; // resource group is simple, so CreateResourceGroup and AlterResourceGroup share one message.
|
||||
DropResourceGroup = 33;
|
||||
CreateIndex = 34;
|
||||
AlterIndex = 35;
|
||||
DropIndex = 36;
|
||||
|
||||
// PutReplicateConfig is used to put the replicate configuration to the current cluster.
|
||||
// When the PutReplicateConfig message is received, the replication topology is changed.
|
||||
// AlterReplicateConfig is used to alter the replicate configuration to the current cluster.
|
||||
// When the AlterReplicateConfig message is received, the replication topology is changed.
|
||||
// Maybe some cluster give up the leader role, no any other message will be received from this cluster.
|
||||
// So leader will stop writing message into wal and stop replicating any message to the other cluster,
|
||||
// and the follower will stop receiving any message from the old leader.
|
||||
// New leader will start to write message into wal and start replicating message to the other cluster.
|
||||
PutReplicateConfig = 800;
|
||||
AlterReplicateConfig = 800;
|
||||
|
||||
// begin transaction message is only used for transaction, once a begin
|
||||
// transaction message is received, all messages combined with the
|
||||
@@ -108,7 +137,7 @@ message TxnMessageBody {
|
||||
/// Message Header Definitions
|
||||
/// Used to fast handling at streaming node write ahead.
|
||||
/// The header should be simple and light enough to be parsed.
|
||||
/// Do not put too much information in the header if unnecessary.
|
||||
/// Do not alter too much information in the header if unnecessary.
|
||||
///
|
||||
|
||||
// TimeTickMessageHeader just nothing.
|
||||
@@ -167,11 +196,13 @@ message ManualFlushMessageHeader {
|
||||
message CreateCollectionMessageHeader {
|
||||
int64 collection_id = 1;
|
||||
repeated int64 partition_ids = 2;
|
||||
int64 db_id = 3;
|
||||
}
|
||||
|
||||
// DropCollectionMessageHeader is the header of drop collection message.
|
||||
message DropCollectionMessageHeader {
|
||||
int64 collection_id = 1;
|
||||
int64 db_id = 2;
|
||||
}
|
||||
|
||||
// CreatePartitionMessageHeader is the header of create partition message.
|
||||
@@ -186,13 +217,13 @@ message DropPartitionMessageHeader {
|
||||
int64 partition_id = 2;
|
||||
}
|
||||
|
||||
// PutReplicateConfigMessageHeader is the header of put replicate configuration message.
|
||||
message PutReplicateConfigMessageHeader {
|
||||
// AlterReplicateConfigMessageHeader is the header of alter replicate configuration message.
|
||||
message AlterReplicateConfigMessageHeader {
|
||||
common.ReplicateConfiguration replicate_configuration = 1;
|
||||
}
|
||||
|
||||
// PutReplicateConfigMessageBody is the body of put replicate configuration message.
|
||||
message PutReplicateConfigMessageBody {
|
||||
// AlterReplicateConfigMessageBody is the body of alter replicate configuration message.
|
||||
message AlterReplicateConfigMessageBody {
|
||||
}
|
||||
|
||||
// BeginTxnMessageHeader is the header of begin transaction message.
|
||||
@@ -230,6 +261,318 @@ message SchemaChangeMessageBody{
|
||||
schema.CollectionSchema schema = 1;
|
||||
}
|
||||
|
||||
// AlterCollectionMessageHeader is the header of alter collection message.
|
||||
message AlterCollectionMessageHeader {
|
||||
int64 db_id = 1;
|
||||
int64 collection_id = 2;
|
||||
google.protobuf.FieldMask update_mask = 3;
|
||||
CacheExpirations cache_expirations = 4;
|
||||
repeated int64 flushed_segment_ids = 5; // will be filled by wal shard manager.
|
||||
}
|
||||
|
||||
// AlterCollectionMessageBody is the body of alter collection message.
|
||||
message AlterCollectionMessageBody {
|
||||
AlterCollectionMessageUpdates updates = 1;
|
||||
}
|
||||
|
||||
// AlterCollectionMessageUpdates is the updates of alter collection message.
|
||||
message AlterCollectionMessageUpdates {
|
||||
int64 db_id = 1; // collection db id should be updated.
|
||||
string db_name = 2; // collection db name should be updated.
|
||||
string collection_name = 3; // collection name should be updated.
|
||||
string description = 4; // collection description should be updated.
|
||||
schema.CollectionSchema schema = 5; // collection schema should be updated.
|
||||
common.ConsistencyLevel consistency_level = 6; // consistency level should be updated.
|
||||
repeated common.KeyValuePair properties = 7; // collection properties should be updated.
|
||||
AlterLoadConfigOfAlterCollection alter_load_config = 8; // alter load config of alter collection.
|
||||
}
|
||||
|
||||
// AlterLoadConfigOfAlterCollection is the body of alter load config of alter collection message.
|
||||
message AlterLoadConfigOfAlterCollection {
|
||||
int32 replica_number = 1;
|
||||
repeated string resource_groups = 2;
|
||||
}
|
||||
|
||||
// AlterLoadConfigMessageHeader is the header of alter load config message.
|
||||
message AlterLoadConfigMessageHeader {
|
||||
int64 db_id = 1;
|
||||
int64 collection_id = 2; // the collection id that has to be loaded.
|
||||
repeated int64 partition_ids = 3; // the partition ids that has to be loaded, empty means no partition has to be loaded.
|
||||
repeated LoadFieldConfig load_fields = 4; // the field id that has to be loaded.
|
||||
repeated LoadReplicaConfig replicas = 5; // the replicas that has to be loaded.
|
||||
bool user_specified_replica_mode = 6; // whether the replica mode is user specified.
|
||||
}
|
||||
|
||||
// AlterLoadConfigMessageBody is the body of alter load config message.
|
||||
message AlterLoadConfigMessageBody {
|
||||
}
|
||||
|
||||
// LoadFieldConfig is the config to load fields.
|
||||
message LoadFieldConfig {
|
||||
int64 field_id = 1;
|
||||
int64 index_id = 2;
|
||||
}
|
||||
|
||||
// LoadReplicaConfig is the config of a replica.
|
||||
message LoadReplicaConfig {
|
||||
int64 replica_id = 1;
|
||||
string resource_group_name = 2;
|
||||
common.LoadPriority priority = 3;
|
||||
}
|
||||
|
||||
message DropLoadConfigMessageHeader {
|
||||
int64 db_id = 1;
|
||||
int64 collection_id = 2;
|
||||
}
|
||||
|
||||
message DropLoadConfigMessageBody {}
|
||||
|
||||
// CreateDatabaseMessageHeader is the header of create database message.
|
||||
message CreateDatabaseMessageHeader {
|
||||
string db_name = 1;
|
||||
int64 db_id = 2;
|
||||
}
|
||||
|
||||
// CreateDatabaseMessageBody is the body of create database message.
|
||||
message CreateDatabaseMessageBody {
|
||||
repeated common.KeyValuePair properties = 1;
|
||||
}
|
||||
|
||||
// AlterDatabaseMessageHeader is the header of alter database message.
|
||||
message AlterDatabaseMessageHeader {
|
||||
string db_name = 1;
|
||||
int64 db_id = 2;
|
||||
}
|
||||
|
||||
// AlterDatabaseMessageBody is the body of alter database message.
|
||||
message AlterDatabaseMessageBody {
|
||||
repeated common.KeyValuePair properties = 1;
|
||||
AlterLoadConfigOfAlterDatabase alter_load_config = 2;
|
||||
}
|
||||
|
||||
// AlterLoadConfigOfAlterDatabase is the body of alter load config of alter database message.
|
||||
// When the database's resource group or replica number is changed, the load config of all collection in database will be updated.
|
||||
message AlterLoadConfigOfAlterDatabase {
|
||||
repeated int64 collection_ids = 1;
|
||||
int32 replica_number = 2;
|
||||
repeated string resource_groups = 3;
|
||||
}
|
||||
|
||||
// DropDatabaseMessageHeader is the header of drop database message.
|
||||
message DropDatabaseMessageHeader {
|
||||
string db_name = 1;
|
||||
int64 db_id = 2;
|
||||
}
|
||||
|
||||
// DropDatabaseMessageBody is the body of drop database message.
|
||||
message DropDatabaseMessageBody {
|
||||
}
|
||||
|
||||
// AlterAliasMessageHeader is the header of alter alias message.
|
||||
message AlterAliasMessageHeader {
|
||||
int64 db_id = 1;
|
||||
string db_name = 2;
|
||||
int64 collection_id = 3;
|
||||
string collection_name = 4;
|
||||
string alias = 5;
|
||||
}
|
||||
|
||||
// AlterAliasMessageBody is the body of alter alias message.
|
||||
message AlterAliasMessageBody {
|
||||
}
|
||||
|
||||
// DropAliasMessageHeader is the header of drop alias message.
|
||||
message DropAliasMessageHeader {
|
||||
int64 db_id = 1;
|
||||
string db_name = 2;
|
||||
string alias = 3;
|
||||
}
|
||||
|
||||
// DropAliasMessageBody is the body of drop alias message.
|
||||
message DropAliasMessageBody {
|
||||
}
|
||||
|
||||
message CreateUserMessageHeader {
|
||||
milvus.UserEntity user_entity = 1;
|
||||
}
|
||||
|
||||
message CreateUserMessageBody {
|
||||
internal.CredentialInfo credential_info = 1;
|
||||
}
|
||||
|
||||
// AlterUserMessageHeader is the header of alter user message.
|
||||
message AlterUserMessageHeader {
|
||||
milvus.UserEntity user_entity = 1;
|
||||
}
|
||||
|
||||
// AlterUserMessageBody is the body of alter user message.
|
||||
message AlterUserMessageBody {
|
||||
internal.CredentialInfo credential_info = 1;
|
||||
}
|
||||
|
||||
// DropUserMessageHeader is the header of drop user message.
|
||||
message DropUserMessageHeader {
|
||||
string user_name = 1;
|
||||
}
|
||||
|
||||
// DropUserMessageBody is the body of drop user message.
|
||||
message DropUserMessageBody {}
|
||||
|
||||
// AlterRoleMessageHeader is the header of alter role message.
|
||||
message AlterRoleMessageHeader {
|
||||
milvus.RoleEntity role_entity = 1;
|
||||
}
|
||||
|
||||
// AlterRoleMessageBody is the body of alter role message.
|
||||
message AlterRoleMessageBody {
|
||||
}
|
||||
|
||||
// DropRoleMessageHeader is the header of drop role message.
|
||||
message DropRoleMessageHeader {
|
||||
string role_name = 1;
|
||||
bool force_drop = 2; // if true, the role will be dropped even if it has privileges.
|
||||
}
|
||||
|
||||
// DropRoleMessageBody is the body of drop role message.
|
||||
message DropRoleMessageBody {}
|
||||
|
||||
// RoleBinding is the binding of user and role.
|
||||
message RoleBinding {
|
||||
milvus.UserEntity user_entity = 1;
|
||||
milvus.RoleEntity role_entity = 2;
|
||||
}
|
||||
|
||||
// AlterUserRoleMessageHeader is the header of alter user role message.
|
||||
message AlterUserRoleMessageHeader {
|
||||
RoleBinding role_binding = 1; // TODO: support multiple role and user bindings in future.
|
||||
}
|
||||
|
||||
// AlterUserRoleMessageBody is the body of alter user role message.
|
||||
message AlterUserRoleMessageBody {}
|
||||
|
||||
// DropUserRoleMessageHeader is the header of drop user role message.
|
||||
message DropUserRoleMessageHeader {
|
||||
RoleBinding role_binding = 1; // TODO: support multiple role and user bindings in future.
|
||||
}
|
||||
|
||||
// DropUserRoleMessageBody is the body of drop user role message.
|
||||
message DropUserRoleMessageBody {}
|
||||
|
||||
// RestoreRBACMessageHeader is the header of restore rbac message.
|
||||
message RestoreRBACMessageHeader {
|
||||
}
|
||||
|
||||
// RestoreRBACMessageBody is the body of restore rbac message.
|
||||
message RestoreRBACMessageBody {
|
||||
milvus.RBACMeta rbac_meta = 1;
|
||||
}
|
||||
|
||||
// AlterPrivilegeMessageHeader is the header of grant privilege message.
|
||||
message AlterPrivilegeMessageHeader {
|
||||
milvus.GrantEntity entity = 1;
|
||||
}
|
||||
|
||||
// AlterPrivilegeMessageBody is the body of grant privilege message.
|
||||
message AlterPrivilegeMessageBody {
|
||||
}
|
||||
|
||||
// DropPrivilegeMessageHeader is the header of revoke privilege message.
|
||||
message DropPrivilegeMessageHeader {
|
||||
milvus.GrantEntity entity = 1;
|
||||
}
|
||||
|
||||
// DropPrivilegeMessageBody is the body of revoke privilege message.
|
||||
message DropPrivilegeMessageBody {}
|
||||
|
||||
// AlterPrivilegeGroupMessageHeader is the header of alter privilege group message.
|
||||
message AlterPrivilegeGroupMessageHeader {
|
||||
milvus.PrivilegeGroupInfo privilege_group_info = 1; // if privileges is empty, new privilege group will be created.
|
||||
}
|
||||
|
||||
// AlterPrivilegeGroupMessageBody is the body of alter privilege group message.
|
||||
message AlterPrivilegeGroupMessageBody {}
|
||||
|
||||
// DropPrivilegeGroupMessageHeader is the header of drop privilege group message.
|
||||
message DropPrivilegeGroupMessageHeader {
|
||||
milvus.PrivilegeGroupInfo privilege_group_info = 1; // if privileges is empty, privilege group will be dropped.
|
||||
}
|
||||
|
||||
// DropPrivilegeGroupMessageBody is the body of drop privilege group message.
|
||||
message DropPrivilegeGroupMessageBody {}
|
||||
|
||||
// AlterResourceGroupMessageHeader is the header of alter resource group message.
|
||||
message AlterResourceGroupMessageHeader {
|
||||
map<string, rg.ResourceGroupConfig> resource_group_configs = 3;
|
||||
}
|
||||
|
||||
// AlterResourceGroupMessageBody is the body of alter resource group message.
|
||||
message AlterResourceGroupMessageBody {}
|
||||
|
||||
// DropResourceGroupMessageHeader is the header of drop resource group message.
|
||||
message DropResourceGroupMessageHeader {
|
||||
string resource_group_name = 1;
|
||||
}
|
||||
|
||||
// DropResourceGroupMessageBody is the body of drop resource group message.
|
||||
message DropResourceGroupMessageBody {
|
||||
}
|
||||
|
||||
// CreateIndexMessageHeader is the header of create index message.
|
||||
message CreateIndexMessageHeader {
|
||||
int64 db_id = 1;
|
||||
int64 collection_id = 2;
|
||||
int64 field_id = 3;
|
||||
int64 index_id = 4;
|
||||
string index_name = 5;
|
||||
}
|
||||
|
||||
// CreateIndexMessageBody is the body of create index message.
|
||||
message CreateIndexMessageBody {
|
||||
index.FieldIndex field_index = 1;
|
||||
}
|
||||
|
||||
// AlterIndexMessageHeader is the header of alter index message.
|
||||
message AlterIndexMessageHeader {
|
||||
int64 collection_id = 1;
|
||||
repeated int64 index_ids = 2;
|
||||
}
|
||||
|
||||
// AlterIndexMessageBody is the body of alter index message.
|
||||
message AlterIndexMessageBody {
|
||||
repeated index.FieldIndex field_indexes = 1;
|
||||
}
|
||||
|
||||
// DropIndexMessageHeader is the header of drop index message.
|
||||
message DropIndexMessageHeader {
|
||||
int64 collection_id = 1;
|
||||
repeated int64 index_ids = 2; // drop all indexes if empty.
|
||||
}
|
||||
|
||||
// DropIndexMessageBody is the body of drop index message.
|
||||
message DropIndexMessageBody {}
|
||||
|
||||
// CacheExpirations is the cache expirations of proxy collection meta cache.
|
||||
message CacheExpirations {
|
||||
repeated CacheExpiration cache_expirations = 1;
|
||||
}
|
||||
|
||||
// CacheExpiration is the cache expiration of proxy collection meta cache.
|
||||
message CacheExpiration {
|
||||
oneof cache {
|
||||
// LegacyProxyCollectionMetaCache is the cache expiration of legacy proxy collection meta cache.
|
||||
LegacyProxyCollectionMetaCache legacy_proxy_collection_meta_cache = 1;
|
||||
}
|
||||
}
|
||||
|
||||
// LegacyProxyCollectionMetaCache is the cache expiration of legacy proxy collection meta cache.
|
||||
message LegacyProxyCollectionMetaCache {
|
||||
string db_name = 1;
|
||||
string collection_name = 2;
|
||||
int64 collection_id = 3;
|
||||
string partition_name = 4;
|
||||
common.MsgType msg_type = 5;
|
||||
}
|
||||
|
||||
///
|
||||
/// Message Extra Response
|
||||
/// Used to add extra information when response to the client.
|
||||
@@ -295,8 +638,11 @@ message ReplicateHeader {
|
||||
// ResourceDomain is the domain of resource hold.
|
||||
enum ResourceDomain {
|
||||
ResourceDomainUnknown = 0; // should never be used.
|
||||
ResourceDomainImportJobID = 1; // the domain of import job id.
|
||||
ResourceDomainImportJobID = 1 [deprecated = true]; // the domain of import job id.
|
||||
ResourceDomainCollectionName = 2; // the domain of collection name.
|
||||
ResourceDomainDBName = 3; // the domain of db name.
|
||||
ResourceDomainPrivilege = 4; // the domain of privilege.
|
||||
ResourceDomainCluster = 127; // the domain of full cluster.
|
||||
}
|
||||
|
||||
// ResourceKey is the key for resource hold.
|
||||
@@ -305,6 +651,9 @@ enum ResourceDomain {
|
||||
message ResourceKey {
|
||||
ResourceDomain domain = 1;
|
||||
string key = 2;
|
||||
bool shared = 3; // whether the resource is shared,
|
||||
// if true, the resource is shared by multiple broadcast message,
|
||||
// otherwise, the resource is exclusive to the broadcast message.
|
||||
}
|
||||
|
||||
// CipherHeader is the header of a message that is encrypted.
|
||||
|
||||
+4782
-386
File diff suppressed because it is too large
Load Diff
@@ -90,14 +90,17 @@ enum BroadcastTaskState {
|
||||
BROADCAST_TASK_STATE_UNKNOWN = 0; // should never used.
|
||||
BROADCAST_TASK_STATE_PENDING = 1; // task is pending.
|
||||
BROADCAST_TASK_STATE_DONE = 2; // task has been broadcasted and acknowledged, the resource lock is released, and the persisted task can be cleared.
|
||||
BROADCAST_TASK_STATE_WAIT_ACK = 3; // task has been broadcasted, waiting for ack, the resource lock is still acquired by some vchannels.
|
||||
BROADCAST_TASK_STATE_WAIT_ACK = 3 [deprecated = true]; // task has been broadcasted, waiting for ack, the resource lock is still acquired by some vchannels.
|
||||
BROADCAST_TASK_STATE_REPLICATED = 4; // task is replicated from the source cluster, the resource lock isn't acquired, so the execution order should be protected by the order of broadcastID.
|
||||
BROADCAST_TASK_STATE_TOMBSTONE = 5; // task is tombstone, it's used to mark the task is already acked, but for idempotency and deduplication, it will be kept in recovery stroage for a while.
|
||||
}
|
||||
|
||||
// BroadcastTask is the task to broadcast the messake.
|
||||
message BroadcastTask {
|
||||
messages.Message message = 1; // message to be broadcast.
|
||||
BroadcastTaskState state = 2; // state of the task.
|
||||
bytes acked_vchannel_bitmap = 3; // given vchannels that have been acked, the size of bitmap is same with message.BroadcastHeader().VChannels.
|
||||
bytes acked_vchannel_bitmap = 3 [deprecated = true]; // deprecated, use acked_checkpoints instead.
|
||||
repeated AckedCheckpoint acked_checkpoints = 4; // given vchannels that have been acked, the size of bitmap is same with message.BroadcastHeader().VChannels.
|
||||
}
|
||||
|
||||
// AckedResult is the result of the ack.
|
||||
@@ -442,6 +445,7 @@ message ProduceMessageResponseResult {
|
||||
uint64 timetick = 2; // the timetick of that message sent.
|
||||
messages.TxnContext txnContext = 3; // the txn context of the message.
|
||||
google.protobuf.Any extra = 4; // the extra message.
|
||||
common.MessageID last_confirmed_id = 5; // the last confirmed message id.
|
||||
}
|
||||
|
||||
// CloseProducerResponse is the result of the CloseProducer RPC.
|
||||
|
||||
+1020
-978
File diff suppressed because it is too large
Load Diff
@@ -137,6 +137,8 @@ func fromMessageToTsMsgV2(msg message.ImmutableMessage) (msgstream.TsMsg, error)
|
||||
tsMsg, err = NewCreateSegmentMessageBody(msg)
|
||||
case message.MessageTypeSchemaChange:
|
||||
tsMsg, err = NewSchemaChangeMessageBody(msg)
|
||||
case message.MessageTypeAlterCollection:
|
||||
tsMsg, err = NewAlterCollectionMessageBody(msg)
|
||||
default:
|
||||
panic("unsupported message type")
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ var messageTypeToCommonpbMsgType = map[message.MessageType]commonpb.MsgType{
|
||||
message.MessageTypeDropPartition: commonpb.MsgType_DropPartition,
|
||||
message.MessageTypeImport: commonpb.MsgType_Import,
|
||||
message.MessageTypeSchemaChange: commonpb.MsgType_AddCollectionField, // TODO change to schema change
|
||||
message.MessageTypeAlterCollection: commonpb.MsgType_AlterCollection,
|
||||
}
|
||||
|
||||
// MustGetCommonpbMsgTypeFromMessageType returns the commonpb.MsgType from message.MessageType.
|
||||
|
||||
@@ -149,3 +149,31 @@ func NewSchemaChangeMessageBody(msg message.ImmutableMessage) (msgstream.TsMsg,
|
||||
SchemaChangeMessage: schChgMsg,
|
||||
}, nil
|
||||
}
|
||||
|
||||
type AlterCollectionMessageBody struct {
|
||||
*tsMsgImpl
|
||||
AlterCollectionMessage message.ImmutableAlterCollectionMessageV2
|
||||
}
|
||||
|
||||
func (p *AlterCollectionMessageBody) ID() msgstream.UniqueID {
|
||||
return 0
|
||||
}
|
||||
|
||||
func NewAlterCollectionMessageBody(msg message.ImmutableMessage) (msgstream.TsMsg, error) {
|
||||
alterCollMsg, err := message.AsImmutableAlterCollectionMessageV2(msg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &AlterCollectionMessageBody{
|
||||
tsMsgImpl: &tsMsgImpl{
|
||||
BaseMsg: msgstream.BaseMsg{
|
||||
BeginTimestamp: msg.TimeTick(),
|
||||
EndTimestamp: msg.TimeTick(),
|
||||
},
|
||||
ts: msg.TimeTick(),
|
||||
sz: msg.EstimateSize(),
|
||||
msgType: MustGetCommonpbMsgTypeFromMessageType(msg.MessageType()),
|
||||
},
|
||||
AlterCollectionMessage: alterCollMsg,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
package message
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"google.golang.org/protobuf/proto"
|
||||
|
||||
"github.com/milvus-io/milvus/pkg/v2/proto/messagespb"
|
||||
"github.com/milvus-io/milvus/pkg/v2/util/funcutil"
|
||||
"github.com/milvus-io/milvus/pkg/v2/util/typeutil"
|
||||
)
|
||||
|
||||
@@ -26,44 +27,26 @@ type BroadcastHeader struct {
|
||||
ResourceKeys typeutil.Set[ResourceKey]
|
||||
}
|
||||
|
||||
// NewResourceKeyFromProto creates a ResourceKey from proto.
|
||||
func NewResourceKeyFromProto(proto *messagespb.ResourceKey) ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: proto.Domain,
|
||||
Key: proto.Key,
|
||||
}
|
||||
// BroadcastResult is the result of broadcast operation.
|
||||
type BroadcastResult[H proto.Message, B proto.Message] struct {
|
||||
Message SpecializedBroadcastMessage[H, B]
|
||||
Results map[string]*AppendResult
|
||||
}
|
||||
|
||||
// newProtoFromResourceKey creates a set of proto from ResourceKey.
|
||||
func newProtoFromResourceKey(keys ...ResourceKey) []*messagespb.ResourceKey {
|
||||
deduplicated := typeutil.NewSet(keys...)
|
||||
protos := make([]*messagespb.ResourceKey, 0, len(keys))
|
||||
for key := range deduplicated {
|
||||
protos = append(protos, &messagespb.ResourceKey{
|
||||
Domain: key.Domain,
|
||||
Key: key.Key,
|
||||
})
|
||||
// GetControlChannelResult returns the append result of the control channel.
|
||||
// Return nil if the control channel is not found.
|
||||
func (br *BroadcastResult[H, B]) GetControlChannelResult() *AppendResult {
|
||||
for vchannel, result := range br.Results {
|
||||
if funcutil.IsControlChannel(vchannel) {
|
||||
return result
|
||||
}
|
||||
}
|
||||
return protos
|
||||
return nil
|
||||
}
|
||||
|
||||
type ResourceKey struct {
|
||||
Domain messagespb.ResourceDomain
|
||||
Key string
|
||||
}
|
||||
|
||||
// NewImportJobIDResourceKey creates a key for import job resource.
|
||||
func NewImportJobIDResourceKey(importJobID int64) ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: messagespb.ResourceDomain_ResourceDomainImportJobID,
|
||||
Key: strconv.FormatInt(importJobID, 10),
|
||||
}
|
||||
}
|
||||
|
||||
// NewCollectionNameResourceKey creates a key for collection name resource.
|
||||
func NewCollectionNameResourceKey(collectionName string) ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: messagespb.ResourceDomain_ResourceDomainCollectionName,
|
||||
Key: collectionName,
|
||||
}
|
||||
// AppendResult is the result of append operation.
|
||||
type AppendResult struct {
|
||||
MessageID MessageID
|
||||
LastConfirmedMessageID MessageID
|
||||
TimeTick uint64
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package ce
|
||||
|
||||
import (
|
||||
"github.com/milvus-io/milvus/pkg/v2/proto/messagespb"
|
||||
"github.com/milvus-io/milvus/pkg/v2/streaming/util/message"
|
||||
)
|
||||
|
||||
func NewBuilder() *CacheExpirationsBuilder {
|
||||
return &CacheExpirationsBuilder{
|
||||
cacheExpirations: &message.CacheExpirations{
|
||||
CacheExpirations: make([]*message.CacheExpiration, 0, 1),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
type CacheExpirationsBuilder struct {
|
||||
cacheExpirations *message.CacheExpirations
|
||||
}
|
||||
|
||||
func (b *CacheExpirationsBuilder) WithLegacyProxyCollectionMetaCache(opts ...OptLegacyProxyCollectionMetaCache) *CacheExpirationsBuilder {
|
||||
lpcmc := &message.LegacyProxyCollectionMetaCache{}
|
||||
for _, opt := range opts {
|
||||
opt(lpcmc)
|
||||
}
|
||||
b.cacheExpirations.CacheExpirations = append(b.cacheExpirations.CacheExpirations, &message.CacheExpiration{
|
||||
Cache: &messagespb.CacheExpiration_LegacyProxyCollectionMetaCache{
|
||||
LegacyProxyCollectionMetaCache: lpcmc,
|
||||
},
|
||||
})
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *CacheExpirationsBuilder) Build() *message.CacheExpirations {
|
||||
return b.cacheExpirations
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package ce
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/milvus-io/milvus-proto/go-api/v2/commonpb"
|
||||
)
|
||||
|
||||
func TestCacheExpirationsBuilder(t *testing.T) {
|
||||
builder := NewBuilder()
|
||||
|
||||
ce := builder.WithLegacyProxyCollectionMetaCache(
|
||||
OptLPCMDBName("test"),
|
||||
OptLPCMCollectionID(1),
|
||||
OptLPCMPartitionName("test"),
|
||||
OptLPCMMsgType(commonpb.MsgType_CreateCollection),
|
||||
OptLPCMCollectionName("test")).
|
||||
WithLegacyProxyCollectionMetaCache(
|
||||
OptLPCMDBName("test2"),
|
||||
OptLPCMCollectionID(2),
|
||||
OptLPCMPartitionName("test2p"),
|
||||
OptLPCMMsgType(commonpb.MsgType_AlterCollection),
|
||||
OptLPCMCollectionName("test2c"),
|
||||
).Build()
|
||||
|
||||
assert.Equal(t, ce.CacheExpirations[0].GetLegacyProxyCollectionMetaCache().DbName, "test")
|
||||
assert.Equal(t, ce.CacheExpirations[0].GetLegacyProxyCollectionMetaCache().CollectionId, int64(1))
|
||||
assert.Equal(t, ce.CacheExpirations[0].GetLegacyProxyCollectionMetaCache().PartitionName, "test")
|
||||
assert.Equal(t, ce.CacheExpirations[0].GetLegacyProxyCollectionMetaCache().MsgType, commonpb.MsgType_CreateCollection)
|
||||
assert.Equal(t, ce.CacheExpirations[0].GetLegacyProxyCollectionMetaCache().CollectionName, "test")
|
||||
assert.Equal(t, ce.CacheExpirations[1].GetLegacyProxyCollectionMetaCache().DbName, "test2")
|
||||
assert.Equal(t, ce.CacheExpirations[1].GetLegacyProxyCollectionMetaCache().CollectionId, int64(2))
|
||||
assert.Equal(t, ce.CacheExpirations[1].GetLegacyProxyCollectionMetaCache().PartitionName, "test2p")
|
||||
assert.Equal(t, ce.CacheExpirations[1].GetLegacyProxyCollectionMetaCache().MsgType, commonpb.MsgType_AlterCollection)
|
||||
assert.Equal(t, ce.CacheExpirations[1].GetLegacyProxyCollectionMetaCache().CollectionName, "test2c")
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package ce
|
||||
|
||||
import (
|
||||
"github.com/milvus-io/milvus-proto/go-api/v2/commonpb"
|
||||
"github.com/milvus-io/milvus/pkg/v2/proto/messagespb"
|
||||
)
|
||||
|
||||
type OptLegacyProxyCollectionMetaCache func(*messagespb.LegacyProxyCollectionMetaCache)
|
||||
|
||||
func OptLPCMPartitionName(partitionName string) OptLegacyProxyCollectionMetaCache {
|
||||
return func(lpcmc *messagespb.LegacyProxyCollectionMetaCache) {
|
||||
lpcmc.PartitionName = partitionName
|
||||
}
|
||||
}
|
||||
|
||||
func OptLPCMMsgType(msgType commonpb.MsgType) OptLegacyProxyCollectionMetaCache {
|
||||
return func(lpcmc *messagespb.LegacyProxyCollectionMetaCache) {
|
||||
lpcmc.MsgType = msgType
|
||||
}
|
||||
}
|
||||
|
||||
func OptLPCMCollectionName(collectionName string) OptLegacyProxyCollectionMetaCache {
|
||||
return func(lpcmc *messagespb.LegacyProxyCollectionMetaCache) {
|
||||
lpcmc.CollectionName = collectionName
|
||||
}
|
||||
}
|
||||
|
||||
func OptLPCMCollectionID(collectionID int64) OptLegacyProxyCollectionMetaCache {
|
||||
return func(lpcmc *messagespb.LegacyProxyCollectionMetaCache) {
|
||||
lpcmc.CollectionId = collectionID
|
||||
}
|
||||
}
|
||||
|
||||
func OptLPCMDBName(dbName string) OptLegacyProxyCollectionMetaCache {
|
||||
return func(lpcmc *messagespb.LegacyProxyCollectionMetaCache) {
|
||||
lpcmc.DbName = dbName
|
||||
}
|
||||
}
|
||||
@@ -22,9 +22,11 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/dave/jennifer/jen"
|
||||
"github.com/samber/lo"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -65,6 +67,7 @@ type JSONMessageReflectInfo struct {
|
||||
// JSONConfig represents the JSON configuration file format
|
||||
type JSONConfig struct {
|
||||
Packages map[string]string `json:"packages"`
|
||||
Consts map[string]string `json:"consts"`
|
||||
ExtraExportTypes []string `json:"extraExportTypes"`
|
||||
MessageReflectInfoTable []JSONMessageReflectInfo `json:"messageReflectInfoTable"`
|
||||
}
|
||||
@@ -154,6 +157,7 @@ func (g *Generator) generateHelperFunctions(info JSONMessageReflectInfo) {
|
||||
f.Type().Id("Mutable"+baseName).Op("=").Qual(messagePackage, "specializedMutableMessage").Types(headerType, bodyType)
|
||||
f.Type().Id("Immutable"+baseName).Op("=").Qual(messagePackage, "SpecializedImmutableMessage").Types(headerType, bodyType)
|
||||
f.Type().Id("Broadcast"+baseName).Op("=").Qual(messagePackage, "SpecializedBroadcastMessage").Types(headerType, bodyType)
|
||||
f.Type().Id("BroadcastResult"+baseName).Op("=").Qual(messagePackage, "BroadcastResult").Types(headerType, bodyType)
|
||||
f.Line()
|
||||
|
||||
// MessageTypeWithVersion constant
|
||||
@@ -205,6 +209,9 @@ func (g *Generator) GenerateCodeFromJSON(jsonData []byte) (string, error) {
|
||||
|
||||
g.File.HeaderComment("// Code generated by message-codegen. DO NOT EDIT.")
|
||||
|
||||
// Generate consts
|
||||
g.generateConsts()
|
||||
|
||||
// Export types
|
||||
g.exportTypes()
|
||||
|
||||
@@ -220,6 +227,16 @@ func (g *Generator) GenerateCodeFromJSON(jsonData []byte) (string, error) {
|
||||
return g.File.GoString(), nil
|
||||
}
|
||||
|
||||
func (g *Generator) generateConsts() {
|
||||
g.File.Comment("// Export consts")
|
||||
keys := lo.Keys(g.Config.Consts)
|
||||
sort.Strings(keys)
|
||||
for _, constName := range keys {
|
||||
constValue := g.Config.Consts[constName]
|
||||
g.File.Const().Id(constName).Op("=").Lit(constValue)
|
||||
}
|
||||
}
|
||||
|
||||
// exportTypes exports the types for the message reflect info
|
||||
func (g *Generator) exportTypes() {
|
||||
// Generate message types
|
||||
@@ -227,8 +244,13 @@ func (g *Generator) exportTypes() {
|
||||
g.File.Const().Id("MessageTypeUnknown").
|
||||
Qual(messagePackage, "MessageType").Op("=").Qual(messagePackage, "MessageType").
|
||||
Call(jen.Qual(g.getPackagePath("messagespb"), "MessageType_Unknown"))
|
||||
dedupMsgTypeName := make(map[string]struct{})
|
||||
for _, info := range g.Config.MessageReflectInfoTable {
|
||||
msgTypeName := getMessageTypeName(info.MessageTypeWithVersion.MessageType)
|
||||
if _, ok := dedupMsgTypeName[msgTypeName]; ok {
|
||||
continue
|
||||
}
|
||||
dedupMsgTypeName[msgTypeName] = struct{}{}
|
||||
g.File.Const().Id(info.MessageTypeWithVersion.MessageType).
|
||||
Qual(messagePackage, "MessageType").Op("=").Qual(messagePackage, "MessageType").
|
||||
Call(jen.Qual(g.getPackagePath("messagespb"), "MessageType_"+msgTypeName))
|
||||
@@ -245,13 +267,21 @@ func (g *Generator) exportTypes() {
|
||||
|
||||
// Export message header and body types
|
||||
g.File.Comment("// Export message header and body types")
|
||||
dedupMsgHeaderTypeName := make(map[string]struct{})
|
||||
dedupMsgBodyTypeName := make(map[string]struct{})
|
||||
for _, info := range g.Config.MessageReflectInfoTable {
|
||||
headerPkg, headerName := parseTypeString(info.MessageSpecializedType.HeaderType)
|
||||
bodyPkg, bodyName := parseTypeString(info.MessageSpecializedType.BodyType)
|
||||
g.File.Type().Id(headerName).Op("=").Qual(g.getPackagePath(headerPkg), headerName)
|
||||
g.File.Type().Id(bodyName).Op("=").Qual(g.getPackagePath(bodyPkg), bodyName)
|
||||
g.ExportTypes[info.MessageSpecializedType.HeaderType] = headerName
|
||||
g.ExportTypes[info.MessageSpecializedType.BodyType] = bodyName
|
||||
if _, ok := dedupMsgHeaderTypeName[headerName]; !ok {
|
||||
g.File.Type().Id(headerName).Op("=").Qual(g.getPackagePath(headerPkg), headerName)
|
||||
g.ExportTypes[info.MessageSpecializedType.HeaderType] = headerName
|
||||
dedupMsgHeaderTypeName[headerName] = struct{}{}
|
||||
}
|
||||
if _, ok := dedupMsgBodyTypeName[bodyName]; !ok {
|
||||
g.File.Type().Id(bodyName).Op("=").Qual(g.getPackagePath(bodyPkg), bodyName)
|
||||
g.ExportTypes[info.MessageSpecializedType.BodyType] = bodyName
|
||||
dedupMsgBodyTypeName[bodyName] = struct{}{}
|
||||
}
|
||||
}
|
||||
g.File.Line()
|
||||
}
|
||||
|
||||
@@ -3,10 +3,25 @@
|
||||
"msgpb": "github.com/milvus-io/milvus-proto/go-api/v2/msgpb",
|
||||
"messagespb": "github.com/milvus-io/milvus/pkg/v2/proto/messagespb"
|
||||
},
|
||||
"consts": {
|
||||
"FieldMaskDB": "db",
|
||||
"FieldMaskCollectionName": "collection_name",
|
||||
"FieldMaskCollectionDescription": "description",
|
||||
"FieldMaskCollectionSchema": "schema",
|
||||
"FieldMaskCollectionProperties": "properties",
|
||||
"FieldMaskCollectionConsistencyLevel": "consistency_level"
|
||||
},
|
||||
"ExtraExportTypes": [
|
||||
"messagespb.PartitionSegmentAssignment",
|
||||
"messagespb.SegmentAssignment",
|
||||
"messagespb.ManualFlushExtraResponse"
|
||||
"messagespb.ManualFlushExtraResponse",
|
||||
"messagespb.RoleBinding",
|
||||
"messagespb.AlterLoadConfigOfAlterDatabase",
|
||||
"messagespb.AlterLoadConfigOfAlterCollection",
|
||||
"messagespb.AlterCollectionMessageUpdates",
|
||||
"messagespb.CacheExpirations",
|
||||
"messagespb.CacheExpiration",
|
||||
"messagespb.LegacyProxyCollectionMetaCache"
|
||||
],
|
||||
"messageReflectInfoTable": [
|
||||
{
|
||||
@@ -121,11 +136,11 @@
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.PutReplicateConfigMessageHeader",
|
||||
"BodyType": "messagespb.PutReplicateConfigMessageBody"
|
||||
"HeaderType": "messagespb.AlterReplicateConfigMessageHeader",
|
||||
"BodyType": "messagespb.AlterReplicateConfigMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypePutReplicateConfig",
|
||||
"MessageType": "MessageTypeAlterReplicateConfig",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
@@ -179,6 +194,246 @@
|
||||
"MessageType": "MessageTypeSchemaChange",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.AlterCollectionMessageHeader",
|
||||
"BodyType": "messagespb.AlterCollectionMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeAlterCollection",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.AlterLoadConfigMessageHeader",
|
||||
"BodyType": "messagespb.AlterLoadConfigMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeAlterLoadConfig",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.DropLoadConfigMessageHeader",
|
||||
"BodyType": "messagespb.DropLoadConfigMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeDropLoadConfig",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.CreateDatabaseMessageHeader",
|
||||
"BodyType": "messagespb.CreateDatabaseMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeCreateDatabase",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.AlterDatabaseMessageHeader",
|
||||
"BodyType": "messagespb.AlterDatabaseMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeAlterDatabase",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.DropDatabaseMessageHeader",
|
||||
"BodyType": "messagespb.DropDatabaseMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeDropDatabase",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.AlterAliasMessageHeader",
|
||||
"BodyType": "messagespb.AlterAliasMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeAlterAlias",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.DropAliasMessageHeader",
|
||||
"BodyType": "messagespb.DropAliasMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeDropAlias",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.AlterUserMessageHeader",
|
||||
"BodyType": "messagespb.AlterUserMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeAlterUser",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.DropUserMessageHeader",
|
||||
"BodyType": "messagespb.DropUserMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeDropUser",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.AlterRoleMessageHeader",
|
||||
"BodyType": "messagespb.AlterRoleMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeAlterRole",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.DropRoleMessageHeader",
|
||||
"BodyType": "messagespb.DropRoleMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeDropRole",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.AlterUserRoleMessageHeader",
|
||||
"BodyType": "messagespb.AlterUserRoleMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeAlterUserRole",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.DropUserRoleMessageHeader",
|
||||
"BodyType": "messagespb.DropUserRoleMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeDropUserRole",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.AlterPrivilegeMessageHeader",
|
||||
"BodyType": "messagespb.AlterPrivilegeMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeAlterPrivilege",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.DropPrivilegeMessageHeader",
|
||||
"BodyType": "messagespb.DropPrivilegeMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeDropPrivilege",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.AlterPrivilegeGroupMessageHeader",
|
||||
"BodyType": "messagespb.AlterPrivilegeGroupMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeAlterPrivilegeGroup",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.DropPrivilegeGroupMessageHeader",
|
||||
"BodyType": "messagespb.DropPrivilegeGroupMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeDropPrivilegeGroup",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.RestoreRBACMessageHeader",
|
||||
"BodyType": "messagespb.RestoreRBACMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeRestoreRBAC",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.AlterResourceGroupMessageHeader",
|
||||
"BodyType": "messagespb.AlterResourceGroupMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeAlterResourceGroup",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.DropResourceGroupMessageHeader",
|
||||
"BodyType": "messagespb.DropResourceGroupMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeDropResourceGroup",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.CreateIndexMessageHeader",
|
||||
"BodyType": "messagespb.CreateIndexMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeCreateIndex",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.AlterIndexMessageHeader",
|
||||
"BodyType": "messagespb.AlterIndexMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeAlterIndex",
|
||||
"Version": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"MessageSpecializedType": {
|
||||
"HeaderType": "messagespb.DropIndexMessageHeader",
|
||||
"BodyType": "messagespb.DropIndexMessageBody"
|
||||
},
|
||||
"MessageTypeWithVersion": {
|
||||
"MessageType": "MessageTypeDropIndex",
|
||||
"Version": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -8,6 +8,8 @@ import (
|
||||
|
||||
"go.uber.org/zap/zapcore"
|
||||
"google.golang.org/protobuf/proto"
|
||||
|
||||
"github.com/milvus-io/milvus-proto/go-api/v2/rgpb"
|
||||
)
|
||||
|
||||
// MarshalLogObject encodes the message into zap log object.
|
||||
@@ -123,18 +125,93 @@ func marshalSpecializedHeader(t MessageType, v Version, h string, enc zapcore.Ob
|
||||
enc.AddInt64("segmentID", header.GetSegmentId())
|
||||
case *ManualFlushMessageHeader:
|
||||
enc.AddInt64("collectionID", header.GetCollectionId())
|
||||
encodeSegmentIDs(header.GetSegmentIds(), enc)
|
||||
encodeIDs(header.GetSegmentIds(), enc)
|
||||
case *SchemaChangeMessageHeader:
|
||||
enc.AddInt64("collectionID", header.GetCollectionId())
|
||||
encodeSegmentIDs(header.GetFlushedSegmentIds(), enc)
|
||||
encodeIDs(header.GetFlushedSegmentIds(), enc)
|
||||
case *AlterCollectionMessageHeader:
|
||||
enc.AddInt64("collectionID", header.GetCollectionId())
|
||||
enc.AddString("udpateMasks", strings.Join(header.UpdateMask.GetPaths(), "|"))
|
||||
encodeIDs(header.GetFlushedSegmentIds(), enc)
|
||||
case *AlterLoadConfigMessageHeader:
|
||||
enc.AddInt64("collectionID", header.GetCollectionId())
|
||||
enc.AddInt64("replicaNumber", int64(len(header.GetReplicas())))
|
||||
case *DropLoadConfigMessageHeader:
|
||||
enc.AddInt64("collectionID", header.GetCollectionId())
|
||||
case *CreateDatabaseMessageHeader:
|
||||
enc.AddString("dbName", header.GetDbName())
|
||||
enc.AddInt64("dbID", header.GetDbId())
|
||||
case *AlterDatabaseMessageHeader:
|
||||
enc.AddString("dbName", header.GetDbName())
|
||||
enc.AddInt64("dbID", header.GetDbId())
|
||||
case *DropDatabaseMessageHeader:
|
||||
enc.AddString("dbName", header.GetDbName())
|
||||
enc.AddInt64("dbID", header.GetDbId())
|
||||
case *AlterAliasMessageHeader:
|
||||
enc.AddString("dbName", header.GetDbName())
|
||||
enc.AddInt64("dbID", header.GetDbId())
|
||||
enc.AddInt64("collectionID", header.GetCollectionId())
|
||||
enc.AddString("collectionName", header.GetCollectionName())
|
||||
enc.AddString("alias", header.GetAlias())
|
||||
case *DropAliasMessageHeader:
|
||||
enc.AddString("dbName", header.GetDbName())
|
||||
enc.AddInt64("dbID", header.GetDbId())
|
||||
enc.AddString("alias", header.GetAlias())
|
||||
case *AlterUserMessageHeader:
|
||||
enc.AddString("user", header.GetUserEntity().GetName())
|
||||
case *DropUserMessageHeader:
|
||||
enc.AddString("user", header.GetUserName())
|
||||
case *AlterRoleMessageHeader:
|
||||
enc.AddString("role", header.GetRoleEntity().GetName())
|
||||
case *DropRoleMessageHeader:
|
||||
enc.AddString("role", header.GetRoleName())
|
||||
case *AlterUserRoleMessageHeader:
|
||||
enc.AddString("user", header.GetRoleBinding().GetUserEntity().GetName())
|
||||
enc.AddString("role", header.GetRoleBinding().GetRoleEntity().GetName())
|
||||
case *DropUserRoleMessageHeader:
|
||||
enc.AddString("user", header.GetRoleBinding().GetUserEntity().GetName())
|
||||
enc.AddString("role", header.GetRoleBinding().GetRoleEntity().GetName())
|
||||
case *AlterPrivilegeMessageHeader:
|
||||
case *DropPrivilegeMessageHeader:
|
||||
case *AlterPrivilegeGroupMessageHeader:
|
||||
case *DropPrivilegeGroupMessageHeader:
|
||||
case *CreateIndexMessageHeader:
|
||||
enc.AddInt64("collectionID", header.GetCollectionId())
|
||||
enc.AddInt64("fieldID", header.GetFieldId())
|
||||
enc.AddInt64("indexID", header.GetIndexId())
|
||||
enc.AddString("indexName", header.GetIndexName())
|
||||
case *AlterIndexMessageHeader:
|
||||
enc.AddInt64("collectionID", header.GetCollectionId())
|
||||
encodeIDs(header.GetIndexIds(), enc)
|
||||
case *DropIndexMessageHeader:
|
||||
enc.AddInt64("collectionID", header.GetCollectionId())
|
||||
encodeIDs(header.GetIndexIds(), enc)
|
||||
case *ImportMessageHeader:
|
||||
case *AlterResourceGroupMessageHeader:
|
||||
encodeResourceGroupConfigs(header.GetResourceGroupConfigs(), enc)
|
||||
case *DropResourceGroupMessageHeader:
|
||||
enc.AddString("rg", header.GetResourceGroupName())
|
||||
case *AlterReplicateConfigMessageHeader:
|
||||
for idx, topology := range header.GetReplicateConfiguration().GetCrossClusterTopology() {
|
||||
enc.AddString(fmt.Sprintf("topo_%d", idx), fmt.Sprintf("%s->%s", topology.GetSourceClusterId(), topology.GetTargetClusterId()))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func encodeSegmentIDs(segmentIDs []int64, enc zapcore.ObjectEncoder) {
|
||||
ids := make([]string, 0, len(segmentIDs))
|
||||
for _, id := range segmentIDs {
|
||||
func encodeIDs(targetIDs []int64, enc zapcore.ObjectEncoder) {
|
||||
ids := make([]string, 0, len(targetIDs))
|
||||
for _, id := range targetIDs {
|
||||
ids = append(ids, strconv.FormatInt(id, 10))
|
||||
}
|
||||
enc.AddString("segmentIDs", strings.Join(ids, "|"))
|
||||
}
|
||||
|
||||
func encodeResourceGroupConfigs(configs map[string]*rgpb.ResourceGroupConfig, enc zapcore.ObjectEncoder) {
|
||||
strs := make([]string, 0, len(configs))
|
||||
for name, config := range configs {
|
||||
strs = append(strs, fmt.Sprintf(
|
||||
"%s:rn%dln%d", name, config.GetRequests().GetNodeNum(), config.GetLimits().GetNodeNum()),
|
||||
)
|
||||
}
|
||||
enc.AddString("rgs", strings.Join(strs, "|"))
|
||||
}
|
||||
|
||||
@@ -132,6 +132,9 @@ type BroadcastMutableMessage interface {
|
||||
// WithBroadcastID sets the broadcast id of the message.
|
||||
WithBroadcastID(broadcastID uint64) BroadcastMutableMessage
|
||||
|
||||
// OverwriteBroadcastHeader overwrites the broadcast header of the message.
|
||||
OverwriteBroadcastHeader(broadcastID uint64, rks ...ResourceKey) BroadcastMutableMessage
|
||||
|
||||
// SplitIntoMutableMessage splits the broadcast message into multiple mutable messages.
|
||||
// The broadcast id will be set into the properties of each message.
|
||||
SplitIntoMutableMessage() []MutableMessage
|
||||
@@ -162,6 +165,10 @@ type ImmutableMessage interface {
|
||||
|
||||
// IntoImmutableMessageProto converts the message to a protobuf immutable message.
|
||||
IntoImmutableMessageProto() *commonpb.ImmutableMessage
|
||||
|
||||
// IntoBroadcastMutableMessage converts the message to a broadcast mutable message.
|
||||
// panic if the message is not generated by broadcast message.
|
||||
IntoBroadcastMutableMessage() BroadcastMutableMessage
|
||||
}
|
||||
|
||||
// ImmutableTxnMessage is the read-only transaction message interface.
|
||||
@@ -201,6 +208,9 @@ type SpecializedBroadcastMessage[H proto.Message, B proto.Message] interface {
|
||||
|
||||
// OverwriteHeader overwrites the message header.
|
||||
OverwriteHeader(header H)
|
||||
|
||||
// BroadcastMessage returns the broadcast message.
|
||||
BroadcastMessage() BroadcastMutableMessage
|
||||
}
|
||||
|
||||
// specializedMutableMessage is the specialized mutable message interface.
|
||||
|
||||
@@ -179,6 +179,22 @@ func (m *messageImpl) OverwriteReplicateVChannel(vchannel string, broadcastVChan
|
||||
m.properties.Set(messageBroadcastHeader, bhVal)
|
||||
}
|
||||
|
||||
// OverwriteBroadcastHeader overwrites the broadcast header of the message.
|
||||
func (m *messageImpl) OverwriteBroadcastHeader(id uint64, rks ...ResourceKey) BroadcastMutableMessage {
|
||||
bh := m.broadcastHeader()
|
||||
if bh == nil {
|
||||
panic("there's a bug in the message codes, broadcast header lost in properties of broadcast message")
|
||||
}
|
||||
bh.BroadcastId = id
|
||||
bh.ResourceKeys = newProtoFromResourceKey(rks...)
|
||||
bhVal, err := EncodeProto(bh)
|
||||
if err != nil {
|
||||
panic("should not happen on broadcast header proto")
|
||||
}
|
||||
m.properties.Set(messageBroadcastHeader, bhVal)
|
||||
return m
|
||||
}
|
||||
|
||||
// IntoImmutableMessage converts current message to immutable message.
|
||||
func (m *messageImpl) IntoImmutableMessage(id MessageID) ImmutableMessage {
|
||||
// payload and id is always immutable, so we only clone the prop here is ok.
|
||||
@@ -428,6 +444,17 @@ func (m *immutableMessageImpl) IntoImmutableMessageProto() *commonpb.ImmutableMe
|
||||
}
|
||||
}
|
||||
|
||||
// IntoBroadcastMutableMessage converts the message to a broadcast mutable message.
|
||||
func (m *immutableMessageImpl) IntoBroadcastMutableMessage() BroadcastMutableMessage {
|
||||
if !m.properties.Exist(messageBroadcastHeader) {
|
||||
panic("the message is not generated by broadcast message")
|
||||
}
|
||||
return &messageImpl{
|
||||
payload: m.payload,
|
||||
properties: m.properties.Clone(),
|
||||
}
|
||||
}
|
||||
|
||||
// immutableTxnMessageImpl is a immutable transaction message.
|
||||
type immutableTxnMessageImpl struct {
|
||||
immutableMessageImpl
|
||||
|
||||
@@ -79,7 +79,7 @@ func TestBroadcast(t *testing.T) {
|
||||
msg, err := NewCreateCollectionMessageBuilderV1().
|
||||
WithHeader(&CreateCollectionMessageHeader{}).
|
||||
WithBody(&msgpb.CreateCollectionRequest{}).
|
||||
WithBroadcast([]string{"v1", "v2"}, NewCollectionNameResourceKey("1"), NewImportJobIDResourceKey(1)).
|
||||
WithBroadcast([]string{"v1", "v2"}, NewExclusiveCollectionNameResourceKey("1", "2"), NewImportJobIDResourceKey(1)).
|
||||
BuildBroadcast()
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, msg)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,126 @@
|
||||
package message
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/milvus-io/milvus/pkg/v2/proto/messagespb"
|
||||
"github.com/milvus-io/milvus/pkg/v2/util/typeutil"
|
||||
)
|
||||
|
||||
// NewResourceKeyFromProto creates a ResourceKey from proto.
|
||||
func NewResourceKeyFromProto(proto *messagespb.ResourceKey) ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: proto.Domain,
|
||||
Key: proto.Key,
|
||||
Shared: proto.Shared,
|
||||
}
|
||||
}
|
||||
|
||||
// newProtoFromResourceKey creates a set of proto from ResourceKey.
|
||||
func newProtoFromResourceKey(keys ...ResourceKey) []*messagespb.ResourceKey {
|
||||
deduplicated := typeutil.NewSet(keys...)
|
||||
protos := make([]*messagespb.ResourceKey, 0, len(keys))
|
||||
for key := range deduplicated {
|
||||
protos = append(protos, &messagespb.ResourceKey{
|
||||
Domain: key.Domain,
|
||||
Key: key.Key,
|
||||
Shared: key.Shared,
|
||||
})
|
||||
}
|
||||
return protos
|
||||
}
|
||||
|
||||
type ResourceKey struct {
|
||||
Domain messagespb.ResourceDomain
|
||||
Key string
|
||||
Shared bool
|
||||
}
|
||||
|
||||
func (r ResourceKey) String() string {
|
||||
domain, _ := strings.CutPrefix(r.Domain.String(), "ResourceDomain")
|
||||
if r.Shared {
|
||||
return fmt.Sprintf("%s:%s@R", domain, r.Key)
|
||||
}
|
||||
return fmt.Sprintf("%s:%s@X", domain, r.Key)
|
||||
}
|
||||
|
||||
// NewSharedClusterResourceKey creates a shared cluster resource key.
|
||||
func NewSharedClusterResourceKey() ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: messagespb.ResourceDomain_ResourceDomainCluster,
|
||||
Key: "",
|
||||
Shared: true,
|
||||
}
|
||||
}
|
||||
|
||||
// NewExclusiveClusterResourceKey creates an exclusive cluster resource key.
|
||||
func NewExclusiveClusterResourceKey() ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: messagespb.ResourceDomain_ResourceDomainCluster,
|
||||
Key: "",
|
||||
Shared: false,
|
||||
}
|
||||
}
|
||||
|
||||
// NewSharedCollectionNameResourceKey creates a shared collection name resource key.
|
||||
func NewSharedCollectionNameResourceKey(dbName string, collectionName string) ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: messagespb.ResourceDomain_ResourceDomainCollectionName,
|
||||
Key: fmt.Sprintf("%s:%s", dbName, collectionName),
|
||||
Shared: true,
|
||||
}
|
||||
}
|
||||
|
||||
// NewExclusiveCollectionNameResourceKey creates an exclusive collection name resource key.
|
||||
func NewExclusiveCollectionNameResourceKey(dbName string, collectionName string) ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: messagespb.ResourceDomain_ResourceDomainCollectionName,
|
||||
Key: fmt.Sprintf("%s:%s", dbName, collectionName),
|
||||
Shared: false,
|
||||
}
|
||||
}
|
||||
|
||||
// NewSharedDBNameResourceKey creates a shared db name resource key.
|
||||
func NewSharedDBNameResourceKey(dbName string) ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: messagespb.ResourceDomain_ResourceDomainDBName,
|
||||
Key: dbName,
|
||||
Shared: true,
|
||||
}
|
||||
}
|
||||
|
||||
// NewExclusiveDBNameResourceKey creates an exclusive db name resource key.
|
||||
func NewExclusiveDBNameResourceKey(dbName string) ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: messagespb.ResourceDomain_ResourceDomainDBName,
|
||||
Key: dbName,
|
||||
Shared: false,
|
||||
}
|
||||
}
|
||||
|
||||
// NewExclusivePrivilegeResourceKey creates an exclusive privilege resource key.
|
||||
func NewExclusivePrivilegeResourceKey() ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: messagespb.ResourceDomain_ResourceDomainPrivilege,
|
||||
Key: "",
|
||||
Shared: false,
|
||||
}
|
||||
}
|
||||
|
||||
// Deprecated: NewImportJobIDResourceKey creates a key for import job resource.
|
||||
func NewImportJobIDResourceKey(importJobID int64) ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: messagespb.ResourceDomain_ResourceDomainImportJobID,
|
||||
Key: strconv.FormatInt(importJobID, 10),
|
||||
}
|
||||
}
|
||||
|
||||
// Deprecated: NewCollectionNameResourceKey creates a key for collection name resource.
|
||||
func NewCollectionNameResourceKey(collectionName string) ResourceKey {
|
||||
return ResourceKey{
|
||||
Domain: messagespb.ResourceDomain_ResourceDomainCollectionName,
|
||||
Key: collectionName,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package message
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/milvus-io/milvus/pkg/v2/proto/messagespb"
|
||||
)
|
||||
|
||||
func TestResourceKey(t *testing.T) {
|
||||
rk := NewSharedClusterResourceKey()
|
||||
assert.Equal(t, rk.Domain, messagespb.ResourceDomain_ResourceDomainCluster)
|
||||
assert.Equal(t, rk.Key, "")
|
||||
assert.Equal(t, rk.Shared, true)
|
||||
rk = NewExclusiveClusterResourceKey()
|
||||
assert.Equal(t, rk.Domain, messagespb.ResourceDomain_ResourceDomainCluster)
|
||||
assert.Equal(t, rk.Key, "")
|
||||
assert.Equal(t, rk.Shared, false)
|
||||
|
||||
rk = NewSharedCollectionNameResourceKey("test", "test")
|
||||
assert.Equal(t, rk.Domain, messagespb.ResourceDomain_ResourceDomainCollectionName)
|
||||
assert.Equal(t, rk.Key, "test:test")
|
||||
assert.Equal(t, rk.Shared, true)
|
||||
rk = NewExclusiveCollectionNameResourceKey("test", "test")
|
||||
assert.Equal(t, rk.Domain, messagespb.ResourceDomain_ResourceDomainCollectionName)
|
||||
assert.Equal(t, rk.Key, "test:test")
|
||||
assert.Equal(t, rk.Shared, false)
|
||||
|
||||
rk = NewSharedDBNameResourceKey("test")
|
||||
assert.Equal(t, rk.Domain, messagespb.ResourceDomain_ResourceDomainDBName)
|
||||
assert.Equal(t, rk.Key, "test")
|
||||
assert.Equal(t, rk.Shared, true)
|
||||
rk = NewExclusiveDBNameResourceKey("test")
|
||||
assert.Equal(t, rk.Domain, messagespb.ResourceDomain_ResourceDomainDBName)
|
||||
assert.Equal(t, rk.Key, "test")
|
||||
assert.Equal(t, rk.Shared, false)
|
||||
|
||||
rk = NewExclusivePrivilegeResourceKey()
|
||||
assert.Equal(t, rk.Domain, messagespb.ResourceDomain_ResourceDomainPrivilege)
|
||||
assert.Equal(t, rk.Key, "")
|
||||
assert.Equal(t, rk.Shared, false)
|
||||
}
|
||||
@@ -29,13 +29,14 @@ var cipherMessageType = map[MessageType]struct{}{
|
||||
}
|
||||
|
||||
var exclusiveRequiredMessageType = map[MessageType]struct{}{
|
||||
MessageTypeCreateCollection: {},
|
||||
MessageTypeDropCollection: {},
|
||||
MessageTypeCreatePartition: {},
|
||||
MessageTypeDropPartition: {},
|
||||
MessageTypeManualFlush: {},
|
||||
MessageTypeSchemaChange: {},
|
||||
MessageTypePutReplicateConfig: {},
|
||||
MessageTypeCreateCollection: {},
|
||||
MessageTypeDropCollection: {},
|
||||
MessageTypeCreatePartition: {},
|
||||
MessageTypeDropPartition: {},
|
||||
MessageTypeManualFlush: {},
|
||||
MessageTypeSchemaChange: {},
|
||||
MessageTypeAlterReplicateConfig: {},
|
||||
MessageTypeAlterCollection: {},
|
||||
}
|
||||
|
||||
// mustAsSpecializedMutableMessage converts a MutableMessage to a specialized MutableMessage.
|
||||
@@ -162,7 +163,7 @@ func asSpecializedBroadcastMessage[H proto.Message, B proto.Message](msg BasicMe
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return sm, nil
|
||||
return sm.(*specializedMutableMessageImpl[H, B]), nil
|
||||
}
|
||||
|
||||
// MustAsSpecializedBroadcastMessage converts a BasicMessage to a specialized BroadcastMessage.
|
||||
@@ -219,6 +220,11 @@ func (m *specializedMutableMessageImpl[H, B]) OverwriteBody(body B) {
|
||||
m.messageImpl.payload = payload
|
||||
}
|
||||
|
||||
// BroadcastMessage returns the broadcast message.
|
||||
func (m *specializedMutableMessageImpl[H, B]) BroadcastMessage() BroadcastMutableMessage {
|
||||
return m.messageImpl
|
||||
}
|
||||
|
||||
// specializedImmutableMessageImpl is the specialized immmutable message implementation.
|
||||
type specializedImmutableMessageImpl[H proto.Message, B proto.Message] struct {
|
||||
header H
|
||||
|
||||
Reference in New Issue
Block a user