diff --git a/changelog/23.0/23.0.0/summary.md b/changelog/23.0/23.0.0/summary.md index 4b2f3ff78ee..af423f69e69 100644 --- a/changelog/23.0/23.0.0/summary.md +++ b/changelog/23.0/23.0.0/summary.md @@ -10,9 +10,11 @@ - [Metrics](#deleted-metrics) - **[New Metrics](#new-metrics)** - [VTGate](#new-vtgate-metrics) + - [VTOrc](#new-vtorc-metrics) - **[Topology](#minor-changes-topo)** - [`--consul_auth_static_file` requires 1 or more credentials](#consul_auth_static_file-check-creds) - **[VTOrc](#minor-changes-vtorc)** + - [Dynamic control of `EmergencyReparentShard`-based recoveries](#vtorc-dynamic-ers-disabled) - [Recovery stats to include keyspace/shard](#recoveries-stats-keyspace-shard) - **[VTTablet](#minor-changes-vttablet)** - [CLI Flags](#flags-vttablet) @@ -64,6 +66,12 @@ VTGate also advertises MySQL version `8.4.6` by default instead of `8.0.40`. If |:-----------------------:|:---------------:|:-----------------------------------------------------------------------------------:|:-------------------------------------------------------:| | `TransactionsProcessed` | `Shard`, `Type` | Counts transactions processed at VTGate by shard distribution and transaction type. | [#18171](https://github.com/vitessio/vitess/pull/18171) | +#### VTOrc + +| Name | Dimensions | Description | PR | +|:-------------------:|:-----------------------------------:|:----------------------------------------------------:|:-------------------------------------------------------:| +| `SkippedRecoveries` | `RecoveryName`, `Keyspace`, `Shard` | Count of the different skipped recoveries performed. | [#17985](https://github.com/vitessio/vitess/pull/17985) | + ### Topology #### `--consul_auth_static_file` requires 1 or more credentials @@ -72,6 +80,14 @@ The `--consul_auth_static_file` flag used in several components now requires tha ### VTOrc +#### Dynamic control of `EmergencyReparentShard`-based recoveries + +**Note: disabling `EmergencyReparentShard`-based recoveries introduces availability risks; please use with extreme caution! If you rely on this functionality often, for example in automation, this may be signs of an anti-pattern. If so, please open an issue to discuss supporting your use case natively in VTOrc.** + +The new `vtctldclient` RPC `SetVtorcEmergencyReparent` was introduced to allow VTOrc recoveries involving `EmergencyReparentShard` actions to be disabled on a per-keyspace and/or per-shard basis. Previous to this version, disabling EmergencyReparentShard-based recoveries was only possible globally/per-VTOrc-instance. VTOrc will now consider this keyspace/shard-level setting that is refreshed from the topo on each recovery. The disabled state is determined by first checking if the keyspace, and then the shard state. Removing a keyspace-level override does not remove per-shard overrides. + +To provide observability of keyspace/shards with EmergencyReparentShard-based VTOrc recoveries disabled, the `EmergencyReparentShardDisabled` metric was added. This metric label can be used to create alerting to ensure EmergencyReparentShard-based recoveries are not disabled for an undesired period of time. + #### Recovery stats to include keyspace/shard The following recovery-related stats now include labels for keyspaces and shards: diff --git a/go/cmd/vtctldclient/command/keyspaces.go b/go/cmd/vtctldclient/command/keyspaces.go index 7eb9494a9c9..e1d90e0b843 100644 --- a/go/cmd/vtctldclient/command/keyspaces.go +++ b/go/cmd/vtctldclient/command/keyspaces.go @@ -24,16 +24,15 @@ import ( "github.com/spf13/cobra" - "vitess.io/vitess/go/mysql/sqlerror" - "vitess.io/vitess/go/protoutil" - "vitess.io/vitess/go/vt/vtctl/reparentutil/policy" - "vitess.io/vitess/go/cmd/vtctldclient/cli" "vitess.io/vitess/go/constants/sidecar" "vitess.io/vitess/go/mysql" + "vitess.io/vitess/go/mysql/sqlerror" + "vitess.io/vitess/go/protoutil" topodatapb "vitess.io/vitess/go/vt/proto/topodata" vtctldatapb "vitess.io/vitess/go/vt/proto/vtctldata" "vitess.io/vitess/go/vt/proto/vttime" + "vitess.io/vitess/go/vt/vtctl/reparentutil/policy" ) var ( diff --git a/go/cmd/vtctldclient/command/topology.go b/go/cmd/vtctldclient/command/topology.go index 24d0da85c55..89e1284f55f 100644 --- a/go/cmd/vtctldclient/command/topology.go +++ b/go/cmd/vtctldclient/command/topology.go @@ -24,9 +24,9 @@ import ( "github.com/spf13/cobra" "vitess.io/vitess/go/cmd/vtctldclient/cli" - "vitess.io/vitess/go/vt/topo" - vtctldatapb "vitess.io/vitess/go/vt/proto/vtctldata" + "vitess.io/vitess/go/vt/topo" + "vitess.io/vitess/go/vt/topo/topoproto" ) var ( @@ -39,6 +39,16 @@ var ( RunE: commandGetTopologyPath, } + // SetVtorcEmergencyReparent enables/disables the use of EmergencyReparentShard in VTOrc recoveries for a given keyspace or keyspace/shard. + SetVtorcEmergencyReparent = &cobra.Command{ + Use: "SetVtorcEmergencyReparent [--enable|-e] [--disable|-d] ", + Short: "Enable/disables the use of EmergencyReparentShard in VTOrc recoveries for a given keyspace or keyspace/shard.", + DisableFlagsInUseLine: true, + Aliases: []string{"setvtorcemergencyreparent"}, + Args: cobra.RangeArgs(1, 2), + RunE: commandSetVtorcEmergencyReparent, + } + // WriteTopologyPath writes the contents of a local file to a path // in the topology server. WriteTopologyPath = &cobra.Command{ @@ -96,6 +106,39 @@ func commandGetTopologyPath(cmd *cobra.Command, args []string) error { return nil } +var setVtorcEmergencyReparentOptions = struct { + Disable bool + Enable bool +}{} + +func commandSetVtorcEmergencyReparent(cmd *cobra.Command, args []string) error { + cli.FinishedParsing(cmd) + + ks := cmd.Flags().Arg(0) + shard := cmd.Flags().Arg(1) + keyspaceShard := topoproto.KeyspaceShardString(ks, shard) + if !setVtorcEmergencyReparentOptions.Disable && !setVtorcEmergencyReparentOptions.Enable { + return fmt.Errorf("SetVtorcEmergencyReparent(%v) error: must set --enable or --disable flag", keyspaceShard) + } + if setVtorcEmergencyReparentOptions.Disable && setVtorcEmergencyReparentOptions.Enable { + return fmt.Errorf("SetVtorcEmergencyReparent(%v) error: --enable and --disable flags are mutually exclusive", keyspaceShard) + } + + _, err := client.SetVtorcEmergencyReparent(commandCtx, &vtctldatapb.SetVtorcEmergencyReparentRequest{ + Keyspace: ks, + Shard: shard, + Disable: setVtorcEmergencyReparentOptions.Disable, + }) + + if err != nil { + return fmt.Errorf("SetVtorcEmergencyReparent(%v) error: %w; please check the topo", keyspaceShard, err) + } + + fmt.Printf("Successfully updated keyspace/shard %v.\n", keyspaceShard) + + return nil +} + var writeTopologyPathOptions = struct { // The cell to use for the copy. Defaults to the global cell. cell string @@ -131,6 +174,10 @@ func init() { GetTopologyPath.Flags().BoolVar(&getTopologyPathOptions.dataAsJSON, "data-as-json", getTopologyPathOptions.dataAsJSON, "If true, only the data is output and it is in JSON format rather than prototext.") Root.AddCommand(GetTopologyPath) + Root.AddCommand(SetVtorcEmergencyReparent) + SetVtorcEmergencyReparent.Flags().BoolVarP(&setVtorcEmergencyReparentOptions.Disable, "disable", "d", false, "Disable the use of EmergencyReparentShard in recoveries.") + SetVtorcEmergencyReparent.Flags().BoolVarP(&setVtorcEmergencyReparentOptions.Enable, "enable", "e", false, "Enable the use of EmergencyReparentShard in recoveries.") + WriteTopologyPath.Flags().StringVar(&writeTopologyPathOptions.cell, "cell", topo.GlobalCell, "Topology server cell to copy the file to.") Root.AddCommand(WriteTopologyPath) } diff --git a/go/flags/endtoend/vtctldclient.txt b/go/flags/endtoend/vtctldclient.txt index 28b82bb189c..aca733d5185 100644 --- a/go/flags/endtoend/vtctldclient.txt +++ b/go/flags/endtoend/vtctldclient.txt @@ -90,6 +90,7 @@ Available Commands: SetKeyspaceDurabilityPolicy Sets the durability-policy used by the specified keyspace. SetShardIsPrimaryServing Add or remove a shard from serving. This is meant as an emergency function. It does not rebuild any serving graphs; i.e. it does not run `RebuildKeyspaceGraph`. SetShardTabletControl Sets the TabletControl record for a shard and tablet type. Only use this for an emergency fix or after a finished MoveTables. + SetVtorcEmergencyReparent Enable/disables the use of EmergencyReparentShard in VTOrc recoveries for a given keyspace or keyspace/shard. SetWritable Sets the specified tablet as writable or read-only. ShardReplicationFix Walks through a ShardReplication object and fixes the first error encountered. ShardReplicationPositions diff --git a/go/test/endtoend/vtorc/api/api_test.go b/go/test/endtoend/vtorc/api/api_test.go index 22091e5cce5..2ca68becae7 100644 --- a/go/test/endtoend/vtorc/api/api_test.go +++ b/go/test/endtoend/vtorc/api/api_test.go @@ -99,6 +99,7 @@ func TestAPIEndpoints(t *testing.T) { "TableName": "vitess_keyspace", "Rows": [ { + "disable_emergency_reparent": "0", "durability_policy": "none", "keyspace": "ks", "keyspace_type": "0" diff --git a/go/test/endtoend/vtorc/primaryfailure/primary_failure_test.go b/go/test/endtoend/vtorc/primaryfailure/primary_failure_test.go index 3b2c9c33ab5..ffb166d0244 100644 --- a/go/test/endtoend/vtorc/primaryfailure/primary_failure_test.go +++ b/go/test/endtoend/vtorc/primaryfailure/primary_failure_test.go @@ -114,6 +114,92 @@ func TestDownPrimary(t *testing.T) { }) } +// bring down primary, with keyspace-level ERS disabled via SetVtorcEmergencyReparent --disable. +// confirm no ERS occurs. +func TestDownPrimary_KeyspaceEmergencyReparentDisabled(t *testing.T) { + defer utils.PrintVTOrcLogsOnFailure(t, clusterInfo.ClusterInstance) + utils.SetupVttabletsAndVTOrcs(t, clusterInfo, 2, 1, []string{fmt.Sprintf("%s=10s", vtutils.GetFlagVariantForTests("--remote-operation-timeout")), "--wait-replicas-timeout=5s"}, cluster.VTOrcConfiguration{}, 1, policy.DurabilityNone) + keyspace := &clusterInfo.ClusterInstance.Keyspaces[0] + shard0 := &keyspace.Shards[0] + // find primary from topo + curPrimary := utils.ShardPrimaryTablet(t, clusterInfo, keyspace, shard0) + assert.NotNil(t, curPrimary, "should have elected a primary") + vtOrcProcess := clusterInfo.ClusterInstance.VTOrcProcesses[0] + utils.WaitForSuccessfulRecoveryCount(t, vtOrcProcess, logic.ElectNewPrimaryRecoveryName, keyspace.Name, shard0.Name, 1) + utils.WaitForSuccessfulPRSCount(t, vtOrcProcess, keyspace.Name, shard0.Name, 1) + + // find the replica and rdonly tablets + var replica, rdonly *cluster.Vttablet + for _, tablet := range shard0.Vttablets { + // we know we have only two replcia tablets, so the one not the primary must be the other replica + if tablet.Alias != curPrimary.Alias && tablet.Type == "replica" { + replica = tablet + } + if tablet.Type == "rdonly" { + rdonly = tablet + } + } + assert.NotNil(t, replica, "could not find replica tablet") + assert.NotNil(t, rdonly, "could not find rdonly tablet") + + // check that the replication is setup correctly before we failover + utils.CheckReplication(t, clusterInfo, curPrimary, []*cluster.Vttablet{rdonly, replica}, 10*time.Second) + + // check before ERS disabled state is false + utils.WaitForShardERSDisabledState(t, vtOrcProcess, keyspace.Name, shard0.Name, false) + + // disable ERS on the keyspace via SetVtorcEmergencyReparent --disable + _, err := clusterInfo.ClusterInstance.VtctldClientProcess.ExecuteCommandWithOutput("SetVtorcEmergencyReparent", "--disable", keyspace.Name) + assert.NoError(t, err) + utils.WaitForShardERSDisabledState(t, vtOrcProcess, keyspace.Name, shard0.Name, true) + utils.CheckVarExists(t, vtOrcProcess, "EmergencyReparentShardDisabled") + utils.CheckMetricExists(t, vtOrcProcess, "vtorc_emergency_reparent_shard_disabled") + + // make the current primary vttablet unavailable + err = curPrimary.VttabletProcess.TearDown() + assert.NoError(t, err) + err = curPrimary.MysqlctlProcess.Stop() + assert.NoError(t, err) + defer func() { + // we remove the tablet from our global list + utils.PermanentlyRemoveVttablet(clusterInfo, curPrimary) + }() + + // check ERS did not occur. For the RecoverDeadPrimary recovery, expect 1 skipped recovery, 0 successful recoveries and 0 ERS operations. + utils.WaitForSkippedRecoveryCount(t, vtOrcProcess, logic.RecoverDeadPrimaryRecoveryName, keyspace.Name, shard0.Name, 1) + utils.WaitForSuccessfulRecoveryCount(t, vtOrcProcess, logic.RecoverDeadPrimaryRecoveryName, keyspace.Name, shard0.Name, 0) + utils.WaitForSuccessfulERSCount(t, vtOrcProcess, keyspace.Name, shard0.Name, 0) + + // check that the shard primary remains the same because ERS is disabled on the keyspace + origPrimary := curPrimary + curPrimary = utils.ShardPrimaryTablet(t, clusterInfo, keyspace, shard0) + assert.NotNil(t, curPrimary) + assert.Equal(t, origPrimary.Alias, curPrimary.Alias) + + // enable ERS on the keyspace via SetVtorcEmergencyReparent --enable + _, err = clusterInfo.ClusterInstance.VtctldClientProcess.ExecuteCommandWithOutput("SetVtorcEmergencyReparent", "--enable", keyspace.Name) + assert.NoError(t, err) + utils.WaitForShardERSDisabledState(t, vtOrcProcess, keyspace.Name, shard0.Name, false) + + // check that the replica gets promoted by vtorc + utils.CheckPrimaryTablet(t, clusterInfo, replica, true) + + // also check that the replication is working correctly after failover + utils.VerifyWritesSucceed(t, clusterInfo, replica, []*cluster.Vttablet{rdonly}, 10*time.Second) + utils.WaitForSuccessfulRecoveryCount(t, vtOrcProcess, logic.RecoverDeadPrimaryRecoveryName, keyspace.Name, shard0.Name, 1) + utils.WaitForSuccessfulERSCount(t, vtOrcProcess, keyspace.Name, shard0.Name, 1) + t.Run("Check ERS and PRS Vars and Metrics", func(t *testing.T) { + utils.CheckVarExists(t, vtOrcProcess, "EmergencyReparentCounts") + utils.CheckVarExists(t, vtOrcProcess, "PlannedReparentCounts") + utils.CheckVarExists(t, vtOrcProcess, "ReparentShardOperationTimings") + + // Metrics registered in prometheus + utils.CheckMetricExists(t, vtOrcProcess, "vtorc_emergency_reparent_counts") + utils.CheckMetricExists(t, vtOrcProcess, "vtorc_planned_reparent_counts") + utils.CheckMetricExists(t, vtOrcProcess, "vtorc_reparent_shard_operation_timings_bucket") + }) +} + // bring down primary before VTOrc has started, let vtorc repair. func TestDownPrimaryBeforeVTOrc(t *testing.T) { defer utils.PrintVTOrcLogsOnFailure(t, clusterInfo.ClusterInstance) diff --git a/go/test/endtoend/vtorc/utils/utils.go b/go/test/endtoend/vtorc/utils/utils.go index e19e1e0b191..d9748907374 100644 --- a/go/test/endtoend/vtorc/utils/utils.go +++ b/go/test/endtoend/vtorc/utils/utils.go @@ -992,63 +992,69 @@ func WaitForReadOnlyValue(t *testing.T, curPrimary *cluster.Vttablet, expectValu func WaitForSuccessfulRecoveryCount(t *testing.T, vtorcInstance *cluster.VTOrcProcess, recoveryName, keyspace, shard string, countExpected int) { t.Helper() timeout := 15 * time.Second - startTime := time.Now() mapKey := fmt.Sprintf("%s.%s.%s", recoveryName, keyspace, shard) - for time.Since(startTime) < timeout { + assert.EventuallyWithT(t, func(c *assert.CollectT) { vars := vtorcInstance.GetVars() successfulRecoveriesMap := vars["SuccessfulRecoveries"].(map[string]interface{}) successCount := GetIntFromValue(successfulRecoveriesMap[mapKey]) - if successCount == countExpected { - return - } - time.Sleep(time.Second) - } - vars := vtorcInstance.GetVars() - successfulRecoveriesMap := vars["SuccessfulRecoveries"].(map[string]interface{}) - successCount := GetIntFromValue(successfulRecoveriesMap[recoveryName]) - assert.EqualValues(t, countExpected, successCount) + assert.EqualValues(c, countExpected, successCount) + }, timeout, time.Second, "timed out waiting for successful recovery count") +} + +// WaitForSkippedRecoveryCount waits until the given recovery name's count of skipped runs matches the count expected +func WaitForSkippedRecoveryCount(t *testing.T, vtorcInstance *cluster.VTOrcProcess, recoveryName, keyspace, shard string, countExpected int) { + t.Helper() + timeout := 15 * time.Second + mapKey := fmt.Sprintf("%s.%s.%s", recoveryName, keyspace, shard) + assert.EventuallyWithT(t, func(c *assert.CollectT) { + vars := vtorcInstance.GetVars() + skippedRecoveriesMap := vars["SkippedRecoveries"].(map[string]interface{}) + skippedCount := GetIntFromValue(skippedRecoveriesMap[mapKey]) + assert.EqualValues(c, countExpected, skippedCount) + }, timeout, time.Second, "timeout waiting for skipped recoveries") } // WaitForSuccessfulPRSCount waits until the given keyspace-shard's count of successful prs runs matches the count expected. func WaitForSuccessfulPRSCount(t *testing.T, vtorcInstance *cluster.VTOrcProcess, keyspace, shard string, countExpected int) { t.Helper() timeout := 15 * time.Second - startTime := time.Now() mapKey := fmt.Sprintf("%v.%v.success", keyspace, shard) - for time.Since(startTime) < timeout { + assert.EventuallyWithT(t, func(c *assert.CollectT) { vars := vtorcInstance.GetVars() prsCountsMap := vars["PlannedReparentCounts"].(map[string]interface{}) successCount := GetIntFromValue(prsCountsMap[mapKey]) - if successCount == countExpected { - return - } - time.Sleep(time.Second) - } - vars := vtorcInstance.GetVars() - prsCountsMap := vars["PlannedReparentCounts"].(map[string]interface{}) - successCount := GetIntFromValue(prsCountsMap[mapKey]) - assert.EqualValues(t, countExpected, successCount) + assert.EqualValues(c, countExpected, successCount) + }, timeout, time.Second, "timed out waiting for successful PRS count") } // WaitForSuccessfulERSCount waits until the given keyspace-shard's count of successful ers runs matches the count expected. func WaitForSuccessfulERSCount(t *testing.T, vtorcInstance *cluster.VTOrcProcess, keyspace, shard string, countExpected int) { t.Helper() timeout := 15 * time.Second - startTime := time.Now() mapKey := fmt.Sprintf("%v.%v.success", keyspace, shard) - for time.Since(startTime) < timeout { + assert.EventuallyWithT(t, func(c *assert.CollectT) { vars := vtorcInstance.GetVars() ersCountsMap := vars["EmergencyReparentCounts"].(map[string]interface{}) successCount := GetIntFromValue(ersCountsMap[mapKey]) - if successCount == countExpected { - return - } - time.Sleep(time.Second) + assert.EqualValues(t, countExpected, successCount) + }, timeout, time.Second, "timed out waiting for successful ERS count") +} + +// WaitForShardERSDisabledState waits until the keyspace/shard has an ERS-disabled state in the topo. +func WaitForShardERSDisabledState(t *testing.T, vtorcInstance *cluster.VTOrcProcess, keyspace, shard string, stateExpected bool) { + t.Helper() + var expectedValue int + if stateExpected { + expectedValue = 1 } - vars := vtorcInstance.GetVars() - ersCountsMap := vars["EmergencyReparentCounts"].(map[string]interface{}) - successCount := GetIntFromValue(ersCountsMap[mapKey]) - assert.EqualValues(t, countExpected, successCount) + timeout := 15 * time.Second + mapKey := fmt.Sprintf("%v.%v", keyspace, shard) + assert.EventuallyWithT(t, func(c *assert.CollectT) { + vars := vtorcInstance.GetVars() + ersDisabledMap := vars["EmergencyReparentShardDisabled"].(map[string]interface{}) + disabledValue := GetIntFromValue(ersDisabledMap[mapKey]) + assert.EqualValues(c, expectedValue, disabledValue) + }, timeout, time.Second, "timed out waiting for shard ERS-disabled state") } // CheckVarExists checks whether the given metric exists or not in /debug/vars. @@ -1085,33 +1091,21 @@ func WaitForDetectedProblems(t *testing.T, vtorcInstance *cluster.VTOrcProcess, t.Helper() key := strings.Join([]string{code, alias, ks, shard}, ".") timeout := 15 * time.Second - startTime := time.Now() - - for time.Since(startTime) < timeout { + assert.EventuallyWithT(t, func(c *assert.CollectT) { vars := vtorcInstance.GetVars() problems := vars["DetectedProblems"].(map[string]interface{}) - actual := GetIntFromValue(problems[key]) - if actual == expect { - return - } - time.Sleep(time.Second) - } - - vars := vtorcInstance.GetVars() - problems := vars["DetectedProblems"].(map[string]interface{}) - actual, ok := problems[key] - actual = GetIntFromValue(actual) - - assert.True(t, ok, - "The metric DetectedProblems[%s] should exist but does not (all problems: %+v)", - key, problems, - ) - - assert.EqualValues(t, expect, actual, - "The metric DetectedProblems[%s] should be %v but is %v (all problems: %+v)", - key, expect, actual, - problems, - ) + actual, ok := problems[key] + actual = GetIntFromValue(actual) + assert.True(c, ok, + "The metric DetectedProblems[%s] should exist but does not (all problems: %+v)", + key, problems, + ) + assert.EqualValues(c, expect, actual, + "The metric DetectedProblems[%s] should be %v but is %v (all problems: %+v)", + key, expect, actual, + problems, + ) + }, timeout, time.Second, "timed out waiting for detected problem(s)") } // WaitForTabletType waits for the tablet to reach a certain type. @@ -1207,27 +1201,14 @@ func SemiSyncExtensionLoaded(t *testing.T, tablet *cluster.Vttablet) (mysql.Semi // WaitForDrainedTabletInVTOrc waits for VTOrc to see the specified number of drained tablet. func WaitForDrainedTabletInVTOrc(t *testing.T, vtorcInstance *cluster.VTOrcProcess, count int) { t.Helper() - ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second) - defer cancel() - ticker := time.NewTicker(100 * time.Millisecond) - defer ticker.Stop() - - for { - select { - case <-ctx.Done(): - t.Errorf("timed out waiting for drained tablet in VTOrc") - return - case <-ticker.C: - statusCode, res, err := vtorcInstance.MakeAPICall("api/database-state") - if err != nil || statusCode != 200 { - continue - } - found := strings.Count(res, fmt.Sprintf(`"tablet_type": "%d"`, topodatapb.TabletType_DRAINED)) - // There are two tables that store the tablet type, the database_instance and vitess_tablet table. - // Both of them should agree in the stable state. - if found == count*2 { - return - } - } - } + timeout := 15 * time.Second + assert.EventuallyWithT(t, func(c *assert.CollectT) { + statusCode, res, err := vtorcInstance.MakeAPICall("api/database-state") + assert.NoError(c, err) + assert.Equal(c, 200, statusCode) + found := strings.Count(res, fmt.Sprintf(`"tablet_type": "%d"`, topodatapb.TabletType_DRAINED)) + // There are two tables that store the tablet type, the database_instance and vitess_tablet table. + // Both of them should agree in the stable state. + assert.Equal(c, found, count*2) + }, timeout, time.Second, "timed out waiting for drained tablet in VTOrc") } diff --git a/go/vt/proto/topodata/topodata.pb.go b/go/vt/proto/topodata/topodata.pb.go index 485f4ab1220..f96079afac4 100644 --- a/go/vt/proto/topodata/topodata.pb.go +++ b/go/vt/proto/topodata/topodata.pb.go @@ -32,6 +32,7 @@ import ( reflect "reflect" sync "sync" unsafe "unsafe" + vtorcdata "vitess.io/vitess/go/vt/proto/vtorcdata" vttime "vitess.io/vitess/go/vt/proto/vttime" ) @@ -563,8 +564,10 @@ type Shard struct { // is_primary_serving sets whether this shard primary is serving traffic or not. // The keyspace lock is always taken when changing this. IsPrimaryServing bool `protobuf:"varint,7,opt,name=is_primary_serving,json=isPrimaryServing,proto3" json:"is_primary_serving,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // VtorcState is the vtorc config/state for the shard. + VtorcState *vtorcdata.Shard `protobuf:"bytes,9,opt,name=vtorc_state,json=vtorcState,proto3" json:"vtorc_state,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *Shard) Reset() { @@ -639,6 +642,13 @@ func (x *Shard) GetIsPrimaryServing() bool { return false } +func (x *Shard) GetVtorcState() *vtorcdata.Shard { + if x != nil { + return x.VtorcState + } + return nil +} + // A Keyspace contains data about a keyspace. type Keyspace struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -665,6 +675,8 @@ type Keyspace struct { // used for various system metadata that is stored in each // tablet's mysqld instance. SidecarDbName string `protobuf:"bytes,10,opt,name=sidecar_db_name,json=sidecarDbName,proto3" json:"sidecar_db_name,omitempty"` + // Vtorc is the vtorc keyspace config/state for the keyspace. + VtorcState *vtorcdata.Keyspace `protobuf:"bytes,11,opt,name=vtorc_state,json=vtorcState,proto3" json:"vtorc_state,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -741,6 +753,13 @@ func (x *Keyspace) GetSidecarDbName() string { return "" } +func (x *Keyspace) GetVtorcState() *vtorcdata.Keyspace { + if x != nil { + return x.VtorcState + } + return nil +} + // ShardReplication describes the MySQL replication relationships // whithin a cell. type ShardReplication struct { @@ -1766,7 +1785,7 @@ var File_topodata_proto protoreflect.FileDescriptor const file_topodata_proto_rawDesc = "" + "\n" + - "\x0etopodata.proto\x12\btopodata\x1a\fvttime.proto\"2\n" + + "\x0etopodata.proto\x12\btopodata\x1a\x0fvtorcdata.proto\x1a\fvttime.proto\"2\n" + "\bKeyRange\x12\x14\n" + "\x05start\x18\x01 \x01(\fR\x05start\x12\x10\n" + "\x03end\x18\x02 \x01(\fR\x03end\"3\n" + @@ -1794,14 +1813,16 @@ const file_topodata_proto_rawDesc = "" + "\x05value\x18\x02 \x01(\x05R\x05value:\x028\x01\x1a7\n" + "\tTagsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01J\x04\b\x03\x10\x04J\x04\b\v\x10\fJ\x04\b\x0f\x10\x10\"\xbc\x05\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01J\x04\b\x03\x10\x04J\x04\b\v\x10\fJ\x04\b\x0f\x10\x10\"\xef\x05\n" + "\x05Shard\x12:\n" + "\rprimary_alias\x18\x01 \x01(\v2\x15.topodata.TabletAliasR\fprimaryAlias\x12C\n" + "\x17primary_term_start_time\x18\b \x01(\v2\f.vttime.TimeR\x14primaryTermStartTime\x12/\n" + "\tkey_range\x18\x02 \x01(\v2\x12.topodata.KeyRangeR\bkeyRange\x12@\n" + "\rsource_shards\x18\x04 \x03(\v2\x1b.topodata.Shard.SourceShardR\fsourceShards\x12F\n" + "\x0ftablet_controls\x18\x06 \x03(\v2\x1d.topodata.Shard.TabletControlR\x0etabletControls\x12,\n" + - "\x12is_primary_serving\x18\a \x01(\bR\x10isPrimaryServing\x1a\x9a\x01\n" + + "\x12is_primary_serving\x18\a \x01(\bR\x10isPrimaryServing\x121\n" + + "\vvtorc_state\x18\t \x01(\v2\x10.vtorcdata.ShardR\n" + + "vtorcState\x1a\x9a\x01\n" + "\vSourceShard\x12\x10\n" + "\x03uid\x18\x01 \x01(\x05R\x03uid\x12\x1a\n" + "\bkeyspace\x18\x02 \x01(\tR\bkeyspace\x12\x14\n" + @@ -1813,7 +1834,7 @@ const file_topodata_proto_rawDesc = "" + "tabletType\x12\x14\n" + "\x05cells\x18\x02 \x03(\tR\x05cells\x12#\n" + "\rdenied_tables\x18\x04 \x03(\tR\fdeniedTables\x12\x16\n" + - "\x06frozen\x18\x05 \x01(\bR\x06frozenJ\x04\b\x03\x10\x04J\x04\b\x03\x10\x04J\x04\b\x05\x10\x06\"\xd2\x02\n" + + "\x06frozen\x18\x05 \x01(\bR\x06frozenJ\x04\b\x03\x10\x04J\x04\b\x03\x10\x04J\x04\b\x05\x10\x06\"\x88\x03\n" + "\bKeyspace\x12;\n" + "\rkeyspace_type\x18\x05 \x01(\x0e2\x16.topodata.KeyspaceTypeR\fkeyspaceType\x12#\n" + "\rbase_keyspace\x18\x06 \x01(\tR\fbaseKeyspace\x121\n" + @@ -1821,7 +1842,9 @@ const file_topodata_proto_rawDesc = "" + "\x11durability_policy\x18\b \x01(\tR\x10durabilityPolicy\x12D\n" + "\x10throttler_config\x18\t \x01(\v2\x19.topodata.ThrottlerConfigR\x0fthrottlerConfig\x12&\n" + "\x0fsidecar_db_name\x18\n" + - " \x01(\tR\rsidecarDbNameJ\x04\b\x01\x10\x02J\x04\b\x02\x10\x03J\x04\b\x03\x10\x04J\x04\b\x04\x10\x05\"\x8b\x01\n" + + " \x01(\tR\rsidecarDbName\x124\n" + + "\vvtorc_state\x18\v \x01(\v2\x13.vtorcdata.KeyspaceR\n" + + "vtorcStateJ\x04\b\x01\x10\x02J\x04\b\x02\x10\x03J\x04\b\x03\x10\x04J\x04\b\x04\x10\x05\"\x8b\x01\n" + "\x10ShardReplication\x125\n" + "\x05nodes\x18\x01 \x03(\v2\x1f.topodata.ShardReplication.NodeR\x05nodes\x1a@\n" + "\x04Node\x128\n" + @@ -1959,6 +1982,8 @@ var file_topodata_proto_goTypes = []any{ nil, // 28: topodata.ThrottlerConfig.MetricThresholdsEntry (*SrvKeyspace_KeyspacePartition)(nil), // 29: topodata.SrvKeyspace.KeyspacePartition (*vttime.Time)(nil), // 30: vttime.Time + (*vtorcdata.Shard)(nil), // 31: vtorcdata.Shard + (*vtorcdata.Keyspace)(nil), // 32: vtorcdata.Keyspace } var file_topodata_proto_depIdxs = []int32{ 4, // 0: topodata.Tablet.alias:type_name -> topodata.TabletAlias @@ -1972,35 +1997,37 @@ var file_topodata_proto_depIdxs = []int32{ 3, // 8: topodata.Shard.key_range:type_name -> topodata.KeyRange 22, // 9: topodata.Shard.source_shards:type_name -> topodata.Shard.SourceShard 23, // 10: topodata.Shard.tablet_controls:type_name -> topodata.Shard.TabletControl - 0, // 11: topodata.Keyspace.keyspace_type:type_name -> topodata.KeyspaceType - 30, // 12: topodata.Keyspace.snapshot_time:type_name -> vttime.Time - 13, // 13: topodata.Keyspace.throttler_config:type_name -> topodata.ThrottlerConfig - 24, // 14: topodata.ShardReplication.nodes:type_name -> topodata.ShardReplication.Node - 2, // 15: topodata.ShardReplicationError.type:type_name -> topodata.ShardReplicationError.Type - 4, // 16: topodata.ShardReplicationError.tablet_alias:type_name -> topodata.TabletAlias - 3, // 17: topodata.ShardReference.key_range:type_name -> topodata.KeyRange - 3, // 18: topodata.ShardTabletControl.key_range:type_name -> topodata.KeyRange - 30, // 19: topodata.ThrottledAppRule.expires_at:type_name -> vttime.Time - 25, // 20: topodata.ThrottlerConfig.throttled_apps:type_name -> topodata.ThrottlerConfig.ThrottledAppsEntry - 27, // 21: topodata.ThrottlerConfig.app_checked_metrics:type_name -> topodata.ThrottlerConfig.AppCheckedMetricsEntry - 28, // 22: topodata.ThrottlerConfig.metric_thresholds:type_name -> topodata.ThrottlerConfig.MetricThresholdsEntry - 29, // 23: topodata.SrvKeyspace.partitions:type_name -> topodata.SrvKeyspace.KeyspacePartition - 13, // 24: topodata.SrvKeyspace.throttler_config:type_name -> topodata.ThrottlerConfig - 17, // 25: topodata.ExternalVitessCluster.topo_config:type_name -> topodata.TopoConfig - 18, // 26: topodata.ExternalClusters.vitess_cluster:type_name -> topodata.ExternalVitessCluster - 3, // 27: topodata.Shard.SourceShard.key_range:type_name -> topodata.KeyRange - 1, // 28: topodata.Shard.TabletControl.tablet_type:type_name -> topodata.TabletType - 4, // 29: topodata.ShardReplication.Node.tablet_alias:type_name -> topodata.TabletAlias - 12, // 30: topodata.ThrottlerConfig.ThrottledAppsEntry.value:type_name -> topodata.ThrottledAppRule - 26, // 31: topodata.ThrottlerConfig.AppCheckedMetricsEntry.value:type_name -> topodata.ThrottlerConfig.MetricNames - 1, // 32: topodata.SrvKeyspace.KeyspacePartition.served_type:type_name -> topodata.TabletType - 10, // 33: topodata.SrvKeyspace.KeyspacePartition.shard_references:type_name -> topodata.ShardReference - 11, // 34: topodata.SrvKeyspace.KeyspacePartition.shard_tablet_controls:type_name -> topodata.ShardTabletControl - 35, // [35:35] is the sub-list for method output_type - 35, // [35:35] is the sub-list for method input_type - 35, // [35:35] is the sub-list for extension type_name - 35, // [35:35] is the sub-list for extension extendee - 0, // [0:35] is the sub-list for field type_name + 31, // 11: topodata.Shard.vtorc_state:type_name -> vtorcdata.Shard + 0, // 12: topodata.Keyspace.keyspace_type:type_name -> topodata.KeyspaceType + 30, // 13: topodata.Keyspace.snapshot_time:type_name -> vttime.Time + 13, // 14: topodata.Keyspace.throttler_config:type_name -> topodata.ThrottlerConfig + 32, // 15: topodata.Keyspace.vtorc_state:type_name -> vtorcdata.Keyspace + 24, // 16: topodata.ShardReplication.nodes:type_name -> topodata.ShardReplication.Node + 2, // 17: topodata.ShardReplicationError.type:type_name -> topodata.ShardReplicationError.Type + 4, // 18: topodata.ShardReplicationError.tablet_alias:type_name -> topodata.TabletAlias + 3, // 19: topodata.ShardReference.key_range:type_name -> topodata.KeyRange + 3, // 20: topodata.ShardTabletControl.key_range:type_name -> topodata.KeyRange + 30, // 21: topodata.ThrottledAppRule.expires_at:type_name -> vttime.Time + 25, // 22: topodata.ThrottlerConfig.throttled_apps:type_name -> topodata.ThrottlerConfig.ThrottledAppsEntry + 27, // 23: topodata.ThrottlerConfig.app_checked_metrics:type_name -> topodata.ThrottlerConfig.AppCheckedMetricsEntry + 28, // 24: topodata.ThrottlerConfig.metric_thresholds:type_name -> topodata.ThrottlerConfig.MetricThresholdsEntry + 29, // 25: topodata.SrvKeyspace.partitions:type_name -> topodata.SrvKeyspace.KeyspacePartition + 13, // 26: topodata.SrvKeyspace.throttler_config:type_name -> topodata.ThrottlerConfig + 17, // 27: topodata.ExternalVitessCluster.topo_config:type_name -> topodata.TopoConfig + 18, // 28: topodata.ExternalClusters.vitess_cluster:type_name -> topodata.ExternalVitessCluster + 3, // 29: topodata.Shard.SourceShard.key_range:type_name -> topodata.KeyRange + 1, // 30: topodata.Shard.TabletControl.tablet_type:type_name -> topodata.TabletType + 4, // 31: topodata.ShardReplication.Node.tablet_alias:type_name -> topodata.TabletAlias + 12, // 32: topodata.ThrottlerConfig.ThrottledAppsEntry.value:type_name -> topodata.ThrottledAppRule + 26, // 33: topodata.ThrottlerConfig.AppCheckedMetricsEntry.value:type_name -> topodata.ThrottlerConfig.MetricNames + 1, // 34: topodata.SrvKeyspace.KeyspacePartition.served_type:type_name -> topodata.TabletType + 10, // 35: topodata.SrvKeyspace.KeyspacePartition.shard_references:type_name -> topodata.ShardReference + 11, // 36: topodata.SrvKeyspace.KeyspacePartition.shard_tablet_controls:type_name -> topodata.ShardTabletControl + 37, // [37:37] is the sub-list for method output_type + 37, // [37:37] is the sub-list for method input_type + 37, // [37:37] is the sub-list for extension type_name + 37, // [37:37] is the sub-list for extension extendee + 0, // [0:37] is the sub-list for field type_name } func init() { file_topodata_proto_init() } diff --git a/go/vt/proto/topodata/topodata_vtproto.pb.go b/go/vt/proto/topodata/topodata_vtproto.pb.go index ad6c18e1b90..5face1a2d9e 100644 --- a/go/vt/proto/topodata/topodata_vtproto.pb.go +++ b/go/vt/proto/topodata/topodata_vtproto.pb.go @@ -12,6 +12,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" io "io" math "math" + vtorcdata "vitess.io/vitess/go/vt/proto/vtorcdata" vttime "vitess.io/vitess/go/vt/proto/vttime" ) @@ -169,6 +170,7 @@ func (m *Shard) CloneVT() *Shard { r.PrimaryTermStartTime = m.PrimaryTermStartTime.CloneVT() r.KeyRange = m.KeyRange.CloneVT() r.IsPrimaryServing = m.IsPrimaryServing + r.VtorcState = m.VtorcState.CloneVT() if rhs := m.SourceShards; rhs != nil { tmpContainer := make([]*Shard_SourceShard, len(rhs)) for k, v := range rhs { @@ -205,6 +207,7 @@ func (m *Keyspace) CloneVT() *Keyspace { r.DurabilityPolicy = m.DurabilityPolicy r.ThrottlerConfig = m.ThrottlerConfig.CloneVT() r.SidecarDbName = m.SidecarDbName + r.VtorcState = m.VtorcState.CloneVT() if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -956,6 +959,16 @@ func (m *Shard) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.VtorcState != nil { + size, err := m.VtorcState.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x4a + } if m.PrimaryTermStartTime != nil { size, err := m.PrimaryTermStartTime.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { @@ -1053,6 +1066,16 @@ func (m *Keyspace) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.VtorcState != nil { + size, err := m.VtorcState.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x5a + } if len(m.SidecarDbName) > 0 { i -= len(m.SidecarDbName) copy(dAtA[i:], m.SidecarDbName) @@ -2126,6 +2149,10 @@ func (m *Shard) SizeVT() (n int) { l = m.PrimaryTermStartTime.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.VtorcState != nil { + l = m.VtorcState.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } n += len(m.unknownFields) return n } @@ -2159,6 +2186,10 @@ func (m *Keyspace) SizeVT() (n int) { if l > 0 { n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.VtorcState != nil { + l = m.VtorcState.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } n += len(m.unknownFields) return n } @@ -3895,6 +3926,42 @@ func (m *Shard) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VtorcState", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.VtorcState == nil { + m.VtorcState = &vtorcdata.Shard{} + } + if err := m.VtorcState.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -4133,6 +4200,42 @@ func (m *Keyspace) UnmarshalVT(dAtA []byte) error { } m.SidecarDbName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VtorcState", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.VtorcState == nil { + m.VtorcState = &vtorcdata.Keyspace{} + } + if err := m.VtorcState.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/vt/proto/vtctldata/vtctldata.pb.go b/go/vt/proto/vtctldata/vtctldata.pb.go index 01bdfae47dd..b92f0f02dc8 100644 --- a/go/vt/proto/vtctldata/vtctldata.pb.go +++ b/go/vt/proto/vtctldata/vtctldata.pb.go @@ -16255,6 +16255,102 @@ func (x *WorkflowMirrorTrafficResponse) GetCurrentState() string { return "" } +type SetVtorcEmergencyReparentRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Keyspace string `protobuf:"bytes,1,opt,name=keyspace,proto3" json:"keyspace,omitempty"` + Shard string `protobuf:"bytes,2,opt,name=shard,proto3" json:"shard,omitempty"` + Disable bool `protobuf:"varint,3,opt,name=disable,proto3" json:"disable,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SetVtorcEmergencyReparentRequest) Reset() { + *x = SetVtorcEmergencyReparentRequest{} + mi := &file_vtctldata_proto_msgTypes[268] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SetVtorcEmergencyReparentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetVtorcEmergencyReparentRequest) ProtoMessage() {} + +func (x *SetVtorcEmergencyReparentRequest) ProtoReflect() protoreflect.Message { + mi := &file_vtctldata_proto_msgTypes[268] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetVtorcEmergencyReparentRequest.ProtoReflect.Descriptor instead. +func (*SetVtorcEmergencyReparentRequest) Descriptor() ([]byte, []int) { + return file_vtctldata_proto_rawDescGZIP(), []int{268} +} + +func (x *SetVtorcEmergencyReparentRequest) GetKeyspace() string { + if x != nil { + return x.Keyspace + } + return "" +} + +func (x *SetVtorcEmergencyReparentRequest) GetShard() string { + if x != nil { + return x.Shard + } + return "" +} + +func (x *SetVtorcEmergencyReparentRequest) GetDisable() bool { + if x != nil { + return x.Disable + } + return false +} + +type SetVtorcEmergencyReparentResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SetVtorcEmergencyReparentResponse) Reset() { + *x = SetVtorcEmergencyReparentResponse{} + mi := &file_vtctldata_proto_msgTypes[269] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SetVtorcEmergencyReparentResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetVtorcEmergencyReparentResponse) ProtoMessage() {} + +func (x *SetVtorcEmergencyReparentResponse) ProtoReflect() protoreflect.Message { + mi := &file_vtctldata_proto_msgTypes[269] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetVtorcEmergencyReparentResponse.ProtoReflect.Descriptor instead. +func (*SetVtorcEmergencyReparentResponse) Descriptor() ([]byte, []int) { + return file_vtctldata_proto_rawDescGZIP(), []int{269} +} + type Workflow_ReplicationLocation struct { state protoimpl.MessageState `protogen:"open.v1"` Keyspace string `protobuf:"bytes,1,opt,name=keyspace,proto3" json:"keyspace,omitempty"` @@ -16265,7 +16361,7 @@ type Workflow_ReplicationLocation struct { func (x *Workflow_ReplicationLocation) Reset() { *x = Workflow_ReplicationLocation{} - mi := &file_vtctldata_proto_msgTypes[270] + mi := &file_vtctldata_proto_msgTypes[272] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16277,7 +16373,7 @@ func (x *Workflow_ReplicationLocation) String() string { func (*Workflow_ReplicationLocation) ProtoMessage() {} func (x *Workflow_ReplicationLocation) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[270] + mi := &file_vtctldata_proto_msgTypes[272] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16318,7 +16414,7 @@ type Workflow_ShardStream struct { func (x *Workflow_ShardStream) Reset() { *x = Workflow_ShardStream{} - mi := &file_vtctldata_proto_msgTypes[271] + mi := &file_vtctldata_proto_msgTypes[273] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16330,7 +16426,7 @@ func (x *Workflow_ShardStream) String() string { func (*Workflow_ShardStream) ProtoMessage() {} func (x *Workflow_ShardStream) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[271] + mi := &file_vtctldata_proto_msgTypes[273] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16403,7 +16499,7 @@ type Workflow_Stream struct { func (x *Workflow_Stream) Reset() { *x = Workflow_Stream{} - mi := &file_vtctldata_proto_msgTypes[272] + mi := &file_vtctldata_proto_msgTypes[274] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16415,7 +16511,7 @@ func (x *Workflow_Stream) String() string { func (*Workflow_Stream) ProtoMessage() {} func (x *Workflow_Stream) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[272] + mi := &file_vtctldata_proto_msgTypes[274] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16582,7 +16678,7 @@ type Workflow_Stream_CopyState struct { func (x *Workflow_Stream_CopyState) Reset() { *x = Workflow_Stream_CopyState{} - mi := &file_vtctldata_proto_msgTypes[273] + mi := &file_vtctldata_proto_msgTypes[275] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16594,7 +16690,7 @@ func (x *Workflow_Stream_CopyState) String() string { func (*Workflow_Stream_CopyState) ProtoMessage() {} func (x *Workflow_Stream_CopyState) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[273] + mi := &file_vtctldata_proto_msgTypes[275] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16647,7 +16743,7 @@ type Workflow_Stream_Log struct { func (x *Workflow_Stream_Log) Reset() { *x = Workflow_Stream_Log{} - mi := &file_vtctldata_proto_msgTypes[274] + mi := &file_vtctldata_proto_msgTypes[276] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16659,7 +16755,7 @@ func (x *Workflow_Stream_Log) String() string { func (*Workflow_Stream_Log) ProtoMessage() {} func (x *Workflow_Stream_Log) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[274] + mi := &file_vtctldata_proto_msgTypes[276] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16741,7 +16837,7 @@ type Workflow_Stream_ThrottlerStatus struct { func (x *Workflow_Stream_ThrottlerStatus) Reset() { *x = Workflow_Stream_ThrottlerStatus{} - mi := &file_vtctldata_proto_msgTypes[275] + mi := &file_vtctldata_proto_msgTypes[277] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16753,7 +16849,7 @@ func (x *Workflow_Stream_ThrottlerStatus) String() string { func (*Workflow_Stream_ThrottlerStatus) ProtoMessage() {} func (x *Workflow_Stream_ThrottlerStatus) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[275] + mi := &file_vtctldata_proto_msgTypes[277] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16792,7 +16888,7 @@ type ApplyVSchemaResponse_ParamList struct { func (x *ApplyVSchemaResponse_ParamList) Reset() { *x = ApplyVSchemaResponse_ParamList{} - mi := &file_vtctldata_proto_msgTypes[278] + mi := &file_vtctldata_proto_msgTypes[280] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16804,7 +16900,7 @@ func (x *ApplyVSchemaResponse_ParamList) String() string { func (*ApplyVSchemaResponse_ParamList) ProtoMessage() {} func (x *ApplyVSchemaResponse_ParamList) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[278] + mi := &file_vtctldata_proto_msgTypes[280] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16836,7 +16932,7 @@ type GetSrvKeyspaceNamesResponse_NameList struct { func (x *GetSrvKeyspaceNamesResponse_NameList) Reset() { *x = GetSrvKeyspaceNamesResponse_NameList{} - mi := &file_vtctldata_proto_msgTypes[290] + mi := &file_vtctldata_proto_msgTypes[292] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16848,7 +16944,7 @@ func (x *GetSrvKeyspaceNamesResponse_NameList) String() string { func (*GetSrvKeyspaceNamesResponse_NameList) ProtoMessage() {} func (x *GetSrvKeyspaceNamesResponse_NameList) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[290] + mi := &file_vtctldata_proto_msgTypes[292] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16882,7 +16978,7 @@ type MoveTablesCreateResponse_TabletInfo struct { func (x *MoveTablesCreateResponse_TabletInfo) Reset() { *x = MoveTablesCreateResponse_TabletInfo{} - mi := &file_vtctldata_proto_msgTypes[294] + mi := &file_vtctldata_proto_msgTypes[296] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16894,7 +16990,7 @@ func (x *MoveTablesCreateResponse_TabletInfo) String() string { func (*MoveTablesCreateResponse_TabletInfo) ProtoMessage() {} func (x *MoveTablesCreateResponse_TabletInfo) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[294] + mi := &file_vtctldata_proto_msgTypes[296] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16935,7 +17031,7 @@ type WorkflowDeleteResponse_TabletInfo struct { func (x *WorkflowDeleteResponse_TabletInfo) Reset() { *x = WorkflowDeleteResponse_TabletInfo{} - mi := &file_vtctldata_proto_msgTypes[304] + mi := &file_vtctldata_proto_msgTypes[306] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16947,7 +17043,7 @@ func (x *WorkflowDeleteResponse_TabletInfo) String() string { func (*WorkflowDeleteResponse_TabletInfo) ProtoMessage() {} func (x *WorkflowDeleteResponse_TabletInfo) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[304] + mi := &file_vtctldata_proto_msgTypes[306] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16991,7 +17087,7 @@ type WorkflowStatusResponse_TableCopyState struct { func (x *WorkflowStatusResponse_TableCopyState) Reset() { *x = WorkflowStatusResponse_TableCopyState{} - mi := &file_vtctldata_proto_msgTypes[305] + mi := &file_vtctldata_proto_msgTypes[307] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17003,7 +17099,7 @@ func (x *WorkflowStatusResponse_TableCopyState) String() string { func (*WorkflowStatusResponse_TableCopyState) ProtoMessage() {} func (x *WorkflowStatusResponse_TableCopyState) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[305] + mi := &file_vtctldata_proto_msgTypes[307] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17075,7 +17171,7 @@ type WorkflowStatusResponse_ShardStreamState struct { func (x *WorkflowStatusResponse_ShardStreamState) Reset() { *x = WorkflowStatusResponse_ShardStreamState{} - mi := &file_vtctldata_proto_msgTypes[306] + mi := &file_vtctldata_proto_msgTypes[308] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17087,7 +17183,7 @@ func (x *WorkflowStatusResponse_ShardStreamState) String() string { func (*WorkflowStatusResponse_ShardStreamState) ProtoMessage() {} func (x *WorkflowStatusResponse_ShardStreamState) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[306] + mi := &file_vtctldata_proto_msgTypes[308] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17154,7 +17250,7 @@ type WorkflowStatusResponse_ShardStreams struct { func (x *WorkflowStatusResponse_ShardStreams) Reset() { *x = WorkflowStatusResponse_ShardStreams{} - mi := &file_vtctldata_proto_msgTypes[307] + mi := &file_vtctldata_proto_msgTypes[309] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17166,7 +17262,7 @@ func (x *WorkflowStatusResponse_ShardStreams) String() string { func (*WorkflowStatusResponse_ShardStreams) ProtoMessage() {} func (x *WorkflowStatusResponse_ShardStreams) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[307] + mi := &file_vtctldata_proto_msgTypes[309] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17201,7 +17297,7 @@ type WorkflowUpdateResponse_TabletInfo struct { func (x *WorkflowUpdateResponse_TabletInfo) Reset() { *x = WorkflowUpdateResponse_TabletInfo{} - mi := &file_vtctldata_proto_msgTypes[310] + mi := &file_vtctldata_proto_msgTypes[312] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17213,7 +17309,7 @@ func (x *WorkflowUpdateResponse_TabletInfo) String() string { func (*WorkflowUpdateResponse_TabletInfo) ProtoMessage() {} func (x *WorkflowUpdateResponse_TabletInfo) ProtoReflect() protoreflect.Message { - mi := &file_vtctldata_proto_msgTypes[310] + mi := &file_vtctldata_proto_msgTypes[312] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18491,7 +18587,12 @@ const file_vtctldata_proto_rawDesc = "" + "\asummary\x18\x01 \x01(\tR\asummary\x12\x1f\n" + "\vstart_state\x18\x02 \x01(\tR\n" + "startState\x12#\n" + - "\rcurrent_state\x18\x03 \x01(\tR\fcurrentState*Y\n" + + "\rcurrent_state\x18\x03 \x01(\tR\fcurrentState\"n\n" + + " SetVtorcEmergencyReparentRequest\x12\x1a\n" + + "\bkeyspace\x18\x01 \x01(\tR\bkeyspace\x12\x14\n" + + "\x05shard\x18\x02 \x01(\tR\x05shard\x12\x18\n" + + "\adisable\x18\x03 \x01(\bR\adisable\"#\n" + + "!SetVtorcEmergencyReparentResponse*Y\n" + "\x15MaterializationIntent\x12\n" + "\n" + "\x06CUSTOM\x10\x00\x12\x0e\n" + @@ -18523,619 +18624,621 @@ func file_vtctldata_proto_rawDescGZIP() []byte { } var file_vtctldata_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_vtctldata_proto_msgTypes = make([]protoimpl.MessageInfo, 311) +var file_vtctldata_proto_msgTypes = make([]protoimpl.MessageInfo, 313) var file_vtctldata_proto_goTypes = []any{ - (MaterializationIntent)(0), // 0: vtctldata.MaterializationIntent - (QueryOrdering)(0), // 1: vtctldata.QueryOrdering - (ShardedAutoIncrementHandling)(0), // 2: vtctldata.ShardedAutoIncrementHandling - (SchemaMigration_Strategy)(0), // 3: vtctldata.SchemaMigration.Strategy - (SchemaMigration_Status)(0), // 4: vtctldata.SchemaMigration.Status - (*ExecuteVtctlCommandRequest)(nil), // 5: vtctldata.ExecuteVtctlCommandRequest - (*ExecuteVtctlCommandResponse)(nil), // 6: vtctldata.ExecuteVtctlCommandResponse - (*TableMaterializeSettings)(nil), // 7: vtctldata.TableMaterializeSettings - (*MaterializeSettings)(nil), // 8: vtctldata.MaterializeSettings - (*Keyspace)(nil), // 9: vtctldata.Keyspace - (*SchemaMigration)(nil), // 10: vtctldata.SchemaMigration - (*Shard)(nil), // 11: vtctldata.Shard - (*WorkflowOptions)(nil), // 12: vtctldata.WorkflowOptions - (*Workflow)(nil), // 13: vtctldata.Workflow - (*AddCellInfoRequest)(nil), // 14: vtctldata.AddCellInfoRequest - (*AddCellInfoResponse)(nil), // 15: vtctldata.AddCellInfoResponse - (*AddCellsAliasRequest)(nil), // 16: vtctldata.AddCellsAliasRequest - (*AddCellsAliasResponse)(nil), // 17: vtctldata.AddCellsAliasResponse - (*ApplyKeyspaceRoutingRulesRequest)(nil), // 18: vtctldata.ApplyKeyspaceRoutingRulesRequest - (*ApplyKeyspaceRoutingRulesResponse)(nil), // 19: vtctldata.ApplyKeyspaceRoutingRulesResponse - (*ApplyRoutingRulesRequest)(nil), // 20: vtctldata.ApplyRoutingRulesRequest - (*ApplyRoutingRulesResponse)(nil), // 21: vtctldata.ApplyRoutingRulesResponse - (*ApplyShardRoutingRulesRequest)(nil), // 22: vtctldata.ApplyShardRoutingRulesRequest - (*ApplyShardRoutingRulesResponse)(nil), // 23: vtctldata.ApplyShardRoutingRulesResponse - (*ApplySchemaRequest)(nil), // 24: vtctldata.ApplySchemaRequest - (*ApplySchemaResponse)(nil), // 25: vtctldata.ApplySchemaResponse - (*ApplyVSchemaRequest)(nil), // 26: vtctldata.ApplyVSchemaRequest - (*ApplyVSchemaResponse)(nil), // 27: vtctldata.ApplyVSchemaResponse - (*BackupRequest)(nil), // 28: vtctldata.BackupRequest - (*BackupResponse)(nil), // 29: vtctldata.BackupResponse - (*BackupShardRequest)(nil), // 30: vtctldata.BackupShardRequest - (*CancelSchemaMigrationRequest)(nil), // 31: vtctldata.CancelSchemaMigrationRequest - (*CancelSchemaMigrationResponse)(nil), // 32: vtctldata.CancelSchemaMigrationResponse - (*ChangeTabletTagsRequest)(nil), // 33: vtctldata.ChangeTabletTagsRequest - (*ChangeTabletTagsResponse)(nil), // 34: vtctldata.ChangeTabletTagsResponse - (*ChangeTabletTypeRequest)(nil), // 35: vtctldata.ChangeTabletTypeRequest - (*ChangeTabletTypeResponse)(nil), // 36: vtctldata.ChangeTabletTypeResponse - (*CheckThrottlerRequest)(nil), // 37: vtctldata.CheckThrottlerRequest - (*CheckThrottlerResponse)(nil), // 38: vtctldata.CheckThrottlerResponse - (*CleanupSchemaMigrationRequest)(nil), // 39: vtctldata.CleanupSchemaMigrationRequest - (*CleanupSchemaMigrationResponse)(nil), // 40: vtctldata.CleanupSchemaMigrationResponse - (*CompleteSchemaMigrationRequest)(nil), // 41: vtctldata.CompleteSchemaMigrationRequest - (*CompleteSchemaMigrationResponse)(nil), // 42: vtctldata.CompleteSchemaMigrationResponse - (*CopySchemaShardRequest)(nil), // 43: vtctldata.CopySchemaShardRequest - (*CopySchemaShardResponse)(nil), // 44: vtctldata.CopySchemaShardResponse - (*CreateKeyspaceRequest)(nil), // 45: vtctldata.CreateKeyspaceRequest - (*CreateKeyspaceResponse)(nil), // 46: vtctldata.CreateKeyspaceResponse - (*CreateShardRequest)(nil), // 47: vtctldata.CreateShardRequest - (*CreateShardResponse)(nil), // 48: vtctldata.CreateShardResponse - (*DeleteCellInfoRequest)(nil), // 49: vtctldata.DeleteCellInfoRequest - (*DeleteCellInfoResponse)(nil), // 50: vtctldata.DeleteCellInfoResponse - (*DeleteCellsAliasRequest)(nil), // 51: vtctldata.DeleteCellsAliasRequest - (*DeleteCellsAliasResponse)(nil), // 52: vtctldata.DeleteCellsAliasResponse - (*DeleteKeyspaceRequest)(nil), // 53: vtctldata.DeleteKeyspaceRequest - (*DeleteKeyspaceResponse)(nil), // 54: vtctldata.DeleteKeyspaceResponse - (*DeleteShardsRequest)(nil), // 55: vtctldata.DeleteShardsRequest - (*DeleteShardsResponse)(nil), // 56: vtctldata.DeleteShardsResponse - (*DeleteSrvVSchemaRequest)(nil), // 57: vtctldata.DeleteSrvVSchemaRequest - (*DeleteSrvVSchemaResponse)(nil), // 58: vtctldata.DeleteSrvVSchemaResponse - (*DeleteTabletsRequest)(nil), // 59: vtctldata.DeleteTabletsRequest - (*DeleteTabletsResponse)(nil), // 60: vtctldata.DeleteTabletsResponse - (*EmergencyReparentShardRequest)(nil), // 61: vtctldata.EmergencyReparentShardRequest - (*EmergencyReparentShardResponse)(nil), // 62: vtctldata.EmergencyReparentShardResponse - (*ExecuteFetchAsAppRequest)(nil), // 63: vtctldata.ExecuteFetchAsAppRequest - (*ExecuteFetchAsAppResponse)(nil), // 64: vtctldata.ExecuteFetchAsAppResponse - (*ExecuteFetchAsDBARequest)(nil), // 65: vtctldata.ExecuteFetchAsDBARequest - (*ExecuteFetchAsDBAResponse)(nil), // 66: vtctldata.ExecuteFetchAsDBAResponse - (*ExecuteHookRequest)(nil), // 67: vtctldata.ExecuteHookRequest - (*ExecuteHookResponse)(nil), // 68: vtctldata.ExecuteHookResponse - (*ExecuteMultiFetchAsDBARequest)(nil), // 69: vtctldata.ExecuteMultiFetchAsDBARequest - (*ExecuteMultiFetchAsDBAResponse)(nil), // 70: vtctldata.ExecuteMultiFetchAsDBAResponse - (*FindAllShardsInKeyspaceRequest)(nil), // 71: vtctldata.FindAllShardsInKeyspaceRequest - (*FindAllShardsInKeyspaceResponse)(nil), // 72: vtctldata.FindAllShardsInKeyspaceResponse - (*ForceCutOverSchemaMigrationRequest)(nil), // 73: vtctldata.ForceCutOverSchemaMigrationRequest - (*ForceCutOverSchemaMigrationResponse)(nil), // 74: vtctldata.ForceCutOverSchemaMigrationResponse - (*GetBackupsRequest)(nil), // 75: vtctldata.GetBackupsRequest - (*GetBackupsResponse)(nil), // 76: vtctldata.GetBackupsResponse - (*GetCellInfoRequest)(nil), // 77: vtctldata.GetCellInfoRequest - (*GetCellInfoResponse)(nil), // 78: vtctldata.GetCellInfoResponse - (*GetCellInfoNamesRequest)(nil), // 79: vtctldata.GetCellInfoNamesRequest - (*GetCellInfoNamesResponse)(nil), // 80: vtctldata.GetCellInfoNamesResponse - (*GetCellsAliasesRequest)(nil), // 81: vtctldata.GetCellsAliasesRequest - (*GetCellsAliasesResponse)(nil), // 82: vtctldata.GetCellsAliasesResponse - (*GetFullStatusRequest)(nil), // 83: vtctldata.GetFullStatusRequest - (*GetFullStatusResponse)(nil), // 84: vtctldata.GetFullStatusResponse - (*GetKeyspacesRequest)(nil), // 85: vtctldata.GetKeyspacesRequest - (*GetKeyspacesResponse)(nil), // 86: vtctldata.GetKeyspacesResponse - (*GetKeyspaceRequest)(nil), // 87: vtctldata.GetKeyspaceRequest - (*GetKeyspaceResponse)(nil), // 88: vtctldata.GetKeyspaceResponse - (*GetPermissionsRequest)(nil), // 89: vtctldata.GetPermissionsRequest - (*GetPermissionsResponse)(nil), // 90: vtctldata.GetPermissionsResponse - (*GetKeyspaceRoutingRulesRequest)(nil), // 91: vtctldata.GetKeyspaceRoutingRulesRequest - (*GetKeyspaceRoutingRulesResponse)(nil), // 92: vtctldata.GetKeyspaceRoutingRulesResponse - (*GetRoutingRulesRequest)(nil), // 93: vtctldata.GetRoutingRulesRequest - (*GetRoutingRulesResponse)(nil), // 94: vtctldata.GetRoutingRulesResponse - (*GetSchemaRequest)(nil), // 95: vtctldata.GetSchemaRequest - (*GetSchemaResponse)(nil), // 96: vtctldata.GetSchemaResponse - (*GetSchemaMigrationsRequest)(nil), // 97: vtctldata.GetSchemaMigrationsRequest - (*GetSchemaMigrationsResponse)(nil), // 98: vtctldata.GetSchemaMigrationsResponse - (*GetShardReplicationRequest)(nil), // 99: vtctldata.GetShardReplicationRequest - (*GetShardReplicationResponse)(nil), // 100: vtctldata.GetShardReplicationResponse - (*GetShardRequest)(nil), // 101: vtctldata.GetShardRequest - (*GetShardResponse)(nil), // 102: vtctldata.GetShardResponse - (*GetShardRoutingRulesRequest)(nil), // 103: vtctldata.GetShardRoutingRulesRequest - (*GetShardRoutingRulesResponse)(nil), // 104: vtctldata.GetShardRoutingRulesResponse - (*GetSrvKeyspaceNamesRequest)(nil), // 105: vtctldata.GetSrvKeyspaceNamesRequest - (*GetSrvKeyspaceNamesResponse)(nil), // 106: vtctldata.GetSrvKeyspaceNamesResponse - (*GetSrvKeyspacesRequest)(nil), // 107: vtctldata.GetSrvKeyspacesRequest - (*GetSrvKeyspacesResponse)(nil), // 108: vtctldata.GetSrvKeyspacesResponse - (*UpdateThrottlerConfigRequest)(nil), // 109: vtctldata.UpdateThrottlerConfigRequest - (*UpdateThrottlerConfigResponse)(nil), // 110: vtctldata.UpdateThrottlerConfigResponse - (*GetSrvVSchemaRequest)(nil), // 111: vtctldata.GetSrvVSchemaRequest - (*GetSrvVSchemaResponse)(nil), // 112: vtctldata.GetSrvVSchemaResponse - (*GetSrvVSchemasRequest)(nil), // 113: vtctldata.GetSrvVSchemasRequest - (*GetSrvVSchemasResponse)(nil), // 114: vtctldata.GetSrvVSchemasResponse - (*GetTabletRequest)(nil), // 115: vtctldata.GetTabletRequest - (*GetTabletResponse)(nil), // 116: vtctldata.GetTabletResponse - (*GetTabletsRequest)(nil), // 117: vtctldata.GetTabletsRequest - (*GetTabletsResponse)(nil), // 118: vtctldata.GetTabletsResponse - (*GetThrottlerStatusRequest)(nil), // 119: vtctldata.GetThrottlerStatusRequest - (*GetThrottlerStatusResponse)(nil), // 120: vtctldata.GetThrottlerStatusResponse - (*GetTopologyPathRequest)(nil), // 121: vtctldata.GetTopologyPathRequest - (*GetTopologyPathResponse)(nil), // 122: vtctldata.GetTopologyPathResponse - (*TopologyCell)(nil), // 123: vtctldata.TopologyCell - (*GetUnresolvedTransactionsRequest)(nil), // 124: vtctldata.GetUnresolvedTransactionsRequest - (*GetUnresolvedTransactionsResponse)(nil), // 125: vtctldata.GetUnresolvedTransactionsResponse - (*GetTransactionInfoRequest)(nil), // 126: vtctldata.GetTransactionInfoRequest - (*ShardTransactionState)(nil), // 127: vtctldata.ShardTransactionState - (*GetTransactionInfoResponse)(nil), // 128: vtctldata.GetTransactionInfoResponse - (*ConcludeTransactionRequest)(nil), // 129: vtctldata.ConcludeTransactionRequest - (*ConcludeTransactionResponse)(nil), // 130: vtctldata.ConcludeTransactionResponse - (*GetVSchemaRequest)(nil), // 131: vtctldata.GetVSchemaRequest - (*GetVersionRequest)(nil), // 132: vtctldata.GetVersionRequest - (*GetVersionResponse)(nil), // 133: vtctldata.GetVersionResponse - (*GetVSchemaResponse)(nil), // 134: vtctldata.GetVSchemaResponse - (*GetWorkflowsRequest)(nil), // 135: vtctldata.GetWorkflowsRequest - (*GetWorkflowsResponse)(nil), // 136: vtctldata.GetWorkflowsResponse - (*InitShardPrimaryRequest)(nil), // 137: vtctldata.InitShardPrimaryRequest - (*InitShardPrimaryResponse)(nil), // 138: vtctldata.InitShardPrimaryResponse - (*LaunchSchemaMigrationRequest)(nil), // 139: vtctldata.LaunchSchemaMigrationRequest - (*LaunchSchemaMigrationResponse)(nil), // 140: vtctldata.LaunchSchemaMigrationResponse - (*LookupVindexCompleteRequest)(nil), // 141: vtctldata.LookupVindexCompleteRequest - (*LookupVindexCompleteResponse)(nil), // 142: vtctldata.LookupVindexCompleteResponse - (*LookupVindexCreateRequest)(nil), // 143: vtctldata.LookupVindexCreateRequest - (*LookupVindexCreateResponse)(nil), // 144: vtctldata.LookupVindexCreateResponse - (*LookupVindexExternalizeRequest)(nil), // 145: vtctldata.LookupVindexExternalizeRequest - (*LookupVindexExternalizeResponse)(nil), // 146: vtctldata.LookupVindexExternalizeResponse - (*LookupVindexInternalizeRequest)(nil), // 147: vtctldata.LookupVindexInternalizeRequest - (*LookupVindexInternalizeResponse)(nil), // 148: vtctldata.LookupVindexInternalizeResponse - (*MaterializeCreateRequest)(nil), // 149: vtctldata.MaterializeCreateRequest - (*MaterializeCreateResponse)(nil), // 150: vtctldata.MaterializeCreateResponse - (*WorkflowAddTablesRequest)(nil), // 151: vtctldata.WorkflowAddTablesRequest - (*WorkflowAddTablesResponse)(nil), // 152: vtctldata.WorkflowAddTablesResponse - (*MigrateCreateRequest)(nil), // 153: vtctldata.MigrateCreateRequest - (*MigrateCompleteRequest)(nil), // 154: vtctldata.MigrateCompleteRequest - (*MigrateCompleteResponse)(nil), // 155: vtctldata.MigrateCompleteResponse - (*MountRegisterRequest)(nil), // 156: vtctldata.MountRegisterRequest - (*MountRegisterResponse)(nil), // 157: vtctldata.MountRegisterResponse - (*MountUnregisterRequest)(nil), // 158: vtctldata.MountUnregisterRequest - (*MountUnregisterResponse)(nil), // 159: vtctldata.MountUnregisterResponse - (*MountShowRequest)(nil), // 160: vtctldata.MountShowRequest - (*MountShowResponse)(nil), // 161: vtctldata.MountShowResponse - (*MountListRequest)(nil), // 162: vtctldata.MountListRequest - (*MountListResponse)(nil), // 163: vtctldata.MountListResponse - (*MoveTablesCreateRequest)(nil), // 164: vtctldata.MoveTablesCreateRequest - (*MoveTablesCreateResponse)(nil), // 165: vtctldata.MoveTablesCreateResponse - (*MoveTablesCompleteRequest)(nil), // 166: vtctldata.MoveTablesCompleteRequest - (*MoveTablesCompleteResponse)(nil), // 167: vtctldata.MoveTablesCompleteResponse - (*PingTabletRequest)(nil), // 168: vtctldata.PingTabletRequest - (*PingTabletResponse)(nil), // 169: vtctldata.PingTabletResponse - (*PlannedReparentShardRequest)(nil), // 170: vtctldata.PlannedReparentShardRequest - (*PlannedReparentShardResponse)(nil), // 171: vtctldata.PlannedReparentShardResponse - (*RebuildKeyspaceGraphRequest)(nil), // 172: vtctldata.RebuildKeyspaceGraphRequest - (*RebuildKeyspaceGraphResponse)(nil), // 173: vtctldata.RebuildKeyspaceGraphResponse - (*RebuildVSchemaGraphRequest)(nil), // 174: vtctldata.RebuildVSchemaGraphRequest - (*RebuildVSchemaGraphResponse)(nil), // 175: vtctldata.RebuildVSchemaGraphResponse - (*RefreshStateRequest)(nil), // 176: vtctldata.RefreshStateRequest - (*RefreshStateResponse)(nil), // 177: vtctldata.RefreshStateResponse - (*RefreshStateByShardRequest)(nil), // 178: vtctldata.RefreshStateByShardRequest - (*RefreshStateByShardResponse)(nil), // 179: vtctldata.RefreshStateByShardResponse - (*ReloadSchemaRequest)(nil), // 180: vtctldata.ReloadSchemaRequest - (*ReloadSchemaResponse)(nil), // 181: vtctldata.ReloadSchemaResponse - (*ReloadSchemaKeyspaceRequest)(nil), // 182: vtctldata.ReloadSchemaKeyspaceRequest - (*ReloadSchemaKeyspaceResponse)(nil), // 183: vtctldata.ReloadSchemaKeyspaceResponse - (*ReloadSchemaShardRequest)(nil), // 184: vtctldata.ReloadSchemaShardRequest - (*ReloadSchemaShardResponse)(nil), // 185: vtctldata.ReloadSchemaShardResponse - (*RemoveBackupRequest)(nil), // 186: vtctldata.RemoveBackupRequest - (*RemoveBackupResponse)(nil), // 187: vtctldata.RemoveBackupResponse - (*RemoveKeyspaceCellRequest)(nil), // 188: vtctldata.RemoveKeyspaceCellRequest - (*RemoveKeyspaceCellResponse)(nil), // 189: vtctldata.RemoveKeyspaceCellResponse - (*RemoveShardCellRequest)(nil), // 190: vtctldata.RemoveShardCellRequest - (*RemoveShardCellResponse)(nil), // 191: vtctldata.RemoveShardCellResponse - (*ReparentTabletRequest)(nil), // 192: vtctldata.ReparentTabletRequest - (*ReparentTabletResponse)(nil), // 193: vtctldata.ReparentTabletResponse - (*ReshardCreateRequest)(nil), // 194: vtctldata.ReshardCreateRequest - (*RestoreFromBackupRequest)(nil), // 195: vtctldata.RestoreFromBackupRequest - (*RestoreFromBackupResponse)(nil), // 196: vtctldata.RestoreFromBackupResponse - (*RetrySchemaMigrationRequest)(nil), // 197: vtctldata.RetrySchemaMigrationRequest - (*RetrySchemaMigrationResponse)(nil), // 198: vtctldata.RetrySchemaMigrationResponse - (*RunHealthCheckRequest)(nil), // 199: vtctldata.RunHealthCheckRequest - (*RunHealthCheckResponse)(nil), // 200: vtctldata.RunHealthCheckResponse - (*SetKeyspaceDurabilityPolicyRequest)(nil), // 201: vtctldata.SetKeyspaceDurabilityPolicyRequest - (*SetKeyspaceDurabilityPolicyResponse)(nil), // 202: vtctldata.SetKeyspaceDurabilityPolicyResponse - (*SetKeyspaceShardingInfoRequest)(nil), // 203: vtctldata.SetKeyspaceShardingInfoRequest - (*SetKeyspaceShardingInfoResponse)(nil), // 204: vtctldata.SetKeyspaceShardingInfoResponse - (*SetShardIsPrimaryServingRequest)(nil), // 205: vtctldata.SetShardIsPrimaryServingRequest - (*SetShardIsPrimaryServingResponse)(nil), // 206: vtctldata.SetShardIsPrimaryServingResponse - (*SetShardTabletControlRequest)(nil), // 207: vtctldata.SetShardTabletControlRequest - (*SetShardTabletControlResponse)(nil), // 208: vtctldata.SetShardTabletControlResponse - (*SetWritableRequest)(nil), // 209: vtctldata.SetWritableRequest - (*SetWritableResponse)(nil), // 210: vtctldata.SetWritableResponse - (*ShardReplicationAddRequest)(nil), // 211: vtctldata.ShardReplicationAddRequest - (*ShardReplicationAddResponse)(nil), // 212: vtctldata.ShardReplicationAddResponse - (*ShardReplicationFixRequest)(nil), // 213: vtctldata.ShardReplicationFixRequest - (*ShardReplicationFixResponse)(nil), // 214: vtctldata.ShardReplicationFixResponse - (*ShardReplicationPositionsRequest)(nil), // 215: vtctldata.ShardReplicationPositionsRequest - (*ShardReplicationPositionsResponse)(nil), // 216: vtctldata.ShardReplicationPositionsResponse - (*ShardReplicationRemoveRequest)(nil), // 217: vtctldata.ShardReplicationRemoveRequest - (*ShardReplicationRemoveResponse)(nil), // 218: vtctldata.ShardReplicationRemoveResponse - (*SleepTabletRequest)(nil), // 219: vtctldata.SleepTabletRequest - (*SleepTabletResponse)(nil), // 220: vtctldata.SleepTabletResponse - (*SourceShardAddRequest)(nil), // 221: vtctldata.SourceShardAddRequest - (*SourceShardAddResponse)(nil), // 222: vtctldata.SourceShardAddResponse - (*SourceShardDeleteRequest)(nil), // 223: vtctldata.SourceShardDeleteRequest - (*SourceShardDeleteResponse)(nil), // 224: vtctldata.SourceShardDeleteResponse - (*StartReplicationRequest)(nil), // 225: vtctldata.StartReplicationRequest - (*StartReplicationResponse)(nil), // 226: vtctldata.StartReplicationResponse - (*StopReplicationRequest)(nil), // 227: vtctldata.StopReplicationRequest - (*StopReplicationResponse)(nil), // 228: vtctldata.StopReplicationResponse - (*TabletExternallyReparentedRequest)(nil), // 229: vtctldata.TabletExternallyReparentedRequest - (*TabletExternallyReparentedResponse)(nil), // 230: vtctldata.TabletExternallyReparentedResponse - (*UpdateCellInfoRequest)(nil), // 231: vtctldata.UpdateCellInfoRequest - (*UpdateCellInfoResponse)(nil), // 232: vtctldata.UpdateCellInfoResponse - (*UpdateCellsAliasRequest)(nil), // 233: vtctldata.UpdateCellsAliasRequest - (*UpdateCellsAliasResponse)(nil), // 234: vtctldata.UpdateCellsAliasResponse - (*ValidateRequest)(nil), // 235: vtctldata.ValidateRequest - (*ValidateResponse)(nil), // 236: vtctldata.ValidateResponse - (*ValidateKeyspaceRequest)(nil), // 237: vtctldata.ValidateKeyspaceRequest - (*ValidateKeyspaceResponse)(nil), // 238: vtctldata.ValidateKeyspaceResponse - (*ValidatePermissionsKeyspaceRequest)(nil), // 239: vtctldata.ValidatePermissionsKeyspaceRequest - (*ValidatePermissionsKeyspaceResponse)(nil), // 240: vtctldata.ValidatePermissionsKeyspaceResponse - (*ValidateSchemaKeyspaceRequest)(nil), // 241: vtctldata.ValidateSchemaKeyspaceRequest - (*ValidateSchemaKeyspaceResponse)(nil), // 242: vtctldata.ValidateSchemaKeyspaceResponse - (*ValidateShardRequest)(nil), // 243: vtctldata.ValidateShardRequest - (*ValidateShardResponse)(nil), // 244: vtctldata.ValidateShardResponse - (*ValidateVersionKeyspaceRequest)(nil), // 245: vtctldata.ValidateVersionKeyspaceRequest - (*ValidateVersionKeyspaceResponse)(nil), // 246: vtctldata.ValidateVersionKeyspaceResponse - (*ValidateVersionShardRequest)(nil), // 247: vtctldata.ValidateVersionShardRequest - (*ValidateVersionShardResponse)(nil), // 248: vtctldata.ValidateVersionShardResponse - (*ValidateVSchemaRequest)(nil), // 249: vtctldata.ValidateVSchemaRequest - (*ValidateVSchemaResponse)(nil), // 250: vtctldata.ValidateVSchemaResponse - (*VDiffCreateRequest)(nil), // 251: vtctldata.VDiffCreateRequest - (*VDiffCreateResponse)(nil), // 252: vtctldata.VDiffCreateResponse - (*VDiffDeleteRequest)(nil), // 253: vtctldata.VDiffDeleteRequest - (*VDiffDeleteResponse)(nil), // 254: vtctldata.VDiffDeleteResponse - (*VDiffResumeRequest)(nil), // 255: vtctldata.VDiffResumeRequest - (*VDiffResumeResponse)(nil), // 256: vtctldata.VDiffResumeResponse - (*VDiffShowRequest)(nil), // 257: vtctldata.VDiffShowRequest - (*VDiffShowResponse)(nil), // 258: vtctldata.VDiffShowResponse - (*VDiffStopRequest)(nil), // 259: vtctldata.VDiffStopRequest - (*VDiffStopResponse)(nil), // 260: vtctldata.VDiffStopResponse - (*WorkflowDeleteRequest)(nil), // 261: vtctldata.WorkflowDeleteRequest - (*WorkflowDeleteResponse)(nil), // 262: vtctldata.WorkflowDeleteResponse - (*WorkflowStatusRequest)(nil), // 263: vtctldata.WorkflowStatusRequest - (*WorkflowStatusResponse)(nil), // 264: vtctldata.WorkflowStatusResponse - (*WorkflowSwitchTrafficRequest)(nil), // 265: vtctldata.WorkflowSwitchTrafficRequest - (*WorkflowSwitchTrafficResponse)(nil), // 266: vtctldata.WorkflowSwitchTrafficResponse - (*WorkflowUpdateRequest)(nil), // 267: vtctldata.WorkflowUpdateRequest - (*WorkflowUpdateResponse)(nil), // 268: vtctldata.WorkflowUpdateResponse - (*GetMirrorRulesRequest)(nil), // 269: vtctldata.GetMirrorRulesRequest - (*GetMirrorRulesResponse)(nil), // 270: vtctldata.GetMirrorRulesResponse - (*WorkflowMirrorTrafficRequest)(nil), // 271: vtctldata.WorkflowMirrorTrafficRequest - (*WorkflowMirrorTrafficResponse)(nil), // 272: vtctldata.WorkflowMirrorTrafficResponse - nil, // 273: vtctldata.WorkflowOptions.ConfigEntry - nil, // 274: vtctldata.Workflow.ShardStreamsEntry - (*Workflow_ReplicationLocation)(nil), // 275: vtctldata.Workflow.ReplicationLocation - (*Workflow_ShardStream)(nil), // 276: vtctldata.Workflow.ShardStream - (*Workflow_Stream)(nil), // 277: vtctldata.Workflow.Stream - (*Workflow_Stream_CopyState)(nil), // 278: vtctldata.Workflow.Stream.CopyState - (*Workflow_Stream_Log)(nil), // 279: vtctldata.Workflow.Stream.Log - (*Workflow_Stream_ThrottlerStatus)(nil), // 280: vtctldata.Workflow.Stream.ThrottlerStatus - nil, // 281: vtctldata.ApplySchemaResponse.RowsAffectedByShardEntry - nil, // 282: vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry - (*ApplyVSchemaResponse_ParamList)(nil), // 283: vtctldata.ApplyVSchemaResponse.ParamList - nil, // 284: vtctldata.CancelSchemaMigrationResponse.RowsAffectedByShardEntry - nil, // 285: vtctldata.ChangeTabletTagsRequest.TagsEntry - nil, // 286: vtctldata.ChangeTabletTagsResponse.BeforeTagsEntry - nil, // 287: vtctldata.ChangeTabletTagsResponse.AfterTagsEntry - nil, // 288: vtctldata.CleanupSchemaMigrationResponse.RowsAffectedByShardEntry - nil, // 289: vtctldata.CompleteSchemaMigrationResponse.RowsAffectedByShardEntry - nil, // 290: vtctldata.FindAllShardsInKeyspaceResponse.ShardsEntry - nil, // 291: vtctldata.ForceCutOverSchemaMigrationResponse.RowsAffectedByShardEntry - nil, // 292: vtctldata.GetCellsAliasesResponse.AliasesEntry - nil, // 293: vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry - nil, // 294: vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry - (*GetSrvKeyspaceNamesResponse_NameList)(nil), // 295: vtctldata.GetSrvKeyspaceNamesResponse.NameList - nil, // 296: vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry - nil, // 297: vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry - nil, // 298: vtctldata.LaunchSchemaMigrationResponse.RowsAffectedByShardEntry - (*MoveTablesCreateResponse_TabletInfo)(nil), // 299: vtctldata.MoveTablesCreateResponse.TabletInfo - nil, // 300: vtctldata.RetrySchemaMigrationResponse.RowsAffectedByShardEntry - nil, // 301: vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry - nil, // 302: vtctldata.ShardReplicationPositionsResponse.TabletMapEntry - nil, // 303: vtctldata.ValidateResponse.ResultsByKeyspaceEntry - nil, // 304: vtctldata.ValidateKeyspaceResponse.ResultsByShardEntry - nil, // 305: vtctldata.ValidateSchemaKeyspaceResponse.ResultsByShardEntry - nil, // 306: vtctldata.ValidateVersionKeyspaceResponse.ResultsByShardEntry - nil, // 307: vtctldata.ValidateVSchemaResponse.ResultsByShardEntry - nil, // 308: vtctldata.VDiffShowResponse.TabletResponsesEntry - (*WorkflowDeleteResponse_TabletInfo)(nil), // 309: vtctldata.WorkflowDeleteResponse.TabletInfo - (*WorkflowStatusResponse_TableCopyState)(nil), // 310: vtctldata.WorkflowStatusResponse.TableCopyState - (*WorkflowStatusResponse_ShardStreamState)(nil), // 311: vtctldata.WorkflowStatusResponse.ShardStreamState - (*WorkflowStatusResponse_ShardStreams)(nil), // 312: vtctldata.WorkflowStatusResponse.ShardStreams - nil, // 313: vtctldata.WorkflowStatusResponse.TableCopyStateEntry - nil, // 314: vtctldata.WorkflowStatusResponse.ShardStreamsEntry - (*WorkflowUpdateResponse_TabletInfo)(nil), // 315: vtctldata.WorkflowUpdateResponse.TabletInfo - (*logutil.Event)(nil), // 316: logutil.Event - (tabletmanagerdata.TabletSelectionPreference)(0), // 317: tabletmanagerdata.TabletSelectionPreference - (*topodata.Keyspace)(nil), // 318: topodata.Keyspace - (*vttime.Time)(nil), // 319: vttime.Time - (*topodata.TabletAlias)(nil), // 320: topodata.TabletAlias - (*vttime.Duration)(nil), // 321: vttime.Duration - (*topodata.Shard)(nil), // 322: topodata.Shard - (*topodata.CellInfo)(nil), // 323: topodata.CellInfo - (*vschema.KeyspaceRoutingRules)(nil), // 324: vschema.KeyspaceRoutingRules - (*vschema.RoutingRules)(nil), // 325: vschema.RoutingRules - (*vschema.ShardRoutingRules)(nil), // 326: vschema.ShardRoutingRules - (*vtrpc.CallerID)(nil), // 327: vtrpc.CallerID - (*vschema.Keyspace)(nil), // 328: vschema.Keyspace - (topodata.TabletType)(0), // 329: topodata.TabletType - (*topodata.Tablet)(nil), // 330: topodata.Tablet - (*tabletmanagerdata.CheckThrottlerResponse)(nil), // 331: tabletmanagerdata.CheckThrottlerResponse - (topodata.KeyspaceType)(0), // 332: topodata.KeyspaceType - (*query.QueryResult)(nil), // 333: query.QueryResult - (*tabletmanagerdata.ExecuteHookRequest)(nil), // 334: tabletmanagerdata.ExecuteHookRequest - (*tabletmanagerdata.ExecuteHookResponse)(nil), // 335: tabletmanagerdata.ExecuteHookResponse - (*mysqlctl.BackupInfo)(nil), // 336: mysqlctl.BackupInfo - (*replicationdata.FullStatus)(nil), // 337: replicationdata.FullStatus - (*tabletmanagerdata.Permissions)(nil), // 338: tabletmanagerdata.Permissions - (*tabletmanagerdata.SchemaDefinition)(nil), // 339: tabletmanagerdata.SchemaDefinition - (*topodata.ThrottledAppRule)(nil), // 340: topodata.ThrottledAppRule - (*vschema.SrvVSchema)(nil), // 341: vschema.SrvVSchema - (*tabletmanagerdata.GetThrottlerStatusResponse)(nil), // 342: tabletmanagerdata.GetThrottlerStatusResponse - (*query.TransactionMetadata)(nil), // 343: query.TransactionMetadata - (*query.Target)(nil), // 344: query.Target - (*topodata.ShardReplicationError)(nil), // 345: topodata.ShardReplicationError - (*topodata.KeyRange)(nil), // 346: topodata.KeyRange - (*topodata.CellsAlias)(nil), // 347: topodata.CellsAlias - (*tabletmanagerdata.UpdateVReplicationWorkflowRequest)(nil), // 348: tabletmanagerdata.UpdateVReplicationWorkflowRequest - (*vschema.MirrorRules)(nil), // 349: vschema.MirrorRules - (*topodata.Shard_TabletControl)(nil), // 350: topodata.Shard.TabletControl - (*binlogdata.BinlogSource)(nil), // 351: binlogdata.BinlogSource - (*topodata.ShardReplication)(nil), // 352: topodata.ShardReplication - (*topodata.SrvKeyspace)(nil), // 353: topodata.SrvKeyspace - (*replicationdata.Status)(nil), // 354: replicationdata.Status - (*tabletmanagerdata.VDiffResponse)(nil), // 355: tabletmanagerdata.VDiffResponse + (MaterializationIntent)(0), // 0: vtctldata.MaterializationIntent + (QueryOrdering)(0), // 1: vtctldata.QueryOrdering + (ShardedAutoIncrementHandling)(0), // 2: vtctldata.ShardedAutoIncrementHandling + (SchemaMigration_Strategy)(0), // 3: vtctldata.SchemaMigration.Strategy + (SchemaMigration_Status)(0), // 4: vtctldata.SchemaMigration.Status + (*ExecuteVtctlCommandRequest)(nil), // 5: vtctldata.ExecuteVtctlCommandRequest + (*ExecuteVtctlCommandResponse)(nil), // 6: vtctldata.ExecuteVtctlCommandResponse + (*TableMaterializeSettings)(nil), // 7: vtctldata.TableMaterializeSettings + (*MaterializeSettings)(nil), // 8: vtctldata.MaterializeSettings + (*Keyspace)(nil), // 9: vtctldata.Keyspace + (*SchemaMigration)(nil), // 10: vtctldata.SchemaMigration + (*Shard)(nil), // 11: vtctldata.Shard + (*WorkflowOptions)(nil), // 12: vtctldata.WorkflowOptions + (*Workflow)(nil), // 13: vtctldata.Workflow + (*AddCellInfoRequest)(nil), // 14: vtctldata.AddCellInfoRequest + (*AddCellInfoResponse)(nil), // 15: vtctldata.AddCellInfoResponse + (*AddCellsAliasRequest)(nil), // 16: vtctldata.AddCellsAliasRequest + (*AddCellsAliasResponse)(nil), // 17: vtctldata.AddCellsAliasResponse + (*ApplyKeyspaceRoutingRulesRequest)(nil), // 18: vtctldata.ApplyKeyspaceRoutingRulesRequest + (*ApplyKeyspaceRoutingRulesResponse)(nil), // 19: vtctldata.ApplyKeyspaceRoutingRulesResponse + (*ApplyRoutingRulesRequest)(nil), // 20: vtctldata.ApplyRoutingRulesRequest + (*ApplyRoutingRulesResponse)(nil), // 21: vtctldata.ApplyRoutingRulesResponse + (*ApplyShardRoutingRulesRequest)(nil), // 22: vtctldata.ApplyShardRoutingRulesRequest + (*ApplyShardRoutingRulesResponse)(nil), // 23: vtctldata.ApplyShardRoutingRulesResponse + (*ApplySchemaRequest)(nil), // 24: vtctldata.ApplySchemaRequest + (*ApplySchemaResponse)(nil), // 25: vtctldata.ApplySchemaResponse + (*ApplyVSchemaRequest)(nil), // 26: vtctldata.ApplyVSchemaRequest + (*ApplyVSchemaResponse)(nil), // 27: vtctldata.ApplyVSchemaResponse + (*BackupRequest)(nil), // 28: vtctldata.BackupRequest + (*BackupResponse)(nil), // 29: vtctldata.BackupResponse + (*BackupShardRequest)(nil), // 30: vtctldata.BackupShardRequest + (*CancelSchemaMigrationRequest)(nil), // 31: vtctldata.CancelSchemaMigrationRequest + (*CancelSchemaMigrationResponse)(nil), // 32: vtctldata.CancelSchemaMigrationResponse + (*ChangeTabletTagsRequest)(nil), // 33: vtctldata.ChangeTabletTagsRequest + (*ChangeTabletTagsResponse)(nil), // 34: vtctldata.ChangeTabletTagsResponse + (*ChangeTabletTypeRequest)(nil), // 35: vtctldata.ChangeTabletTypeRequest + (*ChangeTabletTypeResponse)(nil), // 36: vtctldata.ChangeTabletTypeResponse + (*CheckThrottlerRequest)(nil), // 37: vtctldata.CheckThrottlerRequest + (*CheckThrottlerResponse)(nil), // 38: vtctldata.CheckThrottlerResponse + (*CleanupSchemaMigrationRequest)(nil), // 39: vtctldata.CleanupSchemaMigrationRequest + (*CleanupSchemaMigrationResponse)(nil), // 40: vtctldata.CleanupSchemaMigrationResponse + (*CompleteSchemaMigrationRequest)(nil), // 41: vtctldata.CompleteSchemaMigrationRequest + (*CompleteSchemaMigrationResponse)(nil), // 42: vtctldata.CompleteSchemaMigrationResponse + (*CopySchemaShardRequest)(nil), // 43: vtctldata.CopySchemaShardRequest + (*CopySchemaShardResponse)(nil), // 44: vtctldata.CopySchemaShardResponse + (*CreateKeyspaceRequest)(nil), // 45: vtctldata.CreateKeyspaceRequest + (*CreateKeyspaceResponse)(nil), // 46: vtctldata.CreateKeyspaceResponse + (*CreateShardRequest)(nil), // 47: vtctldata.CreateShardRequest + (*CreateShardResponse)(nil), // 48: vtctldata.CreateShardResponse + (*DeleteCellInfoRequest)(nil), // 49: vtctldata.DeleteCellInfoRequest + (*DeleteCellInfoResponse)(nil), // 50: vtctldata.DeleteCellInfoResponse + (*DeleteCellsAliasRequest)(nil), // 51: vtctldata.DeleteCellsAliasRequest + (*DeleteCellsAliasResponse)(nil), // 52: vtctldata.DeleteCellsAliasResponse + (*DeleteKeyspaceRequest)(nil), // 53: vtctldata.DeleteKeyspaceRequest + (*DeleteKeyspaceResponse)(nil), // 54: vtctldata.DeleteKeyspaceResponse + (*DeleteShardsRequest)(nil), // 55: vtctldata.DeleteShardsRequest + (*DeleteShardsResponse)(nil), // 56: vtctldata.DeleteShardsResponse + (*DeleteSrvVSchemaRequest)(nil), // 57: vtctldata.DeleteSrvVSchemaRequest + (*DeleteSrvVSchemaResponse)(nil), // 58: vtctldata.DeleteSrvVSchemaResponse + (*DeleteTabletsRequest)(nil), // 59: vtctldata.DeleteTabletsRequest + (*DeleteTabletsResponse)(nil), // 60: vtctldata.DeleteTabletsResponse + (*EmergencyReparentShardRequest)(nil), // 61: vtctldata.EmergencyReparentShardRequest + (*EmergencyReparentShardResponse)(nil), // 62: vtctldata.EmergencyReparentShardResponse + (*ExecuteFetchAsAppRequest)(nil), // 63: vtctldata.ExecuteFetchAsAppRequest + (*ExecuteFetchAsAppResponse)(nil), // 64: vtctldata.ExecuteFetchAsAppResponse + (*ExecuteFetchAsDBARequest)(nil), // 65: vtctldata.ExecuteFetchAsDBARequest + (*ExecuteFetchAsDBAResponse)(nil), // 66: vtctldata.ExecuteFetchAsDBAResponse + (*ExecuteHookRequest)(nil), // 67: vtctldata.ExecuteHookRequest + (*ExecuteHookResponse)(nil), // 68: vtctldata.ExecuteHookResponse + (*ExecuteMultiFetchAsDBARequest)(nil), // 69: vtctldata.ExecuteMultiFetchAsDBARequest + (*ExecuteMultiFetchAsDBAResponse)(nil), // 70: vtctldata.ExecuteMultiFetchAsDBAResponse + (*FindAllShardsInKeyspaceRequest)(nil), // 71: vtctldata.FindAllShardsInKeyspaceRequest + (*FindAllShardsInKeyspaceResponse)(nil), // 72: vtctldata.FindAllShardsInKeyspaceResponse + (*ForceCutOverSchemaMigrationRequest)(nil), // 73: vtctldata.ForceCutOverSchemaMigrationRequest + (*ForceCutOverSchemaMigrationResponse)(nil), // 74: vtctldata.ForceCutOverSchemaMigrationResponse + (*GetBackupsRequest)(nil), // 75: vtctldata.GetBackupsRequest + (*GetBackupsResponse)(nil), // 76: vtctldata.GetBackupsResponse + (*GetCellInfoRequest)(nil), // 77: vtctldata.GetCellInfoRequest + (*GetCellInfoResponse)(nil), // 78: vtctldata.GetCellInfoResponse + (*GetCellInfoNamesRequest)(nil), // 79: vtctldata.GetCellInfoNamesRequest + (*GetCellInfoNamesResponse)(nil), // 80: vtctldata.GetCellInfoNamesResponse + (*GetCellsAliasesRequest)(nil), // 81: vtctldata.GetCellsAliasesRequest + (*GetCellsAliasesResponse)(nil), // 82: vtctldata.GetCellsAliasesResponse + (*GetFullStatusRequest)(nil), // 83: vtctldata.GetFullStatusRequest + (*GetFullStatusResponse)(nil), // 84: vtctldata.GetFullStatusResponse + (*GetKeyspacesRequest)(nil), // 85: vtctldata.GetKeyspacesRequest + (*GetKeyspacesResponse)(nil), // 86: vtctldata.GetKeyspacesResponse + (*GetKeyspaceRequest)(nil), // 87: vtctldata.GetKeyspaceRequest + (*GetKeyspaceResponse)(nil), // 88: vtctldata.GetKeyspaceResponse + (*GetPermissionsRequest)(nil), // 89: vtctldata.GetPermissionsRequest + (*GetPermissionsResponse)(nil), // 90: vtctldata.GetPermissionsResponse + (*GetKeyspaceRoutingRulesRequest)(nil), // 91: vtctldata.GetKeyspaceRoutingRulesRequest + (*GetKeyspaceRoutingRulesResponse)(nil), // 92: vtctldata.GetKeyspaceRoutingRulesResponse + (*GetRoutingRulesRequest)(nil), // 93: vtctldata.GetRoutingRulesRequest + (*GetRoutingRulesResponse)(nil), // 94: vtctldata.GetRoutingRulesResponse + (*GetSchemaRequest)(nil), // 95: vtctldata.GetSchemaRequest + (*GetSchemaResponse)(nil), // 96: vtctldata.GetSchemaResponse + (*GetSchemaMigrationsRequest)(nil), // 97: vtctldata.GetSchemaMigrationsRequest + (*GetSchemaMigrationsResponse)(nil), // 98: vtctldata.GetSchemaMigrationsResponse + (*GetShardReplicationRequest)(nil), // 99: vtctldata.GetShardReplicationRequest + (*GetShardReplicationResponse)(nil), // 100: vtctldata.GetShardReplicationResponse + (*GetShardRequest)(nil), // 101: vtctldata.GetShardRequest + (*GetShardResponse)(nil), // 102: vtctldata.GetShardResponse + (*GetShardRoutingRulesRequest)(nil), // 103: vtctldata.GetShardRoutingRulesRequest + (*GetShardRoutingRulesResponse)(nil), // 104: vtctldata.GetShardRoutingRulesResponse + (*GetSrvKeyspaceNamesRequest)(nil), // 105: vtctldata.GetSrvKeyspaceNamesRequest + (*GetSrvKeyspaceNamesResponse)(nil), // 106: vtctldata.GetSrvKeyspaceNamesResponse + (*GetSrvKeyspacesRequest)(nil), // 107: vtctldata.GetSrvKeyspacesRequest + (*GetSrvKeyspacesResponse)(nil), // 108: vtctldata.GetSrvKeyspacesResponse + (*UpdateThrottlerConfigRequest)(nil), // 109: vtctldata.UpdateThrottlerConfigRequest + (*UpdateThrottlerConfigResponse)(nil), // 110: vtctldata.UpdateThrottlerConfigResponse + (*GetSrvVSchemaRequest)(nil), // 111: vtctldata.GetSrvVSchemaRequest + (*GetSrvVSchemaResponse)(nil), // 112: vtctldata.GetSrvVSchemaResponse + (*GetSrvVSchemasRequest)(nil), // 113: vtctldata.GetSrvVSchemasRequest + (*GetSrvVSchemasResponse)(nil), // 114: vtctldata.GetSrvVSchemasResponse + (*GetTabletRequest)(nil), // 115: vtctldata.GetTabletRequest + (*GetTabletResponse)(nil), // 116: vtctldata.GetTabletResponse + (*GetTabletsRequest)(nil), // 117: vtctldata.GetTabletsRequest + (*GetTabletsResponse)(nil), // 118: vtctldata.GetTabletsResponse + (*GetThrottlerStatusRequest)(nil), // 119: vtctldata.GetThrottlerStatusRequest + (*GetThrottlerStatusResponse)(nil), // 120: vtctldata.GetThrottlerStatusResponse + (*GetTopologyPathRequest)(nil), // 121: vtctldata.GetTopologyPathRequest + (*GetTopologyPathResponse)(nil), // 122: vtctldata.GetTopologyPathResponse + (*TopologyCell)(nil), // 123: vtctldata.TopologyCell + (*GetUnresolvedTransactionsRequest)(nil), // 124: vtctldata.GetUnresolvedTransactionsRequest + (*GetUnresolvedTransactionsResponse)(nil), // 125: vtctldata.GetUnresolvedTransactionsResponse + (*GetTransactionInfoRequest)(nil), // 126: vtctldata.GetTransactionInfoRequest + (*ShardTransactionState)(nil), // 127: vtctldata.ShardTransactionState + (*GetTransactionInfoResponse)(nil), // 128: vtctldata.GetTransactionInfoResponse + (*ConcludeTransactionRequest)(nil), // 129: vtctldata.ConcludeTransactionRequest + (*ConcludeTransactionResponse)(nil), // 130: vtctldata.ConcludeTransactionResponse + (*GetVSchemaRequest)(nil), // 131: vtctldata.GetVSchemaRequest + (*GetVersionRequest)(nil), // 132: vtctldata.GetVersionRequest + (*GetVersionResponse)(nil), // 133: vtctldata.GetVersionResponse + (*GetVSchemaResponse)(nil), // 134: vtctldata.GetVSchemaResponse + (*GetWorkflowsRequest)(nil), // 135: vtctldata.GetWorkflowsRequest + (*GetWorkflowsResponse)(nil), // 136: vtctldata.GetWorkflowsResponse + (*InitShardPrimaryRequest)(nil), // 137: vtctldata.InitShardPrimaryRequest + (*InitShardPrimaryResponse)(nil), // 138: vtctldata.InitShardPrimaryResponse + (*LaunchSchemaMigrationRequest)(nil), // 139: vtctldata.LaunchSchemaMigrationRequest + (*LaunchSchemaMigrationResponse)(nil), // 140: vtctldata.LaunchSchemaMigrationResponse + (*LookupVindexCompleteRequest)(nil), // 141: vtctldata.LookupVindexCompleteRequest + (*LookupVindexCompleteResponse)(nil), // 142: vtctldata.LookupVindexCompleteResponse + (*LookupVindexCreateRequest)(nil), // 143: vtctldata.LookupVindexCreateRequest + (*LookupVindexCreateResponse)(nil), // 144: vtctldata.LookupVindexCreateResponse + (*LookupVindexExternalizeRequest)(nil), // 145: vtctldata.LookupVindexExternalizeRequest + (*LookupVindexExternalizeResponse)(nil), // 146: vtctldata.LookupVindexExternalizeResponse + (*LookupVindexInternalizeRequest)(nil), // 147: vtctldata.LookupVindexInternalizeRequest + (*LookupVindexInternalizeResponse)(nil), // 148: vtctldata.LookupVindexInternalizeResponse + (*MaterializeCreateRequest)(nil), // 149: vtctldata.MaterializeCreateRequest + (*MaterializeCreateResponse)(nil), // 150: vtctldata.MaterializeCreateResponse + (*WorkflowAddTablesRequest)(nil), // 151: vtctldata.WorkflowAddTablesRequest + (*WorkflowAddTablesResponse)(nil), // 152: vtctldata.WorkflowAddTablesResponse + (*MigrateCreateRequest)(nil), // 153: vtctldata.MigrateCreateRequest + (*MigrateCompleteRequest)(nil), // 154: vtctldata.MigrateCompleteRequest + (*MigrateCompleteResponse)(nil), // 155: vtctldata.MigrateCompleteResponse + (*MountRegisterRequest)(nil), // 156: vtctldata.MountRegisterRequest + (*MountRegisterResponse)(nil), // 157: vtctldata.MountRegisterResponse + (*MountUnregisterRequest)(nil), // 158: vtctldata.MountUnregisterRequest + (*MountUnregisterResponse)(nil), // 159: vtctldata.MountUnregisterResponse + (*MountShowRequest)(nil), // 160: vtctldata.MountShowRequest + (*MountShowResponse)(nil), // 161: vtctldata.MountShowResponse + (*MountListRequest)(nil), // 162: vtctldata.MountListRequest + (*MountListResponse)(nil), // 163: vtctldata.MountListResponse + (*MoveTablesCreateRequest)(nil), // 164: vtctldata.MoveTablesCreateRequest + (*MoveTablesCreateResponse)(nil), // 165: vtctldata.MoveTablesCreateResponse + (*MoveTablesCompleteRequest)(nil), // 166: vtctldata.MoveTablesCompleteRequest + (*MoveTablesCompleteResponse)(nil), // 167: vtctldata.MoveTablesCompleteResponse + (*PingTabletRequest)(nil), // 168: vtctldata.PingTabletRequest + (*PingTabletResponse)(nil), // 169: vtctldata.PingTabletResponse + (*PlannedReparentShardRequest)(nil), // 170: vtctldata.PlannedReparentShardRequest + (*PlannedReparentShardResponse)(nil), // 171: vtctldata.PlannedReparentShardResponse + (*RebuildKeyspaceGraphRequest)(nil), // 172: vtctldata.RebuildKeyspaceGraphRequest + (*RebuildKeyspaceGraphResponse)(nil), // 173: vtctldata.RebuildKeyspaceGraphResponse + (*RebuildVSchemaGraphRequest)(nil), // 174: vtctldata.RebuildVSchemaGraphRequest + (*RebuildVSchemaGraphResponse)(nil), // 175: vtctldata.RebuildVSchemaGraphResponse + (*RefreshStateRequest)(nil), // 176: vtctldata.RefreshStateRequest + (*RefreshStateResponse)(nil), // 177: vtctldata.RefreshStateResponse + (*RefreshStateByShardRequest)(nil), // 178: vtctldata.RefreshStateByShardRequest + (*RefreshStateByShardResponse)(nil), // 179: vtctldata.RefreshStateByShardResponse + (*ReloadSchemaRequest)(nil), // 180: vtctldata.ReloadSchemaRequest + (*ReloadSchemaResponse)(nil), // 181: vtctldata.ReloadSchemaResponse + (*ReloadSchemaKeyspaceRequest)(nil), // 182: vtctldata.ReloadSchemaKeyspaceRequest + (*ReloadSchemaKeyspaceResponse)(nil), // 183: vtctldata.ReloadSchemaKeyspaceResponse + (*ReloadSchemaShardRequest)(nil), // 184: vtctldata.ReloadSchemaShardRequest + (*ReloadSchemaShardResponse)(nil), // 185: vtctldata.ReloadSchemaShardResponse + (*RemoveBackupRequest)(nil), // 186: vtctldata.RemoveBackupRequest + (*RemoveBackupResponse)(nil), // 187: vtctldata.RemoveBackupResponse + (*RemoveKeyspaceCellRequest)(nil), // 188: vtctldata.RemoveKeyspaceCellRequest + (*RemoveKeyspaceCellResponse)(nil), // 189: vtctldata.RemoveKeyspaceCellResponse + (*RemoveShardCellRequest)(nil), // 190: vtctldata.RemoveShardCellRequest + (*RemoveShardCellResponse)(nil), // 191: vtctldata.RemoveShardCellResponse + (*ReparentTabletRequest)(nil), // 192: vtctldata.ReparentTabletRequest + (*ReparentTabletResponse)(nil), // 193: vtctldata.ReparentTabletResponse + (*ReshardCreateRequest)(nil), // 194: vtctldata.ReshardCreateRequest + (*RestoreFromBackupRequest)(nil), // 195: vtctldata.RestoreFromBackupRequest + (*RestoreFromBackupResponse)(nil), // 196: vtctldata.RestoreFromBackupResponse + (*RetrySchemaMigrationRequest)(nil), // 197: vtctldata.RetrySchemaMigrationRequest + (*RetrySchemaMigrationResponse)(nil), // 198: vtctldata.RetrySchemaMigrationResponse + (*RunHealthCheckRequest)(nil), // 199: vtctldata.RunHealthCheckRequest + (*RunHealthCheckResponse)(nil), // 200: vtctldata.RunHealthCheckResponse + (*SetKeyspaceDurabilityPolicyRequest)(nil), // 201: vtctldata.SetKeyspaceDurabilityPolicyRequest + (*SetKeyspaceDurabilityPolicyResponse)(nil), // 202: vtctldata.SetKeyspaceDurabilityPolicyResponse + (*SetKeyspaceShardingInfoRequest)(nil), // 203: vtctldata.SetKeyspaceShardingInfoRequest + (*SetKeyspaceShardingInfoResponse)(nil), // 204: vtctldata.SetKeyspaceShardingInfoResponse + (*SetShardIsPrimaryServingRequest)(nil), // 205: vtctldata.SetShardIsPrimaryServingRequest + (*SetShardIsPrimaryServingResponse)(nil), // 206: vtctldata.SetShardIsPrimaryServingResponse + (*SetShardTabletControlRequest)(nil), // 207: vtctldata.SetShardTabletControlRequest + (*SetShardTabletControlResponse)(nil), // 208: vtctldata.SetShardTabletControlResponse + (*SetWritableRequest)(nil), // 209: vtctldata.SetWritableRequest + (*SetWritableResponse)(nil), // 210: vtctldata.SetWritableResponse + (*ShardReplicationAddRequest)(nil), // 211: vtctldata.ShardReplicationAddRequest + (*ShardReplicationAddResponse)(nil), // 212: vtctldata.ShardReplicationAddResponse + (*ShardReplicationFixRequest)(nil), // 213: vtctldata.ShardReplicationFixRequest + (*ShardReplicationFixResponse)(nil), // 214: vtctldata.ShardReplicationFixResponse + (*ShardReplicationPositionsRequest)(nil), // 215: vtctldata.ShardReplicationPositionsRequest + (*ShardReplicationPositionsResponse)(nil), // 216: vtctldata.ShardReplicationPositionsResponse + (*ShardReplicationRemoveRequest)(nil), // 217: vtctldata.ShardReplicationRemoveRequest + (*ShardReplicationRemoveResponse)(nil), // 218: vtctldata.ShardReplicationRemoveResponse + (*SleepTabletRequest)(nil), // 219: vtctldata.SleepTabletRequest + (*SleepTabletResponse)(nil), // 220: vtctldata.SleepTabletResponse + (*SourceShardAddRequest)(nil), // 221: vtctldata.SourceShardAddRequest + (*SourceShardAddResponse)(nil), // 222: vtctldata.SourceShardAddResponse + (*SourceShardDeleteRequest)(nil), // 223: vtctldata.SourceShardDeleteRequest + (*SourceShardDeleteResponse)(nil), // 224: vtctldata.SourceShardDeleteResponse + (*StartReplicationRequest)(nil), // 225: vtctldata.StartReplicationRequest + (*StartReplicationResponse)(nil), // 226: vtctldata.StartReplicationResponse + (*StopReplicationRequest)(nil), // 227: vtctldata.StopReplicationRequest + (*StopReplicationResponse)(nil), // 228: vtctldata.StopReplicationResponse + (*TabletExternallyReparentedRequest)(nil), // 229: vtctldata.TabletExternallyReparentedRequest + (*TabletExternallyReparentedResponse)(nil), // 230: vtctldata.TabletExternallyReparentedResponse + (*UpdateCellInfoRequest)(nil), // 231: vtctldata.UpdateCellInfoRequest + (*UpdateCellInfoResponse)(nil), // 232: vtctldata.UpdateCellInfoResponse + (*UpdateCellsAliasRequest)(nil), // 233: vtctldata.UpdateCellsAliasRequest + (*UpdateCellsAliasResponse)(nil), // 234: vtctldata.UpdateCellsAliasResponse + (*ValidateRequest)(nil), // 235: vtctldata.ValidateRequest + (*ValidateResponse)(nil), // 236: vtctldata.ValidateResponse + (*ValidateKeyspaceRequest)(nil), // 237: vtctldata.ValidateKeyspaceRequest + (*ValidateKeyspaceResponse)(nil), // 238: vtctldata.ValidateKeyspaceResponse + (*ValidatePermissionsKeyspaceRequest)(nil), // 239: vtctldata.ValidatePermissionsKeyspaceRequest + (*ValidatePermissionsKeyspaceResponse)(nil), // 240: vtctldata.ValidatePermissionsKeyspaceResponse + (*ValidateSchemaKeyspaceRequest)(nil), // 241: vtctldata.ValidateSchemaKeyspaceRequest + (*ValidateSchemaKeyspaceResponse)(nil), // 242: vtctldata.ValidateSchemaKeyspaceResponse + (*ValidateShardRequest)(nil), // 243: vtctldata.ValidateShardRequest + (*ValidateShardResponse)(nil), // 244: vtctldata.ValidateShardResponse + (*ValidateVersionKeyspaceRequest)(nil), // 245: vtctldata.ValidateVersionKeyspaceRequest + (*ValidateVersionKeyspaceResponse)(nil), // 246: vtctldata.ValidateVersionKeyspaceResponse + (*ValidateVersionShardRequest)(nil), // 247: vtctldata.ValidateVersionShardRequest + (*ValidateVersionShardResponse)(nil), // 248: vtctldata.ValidateVersionShardResponse + (*ValidateVSchemaRequest)(nil), // 249: vtctldata.ValidateVSchemaRequest + (*ValidateVSchemaResponse)(nil), // 250: vtctldata.ValidateVSchemaResponse + (*VDiffCreateRequest)(nil), // 251: vtctldata.VDiffCreateRequest + (*VDiffCreateResponse)(nil), // 252: vtctldata.VDiffCreateResponse + (*VDiffDeleteRequest)(nil), // 253: vtctldata.VDiffDeleteRequest + (*VDiffDeleteResponse)(nil), // 254: vtctldata.VDiffDeleteResponse + (*VDiffResumeRequest)(nil), // 255: vtctldata.VDiffResumeRequest + (*VDiffResumeResponse)(nil), // 256: vtctldata.VDiffResumeResponse + (*VDiffShowRequest)(nil), // 257: vtctldata.VDiffShowRequest + (*VDiffShowResponse)(nil), // 258: vtctldata.VDiffShowResponse + (*VDiffStopRequest)(nil), // 259: vtctldata.VDiffStopRequest + (*VDiffStopResponse)(nil), // 260: vtctldata.VDiffStopResponse + (*WorkflowDeleteRequest)(nil), // 261: vtctldata.WorkflowDeleteRequest + (*WorkflowDeleteResponse)(nil), // 262: vtctldata.WorkflowDeleteResponse + (*WorkflowStatusRequest)(nil), // 263: vtctldata.WorkflowStatusRequest + (*WorkflowStatusResponse)(nil), // 264: vtctldata.WorkflowStatusResponse + (*WorkflowSwitchTrafficRequest)(nil), // 265: vtctldata.WorkflowSwitchTrafficRequest + (*WorkflowSwitchTrafficResponse)(nil), // 266: vtctldata.WorkflowSwitchTrafficResponse + (*WorkflowUpdateRequest)(nil), // 267: vtctldata.WorkflowUpdateRequest + (*WorkflowUpdateResponse)(nil), // 268: vtctldata.WorkflowUpdateResponse + (*GetMirrorRulesRequest)(nil), // 269: vtctldata.GetMirrorRulesRequest + (*GetMirrorRulesResponse)(nil), // 270: vtctldata.GetMirrorRulesResponse + (*WorkflowMirrorTrafficRequest)(nil), // 271: vtctldata.WorkflowMirrorTrafficRequest + (*WorkflowMirrorTrafficResponse)(nil), // 272: vtctldata.WorkflowMirrorTrafficResponse + (*SetVtorcEmergencyReparentRequest)(nil), // 273: vtctldata.SetVtorcEmergencyReparentRequest + (*SetVtorcEmergencyReparentResponse)(nil), // 274: vtctldata.SetVtorcEmergencyReparentResponse + nil, // 275: vtctldata.WorkflowOptions.ConfigEntry + nil, // 276: vtctldata.Workflow.ShardStreamsEntry + (*Workflow_ReplicationLocation)(nil), // 277: vtctldata.Workflow.ReplicationLocation + (*Workflow_ShardStream)(nil), // 278: vtctldata.Workflow.ShardStream + (*Workflow_Stream)(nil), // 279: vtctldata.Workflow.Stream + (*Workflow_Stream_CopyState)(nil), // 280: vtctldata.Workflow.Stream.CopyState + (*Workflow_Stream_Log)(nil), // 281: vtctldata.Workflow.Stream.Log + (*Workflow_Stream_ThrottlerStatus)(nil), // 282: vtctldata.Workflow.Stream.ThrottlerStatus + nil, // 283: vtctldata.ApplySchemaResponse.RowsAffectedByShardEntry + nil, // 284: vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry + (*ApplyVSchemaResponse_ParamList)(nil), // 285: vtctldata.ApplyVSchemaResponse.ParamList + nil, // 286: vtctldata.CancelSchemaMigrationResponse.RowsAffectedByShardEntry + nil, // 287: vtctldata.ChangeTabletTagsRequest.TagsEntry + nil, // 288: vtctldata.ChangeTabletTagsResponse.BeforeTagsEntry + nil, // 289: vtctldata.ChangeTabletTagsResponse.AfterTagsEntry + nil, // 290: vtctldata.CleanupSchemaMigrationResponse.RowsAffectedByShardEntry + nil, // 291: vtctldata.CompleteSchemaMigrationResponse.RowsAffectedByShardEntry + nil, // 292: vtctldata.FindAllShardsInKeyspaceResponse.ShardsEntry + nil, // 293: vtctldata.ForceCutOverSchemaMigrationResponse.RowsAffectedByShardEntry + nil, // 294: vtctldata.GetCellsAliasesResponse.AliasesEntry + nil, // 295: vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry + nil, // 296: vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry + (*GetSrvKeyspaceNamesResponse_NameList)(nil), // 297: vtctldata.GetSrvKeyspaceNamesResponse.NameList + nil, // 298: vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry + nil, // 299: vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry + nil, // 300: vtctldata.LaunchSchemaMigrationResponse.RowsAffectedByShardEntry + (*MoveTablesCreateResponse_TabletInfo)(nil), // 301: vtctldata.MoveTablesCreateResponse.TabletInfo + nil, // 302: vtctldata.RetrySchemaMigrationResponse.RowsAffectedByShardEntry + nil, // 303: vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry + nil, // 304: vtctldata.ShardReplicationPositionsResponse.TabletMapEntry + nil, // 305: vtctldata.ValidateResponse.ResultsByKeyspaceEntry + nil, // 306: vtctldata.ValidateKeyspaceResponse.ResultsByShardEntry + nil, // 307: vtctldata.ValidateSchemaKeyspaceResponse.ResultsByShardEntry + nil, // 308: vtctldata.ValidateVersionKeyspaceResponse.ResultsByShardEntry + nil, // 309: vtctldata.ValidateVSchemaResponse.ResultsByShardEntry + nil, // 310: vtctldata.VDiffShowResponse.TabletResponsesEntry + (*WorkflowDeleteResponse_TabletInfo)(nil), // 311: vtctldata.WorkflowDeleteResponse.TabletInfo + (*WorkflowStatusResponse_TableCopyState)(nil), // 312: vtctldata.WorkflowStatusResponse.TableCopyState + (*WorkflowStatusResponse_ShardStreamState)(nil), // 313: vtctldata.WorkflowStatusResponse.ShardStreamState + (*WorkflowStatusResponse_ShardStreams)(nil), // 314: vtctldata.WorkflowStatusResponse.ShardStreams + nil, // 315: vtctldata.WorkflowStatusResponse.TableCopyStateEntry + nil, // 316: vtctldata.WorkflowStatusResponse.ShardStreamsEntry + (*WorkflowUpdateResponse_TabletInfo)(nil), // 317: vtctldata.WorkflowUpdateResponse.TabletInfo + (*logutil.Event)(nil), // 318: logutil.Event + (tabletmanagerdata.TabletSelectionPreference)(0), // 319: tabletmanagerdata.TabletSelectionPreference + (*topodata.Keyspace)(nil), // 320: topodata.Keyspace + (*vttime.Time)(nil), // 321: vttime.Time + (*topodata.TabletAlias)(nil), // 322: topodata.TabletAlias + (*vttime.Duration)(nil), // 323: vttime.Duration + (*topodata.Shard)(nil), // 324: topodata.Shard + (*topodata.CellInfo)(nil), // 325: topodata.CellInfo + (*vschema.KeyspaceRoutingRules)(nil), // 326: vschema.KeyspaceRoutingRules + (*vschema.RoutingRules)(nil), // 327: vschema.RoutingRules + (*vschema.ShardRoutingRules)(nil), // 328: vschema.ShardRoutingRules + (*vtrpc.CallerID)(nil), // 329: vtrpc.CallerID + (*vschema.Keyspace)(nil), // 330: vschema.Keyspace + (topodata.TabletType)(0), // 331: topodata.TabletType + (*topodata.Tablet)(nil), // 332: topodata.Tablet + (*tabletmanagerdata.CheckThrottlerResponse)(nil), // 333: tabletmanagerdata.CheckThrottlerResponse + (topodata.KeyspaceType)(0), // 334: topodata.KeyspaceType + (*query.QueryResult)(nil), // 335: query.QueryResult + (*tabletmanagerdata.ExecuteHookRequest)(nil), // 336: tabletmanagerdata.ExecuteHookRequest + (*tabletmanagerdata.ExecuteHookResponse)(nil), // 337: tabletmanagerdata.ExecuteHookResponse + (*mysqlctl.BackupInfo)(nil), // 338: mysqlctl.BackupInfo + (*replicationdata.FullStatus)(nil), // 339: replicationdata.FullStatus + (*tabletmanagerdata.Permissions)(nil), // 340: tabletmanagerdata.Permissions + (*tabletmanagerdata.SchemaDefinition)(nil), // 341: tabletmanagerdata.SchemaDefinition + (*topodata.ThrottledAppRule)(nil), // 342: topodata.ThrottledAppRule + (*vschema.SrvVSchema)(nil), // 343: vschema.SrvVSchema + (*tabletmanagerdata.GetThrottlerStatusResponse)(nil), // 344: tabletmanagerdata.GetThrottlerStatusResponse + (*query.TransactionMetadata)(nil), // 345: query.TransactionMetadata + (*query.Target)(nil), // 346: query.Target + (*topodata.ShardReplicationError)(nil), // 347: topodata.ShardReplicationError + (*topodata.KeyRange)(nil), // 348: topodata.KeyRange + (*topodata.CellsAlias)(nil), // 349: topodata.CellsAlias + (*tabletmanagerdata.UpdateVReplicationWorkflowRequest)(nil), // 350: tabletmanagerdata.UpdateVReplicationWorkflowRequest + (*vschema.MirrorRules)(nil), // 351: vschema.MirrorRules + (*topodata.Shard_TabletControl)(nil), // 352: topodata.Shard.TabletControl + (*binlogdata.BinlogSource)(nil), // 353: binlogdata.BinlogSource + (*topodata.ShardReplication)(nil), // 354: topodata.ShardReplication + (*topodata.SrvKeyspace)(nil), // 355: topodata.SrvKeyspace + (*replicationdata.Status)(nil), // 356: replicationdata.Status + (*tabletmanagerdata.VDiffResponse)(nil), // 357: tabletmanagerdata.VDiffResponse } var file_vtctldata_proto_depIdxs = []int32{ - 316, // 0: vtctldata.ExecuteVtctlCommandResponse.event:type_name -> logutil.Event + 318, // 0: vtctldata.ExecuteVtctlCommandResponse.event:type_name -> logutil.Event 7, // 1: vtctldata.MaterializeSettings.table_settings:type_name -> vtctldata.TableMaterializeSettings 0, // 2: vtctldata.MaterializeSettings.materialization_intent:type_name -> vtctldata.MaterializationIntent - 317, // 3: vtctldata.MaterializeSettings.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference + 319, // 3: vtctldata.MaterializeSettings.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference 12, // 4: vtctldata.MaterializeSettings.workflow_options:type_name -> vtctldata.WorkflowOptions - 318, // 5: vtctldata.Keyspace.keyspace:type_name -> topodata.Keyspace + 320, // 5: vtctldata.Keyspace.keyspace:type_name -> topodata.Keyspace 3, // 6: vtctldata.SchemaMigration.strategy:type_name -> vtctldata.SchemaMigration.Strategy - 319, // 7: vtctldata.SchemaMigration.added_at:type_name -> vttime.Time - 319, // 8: vtctldata.SchemaMigration.requested_at:type_name -> vttime.Time - 319, // 9: vtctldata.SchemaMigration.ready_at:type_name -> vttime.Time - 319, // 10: vtctldata.SchemaMigration.started_at:type_name -> vttime.Time - 319, // 11: vtctldata.SchemaMigration.liveness_timestamp:type_name -> vttime.Time - 319, // 12: vtctldata.SchemaMigration.completed_at:type_name -> vttime.Time - 319, // 13: vtctldata.SchemaMigration.cleaned_up_at:type_name -> vttime.Time + 321, // 7: vtctldata.SchemaMigration.added_at:type_name -> vttime.Time + 321, // 8: vtctldata.SchemaMigration.requested_at:type_name -> vttime.Time + 321, // 9: vtctldata.SchemaMigration.ready_at:type_name -> vttime.Time + 321, // 10: vtctldata.SchemaMigration.started_at:type_name -> vttime.Time + 321, // 11: vtctldata.SchemaMigration.liveness_timestamp:type_name -> vttime.Time + 321, // 12: vtctldata.SchemaMigration.completed_at:type_name -> vttime.Time + 321, // 13: vtctldata.SchemaMigration.cleaned_up_at:type_name -> vttime.Time 4, // 14: vtctldata.SchemaMigration.status:type_name -> vtctldata.SchemaMigration.Status - 320, // 15: vtctldata.SchemaMigration.tablet:type_name -> topodata.TabletAlias - 321, // 16: vtctldata.SchemaMigration.artifact_retention:type_name -> vttime.Duration - 319, // 17: vtctldata.SchemaMigration.last_throttled_at:type_name -> vttime.Time - 319, // 18: vtctldata.SchemaMigration.cancelled_at:type_name -> vttime.Time - 319, // 19: vtctldata.SchemaMigration.reviewed_at:type_name -> vttime.Time - 319, // 20: vtctldata.SchemaMigration.ready_to_complete_at:type_name -> vttime.Time - 322, // 21: vtctldata.Shard.shard:type_name -> topodata.Shard + 322, // 15: vtctldata.SchemaMigration.tablet:type_name -> topodata.TabletAlias + 323, // 16: vtctldata.SchemaMigration.artifact_retention:type_name -> vttime.Duration + 321, // 17: vtctldata.SchemaMigration.last_throttled_at:type_name -> vttime.Time + 321, // 18: vtctldata.SchemaMigration.cancelled_at:type_name -> vttime.Time + 321, // 19: vtctldata.SchemaMigration.reviewed_at:type_name -> vttime.Time + 321, // 20: vtctldata.SchemaMigration.ready_to_complete_at:type_name -> vttime.Time + 324, // 21: vtctldata.Shard.shard:type_name -> topodata.Shard 2, // 22: vtctldata.WorkflowOptions.sharded_auto_increment_handling:type_name -> vtctldata.ShardedAutoIncrementHandling - 273, // 23: vtctldata.WorkflowOptions.config:type_name -> vtctldata.WorkflowOptions.ConfigEntry - 275, // 24: vtctldata.Workflow.source:type_name -> vtctldata.Workflow.ReplicationLocation - 275, // 25: vtctldata.Workflow.target:type_name -> vtctldata.Workflow.ReplicationLocation - 274, // 26: vtctldata.Workflow.shard_streams:type_name -> vtctldata.Workflow.ShardStreamsEntry + 275, // 23: vtctldata.WorkflowOptions.config:type_name -> vtctldata.WorkflowOptions.ConfigEntry + 277, // 24: vtctldata.Workflow.source:type_name -> vtctldata.Workflow.ReplicationLocation + 277, // 25: vtctldata.Workflow.target:type_name -> vtctldata.Workflow.ReplicationLocation + 276, // 26: vtctldata.Workflow.shard_streams:type_name -> vtctldata.Workflow.ShardStreamsEntry 12, // 27: vtctldata.Workflow.options:type_name -> vtctldata.WorkflowOptions - 323, // 28: vtctldata.AddCellInfoRequest.cell_info:type_name -> topodata.CellInfo - 324, // 29: vtctldata.ApplyKeyspaceRoutingRulesRequest.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules - 324, // 30: vtctldata.ApplyKeyspaceRoutingRulesResponse.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules - 325, // 31: vtctldata.ApplyRoutingRulesRequest.routing_rules:type_name -> vschema.RoutingRules - 326, // 32: vtctldata.ApplyShardRoutingRulesRequest.shard_routing_rules:type_name -> vschema.ShardRoutingRules - 321, // 33: vtctldata.ApplySchemaRequest.wait_replicas_timeout:type_name -> vttime.Duration - 327, // 34: vtctldata.ApplySchemaRequest.caller_id:type_name -> vtrpc.CallerID - 281, // 35: vtctldata.ApplySchemaResponse.rows_affected_by_shard:type_name -> vtctldata.ApplySchemaResponse.RowsAffectedByShardEntry - 328, // 36: vtctldata.ApplyVSchemaRequest.v_schema:type_name -> vschema.Keyspace - 328, // 37: vtctldata.ApplyVSchemaResponse.v_schema:type_name -> vschema.Keyspace - 282, // 38: vtctldata.ApplyVSchemaResponse.unknown_vindex_params:type_name -> vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry - 320, // 39: vtctldata.BackupRequest.tablet_alias:type_name -> topodata.TabletAlias - 321, // 40: vtctldata.BackupRequest.mysql_shutdown_timeout:type_name -> vttime.Duration - 320, // 41: vtctldata.BackupResponse.tablet_alias:type_name -> topodata.TabletAlias - 316, // 42: vtctldata.BackupResponse.event:type_name -> logutil.Event - 321, // 43: vtctldata.BackupShardRequest.mysql_shutdown_timeout:type_name -> vttime.Duration - 327, // 44: vtctldata.CancelSchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID - 284, // 45: vtctldata.CancelSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CancelSchemaMigrationResponse.RowsAffectedByShardEntry - 320, // 46: vtctldata.ChangeTabletTagsRequest.tablet_alias:type_name -> topodata.TabletAlias - 285, // 47: vtctldata.ChangeTabletTagsRequest.tags:type_name -> vtctldata.ChangeTabletTagsRequest.TagsEntry - 286, // 48: vtctldata.ChangeTabletTagsResponse.before_tags:type_name -> vtctldata.ChangeTabletTagsResponse.BeforeTagsEntry - 287, // 49: vtctldata.ChangeTabletTagsResponse.after_tags:type_name -> vtctldata.ChangeTabletTagsResponse.AfterTagsEntry - 320, // 50: vtctldata.ChangeTabletTypeRequest.tablet_alias:type_name -> topodata.TabletAlias - 329, // 51: vtctldata.ChangeTabletTypeRequest.db_type:type_name -> topodata.TabletType - 330, // 52: vtctldata.ChangeTabletTypeResponse.before_tablet:type_name -> topodata.Tablet - 330, // 53: vtctldata.ChangeTabletTypeResponse.after_tablet:type_name -> topodata.Tablet - 320, // 54: vtctldata.CheckThrottlerRequest.tablet_alias:type_name -> topodata.TabletAlias - 320, // 55: vtctldata.CheckThrottlerResponse.tablet_alias:type_name -> topodata.TabletAlias - 331, // 56: vtctldata.CheckThrottlerResponse.Check:type_name -> tabletmanagerdata.CheckThrottlerResponse - 327, // 57: vtctldata.CleanupSchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID - 288, // 58: vtctldata.CleanupSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CleanupSchemaMigrationResponse.RowsAffectedByShardEntry - 327, // 59: vtctldata.CompleteSchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID - 289, // 60: vtctldata.CompleteSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CompleteSchemaMigrationResponse.RowsAffectedByShardEntry - 320, // 61: vtctldata.CopySchemaShardRequest.source_tablet_alias:type_name -> topodata.TabletAlias - 321, // 62: vtctldata.CopySchemaShardRequest.wait_replicas_timeout:type_name -> vttime.Duration - 332, // 63: vtctldata.CreateKeyspaceRequest.type:type_name -> topodata.KeyspaceType - 319, // 64: vtctldata.CreateKeyspaceRequest.snapshot_time:type_name -> vttime.Time + 325, // 28: vtctldata.AddCellInfoRequest.cell_info:type_name -> topodata.CellInfo + 326, // 29: vtctldata.ApplyKeyspaceRoutingRulesRequest.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules + 326, // 30: vtctldata.ApplyKeyspaceRoutingRulesResponse.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules + 327, // 31: vtctldata.ApplyRoutingRulesRequest.routing_rules:type_name -> vschema.RoutingRules + 328, // 32: vtctldata.ApplyShardRoutingRulesRequest.shard_routing_rules:type_name -> vschema.ShardRoutingRules + 323, // 33: vtctldata.ApplySchemaRequest.wait_replicas_timeout:type_name -> vttime.Duration + 329, // 34: vtctldata.ApplySchemaRequest.caller_id:type_name -> vtrpc.CallerID + 283, // 35: vtctldata.ApplySchemaResponse.rows_affected_by_shard:type_name -> vtctldata.ApplySchemaResponse.RowsAffectedByShardEntry + 330, // 36: vtctldata.ApplyVSchemaRequest.v_schema:type_name -> vschema.Keyspace + 330, // 37: vtctldata.ApplyVSchemaResponse.v_schema:type_name -> vschema.Keyspace + 284, // 38: vtctldata.ApplyVSchemaResponse.unknown_vindex_params:type_name -> vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry + 322, // 39: vtctldata.BackupRequest.tablet_alias:type_name -> topodata.TabletAlias + 323, // 40: vtctldata.BackupRequest.mysql_shutdown_timeout:type_name -> vttime.Duration + 322, // 41: vtctldata.BackupResponse.tablet_alias:type_name -> topodata.TabletAlias + 318, // 42: vtctldata.BackupResponse.event:type_name -> logutil.Event + 323, // 43: vtctldata.BackupShardRequest.mysql_shutdown_timeout:type_name -> vttime.Duration + 329, // 44: vtctldata.CancelSchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID + 286, // 45: vtctldata.CancelSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CancelSchemaMigrationResponse.RowsAffectedByShardEntry + 322, // 46: vtctldata.ChangeTabletTagsRequest.tablet_alias:type_name -> topodata.TabletAlias + 287, // 47: vtctldata.ChangeTabletTagsRequest.tags:type_name -> vtctldata.ChangeTabletTagsRequest.TagsEntry + 288, // 48: vtctldata.ChangeTabletTagsResponse.before_tags:type_name -> vtctldata.ChangeTabletTagsResponse.BeforeTagsEntry + 289, // 49: vtctldata.ChangeTabletTagsResponse.after_tags:type_name -> vtctldata.ChangeTabletTagsResponse.AfterTagsEntry + 322, // 50: vtctldata.ChangeTabletTypeRequest.tablet_alias:type_name -> topodata.TabletAlias + 331, // 51: vtctldata.ChangeTabletTypeRequest.db_type:type_name -> topodata.TabletType + 332, // 52: vtctldata.ChangeTabletTypeResponse.before_tablet:type_name -> topodata.Tablet + 332, // 53: vtctldata.ChangeTabletTypeResponse.after_tablet:type_name -> topodata.Tablet + 322, // 54: vtctldata.CheckThrottlerRequest.tablet_alias:type_name -> topodata.TabletAlias + 322, // 55: vtctldata.CheckThrottlerResponse.tablet_alias:type_name -> topodata.TabletAlias + 333, // 56: vtctldata.CheckThrottlerResponse.Check:type_name -> tabletmanagerdata.CheckThrottlerResponse + 329, // 57: vtctldata.CleanupSchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID + 290, // 58: vtctldata.CleanupSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CleanupSchemaMigrationResponse.RowsAffectedByShardEntry + 329, // 59: vtctldata.CompleteSchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID + 291, // 60: vtctldata.CompleteSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.CompleteSchemaMigrationResponse.RowsAffectedByShardEntry + 322, // 61: vtctldata.CopySchemaShardRequest.source_tablet_alias:type_name -> topodata.TabletAlias + 323, // 62: vtctldata.CopySchemaShardRequest.wait_replicas_timeout:type_name -> vttime.Duration + 334, // 63: vtctldata.CreateKeyspaceRequest.type:type_name -> topodata.KeyspaceType + 321, // 64: vtctldata.CreateKeyspaceRequest.snapshot_time:type_name -> vttime.Time 9, // 65: vtctldata.CreateKeyspaceResponse.keyspace:type_name -> vtctldata.Keyspace 9, // 66: vtctldata.CreateShardResponse.keyspace:type_name -> vtctldata.Keyspace 11, // 67: vtctldata.CreateShardResponse.shard:type_name -> vtctldata.Shard 11, // 68: vtctldata.DeleteShardsRequest.shards:type_name -> vtctldata.Shard - 320, // 69: vtctldata.DeleteTabletsRequest.tablet_aliases:type_name -> topodata.TabletAlias - 320, // 70: vtctldata.EmergencyReparentShardRequest.new_primary:type_name -> topodata.TabletAlias - 320, // 71: vtctldata.EmergencyReparentShardRequest.ignore_replicas:type_name -> topodata.TabletAlias - 321, // 72: vtctldata.EmergencyReparentShardRequest.wait_replicas_timeout:type_name -> vttime.Duration - 320, // 73: vtctldata.EmergencyReparentShardRequest.expected_primary:type_name -> topodata.TabletAlias - 320, // 74: vtctldata.EmergencyReparentShardResponse.promoted_primary:type_name -> topodata.TabletAlias - 316, // 75: vtctldata.EmergencyReparentShardResponse.events:type_name -> logutil.Event - 320, // 76: vtctldata.ExecuteFetchAsAppRequest.tablet_alias:type_name -> topodata.TabletAlias - 333, // 77: vtctldata.ExecuteFetchAsAppResponse.result:type_name -> query.QueryResult - 320, // 78: vtctldata.ExecuteFetchAsDBARequest.tablet_alias:type_name -> topodata.TabletAlias - 333, // 79: vtctldata.ExecuteFetchAsDBAResponse.result:type_name -> query.QueryResult - 320, // 80: vtctldata.ExecuteHookRequest.tablet_alias:type_name -> topodata.TabletAlias - 334, // 81: vtctldata.ExecuteHookRequest.tablet_hook_request:type_name -> tabletmanagerdata.ExecuteHookRequest - 335, // 82: vtctldata.ExecuteHookResponse.hook_result:type_name -> tabletmanagerdata.ExecuteHookResponse - 320, // 83: vtctldata.ExecuteMultiFetchAsDBARequest.tablet_alias:type_name -> topodata.TabletAlias - 333, // 84: vtctldata.ExecuteMultiFetchAsDBAResponse.results:type_name -> query.QueryResult - 290, // 85: vtctldata.FindAllShardsInKeyspaceResponse.shards:type_name -> vtctldata.FindAllShardsInKeyspaceResponse.ShardsEntry - 327, // 86: vtctldata.ForceCutOverSchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID - 291, // 87: vtctldata.ForceCutOverSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.ForceCutOverSchemaMigrationResponse.RowsAffectedByShardEntry - 336, // 88: vtctldata.GetBackupsResponse.backups:type_name -> mysqlctl.BackupInfo - 323, // 89: vtctldata.GetCellInfoResponse.cell_info:type_name -> topodata.CellInfo - 292, // 90: vtctldata.GetCellsAliasesResponse.aliases:type_name -> vtctldata.GetCellsAliasesResponse.AliasesEntry - 320, // 91: vtctldata.GetFullStatusRequest.tablet_alias:type_name -> topodata.TabletAlias - 337, // 92: vtctldata.GetFullStatusResponse.status:type_name -> replicationdata.FullStatus + 322, // 69: vtctldata.DeleteTabletsRequest.tablet_aliases:type_name -> topodata.TabletAlias + 322, // 70: vtctldata.EmergencyReparentShardRequest.new_primary:type_name -> topodata.TabletAlias + 322, // 71: vtctldata.EmergencyReparentShardRequest.ignore_replicas:type_name -> topodata.TabletAlias + 323, // 72: vtctldata.EmergencyReparentShardRequest.wait_replicas_timeout:type_name -> vttime.Duration + 322, // 73: vtctldata.EmergencyReparentShardRequest.expected_primary:type_name -> topodata.TabletAlias + 322, // 74: vtctldata.EmergencyReparentShardResponse.promoted_primary:type_name -> topodata.TabletAlias + 318, // 75: vtctldata.EmergencyReparentShardResponse.events:type_name -> logutil.Event + 322, // 76: vtctldata.ExecuteFetchAsAppRequest.tablet_alias:type_name -> topodata.TabletAlias + 335, // 77: vtctldata.ExecuteFetchAsAppResponse.result:type_name -> query.QueryResult + 322, // 78: vtctldata.ExecuteFetchAsDBARequest.tablet_alias:type_name -> topodata.TabletAlias + 335, // 79: vtctldata.ExecuteFetchAsDBAResponse.result:type_name -> query.QueryResult + 322, // 80: vtctldata.ExecuteHookRequest.tablet_alias:type_name -> topodata.TabletAlias + 336, // 81: vtctldata.ExecuteHookRequest.tablet_hook_request:type_name -> tabletmanagerdata.ExecuteHookRequest + 337, // 82: vtctldata.ExecuteHookResponse.hook_result:type_name -> tabletmanagerdata.ExecuteHookResponse + 322, // 83: vtctldata.ExecuteMultiFetchAsDBARequest.tablet_alias:type_name -> topodata.TabletAlias + 335, // 84: vtctldata.ExecuteMultiFetchAsDBAResponse.results:type_name -> query.QueryResult + 292, // 85: vtctldata.FindAllShardsInKeyspaceResponse.shards:type_name -> vtctldata.FindAllShardsInKeyspaceResponse.ShardsEntry + 329, // 86: vtctldata.ForceCutOverSchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID + 293, // 87: vtctldata.ForceCutOverSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.ForceCutOverSchemaMigrationResponse.RowsAffectedByShardEntry + 338, // 88: vtctldata.GetBackupsResponse.backups:type_name -> mysqlctl.BackupInfo + 325, // 89: vtctldata.GetCellInfoResponse.cell_info:type_name -> topodata.CellInfo + 294, // 90: vtctldata.GetCellsAliasesResponse.aliases:type_name -> vtctldata.GetCellsAliasesResponse.AliasesEntry + 322, // 91: vtctldata.GetFullStatusRequest.tablet_alias:type_name -> topodata.TabletAlias + 339, // 92: vtctldata.GetFullStatusResponse.status:type_name -> replicationdata.FullStatus 9, // 93: vtctldata.GetKeyspacesResponse.keyspaces:type_name -> vtctldata.Keyspace 9, // 94: vtctldata.GetKeyspaceResponse.keyspace:type_name -> vtctldata.Keyspace - 320, // 95: vtctldata.GetPermissionsRequest.tablet_alias:type_name -> topodata.TabletAlias - 338, // 96: vtctldata.GetPermissionsResponse.permissions:type_name -> tabletmanagerdata.Permissions - 324, // 97: vtctldata.GetKeyspaceRoutingRulesResponse.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules - 325, // 98: vtctldata.GetRoutingRulesResponse.routing_rules:type_name -> vschema.RoutingRules - 320, // 99: vtctldata.GetSchemaRequest.tablet_alias:type_name -> topodata.TabletAlias - 339, // 100: vtctldata.GetSchemaResponse.schema:type_name -> tabletmanagerdata.SchemaDefinition + 322, // 95: vtctldata.GetPermissionsRequest.tablet_alias:type_name -> topodata.TabletAlias + 340, // 96: vtctldata.GetPermissionsResponse.permissions:type_name -> tabletmanagerdata.Permissions + 326, // 97: vtctldata.GetKeyspaceRoutingRulesResponse.keyspace_routing_rules:type_name -> vschema.KeyspaceRoutingRules + 327, // 98: vtctldata.GetRoutingRulesResponse.routing_rules:type_name -> vschema.RoutingRules + 322, // 99: vtctldata.GetSchemaRequest.tablet_alias:type_name -> topodata.TabletAlias + 341, // 100: vtctldata.GetSchemaResponse.schema:type_name -> tabletmanagerdata.SchemaDefinition 4, // 101: vtctldata.GetSchemaMigrationsRequest.status:type_name -> vtctldata.SchemaMigration.Status - 321, // 102: vtctldata.GetSchemaMigrationsRequest.recent:type_name -> vttime.Duration + 323, // 102: vtctldata.GetSchemaMigrationsRequest.recent:type_name -> vttime.Duration 1, // 103: vtctldata.GetSchemaMigrationsRequest.order:type_name -> vtctldata.QueryOrdering 10, // 104: vtctldata.GetSchemaMigrationsResponse.migrations:type_name -> vtctldata.SchemaMigration - 293, // 105: vtctldata.GetShardReplicationResponse.shard_replication_by_cell:type_name -> vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry + 295, // 105: vtctldata.GetShardReplicationResponse.shard_replication_by_cell:type_name -> vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry 11, // 106: vtctldata.GetShardResponse.shard:type_name -> vtctldata.Shard - 326, // 107: vtctldata.GetShardRoutingRulesResponse.shard_routing_rules:type_name -> vschema.ShardRoutingRules - 294, // 108: vtctldata.GetSrvKeyspaceNamesResponse.names:type_name -> vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry - 296, // 109: vtctldata.GetSrvKeyspacesResponse.srv_keyspaces:type_name -> vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry - 340, // 110: vtctldata.UpdateThrottlerConfigRequest.throttled_app:type_name -> topodata.ThrottledAppRule - 341, // 111: vtctldata.GetSrvVSchemaResponse.srv_v_schema:type_name -> vschema.SrvVSchema - 297, // 112: vtctldata.GetSrvVSchemasResponse.srv_v_schemas:type_name -> vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry - 320, // 113: vtctldata.GetTabletRequest.tablet_alias:type_name -> topodata.TabletAlias - 330, // 114: vtctldata.GetTabletResponse.tablet:type_name -> topodata.Tablet - 320, // 115: vtctldata.GetTabletsRequest.tablet_aliases:type_name -> topodata.TabletAlias - 329, // 116: vtctldata.GetTabletsRequest.tablet_type:type_name -> topodata.TabletType - 330, // 117: vtctldata.GetTabletsResponse.tablets:type_name -> topodata.Tablet - 320, // 118: vtctldata.GetThrottlerStatusRequest.tablet_alias:type_name -> topodata.TabletAlias - 342, // 119: vtctldata.GetThrottlerStatusResponse.status:type_name -> tabletmanagerdata.GetThrottlerStatusResponse + 328, // 107: vtctldata.GetShardRoutingRulesResponse.shard_routing_rules:type_name -> vschema.ShardRoutingRules + 296, // 108: vtctldata.GetSrvKeyspaceNamesResponse.names:type_name -> vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry + 298, // 109: vtctldata.GetSrvKeyspacesResponse.srv_keyspaces:type_name -> vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry + 342, // 110: vtctldata.UpdateThrottlerConfigRequest.throttled_app:type_name -> topodata.ThrottledAppRule + 343, // 111: vtctldata.GetSrvVSchemaResponse.srv_v_schema:type_name -> vschema.SrvVSchema + 299, // 112: vtctldata.GetSrvVSchemasResponse.srv_v_schemas:type_name -> vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry + 322, // 113: vtctldata.GetTabletRequest.tablet_alias:type_name -> topodata.TabletAlias + 332, // 114: vtctldata.GetTabletResponse.tablet:type_name -> topodata.Tablet + 322, // 115: vtctldata.GetTabletsRequest.tablet_aliases:type_name -> topodata.TabletAlias + 331, // 116: vtctldata.GetTabletsRequest.tablet_type:type_name -> topodata.TabletType + 332, // 117: vtctldata.GetTabletsResponse.tablets:type_name -> topodata.Tablet + 322, // 118: vtctldata.GetThrottlerStatusRequest.tablet_alias:type_name -> topodata.TabletAlias + 344, // 119: vtctldata.GetThrottlerStatusResponse.status:type_name -> tabletmanagerdata.GetThrottlerStatusResponse 123, // 120: vtctldata.GetTopologyPathResponse.cell:type_name -> vtctldata.TopologyCell - 343, // 121: vtctldata.GetUnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata - 343, // 122: vtctldata.GetTransactionInfoResponse.metadata:type_name -> query.TransactionMetadata + 345, // 121: vtctldata.GetUnresolvedTransactionsResponse.transactions:type_name -> query.TransactionMetadata + 345, // 122: vtctldata.GetTransactionInfoResponse.metadata:type_name -> query.TransactionMetadata 127, // 123: vtctldata.GetTransactionInfoResponse.shard_states:type_name -> vtctldata.ShardTransactionState - 344, // 124: vtctldata.ConcludeTransactionRequest.participants:type_name -> query.Target - 320, // 125: vtctldata.GetVersionRequest.tablet_alias:type_name -> topodata.TabletAlias - 328, // 126: vtctldata.GetVSchemaResponse.v_schema:type_name -> vschema.Keyspace + 346, // 124: vtctldata.ConcludeTransactionRequest.participants:type_name -> query.Target + 322, // 125: vtctldata.GetVersionRequest.tablet_alias:type_name -> topodata.TabletAlias + 330, // 126: vtctldata.GetVSchemaResponse.v_schema:type_name -> vschema.Keyspace 13, // 127: vtctldata.GetWorkflowsResponse.workflows:type_name -> vtctldata.Workflow - 320, // 128: vtctldata.InitShardPrimaryRequest.primary_elect_tablet_alias:type_name -> topodata.TabletAlias - 321, // 129: vtctldata.InitShardPrimaryRequest.wait_replicas_timeout:type_name -> vttime.Duration - 316, // 130: vtctldata.InitShardPrimaryResponse.events:type_name -> logutil.Event - 327, // 131: vtctldata.LaunchSchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID - 298, // 132: vtctldata.LaunchSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.LaunchSchemaMigrationResponse.RowsAffectedByShardEntry - 328, // 133: vtctldata.LookupVindexCreateRequest.vindex:type_name -> vschema.Keyspace - 329, // 134: vtctldata.LookupVindexCreateRequest.tablet_types:type_name -> topodata.TabletType - 317, // 135: vtctldata.LookupVindexCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference + 322, // 128: vtctldata.InitShardPrimaryRequest.primary_elect_tablet_alias:type_name -> topodata.TabletAlias + 323, // 129: vtctldata.InitShardPrimaryRequest.wait_replicas_timeout:type_name -> vttime.Duration + 318, // 130: vtctldata.InitShardPrimaryResponse.events:type_name -> logutil.Event + 329, // 131: vtctldata.LaunchSchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID + 300, // 132: vtctldata.LaunchSchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.LaunchSchemaMigrationResponse.RowsAffectedByShardEntry + 330, // 133: vtctldata.LookupVindexCreateRequest.vindex:type_name -> vschema.Keyspace + 331, // 134: vtctldata.LookupVindexCreateRequest.tablet_types:type_name -> topodata.TabletType + 319, // 135: vtctldata.LookupVindexCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference 8, // 136: vtctldata.MaterializeCreateRequest.settings:type_name -> vtctldata.MaterializeSettings 7, // 137: vtctldata.WorkflowAddTablesRequest.table_settings:type_name -> vtctldata.TableMaterializeSettings 0, // 138: vtctldata.WorkflowAddTablesRequest.materialization_intent:type_name -> vtctldata.MaterializationIntent - 329, // 139: vtctldata.MigrateCreateRequest.tablet_types:type_name -> topodata.TabletType - 317, // 140: vtctldata.MigrateCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference - 329, // 141: vtctldata.MoveTablesCreateRequest.tablet_types:type_name -> topodata.TabletType - 317, // 142: vtctldata.MoveTablesCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference + 331, // 139: vtctldata.MigrateCreateRequest.tablet_types:type_name -> topodata.TabletType + 319, // 140: vtctldata.MigrateCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference + 331, // 141: vtctldata.MoveTablesCreateRequest.tablet_types:type_name -> topodata.TabletType + 319, // 142: vtctldata.MoveTablesCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference 12, // 143: vtctldata.MoveTablesCreateRequest.workflow_options:type_name -> vtctldata.WorkflowOptions - 299, // 144: vtctldata.MoveTablesCreateResponse.details:type_name -> vtctldata.MoveTablesCreateResponse.TabletInfo - 320, // 145: vtctldata.PingTabletRequest.tablet_alias:type_name -> topodata.TabletAlias - 320, // 146: vtctldata.PlannedReparentShardRequest.new_primary:type_name -> topodata.TabletAlias - 320, // 147: vtctldata.PlannedReparentShardRequest.avoid_primary:type_name -> topodata.TabletAlias - 321, // 148: vtctldata.PlannedReparentShardRequest.wait_replicas_timeout:type_name -> vttime.Duration - 321, // 149: vtctldata.PlannedReparentShardRequest.tolerable_replication_lag:type_name -> vttime.Duration - 320, // 150: vtctldata.PlannedReparentShardRequest.expected_primary:type_name -> topodata.TabletAlias - 320, // 151: vtctldata.PlannedReparentShardResponse.promoted_primary:type_name -> topodata.TabletAlias - 316, // 152: vtctldata.PlannedReparentShardResponse.events:type_name -> logutil.Event - 320, // 153: vtctldata.RefreshStateRequest.tablet_alias:type_name -> topodata.TabletAlias - 320, // 154: vtctldata.ReloadSchemaRequest.tablet_alias:type_name -> topodata.TabletAlias - 316, // 155: vtctldata.ReloadSchemaKeyspaceResponse.events:type_name -> logutil.Event - 316, // 156: vtctldata.ReloadSchemaShardResponse.events:type_name -> logutil.Event - 320, // 157: vtctldata.ReparentTabletRequest.tablet:type_name -> topodata.TabletAlias - 320, // 158: vtctldata.ReparentTabletResponse.primary:type_name -> topodata.TabletAlias - 329, // 159: vtctldata.ReshardCreateRequest.tablet_types:type_name -> topodata.TabletType - 317, // 160: vtctldata.ReshardCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference + 301, // 144: vtctldata.MoveTablesCreateResponse.details:type_name -> vtctldata.MoveTablesCreateResponse.TabletInfo + 322, // 145: vtctldata.PingTabletRequest.tablet_alias:type_name -> topodata.TabletAlias + 322, // 146: vtctldata.PlannedReparentShardRequest.new_primary:type_name -> topodata.TabletAlias + 322, // 147: vtctldata.PlannedReparentShardRequest.avoid_primary:type_name -> topodata.TabletAlias + 323, // 148: vtctldata.PlannedReparentShardRequest.wait_replicas_timeout:type_name -> vttime.Duration + 323, // 149: vtctldata.PlannedReparentShardRequest.tolerable_replication_lag:type_name -> vttime.Duration + 322, // 150: vtctldata.PlannedReparentShardRequest.expected_primary:type_name -> topodata.TabletAlias + 322, // 151: vtctldata.PlannedReparentShardResponse.promoted_primary:type_name -> topodata.TabletAlias + 318, // 152: vtctldata.PlannedReparentShardResponse.events:type_name -> logutil.Event + 322, // 153: vtctldata.RefreshStateRequest.tablet_alias:type_name -> topodata.TabletAlias + 322, // 154: vtctldata.ReloadSchemaRequest.tablet_alias:type_name -> topodata.TabletAlias + 318, // 155: vtctldata.ReloadSchemaKeyspaceResponse.events:type_name -> logutil.Event + 318, // 156: vtctldata.ReloadSchemaShardResponse.events:type_name -> logutil.Event + 322, // 157: vtctldata.ReparentTabletRequest.tablet:type_name -> topodata.TabletAlias + 322, // 158: vtctldata.ReparentTabletResponse.primary:type_name -> topodata.TabletAlias + 331, // 159: vtctldata.ReshardCreateRequest.tablet_types:type_name -> topodata.TabletType + 319, // 160: vtctldata.ReshardCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference 12, // 161: vtctldata.ReshardCreateRequest.workflow_options:type_name -> vtctldata.WorkflowOptions - 320, // 162: vtctldata.RestoreFromBackupRequest.tablet_alias:type_name -> topodata.TabletAlias - 319, // 163: vtctldata.RestoreFromBackupRequest.backup_time:type_name -> vttime.Time - 319, // 164: vtctldata.RestoreFromBackupRequest.restore_to_timestamp:type_name -> vttime.Time - 320, // 165: vtctldata.RestoreFromBackupResponse.tablet_alias:type_name -> topodata.TabletAlias - 316, // 166: vtctldata.RestoreFromBackupResponse.event:type_name -> logutil.Event - 327, // 167: vtctldata.RetrySchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID - 300, // 168: vtctldata.RetrySchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.RetrySchemaMigrationResponse.RowsAffectedByShardEntry - 320, // 169: vtctldata.RunHealthCheckRequest.tablet_alias:type_name -> topodata.TabletAlias - 318, // 170: vtctldata.SetKeyspaceDurabilityPolicyResponse.keyspace:type_name -> topodata.Keyspace - 318, // 171: vtctldata.SetKeyspaceShardingInfoResponse.keyspace:type_name -> topodata.Keyspace - 322, // 172: vtctldata.SetShardIsPrimaryServingResponse.shard:type_name -> topodata.Shard - 329, // 173: vtctldata.SetShardTabletControlRequest.tablet_type:type_name -> topodata.TabletType - 322, // 174: vtctldata.SetShardTabletControlResponse.shard:type_name -> topodata.Shard - 320, // 175: vtctldata.SetWritableRequest.tablet_alias:type_name -> topodata.TabletAlias - 320, // 176: vtctldata.ShardReplicationAddRequest.tablet_alias:type_name -> topodata.TabletAlias - 345, // 177: vtctldata.ShardReplicationFixResponse.error:type_name -> topodata.ShardReplicationError - 301, // 178: vtctldata.ShardReplicationPositionsResponse.replication_statuses:type_name -> vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry - 302, // 179: vtctldata.ShardReplicationPositionsResponse.tablet_map:type_name -> vtctldata.ShardReplicationPositionsResponse.TabletMapEntry - 320, // 180: vtctldata.ShardReplicationRemoveRequest.tablet_alias:type_name -> topodata.TabletAlias - 320, // 181: vtctldata.SleepTabletRequest.tablet_alias:type_name -> topodata.TabletAlias - 321, // 182: vtctldata.SleepTabletRequest.duration:type_name -> vttime.Duration - 346, // 183: vtctldata.SourceShardAddRequest.key_range:type_name -> topodata.KeyRange - 322, // 184: vtctldata.SourceShardAddResponse.shard:type_name -> topodata.Shard - 322, // 185: vtctldata.SourceShardDeleteResponse.shard:type_name -> topodata.Shard - 320, // 186: vtctldata.StartReplicationRequest.tablet_alias:type_name -> topodata.TabletAlias - 320, // 187: vtctldata.StopReplicationRequest.tablet_alias:type_name -> topodata.TabletAlias - 320, // 188: vtctldata.TabletExternallyReparentedRequest.tablet:type_name -> topodata.TabletAlias - 320, // 189: vtctldata.TabletExternallyReparentedResponse.new_primary:type_name -> topodata.TabletAlias - 320, // 190: vtctldata.TabletExternallyReparentedResponse.old_primary:type_name -> topodata.TabletAlias - 323, // 191: vtctldata.UpdateCellInfoRequest.cell_info:type_name -> topodata.CellInfo - 323, // 192: vtctldata.UpdateCellInfoResponse.cell_info:type_name -> topodata.CellInfo - 347, // 193: vtctldata.UpdateCellsAliasRequest.cells_alias:type_name -> topodata.CellsAlias - 347, // 194: vtctldata.UpdateCellsAliasResponse.cells_alias:type_name -> topodata.CellsAlias - 303, // 195: vtctldata.ValidateResponse.results_by_keyspace:type_name -> vtctldata.ValidateResponse.ResultsByKeyspaceEntry - 304, // 196: vtctldata.ValidateKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateKeyspaceResponse.ResultsByShardEntry - 305, // 197: vtctldata.ValidateSchemaKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateSchemaKeyspaceResponse.ResultsByShardEntry - 306, // 198: vtctldata.ValidateVersionKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateVersionKeyspaceResponse.ResultsByShardEntry - 307, // 199: vtctldata.ValidateVSchemaResponse.results_by_shard:type_name -> vtctldata.ValidateVSchemaResponse.ResultsByShardEntry - 329, // 200: vtctldata.VDiffCreateRequest.tablet_types:type_name -> topodata.TabletType - 317, // 201: vtctldata.VDiffCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference - 321, // 202: vtctldata.VDiffCreateRequest.filtered_replication_wait_time:type_name -> vttime.Duration - 321, // 203: vtctldata.VDiffCreateRequest.wait_update_interval:type_name -> vttime.Duration - 321, // 204: vtctldata.VDiffCreateRequest.max_diff_duration:type_name -> vttime.Duration - 308, // 205: vtctldata.VDiffShowResponse.tablet_responses:type_name -> vtctldata.VDiffShowResponse.TabletResponsesEntry - 309, // 206: vtctldata.WorkflowDeleteResponse.details:type_name -> vtctldata.WorkflowDeleteResponse.TabletInfo - 313, // 207: vtctldata.WorkflowStatusResponse.table_copy_state:type_name -> vtctldata.WorkflowStatusResponse.TableCopyStateEntry - 314, // 208: vtctldata.WorkflowStatusResponse.shard_streams:type_name -> vtctldata.WorkflowStatusResponse.ShardStreamsEntry - 329, // 209: vtctldata.WorkflowSwitchTrafficRequest.tablet_types:type_name -> topodata.TabletType - 321, // 210: vtctldata.WorkflowSwitchTrafficRequest.max_replication_lag_allowed:type_name -> vttime.Duration - 321, // 211: vtctldata.WorkflowSwitchTrafficRequest.timeout:type_name -> vttime.Duration - 348, // 212: vtctldata.WorkflowUpdateRequest.tablet_request:type_name -> tabletmanagerdata.UpdateVReplicationWorkflowRequest - 315, // 213: vtctldata.WorkflowUpdateResponse.details:type_name -> vtctldata.WorkflowUpdateResponse.TabletInfo - 349, // 214: vtctldata.GetMirrorRulesResponse.mirror_rules:type_name -> vschema.MirrorRules - 329, // 215: vtctldata.WorkflowMirrorTrafficRequest.tablet_types:type_name -> topodata.TabletType - 276, // 216: vtctldata.Workflow.ShardStreamsEntry.value:type_name -> vtctldata.Workflow.ShardStream - 277, // 217: vtctldata.Workflow.ShardStream.streams:type_name -> vtctldata.Workflow.Stream - 350, // 218: vtctldata.Workflow.ShardStream.tablet_controls:type_name -> topodata.Shard.TabletControl - 320, // 219: vtctldata.Workflow.Stream.tablet:type_name -> topodata.TabletAlias - 351, // 220: vtctldata.Workflow.Stream.binlog_source:type_name -> binlogdata.BinlogSource - 319, // 221: vtctldata.Workflow.Stream.transaction_timestamp:type_name -> vttime.Time - 319, // 222: vtctldata.Workflow.Stream.time_updated:type_name -> vttime.Time - 278, // 223: vtctldata.Workflow.Stream.copy_states:type_name -> vtctldata.Workflow.Stream.CopyState - 279, // 224: vtctldata.Workflow.Stream.logs:type_name -> vtctldata.Workflow.Stream.Log - 280, // 225: vtctldata.Workflow.Stream.throttler_status:type_name -> vtctldata.Workflow.Stream.ThrottlerStatus - 329, // 226: vtctldata.Workflow.Stream.tablet_types:type_name -> topodata.TabletType - 317, // 227: vtctldata.Workflow.Stream.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference - 319, // 228: vtctldata.Workflow.Stream.Log.created_at:type_name -> vttime.Time - 319, // 229: vtctldata.Workflow.Stream.Log.updated_at:type_name -> vttime.Time - 319, // 230: vtctldata.Workflow.Stream.ThrottlerStatus.time_throttled:type_name -> vttime.Time - 283, // 231: vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry.value:type_name -> vtctldata.ApplyVSchemaResponse.ParamList + 322, // 162: vtctldata.RestoreFromBackupRequest.tablet_alias:type_name -> topodata.TabletAlias + 321, // 163: vtctldata.RestoreFromBackupRequest.backup_time:type_name -> vttime.Time + 321, // 164: vtctldata.RestoreFromBackupRequest.restore_to_timestamp:type_name -> vttime.Time + 322, // 165: vtctldata.RestoreFromBackupResponse.tablet_alias:type_name -> topodata.TabletAlias + 318, // 166: vtctldata.RestoreFromBackupResponse.event:type_name -> logutil.Event + 329, // 167: vtctldata.RetrySchemaMigrationRequest.caller_id:type_name -> vtrpc.CallerID + 302, // 168: vtctldata.RetrySchemaMigrationResponse.rows_affected_by_shard:type_name -> vtctldata.RetrySchemaMigrationResponse.RowsAffectedByShardEntry + 322, // 169: vtctldata.RunHealthCheckRequest.tablet_alias:type_name -> topodata.TabletAlias + 320, // 170: vtctldata.SetKeyspaceDurabilityPolicyResponse.keyspace:type_name -> topodata.Keyspace + 320, // 171: vtctldata.SetKeyspaceShardingInfoResponse.keyspace:type_name -> topodata.Keyspace + 324, // 172: vtctldata.SetShardIsPrimaryServingResponse.shard:type_name -> topodata.Shard + 331, // 173: vtctldata.SetShardTabletControlRequest.tablet_type:type_name -> topodata.TabletType + 324, // 174: vtctldata.SetShardTabletControlResponse.shard:type_name -> topodata.Shard + 322, // 175: vtctldata.SetWritableRequest.tablet_alias:type_name -> topodata.TabletAlias + 322, // 176: vtctldata.ShardReplicationAddRequest.tablet_alias:type_name -> topodata.TabletAlias + 347, // 177: vtctldata.ShardReplicationFixResponse.error:type_name -> topodata.ShardReplicationError + 303, // 178: vtctldata.ShardReplicationPositionsResponse.replication_statuses:type_name -> vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry + 304, // 179: vtctldata.ShardReplicationPositionsResponse.tablet_map:type_name -> vtctldata.ShardReplicationPositionsResponse.TabletMapEntry + 322, // 180: vtctldata.ShardReplicationRemoveRequest.tablet_alias:type_name -> topodata.TabletAlias + 322, // 181: vtctldata.SleepTabletRequest.tablet_alias:type_name -> topodata.TabletAlias + 323, // 182: vtctldata.SleepTabletRequest.duration:type_name -> vttime.Duration + 348, // 183: vtctldata.SourceShardAddRequest.key_range:type_name -> topodata.KeyRange + 324, // 184: vtctldata.SourceShardAddResponse.shard:type_name -> topodata.Shard + 324, // 185: vtctldata.SourceShardDeleteResponse.shard:type_name -> topodata.Shard + 322, // 186: vtctldata.StartReplicationRequest.tablet_alias:type_name -> topodata.TabletAlias + 322, // 187: vtctldata.StopReplicationRequest.tablet_alias:type_name -> topodata.TabletAlias + 322, // 188: vtctldata.TabletExternallyReparentedRequest.tablet:type_name -> topodata.TabletAlias + 322, // 189: vtctldata.TabletExternallyReparentedResponse.new_primary:type_name -> topodata.TabletAlias + 322, // 190: vtctldata.TabletExternallyReparentedResponse.old_primary:type_name -> topodata.TabletAlias + 325, // 191: vtctldata.UpdateCellInfoRequest.cell_info:type_name -> topodata.CellInfo + 325, // 192: vtctldata.UpdateCellInfoResponse.cell_info:type_name -> topodata.CellInfo + 349, // 193: vtctldata.UpdateCellsAliasRequest.cells_alias:type_name -> topodata.CellsAlias + 349, // 194: vtctldata.UpdateCellsAliasResponse.cells_alias:type_name -> topodata.CellsAlias + 305, // 195: vtctldata.ValidateResponse.results_by_keyspace:type_name -> vtctldata.ValidateResponse.ResultsByKeyspaceEntry + 306, // 196: vtctldata.ValidateKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateKeyspaceResponse.ResultsByShardEntry + 307, // 197: vtctldata.ValidateSchemaKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateSchemaKeyspaceResponse.ResultsByShardEntry + 308, // 198: vtctldata.ValidateVersionKeyspaceResponse.results_by_shard:type_name -> vtctldata.ValidateVersionKeyspaceResponse.ResultsByShardEntry + 309, // 199: vtctldata.ValidateVSchemaResponse.results_by_shard:type_name -> vtctldata.ValidateVSchemaResponse.ResultsByShardEntry + 331, // 200: vtctldata.VDiffCreateRequest.tablet_types:type_name -> topodata.TabletType + 319, // 201: vtctldata.VDiffCreateRequest.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference + 323, // 202: vtctldata.VDiffCreateRequest.filtered_replication_wait_time:type_name -> vttime.Duration + 323, // 203: vtctldata.VDiffCreateRequest.wait_update_interval:type_name -> vttime.Duration + 323, // 204: vtctldata.VDiffCreateRequest.max_diff_duration:type_name -> vttime.Duration + 310, // 205: vtctldata.VDiffShowResponse.tablet_responses:type_name -> vtctldata.VDiffShowResponse.TabletResponsesEntry + 311, // 206: vtctldata.WorkflowDeleteResponse.details:type_name -> vtctldata.WorkflowDeleteResponse.TabletInfo + 315, // 207: vtctldata.WorkflowStatusResponse.table_copy_state:type_name -> vtctldata.WorkflowStatusResponse.TableCopyStateEntry + 316, // 208: vtctldata.WorkflowStatusResponse.shard_streams:type_name -> vtctldata.WorkflowStatusResponse.ShardStreamsEntry + 331, // 209: vtctldata.WorkflowSwitchTrafficRequest.tablet_types:type_name -> topodata.TabletType + 323, // 210: vtctldata.WorkflowSwitchTrafficRequest.max_replication_lag_allowed:type_name -> vttime.Duration + 323, // 211: vtctldata.WorkflowSwitchTrafficRequest.timeout:type_name -> vttime.Duration + 350, // 212: vtctldata.WorkflowUpdateRequest.tablet_request:type_name -> tabletmanagerdata.UpdateVReplicationWorkflowRequest + 317, // 213: vtctldata.WorkflowUpdateResponse.details:type_name -> vtctldata.WorkflowUpdateResponse.TabletInfo + 351, // 214: vtctldata.GetMirrorRulesResponse.mirror_rules:type_name -> vschema.MirrorRules + 331, // 215: vtctldata.WorkflowMirrorTrafficRequest.tablet_types:type_name -> topodata.TabletType + 278, // 216: vtctldata.Workflow.ShardStreamsEntry.value:type_name -> vtctldata.Workflow.ShardStream + 279, // 217: vtctldata.Workflow.ShardStream.streams:type_name -> vtctldata.Workflow.Stream + 352, // 218: vtctldata.Workflow.ShardStream.tablet_controls:type_name -> topodata.Shard.TabletControl + 322, // 219: vtctldata.Workflow.Stream.tablet:type_name -> topodata.TabletAlias + 353, // 220: vtctldata.Workflow.Stream.binlog_source:type_name -> binlogdata.BinlogSource + 321, // 221: vtctldata.Workflow.Stream.transaction_timestamp:type_name -> vttime.Time + 321, // 222: vtctldata.Workflow.Stream.time_updated:type_name -> vttime.Time + 280, // 223: vtctldata.Workflow.Stream.copy_states:type_name -> vtctldata.Workflow.Stream.CopyState + 281, // 224: vtctldata.Workflow.Stream.logs:type_name -> vtctldata.Workflow.Stream.Log + 282, // 225: vtctldata.Workflow.Stream.throttler_status:type_name -> vtctldata.Workflow.Stream.ThrottlerStatus + 331, // 226: vtctldata.Workflow.Stream.tablet_types:type_name -> topodata.TabletType + 319, // 227: vtctldata.Workflow.Stream.tablet_selection_preference:type_name -> tabletmanagerdata.TabletSelectionPreference + 321, // 228: vtctldata.Workflow.Stream.Log.created_at:type_name -> vttime.Time + 321, // 229: vtctldata.Workflow.Stream.Log.updated_at:type_name -> vttime.Time + 321, // 230: vtctldata.Workflow.Stream.ThrottlerStatus.time_throttled:type_name -> vttime.Time + 285, // 231: vtctldata.ApplyVSchemaResponse.UnknownVindexParamsEntry.value:type_name -> vtctldata.ApplyVSchemaResponse.ParamList 11, // 232: vtctldata.FindAllShardsInKeyspaceResponse.ShardsEntry.value:type_name -> vtctldata.Shard - 347, // 233: vtctldata.GetCellsAliasesResponse.AliasesEntry.value:type_name -> topodata.CellsAlias - 352, // 234: vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry.value:type_name -> topodata.ShardReplication - 295, // 235: vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry.value:type_name -> vtctldata.GetSrvKeyspaceNamesResponse.NameList - 353, // 236: vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry.value:type_name -> topodata.SrvKeyspace - 341, // 237: vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry.value:type_name -> vschema.SrvVSchema - 320, // 238: vtctldata.MoveTablesCreateResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias - 354, // 239: vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry.value:type_name -> replicationdata.Status - 330, // 240: vtctldata.ShardReplicationPositionsResponse.TabletMapEntry.value:type_name -> topodata.Tablet + 349, // 233: vtctldata.GetCellsAliasesResponse.AliasesEntry.value:type_name -> topodata.CellsAlias + 354, // 234: vtctldata.GetShardReplicationResponse.ShardReplicationByCellEntry.value:type_name -> topodata.ShardReplication + 297, // 235: vtctldata.GetSrvKeyspaceNamesResponse.NamesEntry.value:type_name -> vtctldata.GetSrvKeyspaceNamesResponse.NameList + 355, // 236: vtctldata.GetSrvKeyspacesResponse.SrvKeyspacesEntry.value:type_name -> topodata.SrvKeyspace + 343, // 237: vtctldata.GetSrvVSchemasResponse.SrvVSchemasEntry.value:type_name -> vschema.SrvVSchema + 322, // 238: vtctldata.MoveTablesCreateResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias + 356, // 239: vtctldata.ShardReplicationPositionsResponse.ReplicationStatusesEntry.value:type_name -> replicationdata.Status + 332, // 240: vtctldata.ShardReplicationPositionsResponse.TabletMapEntry.value:type_name -> topodata.Tablet 238, // 241: vtctldata.ValidateResponse.ResultsByKeyspaceEntry.value:type_name -> vtctldata.ValidateKeyspaceResponse 244, // 242: vtctldata.ValidateKeyspaceResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse 244, // 243: vtctldata.ValidateSchemaKeyspaceResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse 244, // 244: vtctldata.ValidateVersionKeyspaceResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse 244, // 245: vtctldata.ValidateVSchemaResponse.ResultsByShardEntry.value:type_name -> vtctldata.ValidateShardResponse - 355, // 246: vtctldata.VDiffShowResponse.TabletResponsesEntry.value:type_name -> tabletmanagerdata.VDiffResponse - 320, // 247: vtctldata.WorkflowDeleteResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias - 320, // 248: vtctldata.WorkflowStatusResponse.ShardStreamState.tablet:type_name -> topodata.TabletAlias - 311, // 249: vtctldata.WorkflowStatusResponse.ShardStreams.streams:type_name -> vtctldata.WorkflowStatusResponse.ShardStreamState - 310, // 250: vtctldata.WorkflowStatusResponse.TableCopyStateEntry.value:type_name -> vtctldata.WorkflowStatusResponse.TableCopyState - 312, // 251: vtctldata.WorkflowStatusResponse.ShardStreamsEntry.value:type_name -> vtctldata.WorkflowStatusResponse.ShardStreams - 320, // 252: vtctldata.WorkflowUpdateResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias + 357, // 246: vtctldata.VDiffShowResponse.TabletResponsesEntry.value:type_name -> tabletmanagerdata.VDiffResponse + 322, // 247: vtctldata.WorkflowDeleteResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias + 322, // 248: vtctldata.WorkflowStatusResponse.ShardStreamState.tablet:type_name -> topodata.TabletAlias + 313, // 249: vtctldata.WorkflowStatusResponse.ShardStreams.streams:type_name -> vtctldata.WorkflowStatusResponse.ShardStreamState + 312, // 250: vtctldata.WorkflowStatusResponse.TableCopyStateEntry.value:type_name -> vtctldata.WorkflowStatusResponse.TableCopyState + 314, // 251: vtctldata.WorkflowStatusResponse.ShardStreamsEntry.value:type_name -> vtctldata.WorkflowStatusResponse.ShardStreams + 322, // 252: vtctldata.WorkflowUpdateResponse.TabletInfo.tablet:type_name -> topodata.TabletAlias 253, // [253:253] is the sub-list for method output_type 253, // [253:253] is the sub-list for method input_type 253, // [253:253] is the sub-list for extension type_name @@ -19156,7 +19259,7 @@ func file_vtctldata_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_vtctldata_proto_rawDesc), len(file_vtctldata_proto_rawDesc)), NumEnums: 5, - NumMessages: 311, + NumMessages: 313, NumExtensions: 0, NumServices: 0, }, diff --git a/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go b/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go index df7162fdc14..428c30532c8 100644 --- a/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go +++ b/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go @@ -6008,6 +6008,41 @@ func (m *WorkflowMirrorTrafficResponse) CloneMessageVT() proto.Message { return m.CloneVT() } +func (m *SetVtorcEmergencyReparentRequest) CloneVT() *SetVtorcEmergencyReparentRequest { + if m == nil { + return (*SetVtorcEmergencyReparentRequest)(nil) + } + r := new(SetVtorcEmergencyReparentRequest) + r.Keyspace = m.Keyspace + r.Shard = m.Shard + r.Disable = m.Disable + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *SetVtorcEmergencyReparentRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *SetVtorcEmergencyReparentResponse) CloneVT() *SetVtorcEmergencyReparentResponse { + if m == nil { + return (*SetVtorcEmergencyReparentResponse)(nil) + } + r := new(SetVtorcEmergencyReparentResponse) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *SetVtorcEmergencyReparentResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (m *ExecuteVtctlCommandRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -22416,6 +22451,96 @@ func (m *WorkflowMirrorTrafficResponse) MarshalToSizedBufferVT(dAtA []byte) (int return len(dAtA) - i, nil } +func (m *SetVtorcEmergencyReparentRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SetVtorcEmergencyReparentRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SetVtorcEmergencyReparentRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Disable { + i-- + if m.Disable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if len(m.Shard) > 0 { + i -= len(m.Shard) + copy(dAtA[i:], m.Shard) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Shard))) + i-- + dAtA[i] = 0x12 + } + if len(m.Keyspace) > 0 { + i -= len(m.Keyspace) + copy(dAtA[i:], m.Keyspace) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Keyspace))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SetVtorcEmergencyReparentResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SetVtorcEmergencyReparentResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SetVtorcEmergencyReparentResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + func (m *ExecuteVtctlCommandRequest) SizeVT() (n int) { if m == nil { return 0 @@ -28595,6 +28720,37 @@ func (m *WorkflowMirrorTrafficResponse) SizeVT() (n int) { return n } +func (m *SetVtorcEmergencyReparentRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Keyspace) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + l = len(m.Shard) + if l > 0 { + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.Disable { + n += 2 + } + n += len(m.unknownFields) + return n +} + +func (m *SetVtorcEmergencyReparentResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + func (m *ExecuteVtctlCommandRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -69070,3 +69226,189 @@ func (m *WorkflowMirrorTrafficResponse) UnmarshalVT(dAtA []byte) error { } return nil } +func (m *SetVtorcEmergencyReparentRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SetVtorcEmergencyReparentRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SetVtorcEmergencyReparentRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Keyspace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Keyspace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Shard", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Shard = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Disable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Disable = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SetVtorcEmergencyReparentResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SetVtorcEmergencyReparentResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SetVtorcEmergencyReparentResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} diff --git a/go/vt/proto/vtctlservice/vtctlservice.pb.go b/go/vt/proto/vtctlservice/vtctlservice.pb.go index edaee545454..6f006184048 100644 --- a/go/vt/proto/vtctlservice/vtctlservice.pb.go +++ b/go/vt/proto/vtctlservice/vtctlservice.pb.go @@ -45,7 +45,7 @@ const file_vtctlservice_proto_rawDesc = "" + "\n" + "\x12vtctlservice.proto\x12\fvtctlservice\x1a\x0fvtctldata.proto2q\n" + "\x05Vtctl\x12h\n" + - "\x13ExecuteVtctlCommand\x12%.vtctldata.ExecuteVtctlCommandRequest\x1a&.vtctldata.ExecuteVtctlCommandResponse\"\x000\x012\xa2_\n" + + "\x13ExecuteVtctlCommand\x12%.vtctldata.ExecuteVtctlCommandRequest\x1a&.vtctldata.ExecuteVtctlCommandResponse\"\x000\x012\x9c`\n" + "\x06Vtctld\x12N\n" + "\vAddCellInfo\x12\x1d.vtctldata.AddCellInfoRequest\x1a\x1e.vtctldata.AddCellInfoResponse\"\x00\x12T\n" + "\rAddCellsAlias\x12\x1f.vtctldata.AddCellsAliasRequest\x1a .vtctldata.AddCellsAliasResponse\"\x00\x12`\n" + @@ -147,7 +147,8 @@ const file_vtctlservice_proto_rawDesc = "" + "\x0eRunHealthCheck\x12 .vtctldata.RunHealthCheckRequest\x1a!.vtctldata.RunHealthCheckResponse\"\x00\x12~\n" + "\x1bSetKeyspaceDurabilityPolicy\x12-.vtctldata.SetKeyspaceDurabilityPolicyRequest\x1a..vtctldata.SetKeyspaceDurabilityPolicyResponse\"\x00\x12u\n" + "\x18SetShardIsPrimaryServing\x12*.vtctldata.SetShardIsPrimaryServingRequest\x1a+.vtctldata.SetShardIsPrimaryServingResponse\"\x00\x12l\n" + - "\x15SetShardTabletControl\x12'.vtctldata.SetShardTabletControlRequest\x1a(.vtctldata.SetShardTabletControlResponse\"\x00\x12N\n" + + "\x15SetShardTabletControl\x12'.vtctldata.SetShardTabletControlRequest\x1a(.vtctldata.SetShardTabletControlResponse\"\x00\x12x\n" + + "\x19SetVtorcEmergencyReparent\x12+.vtctldata.SetVtorcEmergencyReparentRequest\x1a,.vtctldata.SetVtorcEmergencyReparentResponse\"\x00\x12N\n" + "\vSetWritable\x12\x1d.vtctldata.SetWritableRequest\x1a\x1e.vtctldata.SetWritableResponse\"\x00\x12f\n" + "\x13ShardReplicationAdd\x12%.vtctldata.ShardReplicationAddRequest\x1a&.vtctldata.ShardReplicationAddResponse\"\x00\x12f\n" + "\x13ShardReplicationFix\x12%.vtctldata.ShardReplicationFixRequest\x1a&.vtctldata.ShardReplicationFixResponse\"\x00\x12x\n" + @@ -279,163 +280,165 @@ var file_vtctlservice_proto_goTypes = []any{ (*vtctldata.SetKeyspaceDurabilityPolicyRequest)(nil), // 94: vtctldata.SetKeyspaceDurabilityPolicyRequest (*vtctldata.SetShardIsPrimaryServingRequest)(nil), // 95: vtctldata.SetShardIsPrimaryServingRequest (*vtctldata.SetShardTabletControlRequest)(nil), // 96: vtctldata.SetShardTabletControlRequest - (*vtctldata.SetWritableRequest)(nil), // 97: vtctldata.SetWritableRequest - (*vtctldata.ShardReplicationAddRequest)(nil), // 98: vtctldata.ShardReplicationAddRequest - (*vtctldata.ShardReplicationFixRequest)(nil), // 99: vtctldata.ShardReplicationFixRequest - (*vtctldata.ShardReplicationPositionsRequest)(nil), // 100: vtctldata.ShardReplicationPositionsRequest - (*vtctldata.ShardReplicationRemoveRequest)(nil), // 101: vtctldata.ShardReplicationRemoveRequest - (*vtctldata.SleepTabletRequest)(nil), // 102: vtctldata.SleepTabletRequest - (*vtctldata.SourceShardAddRequest)(nil), // 103: vtctldata.SourceShardAddRequest - (*vtctldata.SourceShardDeleteRequest)(nil), // 104: vtctldata.SourceShardDeleteRequest - (*vtctldata.StartReplicationRequest)(nil), // 105: vtctldata.StartReplicationRequest - (*vtctldata.StopReplicationRequest)(nil), // 106: vtctldata.StopReplicationRequest - (*vtctldata.TabletExternallyReparentedRequest)(nil), // 107: vtctldata.TabletExternallyReparentedRequest - (*vtctldata.UpdateCellInfoRequest)(nil), // 108: vtctldata.UpdateCellInfoRequest - (*vtctldata.UpdateCellsAliasRequest)(nil), // 109: vtctldata.UpdateCellsAliasRequest - (*vtctldata.ValidateRequest)(nil), // 110: vtctldata.ValidateRequest - (*vtctldata.ValidateKeyspaceRequest)(nil), // 111: vtctldata.ValidateKeyspaceRequest - (*vtctldata.ValidatePermissionsKeyspaceRequest)(nil), // 112: vtctldata.ValidatePermissionsKeyspaceRequest - (*vtctldata.ValidateSchemaKeyspaceRequest)(nil), // 113: vtctldata.ValidateSchemaKeyspaceRequest - (*vtctldata.ValidateShardRequest)(nil), // 114: vtctldata.ValidateShardRequest - (*vtctldata.ValidateVersionKeyspaceRequest)(nil), // 115: vtctldata.ValidateVersionKeyspaceRequest - (*vtctldata.ValidateVersionShardRequest)(nil), // 116: vtctldata.ValidateVersionShardRequest - (*vtctldata.ValidateVSchemaRequest)(nil), // 117: vtctldata.ValidateVSchemaRequest - (*vtctldata.VDiffCreateRequest)(nil), // 118: vtctldata.VDiffCreateRequest - (*vtctldata.VDiffDeleteRequest)(nil), // 119: vtctldata.VDiffDeleteRequest - (*vtctldata.VDiffResumeRequest)(nil), // 120: vtctldata.VDiffResumeRequest - (*vtctldata.VDiffShowRequest)(nil), // 121: vtctldata.VDiffShowRequest - (*vtctldata.VDiffStopRequest)(nil), // 122: vtctldata.VDiffStopRequest - (*vtctldata.WorkflowDeleteRequest)(nil), // 123: vtctldata.WorkflowDeleteRequest - (*vtctldata.WorkflowStatusRequest)(nil), // 124: vtctldata.WorkflowStatusRequest - (*vtctldata.WorkflowSwitchTrafficRequest)(nil), // 125: vtctldata.WorkflowSwitchTrafficRequest - (*vtctldata.WorkflowUpdateRequest)(nil), // 126: vtctldata.WorkflowUpdateRequest - (*vtctldata.GetMirrorRulesRequest)(nil), // 127: vtctldata.GetMirrorRulesRequest - (*vtctldata.WorkflowMirrorTrafficRequest)(nil), // 128: vtctldata.WorkflowMirrorTrafficRequest - (*vtctldata.ExecuteVtctlCommandResponse)(nil), // 129: vtctldata.ExecuteVtctlCommandResponse - (*vtctldata.AddCellInfoResponse)(nil), // 130: vtctldata.AddCellInfoResponse - (*vtctldata.AddCellsAliasResponse)(nil), // 131: vtctldata.AddCellsAliasResponse - (*vtctldata.ApplyRoutingRulesResponse)(nil), // 132: vtctldata.ApplyRoutingRulesResponse - (*vtctldata.ApplySchemaResponse)(nil), // 133: vtctldata.ApplySchemaResponse - (*vtctldata.ApplyKeyspaceRoutingRulesResponse)(nil), // 134: vtctldata.ApplyKeyspaceRoutingRulesResponse - (*vtctldata.ApplyShardRoutingRulesResponse)(nil), // 135: vtctldata.ApplyShardRoutingRulesResponse - (*vtctldata.ApplyVSchemaResponse)(nil), // 136: vtctldata.ApplyVSchemaResponse - (*vtctldata.BackupResponse)(nil), // 137: vtctldata.BackupResponse - (*vtctldata.CancelSchemaMigrationResponse)(nil), // 138: vtctldata.CancelSchemaMigrationResponse - (*vtctldata.ChangeTabletTagsResponse)(nil), // 139: vtctldata.ChangeTabletTagsResponse - (*vtctldata.ChangeTabletTypeResponse)(nil), // 140: vtctldata.ChangeTabletTypeResponse - (*vtctldata.CheckThrottlerResponse)(nil), // 141: vtctldata.CheckThrottlerResponse - (*vtctldata.CleanupSchemaMigrationResponse)(nil), // 142: vtctldata.CleanupSchemaMigrationResponse - (*vtctldata.CompleteSchemaMigrationResponse)(nil), // 143: vtctldata.CompleteSchemaMigrationResponse - (*vtctldata.ConcludeTransactionResponse)(nil), // 144: vtctldata.ConcludeTransactionResponse - (*vtctldata.CopySchemaShardResponse)(nil), // 145: vtctldata.CopySchemaShardResponse - (*vtctldata.CreateKeyspaceResponse)(nil), // 146: vtctldata.CreateKeyspaceResponse - (*vtctldata.CreateShardResponse)(nil), // 147: vtctldata.CreateShardResponse - (*vtctldata.DeleteCellInfoResponse)(nil), // 148: vtctldata.DeleteCellInfoResponse - (*vtctldata.DeleteCellsAliasResponse)(nil), // 149: vtctldata.DeleteCellsAliasResponse - (*vtctldata.DeleteKeyspaceResponse)(nil), // 150: vtctldata.DeleteKeyspaceResponse - (*vtctldata.DeleteShardsResponse)(nil), // 151: vtctldata.DeleteShardsResponse - (*vtctldata.DeleteSrvVSchemaResponse)(nil), // 152: vtctldata.DeleteSrvVSchemaResponse - (*vtctldata.DeleteTabletsResponse)(nil), // 153: vtctldata.DeleteTabletsResponse - (*vtctldata.EmergencyReparentShardResponse)(nil), // 154: vtctldata.EmergencyReparentShardResponse - (*vtctldata.ExecuteFetchAsAppResponse)(nil), // 155: vtctldata.ExecuteFetchAsAppResponse - (*vtctldata.ExecuteFetchAsDBAResponse)(nil), // 156: vtctldata.ExecuteFetchAsDBAResponse - (*vtctldata.ExecuteHookResponse)(nil), // 157: vtctldata.ExecuteHookResponse - (*vtctldata.ExecuteMultiFetchAsDBAResponse)(nil), // 158: vtctldata.ExecuteMultiFetchAsDBAResponse - (*vtctldata.FindAllShardsInKeyspaceResponse)(nil), // 159: vtctldata.FindAllShardsInKeyspaceResponse - (*vtctldata.ForceCutOverSchemaMigrationResponse)(nil), // 160: vtctldata.ForceCutOverSchemaMigrationResponse - (*vtctldata.GetBackupsResponse)(nil), // 161: vtctldata.GetBackupsResponse - (*vtctldata.GetCellInfoResponse)(nil), // 162: vtctldata.GetCellInfoResponse - (*vtctldata.GetCellInfoNamesResponse)(nil), // 163: vtctldata.GetCellInfoNamesResponse - (*vtctldata.GetCellsAliasesResponse)(nil), // 164: vtctldata.GetCellsAliasesResponse - (*vtctldata.GetFullStatusResponse)(nil), // 165: vtctldata.GetFullStatusResponse - (*vtctldata.GetKeyspaceResponse)(nil), // 166: vtctldata.GetKeyspaceResponse - (*vtctldata.GetKeyspacesResponse)(nil), // 167: vtctldata.GetKeyspacesResponse - (*vtctldata.GetKeyspaceRoutingRulesResponse)(nil), // 168: vtctldata.GetKeyspaceRoutingRulesResponse - (*vtctldata.GetPermissionsResponse)(nil), // 169: vtctldata.GetPermissionsResponse - (*vtctldata.GetRoutingRulesResponse)(nil), // 170: vtctldata.GetRoutingRulesResponse - (*vtctldata.GetSchemaResponse)(nil), // 171: vtctldata.GetSchemaResponse - (*vtctldata.GetSchemaMigrationsResponse)(nil), // 172: vtctldata.GetSchemaMigrationsResponse - (*vtctldata.GetShardReplicationResponse)(nil), // 173: vtctldata.GetShardReplicationResponse - (*vtctldata.GetShardResponse)(nil), // 174: vtctldata.GetShardResponse - (*vtctldata.GetShardRoutingRulesResponse)(nil), // 175: vtctldata.GetShardRoutingRulesResponse - (*vtctldata.GetSrvKeyspaceNamesResponse)(nil), // 176: vtctldata.GetSrvKeyspaceNamesResponse - (*vtctldata.GetSrvKeyspacesResponse)(nil), // 177: vtctldata.GetSrvKeyspacesResponse - (*vtctldata.UpdateThrottlerConfigResponse)(nil), // 178: vtctldata.UpdateThrottlerConfigResponse - (*vtctldata.GetSrvVSchemaResponse)(nil), // 179: vtctldata.GetSrvVSchemaResponse - (*vtctldata.GetSrvVSchemasResponse)(nil), // 180: vtctldata.GetSrvVSchemasResponse - (*vtctldata.GetTabletResponse)(nil), // 181: vtctldata.GetTabletResponse - (*vtctldata.GetTabletsResponse)(nil), // 182: vtctldata.GetTabletsResponse - (*vtctldata.GetThrottlerStatusResponse)(nil), // 183: vtctldata.GetThrottlerStatusResponse - (*vtctldata.GetTopologyPathResponse)(nil), // 184: vtctldata.GetTopologyPathResponse - (*vtctldata.GetTransactionInfoResponse)(nil), // 185: vtctldata.GetTransactionInfoResponse - (*vtctldata.GetUnresolvedTransactionsResponse)(nil), // 186: vtctldata.GetUnresolvedTransactionsResponse - (*vtctldata.GetVersionResponse)(nil), // 187: vtctldata.GetVersionResponse - (*vtctldata.GetVSchemaResponse)(nil), // 188: vtctldata.GetVSchemaResponse - (*vtctldata.GetWorkflowsResponse)(nil), // 189: vtctldata.GetWorkflowsResponse - (*vtctldata.InitShardPrimaryResponse)(nil), // 190: vtctldata.InitShardPrimaryResponse - (*vtctldata.LaunchSchemaMigrationResponse)(nil), // 191: vtctldata.LaunchSchemaMigrationResponse - (*vtctldata.LookupVindexCompleteResponse)(nil), // 192: vtctldata.LookupVindexCompleteResponse - (*vtctldata.LookupVindexCreateResponse)(nil), // 193: vtctldata.LookupVindexCreateResponse - (*vtctldata.LookupVindexExternalizeResponse)(nil), // 194: vtctldata.LookupVindexExternalizeResponse - (*vtctldata.LookupVindexInternalizeResponse)(nil), // 195: vtctldata.LookupVindexInternalizeResponse - (*vtctldata.MaterializeCreateResponse)(nil), // 196: vtctldata.MaterializeCreateResponse - (*vtctldata.WorkflowAddTablesResponse)(nil), // 197: vtctldata.WorkflowAddTablesResponse - (*vtctldata.WorkflowStatusResponse)(nil), // 198: vtctldata.WorkflowStatusResponse - (*vtctldata.MountRegisterResponse)(nil), // 199: vtctldata.MountRegisterResponse - (*vtctldata.MountUnregisterResponse)(nil), // 200: vtctldata.MountUnregisterResponse - (*vtctldata.MountShowResponse)(nil), // 201: vtctldata.MountShowResponse - (*vtctldata.MountListResponse)(nil), // 202: vtctldata.MountListResponse - (*vtctldata.MoveTablesCompleteResponse)(nil), // 203: vtctldata.MoveTablesCompleteResponse - (*vtctldata.PingTabletResponse)(nil), // 204: vtctldata.PingTabletResponse - (*vtctldata.PlannedReparentShardResponse)(nil), // 205: vtctldata.PlannedReparentShardResponse - (*vtctldata.RebuildKeyspaceGraphResponse)(nil), // 206: vtctldata.RebuildKeyspaceGraphResponse - (*vtctldata.RebuildVSchemaGraphResponse)(nil), // 207: vtctldata.RebuildVSchemaGraphResponse - (*vtctldata.RefreshStateResponse)(nil), // 208: vtctldata.RefreshStateResponse - (*vtctldata.RefreshStateByShardResponse)(nil), // 209: vtctldata.RefreshStateByShardResponse - (*vtctldata.ReloadSchemaResponse)(nil), // 210: vtctldata.ReloadSchemaResponse - (*vtctldata.ReloadSchemaKeyspaceResponse)(nil), // 211: vtctldata.ReloadSchemaKeyspaceResponse - (*vtctldata.ReloadSchemaShardResponse)(nil), // 212: vtctldata.ReloadSchemaShardResponse - (*vtctldata.RemoveBackupResponse)(nil), // 213: vtctldata.RemoveBackupResponse - (*vtctldata.RemoveKeyspaceCellResponse)(nil), // 214: vtctldata.RemoveKeyspaceCellResponse - (*vtctldata.RemoveShardCellResponse)(nil), // 215: vtctldata.RemoveShardCellResponse - (*vtctldata.ReparentTabletResponse)(nil), // 216: vtctldata.ReparentTabletResponse - (*vtctldata.RestoreFromBackupResponse)(nil), // 217: vtctldata.RestoreFromBackupResponse - (*vtctldata.RetrySchemaMigrationResponse)(nil), // 218: vtctldata.RetrySchemaMigrationResponse - (*vtctldata.RunHealthCheckResponse)(nil), // 219: vtctldata.RunHealthCheckResponse - (*vtctldata.SetKeyspaceDurabilityPolicyResponse)(nil), // 220: vtctldata.SetKeyspaceDurabilityPolicyResponse - (*vtctldata.SetShardIsPrimaryServingResponse)(nil), // 221: vtctldata.SetShardIsPrimaryServingResponse - (*vtctldata.SetShardTabletControlResponse)(nil), // 222: vtctldata.SetShardTabletControlResponse - (*vtctldata.SetWritableResponse)(nil), // 223: vtctldata.SetWritableResponse - (*vtctldata.ShardReplicationAddResponse)(nil), // 224: vtctldata.ShardReplicationAddResponse - (*vtctldata.ShardReplicationFixResponse)(nil), // 225: vtctldata.ShardReplicationFixResponse - (*vtctldata.ShardReplicationPositionsResponse)(nil), // 226: vtctldata.ShardReplicationPositionsResponse - (*vtctldata.ShardReplicationRemoveResponse)(nil), // 227: vtctldata.ShardReplicationRemoveResponse - (*vtctldata.SleepTabletResponse)(nil), // 228: vtctldata.SleepTabletResponse - (*vtctldata.SourceShardAddResponse)(nil), // 229: vtctldata.SourceShardAddResponse - (*vtctldata.SourceShardDeleteResponse)(nil), // 230: vtctldata.SourceShardDeleteResponse - (*vtctldata.StartReplicationResponse)(nil), // 231: vtctldata.StartReplicationResponse - (*vtctldata.StopReplicationResponse)(nil), // 232: vtctldata.StopReplicationResponse - (*vtctldata.TabletExternallyReparentedResponse)(nil), // 233: vtctldata.TabletExternallyReparentedResponse - (*vtctldata.UpdateCellInfoResponse)(nil), // 234: vtctldata.UpdateCellInfoResponse - (*vtctldata.UpdateCellsAliasResponse)(nil), // 235: vtctldata.UpdateCellsAliasResponse - (*vtctldata.ValidateResponse)(nil), // 236: vtctldata.ValidateResponse - (*vtctldata.ValidateKeyspaceResponse)(nil), // 237: vtctldata.ValidateKeyspaceResponse - (*vtctldata.ValidatePermissionsKeyspaceResponse)(nil), // 238: vtctldata.ValidatePermissionsKeyspaceResponse - (*vtctldata.ValidateSchemaKeyspaceResponse)(nil), // 239: vtctldata.ValidateSchemaKeyspaceResponse - (*vtctldata.ValidateShardResponse)(nil), // 240: vtctldata.ValidateShardResponse - (*vtctldata.ValidateVersionKeyspaceResponse)(nil), // 241: vtctldata.ValidateVersionKeyspaceResponse - (*vtctldata.ValidateVersionShardResponse)(nil), // 242: vtctldata.ValidateVersionShardResponse - (*vtctldata.ValidateVSchemaResponse)(nil), // 243: vtctldata.ValidateVSchemaResponse - (*vtctldata.VDiffCreateResponse)(nil), // 244: vtctldata.VDiffCreateResponse - (*vtctldata.VDiffDeleteResponse)(nil), // 245: vtctldata.VDiffDeleteResponse - (*vtctldata.VDiffResumeResponse)(nil), // 246: vtctldata.VDiffResumeResponse - (*vtctldata.VDiffShowResponse)(nil), // 247: vtctldata.VDiffShowResponse - (*vtctldata.VDiffStopResponse)(nil), // 248: vtctldata.VDiffStopResponse - (*vtctldata.WorkflowDeleteResponse)(nil), // 249: vtctldata.WorkflowDeleteResponse - (*vtctldata.WorkflowSwitchTrafficResponse)(nil), // 250: vtctldata.WorkflowSwitchTrafficResponse - (*vtctldata.WorkflowUpdateResponse)(nil), // 251: vtctldata.WorkflowUpdateResponse - (*vtctldata.GetMirrorRulesResponse)(nil), // 252: vtctldata.GetMirrorRulesResponse - (*vtctldata.WorkflowMirrorTrafficResponse)(nil), // 253: vtctldata.WorkflowMirrorTrafficResponse + (*vtctldata.SetVtorcEmergencyReparentRequest)(nil), // 97: vtctldata.SetVtorcEmergencyReparentRequest + (*vtctldata.SetWritableRequest)(nil), // 98: vtctldata.SetWritableRequest + (*vtctldata.ShardReplicationAddRequest)(nil), // 99: vtctldata.ShardReplicationAddRequest + (*vtctldata.ShardReplicationFixRequest)(nil), // 100: vtctldata.ShardReplicationFixRequest + (*vtctldata.ShardReplicationPositionsRequest)(nil), // 101: vtctldata.ShardReplicationPositionsRequest + (*vtctldata.ShardReplicationRemoveRequest)(nil), // 102: vtctldata.ShardReplicationRemoveRequest + (*vtctldata.SleepTabletRequest)(nil), // 103: vtctldata.SleepTabletRequest + (*vtctldata.SourceShardAddRequest)(nil), // 104: vtctldata.SourceShardAddRequest + (*vtctldata.SourceShardDeleteRequest)(nil), // 105: vtctldata.SourceShardDeleteRequest + (*vtctldata.StartReplicationRequest)(nil), // 106: vtctldata.StartReplicationRequest + (*vtctldata.StopReplicationRequest)(nil), // 107: vtctldata.StopReplicationRequest + (*vtctldata.TabletExternallyReparentedRequest)(nil), // 108: vtctldata.TabletExternallyReparentedRequest + (*vtctldata.UpdateCellInfoRequest)(nil), // 109: vtctldata.UpdateCellInfoRequest + (*vtctldata.UpdateCellsAliasRequest)(nil), // 110: vtctldata.UpdateCellsAliasRequest + (*vtctldata.ValidateRequest)(nil), // 111: vtctldata.ValidateRequest + (*vtctldata.ValidateKeyspaceRequest)(nil), // 112: vtctldata.ValidateKeyspaceRequest + (*vtctldata.ValidatePermissionsKeyspaceRequest)(nil), // 113: vtctldata.ValidatePermissionsKeyspaceRequest + (*vtctldata.ValidateSchemaKeyspaceRequest)(nil), // 114: vtctldata.ValidateSchemaKeyspaceRequest + (*vtctldata.ValidateShardRequest)(nil), // 115: vtctldata.ValidateShardRequest + (*vtctldata.ValidateVersionKeyspaceRequest)(nil), // 116: vtctldata.ValidateVersionKeyspaceRequest + (*vtctldata.ValidateVersionShardRequest)(nil), // 117: vtctldata.ValidateVersionShardRequest + (*vtctldata.ValidateVSchemaRequest)(nil), // 118: vtctldata.ValidateVSchemaRequest + (*vtctldata.VDiffCreateRequest)(nil), // 119: vtctldata.VDiffCreateRequest + (*vtctldata.VDiffDeleteRequest)(nil), // 120: vtctldata.VDiffDeleteRequest + (*vtctldata.VDiffResumeRequest)(nil), // 121: vtctldata.VDiffResumeRequest + (*vtctldata.VDiffShowRequest)(nil), // 122: vtctldata.VDiffShowRequest + (*vtctldata.VDiffStopRequest)(nil), // 123: vtctldata.VDiffStopRequest + (*vtctldata.WorkflowDeleteRequest)(nil), // 124: vtctldata.WorkflowDeleteRequest + (*vtctldata.WorkflowStatusRequest)(nil), // 125: vtctldata.WorkflowStatusRequest + (*vtctldata.WorkflowSwitchTrafficRequest)(nil), // 126: vtctldata.WorkflowSwitchTrafficRequest + (*vtctldata.WorkflowUpdateRequest)(nil), // 127: vtctldata.WorkflowUpdateRequest + (*vtctldata.GetMirrorRulesRequest)(nil), // 128: vtctldata.GetMirrorRulesRequest + (*vtctldata.WorkflowMirrorTrafficRequest)(nil), // 129: vtctldata.WorkflowMirrorTrafficRequest + (*vtctldata.ExecuteVtctlCommandResponse)(nil), // 130: vtctldata.ExecuteVtctlCommandResponse + (*vtctldata.AddCellInfoResponse)(nil), // 131: vtctldata.AddCellInfoResponse + (*vtctldata.AddCellsAliasResponse)(nil), // 132: vtctldata.AddCellsAliasResponse + (*vtctldata.ApplyRoutingRulesResponse)(nil), // 133: vtctldata.ApplyRoutingRulesResponse + (*vtctldata.ApplySchemaResponse)(nil), // 134: vtctldata.ApplySchemaResponse + (*vtctldata.ApplyKeyspaceRoutingRulesResponse)(nil), // 135: vtctldata.ApplyKeyspaceRoutingRulesResponse + (*vtctldata.ApplyShardRoutingRulesResponse)(nil), // 136: vtctldata.ApplyShardRoutingRulesResponse + (*vtctldata.ApplyVSchemaResponse)(nil), // 137: vtctldata.ApplyVSchemaResponse + (*vtctldata.BackupResponse)(nil), // 138: vtctldata.BackupResponse + (*vtctldata.CancelSchemaMigrationResponse)(nil), // 139: vtctldata.CancelSchemaMigrationResponse + (*vtctldata.ChangeTabletTagsResponse)(nil), // 140: vtctldata.ChangeTabletTagsResponse + (*vtctldata.ChangeTabletTypeResponse)(nil), // 141: vtctldata.ChangeTabletTypeResponse + (*vtctldata.CheckThrottlerResponse)(nil), // 142: vtctldata.CheckThrottlerResponse + (*vtctldata.CleanupSchemaMigrationResponse)(nil), // 143: vtctldata.CleanupSchemaMigrationResponse + (*vtctldata.CompleteSchemaMigrationResponse)(nil), // 144: vtctldata.CompleteSchemaMigrationResponse + (*vtctldata.ConcludeTransactionResponse)(nil), // 145: vtctldata.ConcludeTransactionResponse + (*vtctldata.CopySchemaShardResponse)(nil), // 146: vtctldata.CopySchemaShardResponse + (*vtctldata.CreateKeyspaceResponse)(nil), // 147: vtctldata.CreateKeyspaceResponse + (*vtctldata.CreateShardResponse)(nil), // 148: vtctldata.CreateShardResponse + (*vtctldata.DeleteCellInfoResponse)(nil), // 149: vtctldata.DeleteCellInfoResponse + (*vtctldata.DeleteCellsAliasResponse)(nil), // 150: vtctldata.DeleteCellsAliasResponse + (*vtctldata.DeleteKeyspaceResponse)(nil), // 151: vtctldata.DeleteKeyspaceResponse + (*vtctldata.DeleteShardsResponse)(nil), // 152: vtctldata.DeleteShardsResponse + (*vtctldata.DeleteSrvVSchemaResponse)(nil), // 153: vtctldata.DeleteSrvVSchemaResponse + (*vtctldata.DeleteTabletsResponse)(nil), // 154: vtctldata.DeleteTabletsResponse + (*vtctldata.EmergencyReparentShardResponse)(nil), // 155: vtctldata.EmergencyReparentShardResponse + (*vtctldata.ExecuteFetchAsAppResponse)(nil), // 156: vtctldata.ExecuteFetchAsAppResponse + (*vtctldata.ExecuteFetchAsDBAResponse)(nil), // 157: vtctldata.ExecuteFetchAsDBAResponse + (*vtctldata.ExecuteHookResponse)(nil), // 158: vtctldata.ExecuteHookResponse + (*vtctldata.ExecuteMultiFetchAsDBAResponse)(nil), // 159: vtctldata.ExecuteMultiFetchAsDBAResponse + (*vtctldata.FindAllShardsInKeyspaceResponse)(nil), // 160: vtctldata.FindAllShardsInKeyspaceResponse + (*vtctldata.ForceCutOverSchemaMigrationResponse)(nil), // 161: vtctldata.ForceCutOverSchemaMigrationResponse + (*vtctldata.GetBackupsResponse)(nil), // 162: vtctldata.GetBackupsResponse + (*vtctldata.GetCellInfoResponse)(nil), // 163: vtctldata.GetCellInfoResponse + (*vtctldata.GetCellInfoNamesResponse)(nil), // 164: vtctldata.GetCellInfoNamesResponse + (*vtctldata.GetCellsAliasesResponse)(nil), // 165: vtctldata.GetCellsAliasesResponse + (*vtctldata.GetFullStatusResponse)(nil), // 166: vtctldata.GetFullStatusResponse + (*vtctldata.GetKeyspaceResponse)(nil), // 167: vtctldata.GetKeyspaceResponse + (*vtctldata.GetKeyspacesResponse)(nil), // 168: vtctldata.GetKeyspacesResponse + (*vtctldata.GetKeyspaceRoutingRulesResponse)(nil), // 169: vtctldata.GetKeyspaceRoutingRulesResponse + (*vtctldata.GetPermissionsResponse)(nil), // 170: vtctldata.GetPermissionsResponse + (*vtctldata.GetRoutingRulesResponse)(nil), // 171: vtctldata.GetRoutingRulesResponse + (*vtctldata.GetSchemaResponse)(nil), // 172: vtctldata.GetSchemaResponse + (*vtctldata.GetSchemaMigrationsResponse)(nil), // 173: vtctldata.GetSchemaMigrationsResponse + (*vtctldata.GetShardReplicationResponse)(nil), // 174: vtctldata.GetShardReplicationResponse + (*vtctldata.GetShardResponse)(nil), // 175: vtctldata.GetShardResponse + (*vtctldata.GetShardRoutingRulesResponse)(nil), // 176: vtctldata.GetShardRoutingRulesResponse + (*vtctldata.GetSrvKeyspaceNamesResponse)(nil), // 177: vtctldata.GetSrvKeyspaceNamesResponse + (*vtctldata.GetSrvKeyspacesResponse)(nil), // 178: vtctldata.GetSrvKeyspacesResponse + (*vtctldata.UpdateThrottlerConfigResponse)(nil), // 179: vtctldata.UpdateThrottlerConfigResponse + (*vtctldata.GetSrvVSchemaResponse)(nil), // 180: vtctldata.GetSrvVSchemaResponse + (*vtctldata.GetSrvVSchemasResponse)(nil), // 181: vtctldata.GetSrvVSchemasResponse + (*vtctldata.GetTabletResponse)(nil), // 182: vtctldata.GetTabletResponse + (*vtctldata.GetTabletsResponse)(nil), // 183: vtctldata.GetTabletsResponse + (*vtctldata.GetThrottlerStatusResponse)(nil), // 184: vtctldata.GetThrottlerStatusResponse + (*vtctldata.GetTopologyPathResponse)(nil), // 185: vtctldata.GetTopologyPathResponse + (*vtctldata.GetTransactionInfoResponse)(nil), // 186: vtctldata.GetTransactionInfoResponse + (*vtctldata.GetUnresolvedTransactionsResponse)(nil), // 187: vtctldata.GetUnresolvedTransactionsResponse + (*vtctldata.GetVersionResponse)(nil), // 188: vtctldata.GetVersionResponse + (*vtctldata.GetVSchemaResponse)(nil), // 189: vtctldata.GetVSchemaResponse + (*vtctldata.GetWorkflowsResponse)(nil), // 190: vtctldata.GetWorkflowsResponse + (*vtctldata.InitShardPrimaryResponse)(nil), // 191: vtctldata.InitShardPrimaryResponse + (*vtctldata.LaunchSchemaMigrationResponse)(nil), // 192: vtctldata.LaunchSchemaMigrationResponse + (*vtctldata.LookupVindexCompleteResponse)(nil), // 193: vtctldata.LookupVindexCompleteResponse + (*vtctldata.LookupVindexCreateResponse)(nil), // 194: vtctldata.LookupVindexCreateResponse + (*vtctldata.LookupVindexExternalizeResponse)(nil), // 195: vtctldata.LookupVindexExternalizeResponse + (*vtctldata.LookupVindexInternalizeResponse)(nil), // 196: vtctldata.LookupVindexInternalizeResponse + (*vtctldata.MaterializeCreateResponse)(nil), // 197: vtctldata.MaterializeCreateResponse + (*vtctldata.WorkflowAddTablesResponse)(nil), // 198: vtctldata.WorkflowAddTablesResponse + (*vtctldata.WorkflowStatusResponse)(nil), // 199: vtctldata.WorkflowStatusResponse + (*vtctldata.MountRegisterResponse)(nil), // 200: vtctldata.MountRegisterResponse + (*vtctldata.MountUnregisterResponse)(nil), // 201: vtctldata.MountUnregisterResponse + (*vtctldata.MountShowResponse)(nil), // 202: vtctldata.MountShowResponse + (*vtctldata.MountListResponse)(nil), // 203: vtctldata.MountListResponse + (*vtctldata.MoveTablesCompleteResponse)(nil), // 204: vtctldata.MoveTablesCompleteResponse + (*vtctldata.PingTabletResponse)(nil), // 205: vtctldata.PingTabletResponse + (*vtctldata.PlannedReparentShardResponse)(nil), // 206: vtctldata.PlannedReparentShardResponse + (*vtctldata.RebuildKeyspaceGraphResponse)(nil), // 207: vtctldata.RebuildKeyspaceGraphResponse + (*vtctldata.RebuildVSchemaGraphResponse)(nil), // 208: vtctldata.RebuildVSchemaGraphResponse + (*vtctldata.RefreshStateResponse)(nil), // 209: vtctldata.RefreshStateResponse + (*vtctldata.RefreshStateByShardResponse)(nil), // 210: vtctldata.RefreshStateByShardResponse + (*vtctldata.ReloadSchemaResponse)(nil), // 211: vtctldata.ReloadSchemaResponse + (*vtctldata.ReloadSchemaKeyspaceResponse)(nil), // 212: vtctldata.ReloadSchemaKeyspaceResponse + (*vtctldata.ReloadSchemaShardResponse)(nil), // 213: vtctldata.ReloadSchemaShardResponse + (*vtctldata.RemoveBackupResponse)(nil), // 214: vtctldata.RemoveBackupResponse + (*vtctldata.RemoveKeyspaceCellResponse)(nil), // 215: vtctldata.RemoveKeyspaceCellResponse + (*vtctldata.RemoveShardCellResponse)(nil), // 216: vtctldata.RemoveShardCellResponse + (*vtctldata.ReparentTabletResponse)(nil), // 217: vtctldata.ReparentTabletResponse + (*vtctldata.RestoreFromBackupResponse)(nil), // 218: vtctldata.RestoreFromBackupResponse + (*vtctldata.RetrySchemaMigrationResponse)(nil), // 219: vtctldata.RetrySchemaMigrationResponse + (*vtctldata.RunHealthCheckResponse)(nil), // 220: vtctldata.RunHealthCheckResponse + (*vtctldata.SetKeyspaceDurabilityPolicyResponse)(nil), // 221: vtctldata.SetKeyspaceDurabilityPolicyResponse + (*vtctldata.SetShardIsPrimaryServingResponse)(nil), // 222: vtctldata.SetShardIsPrimaryServingResponse + (*vtctldata.SetShardTabletControlResponse)(nil), // 223: vtctldata.SetShardTabletControlResponse + (*vtctldata.SetVtorcEmergencyReparentResponse)(nil), // 224: vtctldata.SetVtorcEmergencyReparentResponse + (*vtctldata.SetWritableResponse)(nil), // 225: vtctldata.SetWritableResponse + (*vtctldata.ShardReplicationAddResponse)(nil), // 226: vtctldata.ShardReplicationAddResponse + (*vtctldata.ShardReplicationFixResponse)(nil), // 227: vtctldata.ShardReplicationFixResponse + (*vtctldata.ShardReplicationPositionsResponse)(nil), // 228: vtctldata.ShardReplicationPositionsResponse + (*vtctldata.ShardReplicationRemoveResponse)(nil), // 229: vtctldata.ShardReplicationRemoveResponse + (*vtctldata.SleepTabletResponse)(nil), // 230: vtctldata.SleepTabletResponse + (*vtctldata.SourceShardAddResponse)(nil), // 231: vtctldata.SourceShardAddResponse + (*vtctldata.SourceShardDeleteResponse)(nil), // 232: vtctldata.SourceShardDeleteResponse + (*vtctldata.StartReplicationResponse)(nil), // 233: vtctldata.StartReplicationResponse + (*vtctldata.StopReplicationResponse)(nil), // 234: vtctldata.StopReplicationResponse + (*vtctldata.TabletExternallyReparentedResponse)(nil), // 235: vtctldata.TabletExternallyReparentedResponse + (*vtctldata.UpdateCellInfoResponse)(nil), // 236: vtctldata.UpdateCellInfoResponse + (*vtctldata.UpdateCellsAliasResponse)(nil), // 237: vtctldata.UpdateCellsAliasResponse + (*vtctldata.ValidateResponse)(nil), // 238: vtctldata.ValidateResponse + (*vtctldata.ValidateKeyspaceResponse)(nil), // 239: vtctldata.ValidateKeyspaceResponse + (*vtctldata.ValidatePermissionsKeyspaceResponse)(nil), // 240: vtctldata.ValidatePermissionsKeyspaceResponse + (*vtctldata.ValidateSchemaKeyspaceResponse)(nil), // 241: vtctldata.ValidateSchemaKeyspaceResponse + (*vtctldata.ValidateShardResponse)(nil), // 242: vtctldata.ValidateShardResponse + (*vtctldata.ValidateVersionKeyspaceResponse)(nil), // 243: vtctldata.ValidateVersionKeyspaceResponse + (*vtctldata.ValidateVersionShardResponse)(nil), // 244: vtctldata.ValidateVersionShardResponse + (*vtctldata.ValidateVSchemaResponse)(nil), // 245: vtctldata.ValidateVSchemaResponse + (*vtctldata.VDiffCreateResponse)(nil), // 246: vtctldata.VDiffCreateResponse + (*vtctldata.VDiffDeleteResponse)(nil), // 247: vtctldata.VDiffDeleteResponse + (*vtctldata.VDiffResumeResponse)(nil), // 248: vtctldata.VDiffResumeResponse + (*vtctldata.VDiffShowResponse)(nil), // 249: vtctldata.VDiffShowResponse + (*vtctldata.VDiffStopResponse)(nil), // 250: vtctldata.VDiffStopResponse + (*vtctldata.WorkflowDeleteResponse)(nil), // 251: vtctldata.WorkflowDeleteResponse + (*vtctldata.WorkflowSwitchTrafficResponse)(nil), // 252: vtctldata.WorkflowSwitchTrafficResponse + (*vtctldata.WorkflowUpdateResponse)(nil), // 253: vtctldata.WorkflowUpdateResponse + (*vtctldata.GetMirrorRulesResponse)(nil), // 254: vtctldata.GetMirrorRulesResponse + (*vtctldata.WorkflowMirrorTrafficResponse)(nil), // 255: vtctldata.WorkflowMirrorTrafficResponse } var file_vtctlservice_proto_depIdxs = []int32{ 0, // 0: vtctlservice.Vtctl.ExecuteVtctlCommand:input_type -> vtctldata.ExecuteVtctlCommandRequest @@ -535,169 +538,171 @@ var file_vtctlservice_proto_depIdxs = []int32{ 94, // 94: vtctlservice.Vtctld.SetKeyspaceDurabilityPolicy:input_type -> vtctldata.SetKeyspaceDurabilityPolicyRequest 95, // 95: vtctlservice.Vtctld.SetShardIsPrimaryServing:input_type -> vtctldata.SetShardIsPrimaryServingRequest 96, // 96: vtctlservice.Vtctld.SetShardTabletControl:input_type -> vtctldata.SetShardTabletControlRequest - 97, // 97: vtctlservice.Vtctld.SetWritable:input_type -> vtctldata.SetWritableRequest - 98, // 98: vtctlservice.Vtctld.ShardReplicationAdd:input_type -> vtctldata.ShardReplicationAddRequest - 99, // 99: vtctlservice.Vtctld.ShardReplicationFix:input_type -> vtctldata.ShardReplicationFixRequest - 100, // 100: vtctlservice.Vtctld.ShardReplicationPositions:input_type -> vtctldata.ShardReplicationPositionsRequest - 101, // 101: vtctlservice.Vtctld.ShardReplicationRemove:input_type -> vtctldata.ShardReplicationRemoveRequest - 102, // 102: vtctlservice.Vtctld.SleepTablet:input_type -> vtctldata.SleepTabletRequest - 103, // 103: vtctlservice.Vtctld.SourceShardAdd:input_type -> vtctldata.SourceShardAddRequest - 104, // 104: vtctlservice.Vtctld.SourceShardDelete:input_type -> vtctldata.SourceShardDeleteRequest - 105, // 105: vtctlservice.Vtctld.StartReplication:input_type -> vtctldata.StartReplicationRequest - 106, // 106: vtctlservice.Vtctld.StopReplication:input_type -> vtctldata.StopReplicationRequest - 107, // 107: vtctlservice.Vtctld.TabletExternallyReparented:input_type -> vtctldata.TabletExternallyReparentedRequest - 108, // 108: vtctlservice.Vtctld.UpdateCellInfo:input_type -> vtctldata.UpdateCellInfoRequest - 109, // 109: vtctlservice.Vtctld.UpdateCellsAlias:input_type -> vtctldata.UpdateCellsAliasRequest - 110, // 110: vtctlservice.Vtctld.Validate:input_type -> vtctldata.ValidateRequest - 111, // 111: vtctlservice.Vtctld.ValidateKeyspace:input_type -> vtctldata.ValidateKeyspaceRequest - 112, // 112: vtctlservice.Vtctld.ValidatePermissionsKeyspace:input_type -> vtctldata.ValidatePermissionsKeyspaceRequest - 113, // 113: vtctlservice.Vtctld.ValidateSchemaKeyspace:input_type -> vtctldata.ValidateSchemaKeyspaceRequest - 114, // 114: vtctlservice.Vtctld.ValidateShard:input_type -> vtctldata.ValidateShardRequest - 115, // 115: vtctlservice.Vtctld.ValidateVersionKeyspace:input_type -> vtctldata.ValidateVersionKeyspaceRequest - 116, // 116: vtctlservice.Vtctld.ValidateVersionShard:input_type -> vtctldata.ValidateVersionShardRequest - 117, // 117: vtctlservice.Vtctld.ValidateVSchema:input_type -> vtctldata.ValidateVSchemaRequest - 118, // 118: vtctlservice.Vtctld.VDiffCreate:input_type -> vtctldata.VDiffCreateRequest - 119, // 119: vtctlservice.Vtctld.VDiffDelete:input_type -> vtctldata.VDiffDeleteRequest - 120, // 120: vtctlservice.Vtctld.VDiffResume:input_type -> vtctldata.VDiffResumeRequest - 121, // 121: vtctlservice.Vtctld.VDiffShow:input_type -> vtctldata.VDiffShowRequest - 122, // 122: vtctlservice.Vtctld.VDiffStop:input_type -> vtctldata.VDiffStopRequest - 123, // 123: vtctlservice.Vtctld.WorkflowDelete:input_type -> vtctldata.WorkflowDeleteRequest - 124, // 124: vtctlservice.Vtctld.WorkflowStatus:input_type -> vtctldata.WorkflowStatusRequest - 125, // 125: vtctlservice.Vtctld.WorkflowSwitchTraffic:input_type -> vtctldata.WorkflowSwitchTrafficRequest - 126, // 126: vtctlservice.Vtctld.WorkflowUpdate:input_type -> vtctldata.WorkflowUpdateRequest - 127, // 127: vtctlservice.Vtctld.GetMirrorRules:input_type -> vtctldata.GetMirrorRulesRequest - 128, // 128: vtctlservice.Vtctld.WorkflowMirrorTraffic:input_type -> vtctldata.WorkflowMirrorTrafficRequest - 129, // 129: vtctlservice.Vtctl.ExecuteVtctlCommand:output_type -> vtctldata.ExecuteVtctlCommandResponse - 130, // 130: vtctlservice.Vtctld.AddCellInfo:output_type -> vtctldata.AddCellInfoResponse - 131, // 131: vtctlservice.Vtctld.AddCellsAlias:output_type -> vtctldata.AddCellsAliasResponse - 132, // 132: vtctlservice.Vtctld.ApplyRoutingRules:output_type -> vtctldata.ApplyRoutingRulesResponse - 133, // 133: vtctlservice.Vtctld.ApplySchema:output_type -> vtctldata.ApplySchemaResponse - 134, // 134: vtctlservice.Vtctld.ApplyKeyspaceRoutingRules:output_type -> vtctldata.ApplyKeyspaceRoutingRulesResponse - 135, // 135: vtctlservice.Vtctld.ApplyShardRoutingRules:output_type -> vtctldata.ApplyShardRoutingRulesResponse - 136, // 136: vtctlservice.Vtctld.ApplyVSchema:output_type -> vtctldata.ApplyVSchemaResponse - 137, // 137: vtctlservice.Vtctld.Backup:output_type -> vtctldata.BackupResponse - 137, // 138: vtctlservice.Vtctld.BackupShard:output_type -> vtctldata.BackupResponse - 138, // 139: vtctlservice.Vtctld.CancelSchemaMigration:output_type -> vtctldata.CancelSchemaMigrationResponse - 139, // 140: vtctlservice.Vtctld.ChangeTabletTags:output_type -> vtctldata.ChangeTabletTagsResponse - 140, // 141: vtctlservice.Vtctld.ChangeTabletType:output_type -> vtctldata.ChangeTabletTypeResponse - 141, // 142: vtctlservice.Vtctld.CheckThrottler:output_type -> vtctldata.CheckThrottlerResponse - 142, // 143: vtctlservice.Vtctld.CleanupSchemaMigration:output_type -> vtctldata.CleanupSchemaMigrationResponse - 143, // 144: vtctlservice.Vtctld.CompleteSchemaMigration:output_type -> vtctldata.CompleteSchemaMigrationResponse - 144, // 145: vtctlservice.Vtctld.ConcludeTransaction:output_type -> vtctldata.ConcludeTransactionResponse - 145, // 146: vtctlservice.Vtctld.CopySchemaShard:output_type -> vtctldata.CopySchemaShardResponse - 146, // 147: vtctlservice.Vtctld.CreateKeyspace:output_type -> vtctldata.CreateKeyspaceResponse - 147, // 148: vtctlservice.Vtctld.CreateShard:output_type -> vtctldata.CreateShardResponse - 148, // 149: vtctlservice.Vtctld.DeleteCellInfo:output_type -> vtctldata.DeleteCellInfoResponse - 149, // 150: vtctlservice.Vtctld.DeleteCellsAlias:output_type -> vtctldata.DeleteCellsAliasResponse - 150, // 151: vtctlservice.Vtctld.DeleteKeyspace:output_type -> vtctldata.DeleteKeyspaceResponse - 151, // 152: vtctlservice.Vtctld.DeleteShards:output_type -> vtctldata.DeleteShardsResponse - 152, // 153: vtctlservice.Vtctld.DeleteSrvVSchema:output_type -> vtctldata.DeleteSrvVSchemaResponse - 153, // 154: vtctlservice.Vtctld.DeleteTablets:output_type -> vtctldata.DeleteTabletsResponse - 154, // 155: vtctlservice.Vtctld.EmergencyReparentShard:output_type -> vtctldata.EmergencyReparentShardResponse - 155, // 156: vtctlservice.Vtctld.ExecuteFetchAsApp:output_type -> vtctldata.ExecuteFetchAsAppResponse - 156, // 157: vtctlservice.Vtctld.ExecuteFetchAsDBA:output_type -> vtctldata.ExecuteFetchAsDBAResponse - 157, // 158: vtctlservice.Vtctld.ExecuteHook:output_type -> vtctldata.ExecuteHookResponse - 158, // 159: vtctlservice.Vtctld.ExecuteMultiFetchAsDBA:output_type -> vtctldata.ExecuteMultiFetchAsDBAResponse - 159, // 160: vtctlservice.Vtctld.FindAllShardsInKeyspace:output_type -> vtctldata.FindAllShardsInKeyspaceResponse - 160, // 161: vtctlservice.Vtctld.ForceCutOverSchemaMigration:output_type -> vtctldata.ForceCutOverSchemaMigrationResponse - 161, // 162: vtctlservice.Vtctld.GetBackups:output_type -> vtctldata.GetBackupsResponse - 162, // 163: vtctlservice.Vtctld.GetCellInfo:output_type -> vtctldata.GetCellInfoResponse - 163, // 164: vtctlservice.Vtctld.GetCellInfoNames:output_type -> vtctldata.GetCellInfoNamesResponse - 164, // 165: vtctlservice.Vtctld.GetCellsAliases:output_type -> vtctldata.GetCellsAliasesResponse - 165, // 166: vtctlservice.Vtctld.GetFullStatus:output_type -> vtctldata.GetFullStatusResponse - 166, // 167: vtctlservice.Vtctld.GetKeyspace:output_type -> vtctldata.GetKeyspaceResponse - 167, // 168: vtctlservice.Vtctld.GetKeyspaces:output_type -> vtctldata.GetKeyspacesResponse - 168, // 169: vtctlservice.Vtctld.GetKeyspaceRoutingRules:output_type -> vtctldata.GetKeyspaceRoutingRulesResponse - 169, // 170: vtctlservice.Vtctld.GetPermissions:output_type -> vtctldata.GetPermissionsResponse - 170, // 171: vtctlservice.Vtctld.GetRoutingRules:output_type -> vtctldata.GetRoutingRulesResponse - 171, // 172: vtctlservice.Vtctld.GetSchema:output_type -> vtctldata.GetSchemaResponse - 172, // 173: vtctlservice.Vtctld.GetSchemaMigrations:output_type -> vtctldata.GetSchemaMigrationsResponse - 173, // 174: vtctlservice.Vtctld.GetShardReplication:output_type -> vtctldata.GetShardReplicationResponse - 174, // 175: vtctlservice.Vtctld.GetShard:output_type -> vtctldata.GetShardResponse - 175, // 176: vtctlservice.Vtctld.GetShardRoutingRules:output_type -> vtctldata.GetShardRoutingRulesResponse - 176, // 177: vtctlservice.Vtctld.GetSrvKeyspaceNames:output_type -> vtctldata.GetSrvKeyspaceNamesResponse - 177, // 178: vtctlservice.Vtctld.GetSrvKeyspaces:output_type -> vtctldata.GetSrvKeyspacesResponse - 178, // 179: vtctlservice.Vtctld.UpdateThrottlerConfig:output_type -> vtctldata.UpdateThrottlerConfigResponse - 179, // 180: vtctlservice.Vtctld.GetSrvVSchema:output_type -> vtctldata.GetSrvVSchemaResponse - 180, // 181: vtctlservice.Vtctld.GetSrvVSchemas:output_type -> vtctldata.GetSrvVSchemasResponse - 181, // 182: vtctlservice.Vtctld.GetTablet:output_type -> vtctldata.GetTabletResponse - 182, // 183: vtctlservice.Vtctld.GetTablets:output_type -> vtctldata.GetTabletsResponse - 183, // 184: vtctlservice.Vtctld.GetThrottlerStatus:output_type -> vtctldata.GetThrottlerStatusResponse - 184, // 185: vtctlservice.Vtctld.GetTopologyPath:output_type -> vtctldata.GetTopologyPathResponse - 185, // 186: vtctlservice.Vtctld.GetTransactionInfo:output_type -> vtctldata.GetTransactionInfoResponse - 186, // 187: vtctlservice.Vtctld.GetUnresolvedTransactions:output_type -> vtctldata.GetUnresolvedTransactionsResponse - 187, // 188: vtctlservice.Vtctld.GetVersion:output_type -> vtctldata.GetVersionResponse - 188, // 189: vtctlservice.Vtctld.GetVSchema:output_type -> vtctldata.GetVSchemaResponse - 189, // 190: vtctlservice.Vtctld.GetWorkflows:output_type -> vtctldata.GetWorkflowsResponse - 190, // 191: vtctlservice.Vtctld.InitShardPrimary:output_type -> vtctldata.InitShardPrimaryResponse - 191, // 192: vtctlservice.Vtctld.LaunchSchemaMigration:output_type -> vtctldata.LaunchSchemaMigrationResponse - 192, // 193: vtctlservice.Vtctld.LookupVindexComplete:output_type -> vtctldata.LookupVindexCompleteResponse - 193, // 194: vtctlservice.Vtctld.LookupVindexCreate:output_type -> vtctldata.LookupVindexCreateResponse - 194, // 195: vtctlservice.Vtctld.LookupVindexExternalize:output_type -> vtctldata.LookupVindexExternalizeResponse - 195, // 196: vtctlservice.Vtctld.LookupVindexInternalize:output_type -> vtctldata.LookupVindexInternalizeResponse - 196, // 197: vtctlservice.Vtctld.MaterializeCreate:output_type -> vtctldata.MaterializeCreateResponse - 197, // 198: vtctlservice.Vtctld.WorkflowAddTables:output_type -> vtctldata.WorkflowAddTablesResponse - 198, // 199: vtctlservice.Vtctld.MigrateCreate:output_type -> vtctldata.WorkflowStatusResponse - 199, // 200: vtctlservice.Vtctld.MountRegister:output_type -> vtctldata.MountRegisterResponse - 200, // 201: vtctlservice.Vtctld.MountUnregister:output_type -> vtctldata.MountUnregisterResponse - 201, // 202: vtctlservice.Vtctld.MountShow:output_type -> vtctldata.MountShowResponse - 202, // 203: vtctlservice.Vtctld.MountList:output_type -> vtctldata.MountListResponse - 198, // 204: vtctlservice.Vtctld.MoveTablesCreate:output_type -> vtctldata.WorkflowStatusResponse - 203, // 205: vtctlservice.Vtctld.MoveTablesComplete:output_type -> vtctldata.MoveTablesCompleteResponse - 204, // 206: vtctlservice.Vtctld.PingTablet:output_type -> vtctldata.PingTabletResponse - 205, // 207: vtctlservice.Vtctld.PlannedReparentShard:output_type -> vtctldata.PlannedReparentShardResponse - 206, // 208: vtctlservice.Vtctld.RebuildKeyspaceGraph:output_type -> vtctldata.RebuildKeyspaceGraphResponse - 207, // 209: vtctlservice.Vtctld.RebuildVSchemaGraph:output_type -> vtctldata.RebuildVSchemaGraphResponse - 208, // 210: vtctlservice.Vtctld.RefreshState:output_type -> vtctldata.RefreshStateResponse - 209, // 211: vtctlservice.Vtctld.RefreshStateByShard:output_type -> vtctldata.RefreshStateByShardResponse - 210, // 212: vtctlservice.Vtctld.ReloadSchema:output_type -> vtctldata.ReloadSchemaResponse - 211, // 213: vtctlservice.Vtctld.ReloadSchemaKeyspace:output_type -> vtctldata.ReloadSchemaKeyspaceResponse - 212, // 214: vtctlservice.Vtctld.ReloadSchemaShard:output_type -> vtctldata.ReloadSchemaShardResponse - 213, // 215: vtctlservice.Vtctld.RemoveBackup:output_type -> vtctldata.RemoveBackupResponse - 214, // 216: vtctlservice.Vtctld.RemoveKeyspaceCell:output_type -> vtctldata.RemoveKeyspaceCellResponse - 215, // 217: vtctlservice.Vtctld.RemoveShardCell:output_type -> vtctldata.RemoveShardCellResponse - 216, // 218: vtctlservice.Vtctld.ReparentTablet:output_type -> vtctldata.ReparentTabletResponse - 198, // 219: vtctlservice.Vtctld.ReshardCreate:output_type -> vtctldata.WorkflowStatusResponse - 217, // 220: vtctlservice.Vtctld.RestoreFromBackup:output_type -> vtctldata.RestoreFromBackupResponse - 218, // 221: vtctlservice.Vtctld.RetrySchemaMigration:output_type -> vtctldata.RetrySchemaMigrationResponse - 219, // 222: vtctlservice.Vtctld.RunHealthCheck:output_type -> vtctldata.RunHealthCheckResponse - 220, // 223: vtctlservice.Vtctld.SetKeyspaceDurabilityPolicy:output_type -> vtctldata.SetKeyspaceDurabilityPolicyResponse - 221, // 224: vtctlservice.Vtctld.SetShardIsPrimaryServing:output_type -> vtctldata.SetShardIsPrimaryServingResponse - 222, // 225: vtctlservice.Vtctld.SetShardTabletControl:output_type -> vtctldata.SetShardTabletControlResponse - 223, // 226: vtctlservice.Vtctld.SetWritable:output_type -> vtctldata.SetWritableResponse - 224, // 227: vtctlservice.Vtctld.ShardReplicationAdd:output_type -> vtctldata.ShardReplicationAddResponse - 225, // 228: vtctlservice.Vtctld.ShardReplicationFix:output_type -> vtctldata.ShardReplicationFixResponse - 226, // 229: vtctlservice.Vtctld.ShardReplicationPositions:output_type -> vtctldata.ShardReplicationPositionsResponse - 227, // 230: vtctlservice.Vtctld.ShardReplicationRemove:output_type -> vtctldata.ShardReplicationRemoveResponse - 228, // 231: vtctlservice.Vtctld.SleepTablet:output_type -> vtctldata.SleepTabletResponse - 229, // 232: vtctlservice.Vtctld.SourceShardAdd:output_type -> vtctldata.SourceShardAddResponse - 230, // 233: vtctlservice.Vtctld.SourceShardDelete:output_type -> vtctldata.SourceShardDeleteResponse - 231, // 234: vtctlservice.Vtctld.StartReplication:output_type -> vtctldata.StartReplicationResponse - 232, // 235: vtctlservice.Vtctld.StopReplication:output_type -> vtctldata.StopReplicationResponse - 233, // 236: vtctlservice.Vtctld.TabletExternallyReparented:output_type -> vtctldata.TabletExternallyReparentedResponse - 234, // 237: vtctlservice.Vtctld.UpdateCellInfo:output_type -> vtctldata.UpdateCellInfoResponse - 235, // 238: vtctlservice.Vtctld.UpdateCellsAlias:output_type -> vtctldata.UpdateCellsAliasResponse - 236, // 239: vtctlservice.Vtctld.Validate:output_type -> vtctldata.ValidateResponse - 237, // 240: vtctlservice.Vtctld.ValidateKeyspace:output_type -> vtctldata.ValidateKeyspaceResponse - 238, // 241: vtctlservice.Vtctld.ValidatePermissionsKeyspace:output_type -> vtctldata.ValidatePermissionsKeyspaceResponse - 239, // 242: vtctlservice.Vtctld.ValidateSchemaKeyspace:output_type -> vtctldata.ValidateSchemaKeyspaceResponse - 240, // 243: vtctlservice.Vtctld.ValidateShard:output_type -> vtctldata.ValidateShardResponse - 241, // 244: vtctlservice.Vtctld.ValidateVersionKeyspace:output_type -> vtctldata.ValidateVersionKeyspaceResponse - 242, // 245: vtctlservice.Vtctld.ValidateVersionShard:output_type -> vtctldata.ValidateVersionShardResponse - 243, // 246: vtctlservice.Vtctld.ValidateVSchema:output_type -> vtctldata.ValidateVSchemaResponse - 244, // 247: vtctlservice.Vtctld.VDiffCreate:output_type -> vtctldata.VDiffCreateResponse - 245, // 248: vtctlservice.Vtctld.VDiffDelete:output_type -> vtctldata.VDiffDeleteResponse - 246, // 249: vtctlservice.Vtctld.VDiffResume:output_type -> vtctldata.VDiffResumeResponse - 247, // 250: vtctlservice.Vtctld.VDiffShow:output_type -> vtctldata.VDiffShowResponse - 248, // 251: vtctlservice.Vtctld.VDiffStop:output_type -> vtctldata.VDiffStopResponse - 249, // 252: vtctlservice.Vtctld.WorkflowDelete:output_type -> vtctldata.WorkflowDeleteResponse - 198, // 253: vtctlservice.Vtctld.WorkflowStatus:output_type -> vtctldata.WorkflowStatusResponse - 250, // 254: vtctlservice.Vtctld.WorkflowSwitchTraffic:output_type -> vtctldata.WorkflowSwitchTrafficResponse - 251, // 255: vtctlservice.Vtctld.WorkflowUpdate:output_type -> vtctldata.WorkflowUpdateResponse - 252, // 256: vtctlservice.Vtctld.GetMirrorRules:output_type -> vtctldata.GetMirrorRulesResponse - 253, // 257: vtctlservice.Vtctld.WorkflowMirrorTraffic:output_type -> vtctldata.WorkflowMirrorTrafficResponse - 129, // [129:258] is the sub-list for method output_type - 0, // [0:129] is the sub-list for method input_type + 97, // 97: vtctlservice.Vtctld.SetVtorcEmergencyReparent:input_type -> vtctldata.SetVtorcEmergencyReparentRequest + 98, // 98: vtctlservice.Vtctld.SetWritable:input_type -> vtctldata.SetWritableRequest + 99, // 99: vtctlservice.Vtctld.ShardReplicationAdd:input_type -> vtctldata.ShardReplicationAddRequest + 100, // 100: vtctlservice.Vtctld.ShardReplicationFix:input_type -> vtctldata.ShardReplicationFixRequest + 101, // 101: vtctlservice.Vtctld.ShardReplicationPositions:input_type -> vtctldata.ShardReplicationPositionsRequest + 102, // 102: vtctlservice.Vtctld.ShardReplicationRemove:input_type -> vtctldata.ShardReplicationRemoveRequest + 103, // 103: vtctlservice.Vtctld.SleepTablet:input_type -> vtctldata.SleepTabletRequest + 104, // 104: vtctlservice.Vtctld.SourceShardAdd:input_type -> vtctldata.SourceShardAddRequest + 105, // 105: vtctlservice.Vtctld.SourceShardDelete:input_type -> vtctldata.SourceShardDeleteRequest + 106, // 106: vtctlservice.Vtctld.StartReplication:input_type -> vtctldata.StartReplicationRequest + 107, // 107: vtctlservice.Vtctld.StopReplication:input_type -> vtctldata.StopReplicationRequest + 108, // 108: vtctlservice.Vtctld.TabletExternallyReparented:input_type -> vtctldata.TabletExternallyReparentedRequest + 109, // 109: vtctlservice.Vtctld.UpdateCellInfo:input_type -> vtctldata.UpdateCellInfoRequest + 110, // 110: vtctlservice.Vtctld.UpdateCellsAlias:input_type -> vtctldata.UpdateCellsAliasRequest + 111, // 111: vtctlservice.Vtctld.Validate:input_type -> vtctldata.ValidateRequest + 112, // 112: vtctlservice.Vtctld.ValidateKeyspace:input_type -> vtctldata.ValidateKeyspaceRequest + 113, // 113: vtctlservice.Vtctld.ValidatePermissionsKeyspace:input_type -> vtctldata.ValidatePermissionsKeyspaceRequest + 114, // 114: vtctlservice.Vtctld.ValidateSchemaKeyspace:input_type -> vtctldata.ValidateSchemaKeyspaceRequest + 115, // 115: vtctlservice.Vtctld.ValidateShard:input_type -> vtctldata.ValidateShardRequest + 116, // 116: vtctlservice.Vtctld.ValidateVersionKeyspace:input_type -> vtctldata.ValidateVersionKeyspaceRequest + 117, // 117: vtctlservice.Vtctld.ValidateVersionShard:input_type -> vtctldata.ValidateVersionShardRequest + 118, // 118: vtctlservice.Vtctld.ValidateVSchema:input_type -> vtctldata.ValidateVSchemaRequest + 119, // 119: vtctlservice.Vtctld.VDiffCreate:input_type -> vtctldata.VDiffCreateRequest + 120, // 120: vtctlservice.Vtctld.VDiffDelete:input_type -> vtctldata.VDiffDeleteRequest + 121, // 121: vtctlservice.Vtctld.VDiffResume:input_type -> vtctldata.VDiffResumeRequest + 122, // 122: vtctlservice.Vtctld.VDiffShow:input_type -> vtctldata.VDiffShowRequest + 123, // 123: vtctlservice.Vtctld.VDiffStop:input_type -> vtctldata.VDiffStopRequest + 124, // 124: vtctlservice.Vtctld.WorkflowDelete:input_type -> vtctldata.WorkflowDeleteRequest + 125, // 125: vtctlservice.Vtctld.WorkflowStatus:input_type -> vtctldata.WorkflowStatusRequest + 126, // 126: vtctlservice.Vtctld.WorkflowSwitchTraffic:input_type -> vtctldata.WorkflowSwitchTrafficRequest + 127, // 127: vtctlservice.Vtctld.WorkflowUpdate:input_type -> vtctldata.WorkflowUpdateRequest + 128, // 128: vtctlservice.Vtctld.GetMirrorRules:input_type -> vtctldata.GetMirrorRulesRequest + 129, // 129: vtctlservice.Vtctld.WorkflowMirrorTraffic:input_type -> vtctldata.WorkflowMirrorTrafficRequest + 130, // 130: vtctlservice.Vtctl.ExecuteVtctlCommand:output_type -> vtctldata.ExecuteVtctlCommandResponse + 131, // 131: vtctlservice.Vtctld.AddCellInfo:output_type -> vtctldata.AddCellInfoResponse + 132, // 132: vtctlservice.Vtctld.AddCellsAlias:output_type -> vtctldata.AddCellsAliasResponse + 133, // 133: vtctlservice.Vtctld.ApplyRoutingRules:output_type -> vtctldata.ApplyRoutingRulesResponse + 134, // 134: vtctlservice.Vtctld.ApplySchema:output_type -> vtctldata.ApplySchemaResponse + 135, // 135: vtctlservice.Vtctld.ApplyKeyspaceRoutingRules:output_type -> vtctldata.ApplyKeyspaceRoutingRulesResponse + 136, // 136: vtctlservice.Vtctld.ApplyShardRoutingRules:output_type -> vtctldata.ApplyShardRoutingRulesResponse + 137, // 137: vtctlservice.Vtctld.ApplyVSchema:output_type -> vtctldata.ApplyVSchemaResponse + 138, // 138: vtctlservice.Vtctld.Backup:output_type -> vtctldata.BackupResponse + 138, // 139: vtctlservice.Vtctld.BackupShard:output_type -> vtctldata.BackupResponse + 139, // 140: vtctlservice.Vtctld.CancelSchemaMigration:output_type -> vtctldata.CancelSchemaMigrationResponse + 140, // 141: vtctlservice.Vtctld.ChangeTabletTags:output_type -> vtctldata.ChangeTabletTagsResponse + 141, // 142: vtctlservice.Vtctld.ChangeTabletType:output_type -> vtctldata.ChangeTabletTypeResponse + 142, // 143: vtctlservice.Vtctld.CheckThrottler:output_type -> vtctldata.CheckThrottlerResponse + 143, // 144: vtctlservice.Vtctld.CleanupSchemaMigration:output_type -> vtctldata.CleanupSchemaMigrationResponse + 144, // 145: vtctlservice.Vtctld.CompleteSchemaMigration:output_type -> vtctldata.CompleteSchemaMigrationResponse + 145, // 146: vtctlservice.Vtctld.ConcludeTransaction:output_type -> vtctldata.ConcludeTransactionResponse + 146, // 147: vtctlservice.Vtctld.CopySchemaShard:output_type -> vtctldata.CopySchemaShardResponse + 147, // 148: vtctlservice.Vtctld.CreateKeyspace:output_type -> vtctldata.CreateKeyspaceResponse + 148, // 149: vtctlservice.Vtctld.CreateShard:output_type -> vtctldata.CreateShardResponse + 149, // 150: vtctlservice.Vtctld.DeleteCellInfo:output_type -> vtctldata.DeleteCellInfoResponse + 150, // 151: vtctlservice.Vtctld.DeleteCellsAlias:output_type -> vtctldata.DeleteCellsAliasResponse + 151, // 152: vtctlservice.Vtctld.DeleteKeyspace:output_type -> vtctldata.DeleteKeyspaceResponse + 152, // 153: vtctlservice.Vtctld.DeleteShards:output_type -> vtctldata.DeleteShardsResponse + 153, // 154: vtctlservice.Vtctld.DeleteSrvVSchema:output_type -> vtctldata.DeleteSrvVSchemaResponse + 154, // 155: vtctlservice.Vtctld.DeleteTablets:output_type -> vtctldata.DeleteTabletsResponse + 155, // 156: vtctlservice.Vtctld.EmergencyReparentShard:output_type -> vtctldata.EmergencyReparentShardResponse + 156, // 157: vtctlservice.Vtctld.ExecuteFetchAsApp:output_type -> vtctldata.ExecuteFetchAsAppResponse + 157, // 158: vtctlservice.Vtctld.ExecuteFetchAsDBA:output_type -> vtctldata.ExecuteFetchAsDBAResponse + 158, // 159: vtctlservice.Vtctld.ExecuteHook:output_type -> vtctldata.ExecuteHookResponse + 159, // 160: vtctlservice.Vtctld.ExecuteMultiFetchAsDBA:output_type -> vtctldata.ExecuteMultiFetchAsDBAResponse + 160, // 161: vtctlservice.Vtctld.FindAllShardsInKeyspace:output_type -> vtctldata.FindAllShardsInKeyspaceResponse + 161, // 162: vtctlservice.Vtctld.ForceCutOverSchemaMigration:output_type -> vtctldata.ForceCutOverSchemaMigrationResponse + 162, // 163: vtctlservice.Vtctld.GetBackups:output_type -> vtctldata.GetBackupsResponse + 163, // 164: vtctlservice.Vtctld.GetCellInfo:output_type -> vtctldata.GetCellInfoResponse + 164, // 165: vtctlservice.Vtctld.GetCellInfoNames:output_type -> vtctldata.GetCellInfoNamesResponse + 165, // 166: vtctlservice.Vtctld.GetCellsAliases:output_type -> vtctldata.GetCellsAliasesResponse + 166, // 167: vtctlservice.Vtctld.GetFullStatus:output_type -> vtctldata.GetFullStatusResponse + 167, // 168: vtctlservice.Vtctld.GetKeyspace:output_type -> vtctldata.GetKeyspaceResponse + 168, // 169: vtctlservice.Vtctld.GetKeyspaces:output_type -> vtctldata.GetKeyspacesResponse + 169, // 170: vtctlservice.Vtctld.GetKeyspaceRoutingRules:output_type -> vtctldata.GetKeyspaceRoutingRulesResponse + 170, // 171: vtctlservice.Vtctld.GetPermissions:output_type -> vtctldata.GetPermissionsResponse + 171, // 172: vtctlservice.Vtctld.GetRoutingRules:output_type -> vtctldata.GetRoutingRulesResponse + 172, // 173: vtctlservice.Vtctld.GetSchema:output_type -> vtctldata.GetSchemaResponse + 173, // 174: vtctlservice.Vtctld.GetSchemaMigrations:output_type -> vtctldata.GetSchemaMigrationsResponse + 174, // 175: vtctlservice.Vtctld.GetShardReplication:output_type -> vtctldata.GetShardReplicationResponse + 175, // 176: vtctlservice.Vtctld.GetShard:output_type -> vtctldata.GetShardResponse + 176, // 177: vtctlservice.Vtctld.GetShardRoutingRules:output_type -> vtctldata.GetShardRoutingRulesResponse + 177, // 178: vtctlservice.Vtctld.GetSrvKeyspaceNames:output_type -> vtctldata.GetSrvKeyspaceNamesResponse + 178, // 179: vtctlservice.Vtctld.GetSrvKeyspaces:output_type -> vtctldata.GetSrvKeyspacesResponse + 179, // 180: vtctlservice.Vtctld.UpdateThrottlerConfig:output_type -> vtctldata.UpdateThrottlerConfigResponse + 180, // 181: vtctlservice.Vtctld.GetSrvVSchema:output_type -> vtctldata.GetSrvVSchemaResponse + 181, // 182: vtctlservice.Vtctld.GetSrvVSchemas:output_type -> vtctldata.GetSrvVSchemasResponse + 182, // 183: vtctlservice.Vtctld.GetTablet:output_type -> vtctldata.GetTabletResponse + 183, // 184: vtctlservice.Vtctld.GetTablets:output_type -> vtctldata.GetTabletsResponse + 184, // 185: vtctlservice.Vtctld.GetThrottlerStatus:output_type -> vtctldata.GetThrottlerStatusResponse + 185, // 186: vtctlservice.Vtctld.GetTopologyPath:output_type -> vtctldata.GetTopologyPathResponse + 186, // 187: vtctlservice.Vtctld.GetTransactionInfo:output_type -> vtctldata.GetTransactionInfoResponse + 187, // 188: vtctlservice.Vtctld.GetUnresolvedTransactions:output_type -> vtctldata.GetUnresolvedTransactionsResponse + 188, // 189: vtctlservice.Vtctld.GetVersion:output_type -> vtctldata.GetVersionResponse + 189, // 190: vtctlservice.Vtctld.GetVSchema:output_type -> vtctldata.GetVSchemaResponse + 190, // 191: vtctlservice.Vtctld.GetWorkflows:output_type -> vtctldata.GetWorkflowsResponse + 191, // 192: vtctlservice.Vtctld.InitShardPrimary:output_type -> vtctldata.InitShardPrimaryResponse + 192, // 193: vtctlservice.Vtctld.LaunchSchemaMigration:output_type -> vtctldata.LaunchSchemaMigrationResponse + 193, // 194: vtctlservice.Vtctld.LookupVindexComplete:output_type -> vtctldata.LookupVindexCompleteResponse + 194, // 195: vtctlservice.Vtctld.LookupVindexCreate:output_type -> vtctldata.LookupVindexCreateResponse + 195, // 196: vtctlservice.Vtctld.LookupVindexExternalize:output_type -> vtctldata.LookupVindexExternalizeResponse + 196, // 197: vtctlservice.Vtctld.LookupVindexInternalize:output_type -> vtctldata.LookupVindexInternalizeResponse + 197, // 198: vtctlservice.Vtctld.MaterializeCreate:output_type -> vtctldata.MaterializeCreateResponse + 198, // 199: vtctlservice.Vtctld.WorkflowAddTables:output_type -> vtctldata.WorkflowAddTablesResponse + 199, // 200: vtctlservice.Vtctld.MigrateCreate:output_type -> vtctldata.WorkflowStatusResponse + 200, // 201: vtctlservice.Vtctld.MountRegister:output_type -> vtctldata.MountRegisterResponse + 201, // 202: vtctlservice.Vtctld.MountUnregister:output_type -> vtctldata.MountUnregisterResponse + 202, // 203: vtctlservice.Vtctld.MountShow:output_type -> vtctldata.MountShowResponse + 203, // 204: vtctlservice.Vtctld.MountList:output_type -> vtctldata.MountListResponse + 199, // 205: vtctlservice.Vtctld.MoveTablesCreate:output_type -> vtctldata.WorkflowStatusResponse + 204, // 206: vtctlservice.Vtctld.MoveTablesComplete:output_type -> vtctldata.MoveTablesCompleteResponse + 205, // 207: vtctlservice.Vtctld.PingTablet:output_type -> vtctldata.PingTabletResponse + 206, // 208: vtctlservice.Vtctld.PlannedReparentShard:output_type -> vtctldata.PlannedReparentShardResponse + 207, // 209: vtctlservice.Vtctld.RebuildKeyspaceGraph:output_type -> vtctldata.RebuildKeyspaceGraphResponse + 208, // 210: vtctlservice.Vtctld.RebuildVSchemaGraph:output_type -> vtctldata.RebuildVSchemaGraphResponse + 209, // 211: vtctlservice.Vtctld.RefreshState:output_type -> vtctldata.RefreshStateResponse + 210, // 212: vtctlservice.Vtctld.RefreshStateByShard:output_type -> vtctldata.RefreshStateByShardResponse + 211, // 213: vtctlservice.Vtctld.ReloadSchema:output_type -> vtctldata.ReloadSchemaResponse + 212, // 214: vtctlservice.Vtctld.ReloadSchemaKeyspace:output_type -> vtctldata.ReloadSchemaKeyspaceResponse + 213, // 215: vtctlservice.Vtctld.ReloadSchemaShard:output_type -> vtctldata.ReloadSchemaShardResponse + 214, // 216: vtctlservice.Vtctld.RemoveBackup:output_type -> vtctldata.RemoveBackupResponse + 215, // 217: vtctlservice.Vtctld.RemoveKeyspaceCell:output_type -> vtctldata.RemoveKeyspaceCellResponse + 216, // 218: vtctlservice.Vtctld.RemoveShardCell:output_type -> vtctldata.RemoveShardCellResponse + 217, // 219: vtctlservice.Vtctld.ReparentTablet:output_type -> vtctldata.ReparentTabletResponse + 199, // 220: vtctlservice.Vtctld.ReshardCreate:output_type -> vtctldata.WorkflowStatusResponse + 218, // 221: vtctlservice.Vtctld.RestoreFromBackup:output_type -> vtctldata.RestoreFromBackupResponse + 219, // 222: vtctlservice.Vtctld.RetrySchemaMigration:output_type -> vtctldata.RetrySchemaMigrationResponse + 220, // 223: vtctlservice.Vtctld.RunHealthCheck:output_type -> vtctldata.RunHealthCheckResponse + 221, // 224: vtctlservice.Vtctld.SetKeyspaceDurabilityPolicy:output_type -> vtctldata.SetKeyspaceDurabilityPolicyResponse + 222, // 225: vtctlservice.Vtctld.SetShardIsPrimaryServing:output_type -> vtctldata.SetShardIsPrimaryServingResponse + 223, // 226: vtctlservice.Vtctld.SetShardTabletControl:output_type -> vtctldata.SetShardTabletControlResponse + 224, // 227: vtctlservice.Vtctld.SetVtorcEmergencyReparent:output_type -> vtctldata.SetVtorcEmergencyReparentResponse + 225, // 228: vtctlservice.Vtctld.SetWritable:output_type -> vtctldata.SetWritableResponse + 226, // 229: vtctlservice.Vtctld.ShardReplicationAdd:output_type -> vtctldata.ShardReplicationAddResponse + 227, // 230: vtctlservice.Vtctld.ShardReplicationFix:output_type -> vtctldata.ShardReplicationFixResponse + 228, // 231: vtctlservice.Vtctld.ShardReplicationPositions:output_type -> vtctldata.ShardReplicationPositionsResponse + 229, // 232: vtctlservice.Vtctld.ShardReplicationRemove:output_type -> vtctldata.ShardReplicationRemoveResponse + 230, // 233: vtctlservice.Vtctld.SleepTablet:output_type -> vtctldata.SleepTabletResponse + 231, // 234: vtctlservice.Vtctld.SourceShardAdd:output_type -> vtctldata.SourceShardAddResponse + 232, // 235: vtctlservice.Vtctld.SourceShardDelete:output_type -> vtctldata.SourceShardDeleteResponse + 233, // 236: vtctlservice.Vtctld.StartReplication:output_type -> vtctldata.StartReplicationResponse + 234, // 237: vtctlservice.Vtctld.StopReplication:output_type -> vtctldata.StopReplicationResponse + 235, // 238: vtctlservice.Vtctld.TabletExternallyReparented:output_type -> vtctldata.TabletExternallyReparentedResponse + 236, // 239: vtctlservice.Vtctld.UpdateCellInfo:output_type -> vtctldata.UpdateCellInfoResponse + 237, // 240: vtctlservice.Vtctld.UpdateCellsAlias:output_type -> vtctldata.UpdateCellsAliasResponse + 238, // 241: vtctlservice.Vtctld.Validate:output_type -> vtctldata.ValidateResponse + 239, // 242: vtctlservice.Vtctld.ValidateKeyspace:output_type -> vtctldata.ValidateKeyspaceResponse + 240, // 243: vtctlservice.Vtctld.ValidatePermissionsKeyspace:output_type -> vtctldata.ValidatePermissionsKeyspaceResponse + 241, // 244: vtctlservice.Vtctld.ValidateSchemaKeyspace:output_type -> vtctldata.ValidateSchemaKeyspaceResponse + 242, // 245: vtctlservice.Vtctld.ValidateShard:output_type -> vtctldata.ValidateShardResponse + 243, // 246: vtctlservice.Vtctld.ValidateVersionKeyspace:output_type -> vtctldata.ValidateVersionKeyspaceResponse + 244, // 247: vtctlservice.Vtctld.ValidateVersionShard:output_type -> vtctldata.ValidateVersionShardResponse + 245, // 248: vtctlservice.Vtctld.ValidateVSchema:output_type -> vtctldata.ValidateVSchemaResponse + 246, // 249: vtctlservice.Vtctld.VDiffCreate:output_type -> vtctldata.VDiffCreateResponse + 247, // 250: vtctlservice.Vtctld.VDiffDelete:output_type -> vtctldata.VDiffDeleteResponse + 248, // 251: vtctlservice.Vtctld.VDiffResume:output_type -> vtctldata.VDiffResumeResponse + 249, // 252: vtctlservice.Vtctld.VDiffShow:output_type -> vtctldata.VDiffShowResponse + 250, // 253: vtctlservice.Vtctld.VDiffStop:output_type -> vtctldata.VDiffStopResponse + 251, // 254: vtctlservice.Vtctld.WorkflowDelete:output_type -> vtctldata.WorkflowDeleteResponse + 199, // 255: vtctlservice.Vtctld.WorkflowStatus:output_type -> vtctldata.WorkflowStatusResponse + 252, // 256: vtctlservice.Vtctld.WorkflowSwitchTraffic:output_type -> vtctldata.WorkflowSwitchTrafficResponse + 253, // 257: vtctlservice.Vtctld.WorkflowUpdate:output_type -> vtctldata.WorkflowUpdateResponse + 254, // 258: vtctlservice.Vtctld.GetMirrorRules:output_type -> vtctldata.GetMirrorRulesResponse + 255, // 259: vtctlservice.Vtctld.WorkflowMirrorTraffic:output_type -> vtctldata.WorkflowMirrorTrafficResponse + 130, // [130:260] is the sub-list for method output_type + 0, // [0:130] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name diff --git a/go/vt/proto/vtctlservice/vtctlservice_grpc.pb.go b/go/vt/proto/vtctlservice/vtctlservice_grpc.pb.go index a23eb017303..b7b2319601a 100644 --- a/go/vt/proto/vtctlservice/vtctlservice_grpc.pb.go +++ b/go/vt/proto/vtctlservice/vtctlservice_grpc.pb.go @@ -394,6 +394,8 @@ type VtctldClient interface { // Reshard. See the documentation on SetShardTabletControlRequest for more // information about the different update modes. SetShardTabletControl(ctx context.Context, in *vtctldata.SetShardTabletControlRequest, opts ...grpc.CallOption) (*vtctldata.SetShardTabletControlResponse, error) + // SetVtorcEmergencyReparent enables or disables the use of EmergencyReparentShard in VTOrc recoveries for a given keyspace or keyspace/shard. + SetVtorcEmergencyReparent(ctx context.Context, in *vtctldata.SetVtorcEmergencyReparentRequest, opts ...grpc.CallOption) (*vtctldata.SetVtorcEmergencyReparentResponse, error) // SetWritable sets a tablet as read-write (writable=true) or read-only (writable=false). SetWritable(ctx context.Context, in *vtctldata.SetWritableRequest, opts ...grpc.CallOption) (*vtctldata.SetWritableResponse, error) // ShardReplicationAdd adds an entry to a topodata.ShardReplication object. @@ -1426,6 +1428,15 @@ func (c *vtctldClient) SetShardTabletControl(ctx context.Context, in *vtctldata. return out, nil } +func (c *vtctldClient) SetVtorcEmergencyReparent(ctx context.Context, in *vtctldata.SetVtorcEmergencyReparentRequest, opts ...grpc.CallOption) (*vtctldata.SetVtorcEmergencyReparentResponse, error) { + out := new(vtctldata.SetVtorcEmergencyReparentResponse) + err := c.cc.Invoke(ctx, "/vtctlservice.Vtctld/SetVtorcEmergencyReparent", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *vtctldClient) SetWritable(ctx context.Context, in *vtctldata.SetWritableRequest, opts ...grpc.CallOption) (*vtctldata.SetWritableResponse, error) { out := new(vtctldata.SetWritableResponse) err := c.cc.Invoke(ctx, "/vtctlservice.Vtctld/SetWritable", in, out, opts...) @@ -1976,6 +1987,8 @@ type VtctldServer interface { // Reshard. See the documentation on SetShardTabletControlRequest for more // information about the different update modes. SetShardTabletControl(context.Context, *vtctldata.SetShardTabletControlRequest) (*vtctldata.SetShardTabletControlResponse, error) + // SetVtorcEmergencyReparent enables or disables the use of EmergencyReparentShard in VTOrc recoveries for a given keyspace or keyspace/shard. + SetVtorcEmergencyReparent(context.Context, *vtctldata.SetVtorcEmergencyReparentRequest) (*vtctldata.SetVtorcEmergencyReparentResponse, error) // SetWritable sets a tablet as read-write (writable=true) or read-only (writable=false). SetWritable(context.Context, *vtctldata.SetWritableRequest) (*vtctldata.SetWritableResponse, error) // ShardReplicationAdd adds an entry to a topodata.ShardReplication object. @@ -2360,6 +2373,9 @@ func (UnimplementedVtctldServer) SetShardIsPrimaryServing(context.Context, *vtct func (UnimplementedVtctldServer) SetShardTabletControl(context.Context, *vtctldata.SetShardTabletControlRequest) (*vtctldata.SetShardTabletControlResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetShardTabletControl not implemented") } +func (UnimplementedVtctldServer) SetVtorcEmergencyReparent(context.Context, *vtctldata.SetVtorcEmergencyReparentRequest) (*vtctldata.SetVtorcEmergencyReparentResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetVtorcEmergencyReparent not implemented") +} func (UnimplementedVtctldServer) SetWritable(context.Context, *vtctldata.SetWritableRequest) (*vtctldata.SetWritableResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetWritable not implemented") } @@ -4206,6 +4222,24 @@ func _Vtctld_SetShardTabletControl_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _Vtctld_SetVtorcEmergencyReparent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(vtctldata.SetVtorcEmergencyReparentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VtctldServer).SetVtorcEmergencyReparent(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/vtctlservice.Vtctld/SetVtorcEmergencyReparent", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VtctldServer).SetVtorcEmergencyReparent(ctx, req.(*vtctldata.SetVtorcEmergencyReparentRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Vtctld_SetWritable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(vtctldata.SetWritableRequest) if err := dec(in); err != nil { @@ -5161,6 +5195,10 @@ var Vtctld_ServiceDesc = grpc.ServiceDesc{ MethodName: "SetShardTabletControl", Handler: _Vtctld_SetShardTabletControl_Handler, }, + { + MethodName: "SetVtorcEmergencyReparent", + Handler: _Vtctld_SetVtorcEmergencyReparent_Handler, + }, { MethodName: "SetWritable", Handler: _Vtctld_SetWritable_Handler, diff --git a/go/vt/proto/vtorcdata/vtorcdata.pb.go b/go/vt/proto/vtorcdata/vtorcdata.pb.go new file mode 100644 index 00000000000..2160a19aff0 --- /dev/null +++ b/go/vt/proto/vtorcdata/vtorcdata.pb.go @@ -0,0 +1,196 @@ +// +//Copyright 2025 The Vitess Authors. +// +//Licensed under the Apache License, Version 2.0 (the "License"); +//you may not use this file except in compliance with the License. +//You may obtain a copy of the License at +// +//http://www.apache.org/licenses/LICENSE-2.0 +// +//Unless required by applicable law or agreed to in writing, software +//distributed under the License is distributed on an "AS IS" BASIS, +//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +//See the License for the specific language governing permissions and +//limitations under the License. + +// This file contains the Vitess topology related data structures. +// Very few of these structures are exchanged over the wire (only +// TabletType and KeyRange), but they are all used by the topology +// service. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.8 +// protoc v3.21.3 +// source: vtorcdata.proto + +package vtorcdata + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Keyspace stores keyspace-level configuration and state for Vtorc. +type Keyspace struct { + state protoimpl.MessageState `protogen:"open.v1"` + // DisableEmergencyReparent reflects if EmergencyReparentShard + // can be used in Vtorc recoveries. + DisableEmergencyReparent bool `protobuf:"varint,1,opt,name=disable_emergency_reparent,json=disableEmergencyReparent,proto3" json:"disable_emergency_reparent,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Keyspace) Reset() { + *x = Keyspace{} + mi := &file_vtorcdata_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Keyspace) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Keyspace) ProtoMessage() {} + +func (x *Keyspace) ProtoReflect() protoreflect.Message { + mi := &file_vtorcdata_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Keyspace.ProtoReflect.Descriptor instead. +func (*Keyspace) Descriptor() ([]byte, []int) { + return file_vtorcdata_proto_rawDescGZIP(), []int{0} +} + +func (x *Keyspace) GetDisableEmergencyReparent() bool { + if x != nil { + return x.DisableEmergencyReparent + } + return false +} + +// Shard stores shard-level configuration and state for Vtorc. +type Shard struct { + state protoimpl.MessageState `protogen:"open.v1"` + // DisableEmergencyReparent reflects if EmergencyReparentShard + // can be used in Vtorc recoveries. + DisableEmergencyReparent bool `protobuf:"varint,1,opt,name=disable_emergency_reparent,json=disableEmergencyReparent,proto3" json:"disable_emergency_reparent,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Shard) Reset() { + *x = Shard{} + mi := &file_vtorcdata_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Shard) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Shard) ProtoMessage() {} + +func (x *Shard) ProtoReflect() protoreflect.Message { + mi := &file_vtorcdata_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Shard.ProtoReflect.Descriptor instead. +func (*Shard) Descriptor() ([]byte, []int) { + return file_vtorcdata_proto_rawDescGZIP(), []int{1} +} + +func (x *Shard) GetDisableEmergencyReparent() bool { + if x != nil { + return x.DisableEmergencyReparent + } + return false +} + +var File_vtorcdata_proto protoreflect.FileDescriptor + +const file_vtorcdata_proto_rawDesc = "" + + "\n" + + "\x0fvtorcdata.proto\x12\tvtorcdata\"H\n" + + "\bKeyspace\x12<\n" + + "\x1adisable_emergency_reparent\x18\x01 \x01(\bR\x18disableEmergencyReparent\"E\n" + + "\x05Shard\x12<\n" + + "\x1adisable_emergency_reparent\x18\x01 \x01(\bR\x18disableEmergencyReparentB9\n" + + "\x0fio.vitess.protoZ&vitess.io/vitess/go/vt/proto/vtorcdatab\x06proto3" + +var ( + file_vtorcdata_proto_rawDescOnce sync.Once + file_vtorcdata_proto_rawDescData []byte +) + +func file_vtorcdata_proto_rawDescGZIP() []byte { + file_vtorcdata_proto_rawDescOnce.Do(func() { + file_vtorcdata_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_vtorcdata_proto_rawDesc), len(file_vtorcdata_proto_rawDesc))) + }) + return file_vtorcdata_proto_rawDescData +} + +var file_vtorcdata_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_vtorcdata_proto_goTypes = []any{ + (*Keyspace)(nil), // 0: vtorcdata.Keyspace + (*Shard)(nil), // 1: vtorcdata.Shard +} +var file_vtorcdata_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_vtorcdata_proto_init() } +func file_vtorcdata_proto_init() { + if File_vtorcdata_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_vtorcdata_proto_rawDesc), len(file_vtorcdata_proto_rawDesc)), + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_vtorcdata_proto_goTypes, + DependencyIndexes: file_vtorcdata_proto_depIdxs, + MessageInfos: file_vtorcdata_proto_msgTypes, + }.Build() + File_vtorcdata_proto = out.File + file_vtorcdata_proto_goTypes = nil + file_vtorcdata_proto_depIdxs = nil +} diff --git a/go/vt/proto/vtorcdata/vtorcdata_vtproto.pb.go b/go/vt/proto/vtorcdata/vtorcdata_vtproto.pb.go new file mode 100644 index 00000000000..dbd70c39e4d --- /dev/null +++ b/go/vt/proto/vtorcdata/vtorcdata_vtproto.pb.go @@ -0,0 +1,309 @@ +// Code generated by protoc-gen-go-vtproto. DO NOT EDIT. +// protoc-gen-go-vtproto version: v0.6.1-0.20250313105119-ba97887b0a25 +// source: vtorcdata.proto + +package vtorcdata + +import ( + fmt "fmt" + protohelpers "github.com/planetscale/vtprotobuf/protohelpers" + proto "google.golang.org/protobuf/proto" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +func (m *Keyspace) CloneVT() *Keyspace { + if m == nil { + return (*Keyspace)(nil) + } + r := new(Keyspace) + r.DisableEmergencyReparent = m.DisableEmergencyReparent + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *Keyspace) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *Shard) CloneVT() *Shard { + if m == nil { + return (*Shard)(nil) + } + r := new(Shard) + r.DisableEmergencyReparent = m.DisableEmergencyReparent + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *Shard) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *Keyspace) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Keyspace) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Keyspace) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.DisableEmergencyReparent { + i-- + if m.DisableEmergencyReparent { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Shard) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Shard) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Shard) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.DisableEmergencyReparent { + i-- + if m.DisableEmergencyReparent { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Keyspace) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DisableEmergencyReparent { + n += 2 + } + n += len(m.unknownFields) + return n +} + +func (m *Shard) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DisableEmergencyReparent { + n += 2 + } + n += len(m.unknownFields) + return n +} + +func (m *Keyspace) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Keyspace: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Keyspace: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DisableEmergencyReparent", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DisableEmergencyReparent = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Shard) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Shard: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Shard: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DisableEmergencyReparent", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DisableEmergencyReparent = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} diff --git a/go/vt/topotools/keyspace.go b/go/vt/topotools/keyspace.go index cab326397ff..d197345c3f6 100644 --- a/go/vt/topotools/keyspace.go +++ b/go/vt/topotools/keyspace.go @@ -23,6 +23,8 @@ import ( "sync" "time" + "google.golang.org/protobuf/proto" + "vitess.io/vitess/go/vt/logutil" "vitess.io/vitess/go/vt/topo" "vitess.io/vitess/go/vt/vttablet/tmclient" @@ -141,7 +143,7 @@ func UpdateShardRecords( return nil } -// KeyspaceEquality returns true iff two Keyspace fields are identical for testing purposes. +// KeyspaceEquality returns true if two Keyspace fields are identical for testing purposes. func KeyspaceEquality(left, right *topodatapb.Keyspace) bool { if left.KeyspaceType != right.KeyspaceType { return false @@ -159,5 +161,9 @@ func KeyspaceEquality(left, right *topodatapb.Keyspace) bool { return false } - return left.DurabilityPolicy == right.DurabilityPolicy + if left.DurabilityPolicy != right.DurabilityPolicy { + return false + } + + return proto.Equal(left.VtorcState, right.VtorcState) } diff --git a/go/vt/vtctl/grpcvtctldclient/client_gen.go b/go/vt/vtctl/grpcvtctldclient/client_gen.go index b56c27a4171..69a670cec4c 100644 --- a/go/vt/vtctl/grpcvtctldclient/client_gen.go +++ b/go/vt/vtctl/grpcvtctldclient/client_gen.go @@ -884,6 +884,15 @@ func (client *gRPCVtctldClient) SetShardTabletControl(ctx context.Context, in *v return client.c.SetShardTabletControl(ctx, in, opts...) } +// SetVtorcEmergencyReparent is part of the vtctlservicepb.VtctldClient interface. +func (client *gRPCVtctldClient) SetVtorcEmergencyReparent(ctx context.Context, in *vtctldatapb.SetVtorcEmergencyReparentRequest, opts ...grpc.CallOption) (*vtctldatapb.SetVtorcEmergencyReparentResponse, error) { + if client.c == nil { + return nil, status.Error(codes.Unavailable, connClosedMsg) + } + + return client.c.SetVtorcEmergencyReparent(ctx, in, opts...) +} + // SetWritable is part of the vtctlservicepb.VtctldClient interface. func (client *gRPCVtctldClient) SetWritable(ctx context.Context, in *vtctldatapb.SetWritableRequest, opts ...grpc.CallOption) (*vtctldatapb.SetWritableResponse, error) { if client.c == nil { diff --git a/go/vt/vtctl/grpcvtctldserver/server.go b/go/vt/vtctl/grpcvtctldserver/server.go index f47041dc39b..1bbbacf61c8 100644 --- a/go/vt/vtctl/grpcvtctldserver/server.go +++ b/go/vt/vtctl/grpcvtctldserver/server.go @@ -63,6 +63,7 @@ import ( vschemapb "vitess.io/vitess/go/vt/proto/vschema" vtctldatapb "vitess.io/vitess/go/vt/proto/vtctldata" vtctlservicepb "vitess.io/vitess/go/vt/proto/vtctlservice" + vtorcdatapb "vitess.io/vitess/go/vt/proto/vtorcdata" vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc" "vitess.io/vitess/go/vt/schema" "vitess.io/vitess/go/vt/schemamanager" @@ -3985,6 +3986,64 @@ func (s *VtctldServer) SetShardTabletControl(ctx context.Context, req *vtctldata }, nil } +// SetVtorcEmergencyReparent enable/disables the use of EmergencyReparentShard in VTOrc recoveries for a given keyspace or keyspace/shard. +func (s *VtctldServer) SetVtorcEmergencyReparent(ctx context.Context, req *vtctldatapb.SetVtorcEmergencyReparentRequest) (resp *vtctldatapb.SetVtorcEmergencyReparentResponse, err error) { + span, ctx := trace.NewSpan(ctx, "VtctldServer.SetVtorcEmergencyReparent") + defer span.Finish() + + defer panicHandler(&err) + + span.Annotate("keyspace", req.Keyspace) + span.Annotate("shard", req.Shard) + span.Annotate("disable", req.Disable) + + ctx, unlock, lockErr := s.ts.LockKeyspace(ctx, req.Keyspace, "SetVtorcEmergencyReparent") + if lockErr != nil { + err = lockErr + return nil, err + } + + defer unlock(&err) + + // set ERS-disabled on the shard record unless it is undef + // or "0"/- (unsharded/full-keyspace). otherwise set + // ERS-disabled on the keyspace record. + if req.Shard != "" && req.Shard != "0" && req.Shard != "-" { + _, err := s.ts.UpdateShardFields(ctx, req.Keyspace, req.Shard, func(si *topo.ShardInfo) error { + if si.VtorcState != nil { + si.VtorcState.DisableEmergencyReparent = req.Disable + } else if req.Disable { + si.VtorcState = &vtorcdatapb.Shard{ + DisableEmergencyReparent: req.Disable, + } + } + return nil + }) + if err != nil { + return nil, err + } + } else { + ki, err := s.ts.GetKeyspace(ctx, req.Keyspace) + if err != nil { + return nil, err + } + + if ki.VtorcState != nil { + ki.VtorcState.DisableEmergencyReparent = req.Disable + } else if req.Disable { + ki.VtorcState = &vtorcdatapb.Keyspace{ + DisableEmergencyReparent: req.Disable, + } + } + + if err = s.ts.UpdateKeyspace(ctx, ki); err != nil { + return nil, err + } + } + + return &vtctldatapb.SetVtorcEmergencyReparentResponse{}, nil +} + // SetWritable is part of the vtctldservicepb.VtctldServer interface. func (s *VtctldServer) SetWritable(ctx context.Context, req *vtctldatapb.SetWritableRequest) (resp *vtctldatapb.SetWritableResponse, err error) { span, ctx := trace.NewSpan(ctx, "VtctldServer.SetWritable") diff --git a/go/vt/vtctl/localvtctldclient/client_gen.go b/go/vt/vtctl/localvtctldclient/client_gen.go index fa59f2befae..6a0dbb3e9e1 100644 --- a/go/vt/vtctl/localvtctldclient/client_gen.go +++ b/go/vt/vtctl/localvtctldclient/client_gen.go @@ -642,6 +642,11 @@ func (client *localVtctldClient) SetShardTabletControl(ctx context.Context, in * return client.s.SetShardTabletControl(ctx, in) } +// SetVtorcEmergencyReparent is part of the vtctlservicepb.VtctldClient interface. +func (client *localVtctldClient) SetVtorcEmergencyReparent(ctx context.Context, in *vtctldatapb.SetVtorcEmergencyReparentRequest, opts ...grpc.CallOption) (*vtctldatapb.SetVtorcEmergencyReparentResponse, error) { + return client.s.SetVtorcEmergencyReparent(ctx, in) +} + // SetWritable is part of the vtctlservicepb.VtctldClient interface. func (client *localVtctldClient) SetWritable(ctx context.Context, in *vtctldatapb.SetWritableRequest, opts ...grpc.CallOption) (*vtctldatapb.SetWritableResponse, error) { return client.s.SetWritable(ctx, in) diff --git a/go/vt/vtctld/api_test.go b/go/vt/vtctld/api_test.go index 2809c37540d..719d07711d5 100644 --- a/go/vt/vtctld/api_test.go +++ b/go/vt/vtctld/api_test.go @@ -36,6 +36,7 @@ import ( topodatapb "vitess.io/vitess/go/vt/proto/topodata" vschemapb "vitess.io/vitess/go/vt/proto/vschema" + vtorcdatapb "vitess.io/vitess/go/vt/proto/vtorcdata" ) func compactJSON(in []byte) string { @@ -57,6 +58,9 @@ func TestAPI(t *testing.T) { ks1 := &topodatapb.Keyspace{ DurabilityPolicy: policy.DurabilitySemiSync, SidecarDbName: "_vt_sidecar_ks1", + VtorcState: &vtorcdatapb.Keyspace{ + DisableEmergencyReparent: true, + }, } // Populate topo. Remove ServedTypes from shards to avoid ordering issues. @@ -248,7 +252,10 @@ func TestAPI(t *testing.T) { "snapshot_time":null, "durability_policy":"semi_sync", "throttler_config": null, - "sidecar_db_name":"_vt_sidecar_ks1" + "sidecar_db_name":"_vt_sidecar_ks1", + "vtorc_state": { + "disable_emergency_reparent": true + } }`, http.StatusOK}, {"GET", "keyspaces/nonexistent", "", "404 page not found", http.StatusNotFound}, {"POST", "keyspaces/ks1?action=TestKeyspaceAction", "", `{ @@ -269,7 +276,8 @@ func TestAPI(t *testing.T) { }, "source_shards": [], "tablet_controls": [], - "is_primary_serving": true + "is_primary_serving": true, + "vtorc_state": null }`, http.StatusOK}, {"GET", "shards/ks1/-DEAD", "", "404 page not found", http.StatusNotFound}, {"POST", "shards/ks1/-80?action=TestShardAction", "", `{ @@ -329,11 +337,11 @@ func TestAPI(t *testing.T) { // vtctl RunCommand {"POST", "vtctl/", `["GetKeyspace","ks1"]`, `{ "Error": "", - "Output": "{\n \"keyspace_type\": 0,\n \"base_keyspace\": \"\",\n \"snapshot_time\": null,\n \"durability_policy\": \"semi_sync\",\n \"throttler_config\": null,\n \"sidecar_db_name\": \"_vt_sidecar_ks1\"\n}\n\n" + "Output": "{\n \"keyspace_type\": 0,\n \"base_keyspace\": \"\",\n \"snapshot_time\": null,\n \"durability_policy\": \"semi_sync\",\n \"throttler_config\": null,\n \"sidecar_db_name\": \"_vt_sidecar_ks1\",\n \"vtorc_state\": {\n \"disable_emergency_reparent\": true\n }\n}\n\n" }`, http.StatusOK}, {"POST", "vtctl/", `["GetKeyspace","ks3"]`, `{ "Error": "", - "Output": "{\n \"keyspace_type\": 1,\n \"base_keyspace\": \"ks1\",\n \"snapshot_time\": {\n \"seconds\": \"1136214245\",\n \"nanoseconds\": 0\n },\n \"durability_policy\": \"none\",\n \"throttler_config\": null,\n \"sidecar_db_name\": \"_vt\"\n}\n\n" + "Output": "{\n \"keyspace_type\": 1,\n \"base_keyspace\": \"ks1\",\n \"snapshot_time\": {\n \"seconds\": \"1136214245\",\n \"nanoseconds\": 0\n },\n \"durability_policy\": \"none\",\n \"throttler_config\": null,\n \"sidecar_db_name\": \"_vt\",\n \"vtorc_state\": null\n}\n\n" }`, http.StatusOK}, {"POST", "vtctl/", `["GetVSchema","ks3"]`, `{ "Error": "", diff --git a/go/vt/vtorc/config/config.go b/go/vt/vtorc/config/config.go index f8e0e0c9fd5..96d5eef221f 100644 --- a/go/vt/vtorc/config/config.go +++ b/go/vt/vtorc/config/config.go @@ -22,9 +22,15 @@ import ( "github.com/spf13/pflag" "vitess.io/vitess/go/viperutil" + vtorcdatapb "vitess.io/vitess/go/vt/proto/vtorcdata" "vitess.io/vitess/go/vt/servenv" ) +// DefaultKeyspaceTopoConfig is the default topo-based VTOrc config for a keyspace. +var DefaultKeyspaceTopoConfig = &vtorcdatapb.Keyspace{ + DisableEmergencyReparent: false, +} + var configurationLoaded = make(chan bool) const ( diff --git a/go/vt/vtorc/db/generate_base.go b/go/vt/vtorc/db/generate_base.go index 3aafec3c2c9..d9050910469 100644 --- a/go/vt/vtorc/db/generate_base.go +++ b/go/vt/vtorc/db/generate_base.go @@ -296,6 +296,7 @@ CREATE TABLE vitess_keyspace ( keyspace varchar(128) NOT NULL, keyspace_type smallint(5) NOT NULL, durability_policy varchar(512) NOT NULL, + disable_emergency_reparent tinyint NOT NULL, PRIMARY KEY (keyspace) )`, ` @@ -307,6 +308,7 @@ CREATE TABLE vitess_shard ( shard varchar(128) NOT NULL, primary_alias varchar(512) NOT NULL, primary_timestamp varchar(512) NOT NULL, + disable_emergency_reparent tinyint NOT NULL, PRIMARY KEY (keyspace, shard) )`, ` diff --git a/go/vt/vtorc/inst/analysis.go b/go/vt/vtorc/inst/analysis.go index 7ad66265c0c..0762bcea979 100644 --- a/go/vt/vtorc/inst/analysis.go +++ b/go/vt/vtorc/inst/analysis.go @@ -86,13 +86,15 @@ type ReplicationAnalysisHints struct { // ReplicationAnalysis notes analysis on replication chain status, per instance type ReplicationAnalysis struct { - AnalyzedInstanceAlias string - AnalyzedInstancePrimaryAlias string - TabletType topodatapb.TabletType - CurrentTabletType topodatapb.TabletType - PrimaryTimeStamp time.Time - AnalyzedKeyspace string - AnalyzedShard string + AnalyzedInstanceAlias string + AnalyzedInstancePrimaryAlias string + TabletType topodatapb.TabletType + CurrentTabletType topodatapb.TabletType + PrimaryTimeStamp time.Time + AnalyzedKeyspace string + AnalyzedShard string + AnalyzedKeyspaceEmergencyReparentDisabled bool + AnalyzedShardEmergencyReparentDisabled bool // ShardPrimaryTermTimestamp is the primary term start time stored in the shard record. ShardPrimaryTermTimestamp time.Time AnalyzedInstanceBinlogCoordinates BinlogCoordinates diff --git a/go/vt/vtorc/inst/analysis_dao.go b/go/vt/vtorc/inst/analysis_dao.go index 36e7aa370fe..4e688ad6389 100644 --- a/go/vt/vtorc/inst/analysis_dao.go +++ b/go/vt/vtorc/inst/analysis_dao.go @@ -77,7 +77,9 @@ func GetReplicationAnalysis(keyspace string, shard string, hints *ReplicationAna vitess_keyspace.keyspace AS keyspace, vitess_keyspace.keyspace_type AS keyspace_type, vitess_keyspace.durability_policy AS durability_policy, + vitess_keyspace.disable_emergency_reparent AS keyspace_disable_emergency_reparent, vitess_shard.primary_timestamp AS shard_primary_term_timestamp, + vitess_shard.disable_emergency_reparent AS shard_disable_emergency_reparent, primary_instance.read_only AS read_only, MIN(primary_instance.gtid_errant) AS gtid_errant, MIN(primary_instance.alias) IS NULL AS is_invalid, @@ -306,6 +308,8 @@ func GetReplicationAnalysis(keyspace string, shard string, hints *ReplicationAna a.CurrentTabletType = topodatapb.TabletType(m.GetInt("current_tablet_type")) a.AnalyzedKeyspace = m.GetString("keyspace") a.AnalyzedShard = m.GetString("shard") + a.AnalyzedKeyspaceEmergencyReparentDisabled = m.GetBool("keyspace_disable_emergency_reparent") + a.AnalyzedShardEmergencyReparentDisabled = m.GetBool("shard_disable_emergency_reparent") a.PrimaryTimeStamp = m.GetTime("primary_timestamp") if keyspaceType := topodatapb.KeyspaceType(m.GetInt32("keyspace_type")); keyspaceType == topodatapb.KeyspaceType_SNAPSHOT { diff --git a/go/vt/vtorc/inst/analysis_dao_test.go b/go/vt/vtorc/inst/analysis_dao_test.go index d866bc92847..a885cab55d4 100644 --- a/go/vt/vtorc/inst/analysis_dao_test.go +++ b/go/vt/vtorc/inst/analysis_dao_test.go @@ -42,8 +42,8 @@ var ( `INSERT INTO vitess_tablet VALUES('zone1-0000000101','localhost',6714,'ks','0','zone1',1,'2022-12-28 07:23:25.129898 +0000 UTC',X'616c6961733a7b63656c6c3a227a6f6e653122207569643a3130317d20686f73746e616d653a226c6f63616c686f73742220706f72745f6d61703a7b6b65793a2267727063222076616c75653a363731337d20706f72745f6d61703a7b6b65793a227674222076616c75653a363731327d206b657973706163653a226b73222073686172643a22302220747970653a5052494d415259206d7973716c5f686f73746e616d653a226c6f63616c686f737422206d7973716c5f706f72743a36373134207072696d6172795f7465726d5f73746172745f74696d653a7b7365636f6e64733a31363732323132323035206e616e6f7365636f6e64733a3132393839383030307d2064625f7365727665725f76657273696f6e3a22382e302e3331222064656661756c745f636f6e6e5f636f6c6c6174696f6e3a3435');`, `INSERT INTO vitess_tablet VALUES('zone1-0000000112','localhost',6747,'ks','0','zone1',3,'0001-01-01 00:00:00 +0000 UTC',X'616c6961733a7b63656c6c3a227a6f6e653122207569643a3131327d20686f73746e616d653a226c6f63616c686f73742220706f72745f6d61703a7b6b65793a2267727063222076616c75653a363734367d20706f72745f6d61703a7b6b65793a227674222076616c75653a363734357d206b657973706163653a226b73222073686172643a22302220747970653a52444f4e4c59206d7973716c5f686f73746e616d653a226c6f63616c686f737422206d7973716c5f706f72743a363734372064625f7365727665725f76657273696f6e3a22382e302e3331222064656661756c745f636f6e6e5f636f6c6c6174696f6e3a3435');`, `INSERT INTO vitess_tablet VALUES('zone2-0000000200','localhost',6756,'ks','0','zone2',2,'0001-01-01 00:00:00 +0000 UTC',X'616c6961733a7b63656c6c3a227a6f6e653222207569643a3230307d20686f73746e616d653a226c6f63616c686f73742220706f72745f6d61703a7b6b65793a2267727063222076616c75653a363735357d20706f72745f6d61703a7b6b65793a227674222076616c75653a363735347d206b657973706163653a226b73222073686172643a22302220747970653a5245504c494341206d7973716c5f686f73746e616d653a226c6f63616c686f737422206d7973716c5f706f72743a363735362064625f7365727665725f76657273696f6e3a22382e302e3331222064656661756c745f636f6e6e5f636f6c6c6174696f6e3a3435');`, - `INSERT INTO vitess_shard VALUES('ks','0','zone1-0000000101','2025-06-25 23:48:57.306096 +0000 UTC');`, - `INSERT INTO vitess_keyspace VALUES('ks',0,'semi_sync');`, + `INSERT INTO vitess_shard VALUES('ks','0','zone1-0000000101','2025-06-25 23:48:57.306096 +0000 UTC',0);`, + `INSERT INTO vitess_keyspace VALUES('ks',0,'semi_sync',0);`, } ) diff --git a/go/vt/vtorc/inst/keyspace_dao.go b/go/vt/vtorc/inst/keyspace_dao.go index 4271886121e..2055282cced 100644 --- a/go/vt/vtorc/inst/keyspace_dao.go +++ b/go/vt/vtorc/inst/keyspace_dao.go @@ -21,6 +21,7 @@ import ( "vitess.io/vitess/go/vt/external/golib/sqlutils" topodatapb "vitess.io/vitess/go/vt/proto/topodata" + vtorcdatapb "vitess.io/vitess/go/vt/proto/vtorcdata" "vitess.io/vitess/go/vt/topo" "vitess.io/vitess/go/vt/vtctl/reparentutil/policy" "vitess.io/vitess/go/vt/vtorc/db" @@ -35,21 +36,25 @@ func ReadKeyspace(keyspaceName string) (*topo.KeyspaceInfo, error) { return nil, err } - query := ` - select + query := `select keyspace_type, - durability_policy + durability_policy, + disable_emergency_reparent from vitess_keyspace - where keyspace=? - ` + where + keyspace = ?` args := sqlutils.Args(keyspaceName) + keyspace := &topo.KeyspaceInfo{ Keyspace: &topodatapb.Keyspace{}, } err := db.QueryVTOrc(query, args, func(row sqlutils.RowMap) error { keyspace.KeyspaceType = topodatapb.KeyspaceType(row.GetInt32("keyspace_type")) keyspace.DurabilityPolicy = row.GetString("durability_policy") + keyspace.VtorcState = &vtorcdatapb.Keyspace{ + DisableEmergencyReparent: row.GetBool("disable_emergency_reparent"), + } keyspace.SetKeyspaceName(keyspaceName) return nil }) @@ -64,17 +69,20 @@ func ReadKeyspace(keyspaceName string) (*topo.KeyspaceInfo, error) { // SaveKeyspace saves the keyspace record against the keyspace name. func SaveKeyspace(keyspace *topo.KeyspaceInfo) error { + var disableEmergencyReparent int + if keyspace.VtorcState != nil && keyspace.VtorcState.DisableEmergencyReparent { + disableEmergencyReparent = 1 + } _, err := db.ExecVTOrc(` - replace - into vitess_keyspace ( - keyspace, keyspace_type, durability_policy - ) values ( - ?, ?, ? - ) - `, + replace into vitess_keyspace ( + keyspace, keyspace_type, durability_policy, disable_emergency_reparent + ) values ( + ?, ?, ?, ? + )`, keyspace.KeyspaceName(), int(keyspace.KeyspaceType), keyspace.GetDurabilityPolicy(), + disableEmergencyReparent, ) return err } diff --git a/go/vt/vtorc/inst/keyspace_dao_test.go b/go/vt/vtorc/inst/keyspace_dao_test.go index ef2dd67379e..c6091062129 100644 --- a/go/vt/vtorc/inst/keyspace_dao_test.go +++ b/go/vt/vtorc/inst/keyspace_dao_test.go @@ -22,9 +22,11 @@ import ( "github.com/stretchr/testify/require" topodatapb "vitess.io/vitess/go/vt/proto/topodata" + vtorcdatapb "vitess.io/vitess/go/vt/proto/vtorcdata" "vitess.io/vitess/go/vt/topo" "vitess.io/vitess/go/vt/topotools" "vitess.io/vitess/go/vt/vtctl/reparentutil/policy" + vtorcconfig "vitess.io/vitess/go/vt/vtorc/config" "vitess.io/vitess/go/vt/vtorc/db" ) @@ -50,7 +52,11 @@ func TestSaveAndReadKeyspace(t *testing.T) { KeyspaceType: topodatapb.KeyspaceType_NORMAL, DurabilityPolicy: policy.DurabilitySemiSync, }, - keyspaceWanted: nil, + keyspaceWanted: &topodatapb.Keyspace{ + KeyspaceType: topodatapb.KeyspaceType_NORMAL, + DurabilityPolicy: policy.DurabilitySemiSync, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, + }, semiSyncAckersWanted: 1, }, { name: "Success with keyspaceType and no durability", @@ -58,7 +64,10 @@ func TestSaveAndReadKeyspace(t *testing.T) { keyspace: &topodatapb.Keyspace{ KeyspaceType: topodatapb.KeyspaceType_NORMAL, }, - keyspaceWanted: nil, + keyspaceWanted: &topodatapb.Keyspace{ + KeyspaceType: topodatapb.KeyspaceType_NORMAL, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, + }, errInDurabilityPolicy: "durability policy not found", }, { name: "Success with snapshot keyspaceType", @@ -66,7 +75,10 @@ func TestSaveAndReadKeyspace(t *testing.T) { keyspace: &topodatapb.Keyspace{ KeyspaceType: topodatapb.KeyspaceType_SNAPSHOT, }, - keyspaceWanted: nil, + keyspaceWanted: &topodatapb.Keyspace{ + KeyspaceType: topodatapb.KeyspaceType_SNAPSHOT, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, + }, }, { name: "Success with fields that are not stored", keyspaceName: "ks4", @@ -78,6 +90,25 @@ func TestSaveAndReadKeyspace(t *testing.T) { keyspaceWanted: &topodatapb.Keyspace{ KeyspaceType: topodatapb.KeyspaceType_NORMAL, DurabilityPolicy: policy.DurabilityNone, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, + }, + semiSyncAckersWanted: 0, + }, { + name: "Success with ERS disabled in Vtorc", + keyspaceName: "ks4", + keyspace: &topodatapb.Keyspace{ + KeyspaceType: topodatapb.KeyspaceType_NORMAL, + DurabilityPolicy: policy.DurabilityNone, + VtorcState: &vtorcdatapb.Keyspace{ + DisableEmergencyReparent: true, + }, + }, + keyspaceWanted: &topodatapb.Keyspace{ + KeyspaceType: topodatapb.KeyspaceType_NORMAL, + DurabilityPolicy: policy.DurabilityNone, + VtorcState: &vtorcdatapb.Keyspace{ + DisableEmergencyReparent: true, + }, }, semiSyncAckersWanted: 0, }, { @@ -90,10 +121,6 @@ func TestSaveAndReadKeyspace(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if tt.keyspaceWanted == nil { - tt.keyspaceWanted = tt.keyspace - } - if tt.keyspace != nil { keyspaceInfo := &topo.KeyspaceInfo{ Keyspace: tt.keyspace, diff --git a/go/vt/vtorc/inst/shard_dao.go b/go/vt/vtorc/inst/shard_dao.go index 73eb435e010..233c592965a 100644 --- a/go/vt/vtorc/inst/shard_dao.go +++ b/go/vt/vtorc/inst/shard_dao.go @@ -75,20 +75,66 @@ func ReadShardPrimaryInformation(keyspaceName, shardName string) (primaryAlias s return primaryAlias, primaryTimestamp, err } +// ShardStats represents stats for a single shard watched by VTOrc. +type ShardStats struct { + Keyspace string + Shard string + DisableEmergencyReparent bool + TabletCount int64 +} + +// ReadKeyspaceShardStats returns stats such as # of tablets watched by keyspace/shard and ERS-disabled state. +// The backend query uses an index by "keyspace, shard": ks_idx_vitess_tablet. +func ReadKeyspaceShardStats() ([]ShardStats, error) { + ksShardStats := make([]ShardStats, 0) + query := `SELECT + vt.keyspace AS keyspace, + vt.shard AS shard, + COUNT() AS tablet_count, + MIN(vk.disable_emergency_reparent) AS ks_ers_disabled, + MIN(vs.disable_emergency_reparent) AS shard_ers_disabled + FROM + vitess_tablet vt + LEFT JOIN + vitess_keyspace vk + ON + vk.keyspace = vt.keyspace + LEFT JOIN + vitess_shard vs + ON + (vs.keyspace = vt.keyspace AND vs.shard = vt.shard) + GROUP BY + vt.keyspace, + vt.shard` + err := db.QueryVTOrc(query, nil, func(row sqlutils.RowMap) error { + ksShardStats = append(ksShardStats, ShardStats{ + Keyspace: row.GetString("keyspace"), + Shard: row.GetString("shard"), + TabletCount: row.GetInt64("tablet_count"), + DisableEmergencyReparent: row.GetBool("ks_ers_disabled") || row.GetBool("shard_ers_disabled"), + }) + return nil + }) + return ksShardStats, err +} + // SaveShard saves the shard record against the shard name. func SaveShard(shard *topo.ShardInfo) error { + var disableEmergencyReparent int + if shard.VtorcState != nil && shard.VtorcState.DisableEmergencyReparent { + disableEmergencyReparent = 1 + } _, err := db.ExecVTOrc(` - replace - into vitess_shard ( - keyspace, shard, primary_alias, primary_timestamp - ) values ( - ?, ?, ?, ? - ) - `, + replace into vitess_shard ( + keyspace, shard, primary_alias, primary_timestamp, disable_emergency_reparent + ) values ( + ?, ?, ?, ?, ? + )`, shard.Keyspace(), shard.ShardName(), getShardPrimaryAliasString(shard), getShardPrimaryTermStartTime(shard), + disableEmergencyReparent, ) return err } diff --git a/go/vt/vtorc/inst/shard_dao_test.go b/go/vt/vtorc/inst/shard_dao_test.go index 04bb6b430f7..f5dede10a48 100644 --- a/go/vt/vtorc/inst/shard_dao_test.go +++ b/go/vt/vtorc/inst/shard_dao_test.go @@ -24,7 +24,9 @@ import ( "vitess.io/vitess/go/protoutil" topodatapb "vitess.io/vitess/go/vt/proto/topodata" + vtorcdatapb "vitess.io/vitess/go/vt/proto/vtorcdata" "vitess.io/vitess/go/vt/topo" + "vitess.io/vitess/go/vt/vtctl/reparentutil/policy" "vitess.io/vitess/go/vt/vtorc/db" ) @@ -115,3 +117,146 @@ func TestSaveReadAndDeleteShard(t *testing.T) { }) } } + +func TestReadKeyspaceShardStats(t *testing.T) { + // Clear the database after the test. The easiest way to do that is to run all the initialization commands again. + defer func() { + db.ClearVTOrcDatabase() + }() + + var uid uint32 + for _, shard := range []string{"-40", "40-80", "80-c0", "c0-"} { + for i := 0; i < 100; i++ { + require.NoError(t, SaveTablet(&topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "cell1", + Uid: uid, + }, + Keyspace: "test", + Shard: shard, + })) + uid++ + } + } + + t.Run("no_ers_disabled", func(t *testing.T) { + shardStats, err := ReadKeyspaceShardStats() + require.NoError(t, err) + require.Equal(t, []ShardStats{ + { + Keyspace: "test", + Shard: "-40", + TabletCount: 100, + DisableEmergencyReparent: false, + }, + { + Keyspace: "test", + Shard: "40-80", + TabletCount: 100, + DisableEmergencyReparent: false, + }, + { + Keyspace: "test", + Shard: "80-c0", + TabletCount: 100, + DisableEmergencyReparent: false, + }, + { + Keyspace: "test", + Shard: "c0-", + TabletCount: 100, + DisableEmergencyReparent: false, + }, + }, shardStats) + }) + + t.Run("single_shard_ers_disabled", func(t *testing.T) { + keyspaceInfo := &topo.KeyspaceInfo{ + Keyspace: &topodatapb.Keyspace{ + KeyspaceType: topodatapb.KeyspaceType_NORMAL, + DurabilityPolicy: policy.DurabilityNone, + }, + } + keyspaceInfo.SetKeyspaceName("test") + require.NoError(t, SaveKeyspace(keyspaceInfo)) + + shardInfo := topo.NewShardInfo("test", "-40", &topodatapb.Shard{ + VtorcState: &vtorcdatapb.Shard{ + DisableEmergencyReparent: true, + }, + }, nil) + require.NoError(t, SaveShard(shardInfo)) + + shardStats, err := ReadKeyspaceShardStats() + require.NoError(t, err) + require.Equal(t, []ShardStats{ + { + Keyspace: "test", + Shard: "-40", + TabletCount: 100, + DisableEmergencyReparent: true, + }, + { + Keyspace: "test", + Shard: "40-80", + TabletCount: 100, + DisableEmergencyReparent: false, + }, + { + Keyspace: "test", + Shard: "80-c0", + TabletCount: 100, + DisableEmergencyReparent: false, + }, + { + Keyspace: "test", + Shard: "c0-", + TabletCount: 100, + DisableEmergencyReparent: false, + }, + }, shardStats) + }) + + t.Run("full_keyspace_ers_disabled", func(t *testing.T) { + keyspaceInfo := &topo.KeyspaceInfo{ + Keyspace: &topodatapb.Keyspace{ + KeyspaceType: topodatapb.KeyspaceType_NORMAL, + DurabilityPolicy: policy.DurabilityNone, + VtorcState: &vtorcdatapb.Keyspace{ + DisableEmergencyReparent: true, + }, + }, + } + keyspaceInfo.SetKeyspaceName("test") + require.NoError(t, SaveKeyspace(keyspaceInfo)) + + shardStats, err := ReadKeyspaceShardStats() + require.NoError(t, err) + require.Equal(t, []ShardStats{ + { + Keyspace: "test", + Shard: "-40", + TabletCount: 100, + DisableEmergencyReparent: true, + }, + { + Keyspace: "test", + Shard: "40-80", + TabletCount: 100, + DisableEmergencyReparent: true, + }, + { + Keyspace: "test", + Shard: "80-c0", + TabletCount: 100, + DisableEmergencyReparent: true, + }, + { + Keyspace: "test", + Shard: "c0-", + TabletCount: 100, + DisableEmergencyReparent: true, + }, + }, shardStats) + }) +} diff --git a/go/vt/vtorc/inst/tablet_dao.go b/go/vt/vtorc/inst/tablet_dao.go index bd8115de969..ef4863287d3 100644 --- a/go/vt/vtorc/inst/tablet_dao.go +++ b/go/vt/vtorc/inst/tablet_dao.go @@ -93,31 +93,6 @@ func ReadTabletCountsByCell() (map[string]int64, error) { return tabletCounts, err } -// ReadTabletCountsByKeyspaceShard returns the count of tablets watched by keyspace/shard. -// The backend query uses an index by "keyspace, shard": ks_idx_vitess_tablet. -func ReadTabletCountsByKeyspaceShard() (map[string]map[string]int64, error) { - tabletCounts := make(map[string]map[string]int64) - query := `SELECT - keyspace, - shard, - COUNT() AS count - FROM - vitess_tablet - GROUP BY - keyspace, - shard` - err := db.QueryVTOrc(query, nil, func(row sqlutils.RowMap) error { - keyspace := row.GetString("keyspace") - shard := row.GetString("shard") - if _, found := tabletCounts[keyspace]; !found { - tabletCounts[keyspace] = make(map[string]int64) - } - tabletCounts[keyspace][shard] = row.GetInt64("count") - return nil - }) - return tabletCounts, err -} - // SaveTablet saves the tablet record against the instanceKey. func SaveTablet(tablet *topodatapb.Tablet) error { tabletp, err := prototext.Marshal(tablet) diff --git a/go/vt/vtorc/inst/tablet_dao_test.go b/go/vt/vtorc/inst/tablet_dao_test.go index d5de0eb268b..67fdf1a3227 100644 --- a/go/vt/vtorc/inst/tablet_dao_test.go +++ b/go/vt/vtorc/inst/tablet_dao_test.go @@ -112,35 +112,3 @@ func TestReadTabletCountsByCell(t *testing.T) { require.NoError(t, err) require.Equal(t, map[string]int64{"cell1": 100}, tabletCounts) } - -func TestReadTabletCountsByKeyspaceShard(t *testing.T) { - // Clear the database after the test. The easiest way to do that is to run all the initialization commands again. - defer func() { - db.ClearVTOrcDatabase() - }() - - var uid uint32 - for _, shard := range []string{"-40", "40-80", "80-c0", "c0-"} { - for i := 0; i < 100; i++ { - require.NoError(t, SaveTablet(&topodatapb.Tablet{ - Alias: &topodatapb.TabletAlias{ - Cell: "cell1", - Uid: uid, - }, - Keyspace: "test", - Shard: shard, - })) - uid++ - } - } - tabletCounts, err := ReadTabletCountsByKeyspaceShard() - require.NoError(t, err) - require.Equal(t, map[string]map[string]int64{ - "test": { - "-40": 100, - "40-80": 100, - "80-c0": 100, - "c0-": 100, - }, - }, tabletCounts) -} diff --git a/go/vt/vtorc/logic/keyspace_shard_discovery_test.go b/go/vt/vtorc/logic/keyspace_shard_discovery_test.go index b5b09aba95e..08e6cf48814 100644 --- a/go/vt/vtorc/logic/keyspace_shard_discovery_test.go +++ b/go/vt/vtorc/logic/keyspace_shard_discovery_test.go @@ -30,6 +30,7 @@ import ( "vitess.io/vitess/go/vt/topotools" "vitess.io/vitess/go/vt/vtctl/reparentutil/policy" "vitess.io/vitess/go/vt/vtctl/reparentutil/reparenttestutil" + vtorcconfig "vitess.io/vitess/go/vt/vtorc/config" "vitess.io/vitess/go/vt/vtorc/db" "vitess.io/vitess/go/vt/vtorc/inst" ) @@ -38,17 +39,21 @@ var ( keyspaceDurabilityNone = &topodatapb.Keyspace{ KeyspaceType: topodatapb.KeyspaceType_NORMAL, DurabilityPolicy: policy.DurabilityNone, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, } keyspaceDurabilitySemiSync = &topodatapb.Keyspace{ KeyspaceType: topodatapb.KeyspaceType_NORMAL, DurabilityPolicy: policy.DurabilitySemiSync, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, } keyspaceDurabilityTest = &topodatapb.Keyspace{ KeyspaceType: topodatapb.KeyspaceType_NORMAL, DurabilityPolicy: policy.DurabilityTest, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, } keyspaceSnapshot = &topodatapb.Keyspace{ KeyspaceType: topodatapb.KeyspaceType_SNAPSHOT, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, } ) @@ -150,24 +155,34 @@ func TestRefreshKeyspace(t *testing.T) { KeyspaceType: topodatapb.KeyspaceType_NORMAL, DurabilityPolicy: policy.DurabilitySemiSync, }, - keyspaceWanted: nil, - err: "", + keyspaceWanted: &topodatapb.Keyspace{ + KeyspaceType: topodatapb.KeyspaceType_NORMAL, + DurabilityPolicy: policy.DurabilitySemiSync, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, + }, + err: "", }, { name: "Success with keyspaceType and no durability", keyspaceName: "ks2", keyspace: &topodatapb.Keyspace{ KeyspaceType: topodatapb.KeyspaceType_NORMAL, }, - keyspaceWanted: nil, - err: "", + keyspaceWanted: &topodatapb.Keyspace{ + KeyspaceType: topodatapb.KeyspaceType_NORMAL, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, + }, + err: "", }, { name: "Success with snapshot keyspaceType", keyspaceName: "ks3", keyspace: &topodatapb.Keyspace{ KeyspaceType: topodatapb.KeyspaceType_SNAPSHOT, }, - keyspaceWanted: nil, - err: "", + keyspaceWanted: &topodatapb.Keyspace{ + KeyspaceType: topodatapb.KeyspaceType_SNAPSHOT, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, + }, + err: "", }, { name: "Success with fields that are not stored", keyspaceName: "ks4", @@ -179,6 +194,7 @@ func TestRefreshKeyspace(t *testing.T) { keyspaceWanted: &topodatapb.Keyspace{ KeyspaceType: topodatapb.KeyspaceType_NORMAL, DurabilityPolicy: policy.DurabilityNone, + VtorcState: vtorcconfig.DefaultKeyspaceTopoConfig, }, err: "", }, { diff --git a/go/vt/vtorc/logic/tablet_discovery.go b/go/vt/vtorc/logic/tablet_discovery.go index eee788bd9aa..40057853d93 100644 --- a/go/vt/vtorc/logic/tablet_discovery.go +++ b/go/vt/vtorc/logic/tablet_discovery.go @@ -53,23 +53,30 @@ var ( // This is populated by parsing `--clusters_to_watch` flag. shardsToWatch map[string][]*topodatapb.KeyRange - // tablet stats - statsTabletsWatchedByCell = stats.NewGaugesFuncWithMultiLabels( + // ErrNoPrimaryTablet is a fixed error message. + ErrNoPrimaryTablet = errors.New("no primary tablet found") +) + +func init() { + stats.NewGaugesFuncWithMultiLabels( "TabletsWatchedByCell", "Number of tablets watched by cell", []string{"Cell"}, getTabletsWatchedByCellStats, ) - statsTabletsWatchedByShard = stats.NewGaugesFuncWithMultiLabels( + stats.NewGaugesFuncWithMultiLabels( "TabletsWatchedByShard", "Number of tablets watched by keyspace/shard", []string{"Keyspace", "Shard"}, getTabletsWatchedByShardStats, ) - - // ErrNoPrimaryTablet is a fixed error message. - ErrNoPrimaryTablet = errors.New("no primary tablet found") -) + stats.NewGaugesFuncWithMultiLabels( + "EmergencyReparentShardDisabled", + "Shards with EmergencyReparentShard disabled by keyspace/shard (1 = disabled)", + []string{"Keyspace", "Shard"}, + getEmergencyReparentShardDisabledStats, + ) +} // getTabletsWatchedByCellStats returns the number of tablets watched by cell in stats format. func getTabletsWatchedByCellStats() map[string]int64 { @@ -83,18 +90,31 @@ func getTabletsWatchedByCellStats() map[string]int64 { // getTabletsWatchedByShardStats returns the number of tablets watched by keyspace/shard in stats format. func getTabletsWatchedByShardStats() map[string]int64 { tabletsWatchedByShard := make(map[string]int64) - tabletCountsByKS, err := inst.ReadTabletCountsByKeyspaceShard() + statsByKS, err := inst.ReadKeyspaceShardStats() if err != nil { log.Errorf("Failed to read tablet counts by shard: %+v", err) } - for keyspace, countsByShard := range tabletCountsByKS { - for shard, tabletCount := range countsByShard { - tabletsWatchedByShard[keyspace+"."+shard] = tabletCount - } + for _, s := range statsByKS { + tabletsWatchedByShard[s.Keyspace+"."+s.Shard] = s.TabletCount } return tabletsWatchedByShard } +// getEmergencyReparentShardDisabledStats returns the number of shards with EmergencyReparentShard disabled in stats format. +func getEmergencyReparentShardDisabledStats() map[string]int64 { + disabledShards := make(map[string]int64) + statsByKS, err := inst.ReadKeyspaceShardStats() + if err != nil { + log.Errorf("Failed to read tablet counts by shard: %+v", err) + } + for _, s := range statsByKS { + if s.DisableEmergencyReparent { + disabledShards[s.Keyspace+"."+s.Shard] = 1 + } + } + return disabledShards +} + // RegisterFlags registers the flags required by VTOrc func RegisterFlags(fs *pflag.FlagSet) { fs.StringSliceVar(&clustersToWatch, "clusters_to_watch", clustersToWatch, "Comma-separated list of keyspaces or keyspace/keyranges that this instance will monitor and repair. Defaults to all clusters in the topology. Example: \"ks1,ks2/-80\"") diff --git a/go/vt/vtorc/logic/topology_recovery.go b/go/vt/vtorc/logic/topology_recovery.go index ac20f1c8cbb..a5927f0c825 100644 --- a/go/vt/vtorc/logic/topology_recovery.go +++ b/go/vt/vtorc/logic/topology_recovery.go @@ -79,6 +79,9 @@ var ( // recoveriesFailureCounter counts the number of failed recoveries that VTOrc has performed recoveriesFailureCounter = stats.NewCountersWithMultiLabels("FailedRecoveries", "Count of the different failed recoveries performed", recoveriesCounterLabels) + // recoveriesSkippedCounter counts the number of skipped recoveries that VTOrc has performed + recoveriesSkippedCounter = stats.NewCountersWithMultiLabels("SkippedRecoveries", "Count of the different skipped recoveries performed", recoveriesCounterLabels) + // shardLockTimings measures the timing of LockShard operations. shardLockTimingsActions = []string{"Lock", "Unlock"} shardLockTimings = stats.NewTimings("ShardLockTimings", "Timings of global shard locks", "Action", shardLockTimingsActions...) @@ -337,60 +340,87 @@ func checkAndRecoverGenericProblem(ctx context.Context, analysisEntry *inst.Repl return false, nil, nil } +// isERSEnabled returns true if ERS can be used globally or for the given keyspace. +func isERSEnabled(analysisEntry *inst.ReplicationAnalysis) bool { + // If ERS is disabled globally we have no way of repairing the cluster. + if !config.ERSEnabled() { + log.Infof("VTOrc not configured to run ERS, skipping recovering %v", analysisEntry.Analysis) + return false + } + + // Return false if ERS is disabled on the keyspace. + if analysisEntry.AnalyzedKeyspaceEmergencyReparentDisabled { + log.Infof("ERS is disabled on keyspace %s, skipping recovering %v", analysisEntry.AnalyzedKeyspace, analysisEntry.Analysis) + return false + } + + // Return false if ERS is disabled on the shard. + if analysisEntry.AnalyzedShardEmergencyReparentDisabled { + log.Infof("ERS is disabled on keyspace/shard %s, skipping recovering %v", topoproto.KeyspaceShardString(analysisEntry.AnalyzedKeyspace, analysisEntry.AnalyzedShard), analysisEntry.Analysis) + return false + } + + return true +} + // getCheckAndRecoverFunctionCode gets the recovery function code to use for the given analysis. -func getCheckAndRecoverFunctionCode(analysisCode inst.AnalysisCode, tabletAlias string) recoveryFunction { +func getCheckAndRecoverFunctionCode(analysisEntry *inst.ReplicationAnalysis) (recoveryFunc recoveryFunction, skipRecovery bool) { + recoveryFunc = noRecoveryFunc + analysisCode := analysisEntry.Analysis switch analysisCode { // primary case inst.DeadPrimary, inst.DeadPrimaryAndSomeReplicas, inst.PrimaryDiskStalled, inst.PrimarySemiSyncBlocked: - // If ERS is disabled, we have no way of repairing the cluster. - if !config.ERSEnabled() { - log.Infof("VTOrc not configured to run ERS, skipping recovering %v", analysisCode) - return noRecoveryFunc + // If ERS is disabled globally, on the keyspace or the shard, skip recovery. + if !isERSEnabled(analysisEntry) { + log.Infof("VTOrc not configured to run EmergencyReparentShard, skipping recovering %v", analysisCode) + skipRecovery = true } - return recoverDeadPrimaryFunc + recoveryFunc = recoverDeadPrimaryFunc case inst.PrimaryTabletDeleted: - // If ERS is disabled, we have no way of repairing the cluster. - if !config.ERSEnabled() { - log.Infof("VTOrc not configured to run ERS, skipping recovering %v", analysisCode) - return noRecoveryFunc + // If ERS is disabled globally, on the keyspace or the shard, skip recovery. + if !isERSEnabled(analysisEntry) { + log.Infof("VTOrc not configured to run EmergencyReparentShard, skipping recovering %v", analysisCode) + skipRecovery = true } - return recoverPrimaryTabletDeletedFunc + recoveryFunc = recoverPrimaryTabletDeletedFunc case inst.ErrantGTIDDetected: if !config.ConvertTabletWithErrantGTIDs() { log.Infof("VTOrc not configured to do anything on detecting errant GTIDs, skipping recovering %v", analysisCode) - return noRecoveryFunc + skipRecovery = true } - return recoverErrantGTIDDetectedFunc + recoveryFunc = recoverErrantGTIDDetectedFunc case inst.PrimaryHasPrimary: - return recoverPrimaryHasPrimaryFunc + recoveryFunc = recoverPrimaryHasPrimaryFunc case inst.LockedSemiSyncPrimary: - return recoverLockedSemiSyncPrimaryFunc + recoveryFunc = recoverLockedSemiSyncPrimaryFunc case inst.ClusterHasNoPrimary: - return electNewPrimaryFunc + recoveryFunc = electNewPrimaryFunc case inst.PrimaryIsReadOnly, inst.PrimarySemiSyncMustBeSet, inst.PrimarySemiSyncMustNotBeSet, inst.PrimaryCurrentTypeMismatch: - return fixPrimaryFunc + recoveryFunc = fixPrimaryFunc // replica case inst.NotConnectedToPrimary, inst.ConnectedToWrongPrimary, inst.ReplicationStopped, inst.ReplicaIsWritable, inst.ReplicaSemiSyncMustBeSet, inst.ReplicaSemiSyncMustNotBeSet, inst.ReplicaMisconfigured: - return fixReplicaFunc + recoveryFunc = fixReplicaFunc // primary, non actionable case inst.DeadPrimaryAndReplicas: - return recoverGenericProblemFunc + recoveryFunc = recoverGenericProblemFunc case inst.UnreachablePrimary: - return recoverGenericProblemFunc + recoveryFunc = recoverGenericProblemFunc case inst.UnreachablePrimaryWithLaggingReplicas: - return recoverGenericProblemFunc + recoveryFunc = recoverGenericProblemFunc case inst.AllPrimaryReplicasNotReplicating: - return recoverGenericProblemFunc + recoveryFunc = recoverGenericProblemFunc case inst.AllPrimaryReplicasNotReplicatingOrDead: - return recoverGenericProblemFunc + recoveryFunc = recoverGenericProblemFunc + default: + skipRecovery = true } // Right now this is mostly causing noise with no clear action. // Will revisit this in the future. // case inst.AllPrimaryReplicasStale: - // return recoverGenericProblemFunc + // recoveryFunc = recoverGenericProblemFunc - return noRecoveryFunc + return recoveryFunc, skipRecovery } // hasActionableRecovery tells if a recoveryFunction has an actionable recovery or not @@ -492,9 +522,9 @@ func isShardWideRecovery(recoveryFunctionCode recoveryFunction) bool { // analysisEntriesHaveSameRecovery tells whether the two analysis entries have the same recovery function or not func analysisEntriesHaveSameRecovery(prevAnalysis, newAnalysis *inst.ReplicationAnalysis) bool { - prevRecoveryFunctionCode := getCheckAndRecoverFunctionCode(prevAnalysis.Analysis, prevAnalysis.AnalyzedInstanceAlias) - newRecoveryFunctionCode := getCheckAndRecoverFunctionCode(newAnalysis.Analysis, newAnalysis.AnalyzedInstanceAlias) - return prevRecoveryFunctionCode == newRecoveryFunctionCode + prevRecoveryFunctionCode, prevSkipRecovery := getCheckAndRecoverFunctionCode(prevAnalysis) + newRecoveryFunctionCode, newSkipRecovery := getCheckAndRecoverFunctionCode(newAnalysis) + return (prevRecoveryFunctionCode == newRecoveryFunctionCode) && (prevSkipRecovery == newSkipRecovery) } // executeCheckAndRecoverFunction will choose the correct check & recovery function based on analysis. @@ -506,12 +536,15 @@ func executeCheckAndRecoverFunction(analysisEntry *inst.ReplicationAnalysis) (er logger := log.NewPrefixedLogger(fmt.Sprintf("Recovery for %s on %s/%s", analysisEntry.Analysis, analysisEntry.AnalyzedKeyspace, analysisEntry.AnalyzedShard)) logger.Info("Starting checkAndRecover") - checkAndRecoverFunctionCode := getCheckAndRecoverFunctionCode(analysisEntry.Analysis, analysisEntry.AnalyzedInstanceAlias) + checkAndRecoverFunctionCode, skipRecovery := getCheckAndRecoverFunctionCode(analysisEntry) + recoveryName := getRecoverFunctionName(checkAndRecoverFunctionCode) + recoveryLabels := []string{recoveryName, analysisEntry.AnalyzedKeyspace, analysisEntry.AnalyzedShard} isActionableRecovery := hasActionableRecovery(checkAndRecoverFunctionCode) analysisEntry.IsActionableRecovery = isActionableRecovery - if checkAndRecoverFunctionCode == noRecoveryFunc { - logger.Warning("No recovery strategies for problem, aborting recovery") + if skipRecovery { + logger.Warningf("Skipping recovery for problem: %+v, recovery: %+v, aborting recovery", analysisEntry.Analysis, recoveryName) + recoveriesSkippedCounter.Add(recoveryLabels, 1) // Unhandled problem type if analysisEntry.Analysis != inst.NoProblem { if util.ClearToLog("executeCheckAndRecoverFunction", analysisEntry.AnalyzedInstanceAlias) { @@ -645,8 +678,6 @@ func executeCheckAndRecoverFunction(analysisEntry *inst.ReplicationAnalysis) (er logger.Errorf("Recovery not attempted: %+v", err) return err } - recoveryName := getRecoverFunctionName(checkAndRecoverFunctionCode) - recoveryLabels := []string{recoveryName, analysisEntry.AnalyzedKeyspace, analysisEntry.AnalyzedShard} recoveriesCounter.Add(recoveryLabels, 1) if err != nil { logger.Errorf("Failed to recover: %+v", err) diff --git a/go/vt/vtorc/logic/topology_recovery_test.go b/go/vt/vtorc/logic/topology_recovery_test.go index 6f967f89051..e91d1f01932 100644 --- a/go/vt/vtorc/logic/topology_recovery_test.go +++ b/go/vt/vtorc/logic/topology_recovery_test.go @@ -217,85 +217,171 @@ func TestRecoveryRegistration(t *testing.T) { } func TestGetCheckAndRecoverFunctionCode(t *testing.T) { + keyspace := "ks1" + shard := "-" tests := []struct { name string ersEnabled bool convertTabletWithErrantGTIDs bool - analysisCode inst.AnalysisCode + analysisEntry *inst.ReplicationAnalysis wantRecoveryFunction recoveryFunction + wantSkipRecovery bool }{ { - name: "DeadPrimary with ERS enabled", - ersEnabled: true, - analysisCode: inst.DeadPrimary, + name: "DeadPrimary with ERS enabled", + ersEnabled: true, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.DeadPrimary, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, wantRecoveryFunction: recoverDeadPrimaryFunc, }, { - name: "DeadPrimary with ERS disabled", - ersEnabled: false, - analysisCode: inst.DeadPrimary, - wantRecoveryFunction: noRecoveryFunc, + name: "DeadPrimary with ERS disabled", + ersEnabled: false, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.DeadPrimary, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, + wantRecoveryFunction: recoverDeadPrimaryFunc, + wantSkipRecovery: true, }, { - name: "StalledDiskPrimary with ERS enabled", - ersEnabled: true, - analysisCode: inst.PrimaryDiskStalled, + name: "StalledDiskPrimary with ERS enabled", + ersEnabled: true, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.PrimaryDiskStalled, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, wantRecoveryFunction: recoverDeadPrimaryFunc, }, { - name: "StalledDiskPrimary with ERS disabled", - ersEnabled: false, - analysisCode: inst.PrimaryDiskStalled, - wantRecoveryFunction: noRecoveryFunc, + name: "StalledDiskPrimary with ERS disabled", + ersEnabled: false, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.PrimaryDiskStalled, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, + wantRecoveryFunction: recoverDeadPrimaryFunc, + wantSkipRecovery: true, }, { - name: "PrimarySemiSyncBlocked with ERS enabled", - ersEnabled: true, - analysisCode: inst.PrimarySemiSyncBlocked, + name: "PrimarySemiSyncBlocked with ERS enabled", + ersEnabled: true, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.PrimarySemiSyncBlocked, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, wantRecoveryFunction: recoverDeadPrimaryFunc, }, { - name: "PrimarySemiSyncBlocked with ERS disabled", - ersEnabled: false, - analysisCode: inst.PrimarySemiSyncBlocked, - wantRecoveryFunction: noRecoveryFunc, + name: "PrimarySemiSyncBlocked with ERS disabled", + ersEnabled: false, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.PrimarySemiSyncBlocked, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, + wantRecoveryFunction: recoverDeadPrimaryFunc, + wantSkipRecovery: true, }, { - name: "PrimaryTabletDeleted with ERS enabled", - ersEnabled: true, - analysisCode: inst.PrimaryTabletDeleted, + name: "PrimaryTabletDeleted with ERS enabled", + ersEnabled: true, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.PrimaryTabletDeleted, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, wantRecoveryFunction: recoverPrimaryTabletDeletedFunc, }, { - name: "PrimaryTabletDeleted with ERS disabled", - ersEnabled: false, - analysisCode: inst.PrimaryTabletDeleted, - wantRecoveryFunction: noRecoveryFunc, + name: "PrimaryTabletDeleted with ERS disabled", + ersEnabled: false, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.PrimaryTabletDeleted, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, + wantRecoveryFunction: recoverPrimaryTabletDeletedFunc, + wantSkipRecovery: true, }, { - name: "PrimaryHasPrimary", - ersEnabled: false, - analysisCode: inst.PrimaryHasPrimary, + name: "PrimaryHasPrimary", + ersEnabled: false, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.PrimaryHasPrimary, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, wantRecoveryFunction: recoverPrimaryHasPrimaryFunc, }, { - name: "ClusterHasNoPrimary", - ersEnabled: false, - analysisCode: inst.ClusterHasNoPrimary, + name: "ClusterHasNoPrimary", + ersEnabled: false, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.ClusterHasNoPrimary, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, wantRecoveryFunction: electNewPrimaryFunc, }, { - name: "ReplicationStopped", - ersEnabled: false, - analysisCode: inst.ReplicationStopped, + name: "ReplicationStopped", + ersEnabled: false, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.ReplicationStopped, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, wantRecoveryFunction: fixReplicaFunc, }, { - name: "PrimarySemiSyncMustBeSet", - ersEnabled: false, - analysisCode: inst.PrimarySemiSyncMustBeSet, + name: "PrimarySemiSyncMustBeSet", + ersEnabled: false, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.PrimarySemiSyncMustBeSet, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, wantRecoveryFunction: fixPrimaryFunc, }, { name: "ErrantGTIDDetected", ersEnabled: false, convertTabletWithErrantGTIDs: true, - analysisCode: inst.ErrantGTIDDetected, - wantRecoveryFunction: recoverErrantGTIDDetectedFunc, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.ErrantGTIDDetected, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, + wantRecoveryFunction: recoverErrantGTIDDetectedFunc, }, { name: "ErrantGTIDDetected with --change-tablets-with-errant-gtid-to-drained false", ersEnabled: false, convertTabletWithErrantGTIDs: false, - analysisCode: inst.ErrantGTIDDetected, - wantRecoveryFunction: noRecoveryFunc, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.ErrantGTIDDetected, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + }, + wantRecoveryFunction: recoverErrantGTIDDetectedFunc, + wantSkipRecovery: true, + }, { + name: "DeadPrimary with global ERS enabled and keyspace ERS disabled", + ersEnabled: true, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.DeadPrimary, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + AnalyzedKeyspaceEmergencyReparentDisabled: true, + }, + wantRecoveryFunction: recoverDeadPrimaryFunc, + wantSkipRecovery: true, + }, { + name: "DeadPrimary with global+keyspace ERS enabled and shard ERS disabled", + ersEnabled: true, + analysisEntry: &inst.ReplicationAnalysis{ + Analysis: inst.DeadPrimary, + AnalyzedKeyspace: keyspace, + AnalyzedShard: shard, + AnalyzedShardEmergencyReparentDisabled: true, + }, + wantRecoveryFunction: recoverDeadPrimaryFunc, + wantSkipRecovery: true, }, } @@ -309,8 +395,9 @@ func TestGetCheckAndRecoverFunctionCode(t *testing.T) { config.SetConvertTabletWithErrantGTIDs(tt.convertTabletWithErrantGTIDs) defer config.SetConvertTabletWithErrantGTIDs(convertErrantVal) - gotFunc := getCheckAndRecoverFunctionCode(tt.analysisCode, "") + gotFunc, skipRecovery := getCheckAndRecoverFunctionCode(tt.analysisEntry) require.EqualValues(t, tt.wantRecoveryFunction, gotFunc) + require.EqualValues(t, tt.wantSkipRecovery, skipRecovery) }) } } diff --git a/proto/topodata.proto b/proto/topodata.proto index 1e549ea4ff6..611ebf55b43 100644 --- a/proto/topodata.proto +++ b/proto/topodata.proto @@ -26,6 +26,7 @@ option java_package="io.vitess.proto"; package topodata; +import "vtorcdata.proto"; import "vttime.proto"; // KeyRange describes a range of sharding keys, when range-based @@ -254,6 +255,9 @@ message Shard { // OBSOLETE cells (5) reserved 5; + + // VtorcState is the vtorc config/state for the shard. + vtorcdata.Shard vtorc_state = 9; } // A Keyspace contains data about a keyspace. @@ -298,6 +302,9 @@ message Keyspace { // used for various system metadata that is stored in each // tablet's mysqld instance. string sidecar_db_name = 10; + + // Vtorc is the vtorc keyspace config/state for the keyspace. + vtorcdata.Keyspace vtorc_state = 11; } // ShardReplication describes the MySQL replication relationships diff --git a/proto/vtctldata.proto b/proto/vtctldata.proto index 36a93ae530b..23a9f7201b7 100644 --- a/proto/vtctldata.proto +++ b/proto/vtctldata.proto @@ -2262,3 +2262,12 @@ message WorkflowMirrorTrafficResponse { string start_state = 2; string current_state = 3; } + +message SetVtorcEmergencyReparentRequest { + string keyspace = 1; + string shard = 2; + bool disable = 3; +} + +message SetVtorcEmergencyReparentResponse { +} diff --git a/proto/vtctlservice.proto b/proto/vtctlservice.proto index b01c1c1dbc8..f5abbf3a3f4 100644 --- a/proto/vtctlservice.proto +++ b/proto/vtctlservice.proto @@ -295,6 +295,8 @@ service Vtctld { // Reshard. See the documentation on SetShardTabletControlRequest for more // information about the different update modes. rpc SetShardTabletControl(vtctldata.SetShardTabletControlRequest) returns (vtctldata.SetShardTabletControlResponse) {}; + // SetVtorcEmergencyReparent enables or disables the use of EmergencyReparentShard in VTOrc recoveries for a given keyspace or keyspace/shard. + rpc SetVtorcEmergencyReparent(vtctldata.SetVtorcEmergencyReparentRequest) returns (vtctldata.SetVtorcEmergencyReparentResponse) {}; // SetWritable sets a tablet as read-write (writable=true) or read-only (writable=false). rpc SetWritable(vtctldata.SetWritableRequest) returns (vtctldata.SetWritableResponse) {}; // ShardReplicationAdd adds an entry to a topodata.ShardReplication object. diff --git a/proto/vtorcdata.proto b/proto/vtorcdata.proto new file mode 100644 index 00000000000..53be525f7e9 --- /dev/null +++ b/proto/vtorcdata.proto @@ -0,0 +1,41 @@ +/* +Copyright 2025 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This file contains the Vitess topology related data structures. +// Very few of these structures are exchanged over the wire (only +// TabletType and KeyRange), but they are all used by the topology +// service. + +syntax = "proto3"; +option go_package = "vitess.io/vitess/go/vt/proto/vtorcdata"; + +option java_package="io.vitess.proto"; + +package vtorcdata; + +// Keyspace stores keyspace-level configuration and state for Vtorc. +message Keyspace { + // DisableEmergencyReparent reflects if EmergencyReparentShard + // can be used in Vtorc recoveries. + bool disable_emergency_reparent = 1; +} + +// Shard stores shard-level configuration and state for Vtorc. +message Shard { + // DisableEmergencyReparent reflects if EmergencyReparentShard + // can be used in Vtorc recoveries. + bool disable_emergency_reparent = 1; +} diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts index 6da0ae9df46..64b41439492 100644 --- a/web/vtadmin/src/proto/vtadmin.d.ts +++ b/web/vtadmin/src/proto/vtadmin.d.ts @@ -18568,6 +18568,9 @@ export namespace topodata { /** Shard is_primary_serving */ is_primary_serving?: (boolean|null); + + /** Shard vtorc_state */ + vtorc_state?: (vtorcdata.IShard|null); } /** Represents a Shard. */ @@ -18597,6 +18600,9 @@ export namespace topodata { /** Shard is_primary_serving. */ public is_primary_serving: boolean; + /** Shard vtorc_state. */ + public vtorc_state?: (vtorcdata.IShard|null); + /** * Creates a new Shard instance using the specified properties. * @param [properties] Properties to set @@ -18934,6 +18940,9 @@ export namespace topodata { /** Keyspace sidecar_db_name */ sidecar_db_name?: (string|null); + + /** Keyspace vtorc_state */ + vtorc_state?: (vtorcdata.IKeyspace|null); } /** Represents a Keyspace. */ @@ -18963,6 +18972,9 @@ export namespace topodata { /** Keyspace sidecar_db_name. */ public sidecar_db_name: string; + /** Keyspace vtorc_state. */ + public vtorc_state?: (vtorcdata.IKeyspace|null); + /** * Creates a new Keyspace instance using the specified properties. * @param [properties] Properties to set @@ -20630,6 +20642,204 @@ export namespace topodata { } } +/** Namespace vtorcdata. */ +export namespace vtorcdata { + + /** Properties of a Keyspace. */ + interface IKeyspace { + + /** Keyspace disable_emergency_reparent */ + disable_emergency_reparent?: (boolean|null); + } + + /** Represents a Keyspace. */ + class Keyspace implements IKeyspace { + + /** + * Constructs a new Keyspace. + * @param [properties] Properties to set + */ + constructor(properties?: vtorcdata.IKeyspace); + + /** Keyspace disable_emergency_reparent. */ + public disable_emergency_reparent: boolean; + + /** + * Creates a new Keyspace instance using the specified properties. + * @param [properties] Properties to set + * @returns Keyspace instance + */ + public static create(properties?: vtorcdata.IKeyspace): vtorcdata.Keyspace; + + /** + * Encodes the specified Keyspace message. Does not implicitly {@link vtorcdata.Keyspace.verify|verify} messages. + * @param message Keyspace message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: vtorcdata.IKeyspace, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Keyspace message, length delimited. Does not implicitly {@link vtorcdata.Keyspace.verify|verify} messages. + * @param message Keyspace message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: vtorcdata.IKeyspace, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Keyspace message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Keyspace + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtorcdata.Keyspace; + + /** + * Decodes a Keyspace message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Keyspace + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtorcdata.Keyspace; + + /** + * Verifies a Keyspace message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Keyspace message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Keyspace + */ + public static fromObject(object: { [k: string]: any }): vtorcdata.Keyspace; + + /** + * Creates a plain object from a Keyspace message. Also converts values to other types if specified. + * @param message Keyspace + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: vtorcdata.Keyspace, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Keyspace to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Keyspace + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a Shard. */ + interface IShard { + + /** Shard disable_emergency_reparent */ + disable_emergency_reparent?: (boolean|null); + } + + /** Represents a Shard. */ + class Shard implements IShard { + + /** + * Constructs a new Shard. + * @param [properties] Properties to set + */ + constructor(properties?: vtorcdata.IShard); + + /** Shard disable_emergency_reparent. */ + public disable_emergency_reparent: boolean; + + /** + * Creates a new Shard instance using the specified properties. + * @param [properties] Properties to set + * @returns Shard instance + */ + public static create(properties?: vtorcdata.IShard): vtorcdata.Shard; + + /** + * Encodes the specified Shard message. Does not implicitly {@link vtorcdata.Shard.verify|verify} messages. + * @param message Shard message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: vtorcdata.IShard, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified Shard message, length delimited. Does not implicitly {@link vtorcdata.Shard.verify|verify} messages. + * @param message Shard message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: vtorcdata.IShard, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a Shard message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns Shard + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtorcdata.Shard; + + /** + * Decodes a Shard message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns Shard + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtorcdata.Shard; + + /** + * Verifies a Shard message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a Shard message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns Shard + */ + public static fromObject(object: { [k: string]: any }): vtorcdata.Shard; + + /** + * Creates a plain object from a Shard message. Also converts values to other types if specified. + * @param message Shard + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: vtorcdata.Shard, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this Shard to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for Shard + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } +} + /** Namespace vtrpc. */ export namespace vtrpc { @@ -81829,4 +82039,204 @@ export namespace vtctldata { */ public static getTypeUrl(typeUrlPrefix?: string): string; } + + /** Properties of a SetVtorcEmergencyReparentRequest. */ + interface ISetVtorcEmergencyReparentRequest { + + /** SetVtorcEmergencyReparentRequest keyspace */ + keyspace?: (string|null); + + /** SetVtorcEmergencyReparentRequest shard */ + shard?: (string|null); + + /** SetVtorcEmergencyReparentRequest disable */ + disable?: (boolean|null); + } + + /** Represents a SetVtorcEmergencyReparentRequest. */ + class SetVtorcEmergencyReparentRequest implements ISetVtorcEmergencyReparentRequest { + + /** + * Constructs a new SetVtorcEmergencyReparentRequest. + * @param [properties] Properties to set + */ + constructor(properties?: vtctldata.ISetVtorcEmergencyReparentRequest); + + /** SetVtorcEmergencyReparentRequest keyspace. */ + public keyspace: string; + + /** SetVtorcEmergencyReparentRequest shard. */ + public shard: string; + + /** SetVtorcEmergencyReparentRequest disable. */ + public disable: boolean; + + /** + * Creates a new SetVtorcEmergencyReparentRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns SetVtorcEmergencyReparentRequest instance + */ + public static create(properties?: vtctldata.ISetVtorcEmergencyReparentRequest): vtctldata.SetVtorcEmergencyReparentRequest; + + /** + * Encodes the specified SetVtorcEmergencyReparentRequest message. Does not implicitly {@link vtctldata.SetVtorcEmergencyReparentRequest.verify|verify} messages. + * @param message SetVtorcEmergencyReparentRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: vtctldata.ISetVtorcEmergencyReparentRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SetVtorcEmergencyReparentRequest message, length delimited. Does not implicitly {@link vtctldata.SetVtorcEmergencyReparentRequest.verify|verify} messages. + * @param message SetVtorcEmergencyReparentRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: vtctldata.ISetVtorcEmergencyReparentRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SetVtorcEmergencyReparentRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SetVtorcEmergencyReparentRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtctldata.SetVtorcEmergencyReparentRequest; + + /** + * Decodes a SetVtorcEmergencyReparentRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SetVtorcEmergencyReparentRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtctldata.SetVtorcEmergencyReparentRequest; + + /** + * Verifies a SetVtorcEmergencyReparentRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SetVtorcEmergencyReparentRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SetVtorcEmergencyReparentRequest + */ + public static fromObject(object: { [k: string]: any }): vtctldata.SetVtorcEmergencyReparentRequest; + + /** + * Creates a plain object from a SetVtorcEmergencyReparentRequest message. Also converts values to other types if specified. + * @param message SetVtorcEmergencyReparentRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: vtctldata.SetVtorcEmergencyReparentRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SetVtorcEmergencyReparentRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SetVtorcEmergencyReparentRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a SetVtorcEmergencyReparentResponse. */ + interface ISetVtorcEmergencyReparentResponse { + } + + /** Represents a SetVtorcEmergencyReparentResponse. */ + class SetVtorcEmergencyReparentResponse implements ISetVtorcEmergencyReparentResponse { + + /** + * Constructs a new SetVtorcEmergencyReparentResponse. + * @param [properties] Properties to set + */ + constructor(properties?: vtctldata.ISetVtorcEmergencyReparentResponse); + + /** + * Creates a new SetVtorcEmergencyReparentResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns SetVtorcEmergencyReparentResponse instance + */ + public static create(properties?: vtctldata.ISetVtorcEmergencyReparentResponse): vtctldata.SetVtorcEmergencyReparentResponse; + + /** + * Encodes the specified SetVtorcEmergencyReparentResponse message. Does not implicitly {@link vtctldata.SetVtorcEmergencyReparentResponse.verify|verify} messages. + * @param message SetVtorcEmergencyReparentResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: vtctldata.ISetVtorcEmergencyReparentResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SetVtorcEmergencyReparentResponse message, length delimited. Does not implicitly {@link vtctldata.SetVtorcEmergencyReparentResponse.verify|verify} messages. + * @param message SetVtorcEmergencyReparentResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: vtctldata.ISetVtorcEmergencyReparentResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SetVtorcEmergencyReparentResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SetVtorcEmergencyReparentResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): vtctldata.SetVtorcEmergencyReparentResponse; + + /** + * Decodes a SetVtorcEmergencyReparentResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SetVtorcEmergencyReparentResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): vtctldata.SetVtorcEmergencyReparentResponse; + + /** + * Verifies a SetVtorcEmergencyReparentResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SetVtorcEmergencyReparentResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SetVtorcEmergencyReparentResponse + */ + public static fromObject(object: { [k: string]: any }): vtctldata.SetVtorcEmergencyReparentResponse; + + /** + * Creates a plain object from a SetVtorcEmergencyReparentResponse message. Also converts values to other types if specified. + * @param message SetVtorcEmergencyReparentResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: vtctldata.SetVtorcEmergencyReparentResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SetVtorcEmergencyReparentResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for SetVtorcEmergencyReparentResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } } diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js index 4339c153aa0..82c5bcb7cac 100644 --- a/web/vtadmin/src/proto/vtadmin.js +++ b/web/vtadmin/src/proto/vtadmin.js @@ -42400,6 +42400,7 @@ export const topodata = $root.topodata = (() => { * @property {Array.|null} [source_shards] Shard source_shards * @property {Array.|null} [tablet_controls] Shard tablet_controls * @property {boolean|null} [is_primary_serving] Shard is_primary_serving + * @property {vtorcdata.IShard|null} [vtorc_state] Shard vtorc_state */ /** @@ -42467,6 +42468,14 @@ export const topodata = $root.topodata = (() => { */ Shard.prototype.is_primary_serving = false; + /** + * Shard vtorc_state. + * @member {vtorcdata.IShard|null|undefined} vtorc_state + * @memberof topodata.Shard + * @instance + */ + Shard.prototype.vtorc_state = null; + /** * Creates a new Shard instance using the specified properties. * @function create @@ -42505,6 +42514,8 @@ export const topodata = $root.topodata = (() => { writer.uint32(/* id 7, wireType 0 =*/56).bool(message.is_primary_serving); if (message.primary_term_start_time != null && Object.hasOwnProperty.call(message, "primary_term_start_time")) $root.vttime.Time.encode(message.primary_term_start_time, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim(); + if (message.vtorc_state != null && Object.hasOwnProperty.call(message, "vtorc_state")) + $root.vtorcdata.Shard.encode(message.vtorc_state, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); return writer; }; @@ -42567,6 +42578,10 @@ export const topodata = $root.topodata = (() => { message.is_primary_serving = reader.bool(); break; } + case 9: { + message.vtorc_state = $root.vtorcdata.Shard.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -42638,6 +42653,11 @@ export const topodata = $root.topodata = (() => { if (message.is_primary_serving != null && message.hasOwnProperty("is_primary_serving")) if (typeof message.is_primary_serving !== "boolean") return "is_primary_serving: boolean expected"; + if (message.vtorc_state != null && message.hasOwnProperty("vtorc_state")) { + let error = $root.vtorcdata.Shard.verify(message.vtorc_state); + if (error) + return "vtorc_state." + error; + } return null; }; @@ -42690,6 +42710,11 @@ export const topodata = $root.topodata = (() => { } if (object.is_primary_serving != null) message.is_primary_serving = Boolean(object.is_primary_serving); + if (object.vtorc_state != null) { + if (typeof object.vtorc_state !== "object") + throw TypeError(".topodata.Shard.vtorc_state: object expected"); + message.vtorc_state = $root.vtorcdata.Shard.fromObject(object.vtorc_state); + } return message; }; @@ -42715,6 +42740,7 @@ export const topodata = $root.topodata = (() => { object.key_range = null; object.is_primary_serving = false; object.primary_term_start_time = null; + object.vtorc_state = null; } if (message.primary_alias != null && message.hasOwnProperty("primary_alias")) object.primary_alias = $root.topodata.TabletAlias.toObject(message.primary_alias, options); @@ -42734,6 +42760,8 @@ export const topodata = $root.topodata = (() => { object.is_primary_serving = message.is_primary_serving; if (message.primary_term_start_time != null && message.hasOwnProperty("primary_term_start_time")) object.primary_term_start_time = $root.vttime.Time.toObject(message.primary_term_start_time, options); + if (message.vtorc_state != null && message.hasOwnProperty("vtorc_state")) + object.vtorc_state = $root.vtorcdata.Shard.toObject(message.vtorc_state, options); return object; }; @@ -43467,6 +43495,7 @@ export const topodata = $root.topodata = (() => { * @property {string|null} [durability_policy] Keyspace durability_policy * @property {topodata.IThrottlerConfig|null} [throttler_config] Keyspace throttler_config * @property {string|null} [sidecar_db_name] Keyspace sidecar_db_name + * @property {vtorcdata.IKeyspace|null} [vtorc_state] Keyspace vtorc_state */ /** @@ -43532,6 +43561,14 @@ export const topodata = $root.topodata = (() => { */ Keyspace.prototype.sidecar_db_name = ""; + /** + * Keyspace vtorc_state. + * @member {vtorcdata.IKeyspace|null|undefined} vtorc_state + * @memberof topodata.Keyspace + * @instance + */ + Keyspace.prototype.vtorc_state = null; + /** * Creates a new Keyspace instance using the specified properties. * @function create @@ -43568,6 +43605,8 @@ export const topodata = $root.topodata = (() => { $root.topodata.ThrottlerConfig.encode(message.throttler_config, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim(); if (message.sidecar_db_name != null && Object.hasOwnProperty.call(message, "sidecar_db_name")) writer.uint32(/* id 10, wireType 2 =*/82).string(message.sidecar_db_name); + if (message.vtorc_state != null && Object.hasOwnProperty.call(message, "vtorc_state")) + $root.vtorcdata.Keyspace.encode(message.vtorc_state, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim(); return writer; }; @@ -43626,6 +43665,10 @@ export const topodata = $root.topodata = (() => { message.sidecar_db_name = reader.string(); break; } + case 11: { + message.vtorc_state = $root.vtorcdata.Keyspace.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -43688,6 +43731,11 @@ export const topodata = $root.topodata = (() => { if (message.sidecar_db_name != null && message.hasOwnProperty("sidecar_db_name")) if (!$util.isString(message.sidecar_db_name)) return "sidecar_db_name: string expected"; + if (message.vtorc_state != null && message.hasOwnProperty("vtorc_state")) { + let error = $root.vtorcdata.Keyspace.verify(message.vtorc_state); + if (error) + return "vtorc_state." + error; + } return null; }; @@ -43735,6 +43783,11 @@ export const topodata = $root.topodata = (() => { } if (object.sidecar_db_name != null) message.sidecar_db_name = String(object.sidecar_db_name); + if (object.vtorc_state != null) { + if (typeof object.vtorc_state !== "object") + throw TypeError(".topodata.Keyspace.vtorc_state: object expected"); + message.vtorc_state = $root.vtorcdata.Keyspace.fromObject(object.vtorc_state); + } return message; }; @@ -43758,6 +43811,7 @@ export const topodata = $root.topodata = (() => { object.durability_policy = ""; object.throttler_config = null; object.sidecar_db_name = ""; + object.vtorc_state = null; } if (message.keyspace_type != null && message.hasOwnProperty("keyspace_type")) object.keyspace_type = options.enums === String ? $root.topodata.KeyspaceType[message.keyspace_type] === undefined ? message.keyspace_type : $root.topodata.KeyspaceType[message.keyspace_type] : message.keyspace_type; @@ -43771,6 +43825,8 @@ export const topodata = $root.topodata = (() => { object.throttler_config = $root.topodata.ThrottlerConfig.toObject(message.throttler_config, options); if (message.sidecar_db_name != null && message.hasOwnProperty("sidecar_db_name")) object.sidecar_db_name = message.sidecar_db_name; + if (message.vtorc_state != null && message.hasOwnProperty("vtorc_state")) + object.vtorc_state = $root.vtorcdata.Keyspace.toObject(message.vtorc_state, options); return object; }; @@ -47693,6 +47749,424 @@ export const topodata = $root.topodata = (() => { return topodata; })(); +export const vtorcdata = $root.vtorcdata = (() => { + + /** + * Namespace vtorcdata. + * @exports vtorcdata + * @namespace + */ + const vtorcdata = {}; + + vtorcdata.Keyspace = (function() { + + /** + * Properties of a Keyspace. + * @memberof vtorcdata + * @interface IKeyspace + * @property {boolean|null} [disable_emergency_reparent] Keyspace disable_emergency_reparent + */ + + /** + * Constructs a new Keyspace. + * @memberof vtorcdata + * @classdesc Represents a Keyspace. + * @implements IKeyspace + * @constructor + * @param {vtorcdata.IKeyspace=} [properties] Properties to set + */ + function Keyspace(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Keyspace disable_emergency_reparent. + * @member {boolean} disable_emergency_reparent + * @memberof vtorcdata.Keyspace + * @instance + */ + Keyspace.prototype.disable_emergency_reparent = false; + + /** + * Creates a new Keyspace instance using the specified properties. + * @function create + * @memberof vtorcdata.Keyspace + * @static + * @param {vtorcdata.IKeyspace=} [properties] Properties to set + * @returns {vtorcdata.Keyspace} Keyspace instance + */ + Keyspace.create = function create(properties) { + return new Keyspace(properties); + }; + + /** + * Encodes the specified Keyspace message. Does not implicitly {@link vtorcdata.Keyspace.verify|verify} messages. + * @function encode + * @memberof vtorcdata.Keyspace + * @static + * @param {vtorcdata.IKeyspace} message Keyspace message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Keyspace.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.disable_emergency_reparent != null && Object.hasOwnProperty.call(message, "disable_emergency_reparent")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.disable_emergency_reparent); + return writer; + }; + + /** + * Encodes the specified Keyspace message, length delimited. Does not implicitly {@link vtorcdata.Keyspace.verify|verify} messages. + * @function encodeDelimited + * @memberof vtorcdata.Keyspace + * @static + * @param {vtorcdata.IKeyspace} message Keyspace message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Keyspace.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Keyspace message from the specified reader or buffer. + * @function decode + * @memberof vtorcdata.Keyspace + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {vtorcdata.Keyspace} Keyspace + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Keyspace.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtorcdata.Keyspace(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.disable_emergency_reparent = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Keyspace message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof vtorcdata.Keyspace + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {vtorcdata.Keyspace} Keyspace + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Keyspace.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Keyspace message. + * @function verify + * @memberof vtorcdata.Keyspace + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Keyspace.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.disable_emergency_reparent != null && message.hasOwnProperty("disable_emergency_reparent")) + if (typeof message.disable_emergency_reparent !== "boolean") + return "disable_emergency_reparent: boolean expected"; + return null; + }; + + /** + * Creates a Keyspace message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof vtorcdata.Keyspace + * @static + * @param {Object.} object Plain object + * @returns {vtorcdata.Keyspace} Keyspace + */ + Keyspace.fromObject = function fromObject(object) { + if (object instanceof $root.vtorcdata.Keyspace) + return object; + let message = new $root.vtorcdata.Keyspace(); + if (object.disable_emergency_reparent != null) + message.disable_emergency_reparent = Boolean(object.disable_emergency_reparent); + return message; + }; + + /** + * Creates a plain object from a Keyspace message. Also converts values to other types if specified. + * @function toObject + * @memberof vtorcdata.Keyspace + * @static + * @param {vtorcdata.Keyspace} message Keyspace + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Keyspace.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) + object.disable_emergency_reparent = false; + if (message.disable_emergency_reparent != null && message.hasOwnProperty("disable_emergency_reparent")) + object.disable_emergency_reparent = message.disable_emergency_reparent; + return object; + }; + + /** + * Converts this Keyspace to JSON. + * @function toJSON + * @memberof vtorcdata.Keyspace + * @instance + * @returns {Object.} JSON object + */ + Keyspace.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Keyspace + * @function getTypeUrl + * @memberof vtorcdata.Keyspace + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Keyspace.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/vtorcdata.Keyspace"; + }; + + return Keyspace; + })(); + + vtorcdata.Shard = (function() { + + /** + * Properties of a Shard. + * @memberof vtorcdata + * @interface IShard + * @property {boolean|null} [disable_emergency_reparent] Shard disable_emergency_reparent + */ + + /** + * Constructs a new Shard. + * @memberof vtorcdata + * @classdesc Represents a Shard. + * @implements IShard + * @constructor + * @param {vtorcdata.IShard=} [properties] Properties to set + */ + function Shard(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Shard disable_emergency_reparent. + * @member {boolean} disable_emergency_reparent + * @memberof vtorcdata.Shard + * @instance + */ + Shard.prototype.disable_emergency_reparent = false; + + /** + * Creates a new Shard instance using the specified properties. + * @function create + * @memberof vtorcdata.Shard + * @static + * @param {vtorcdata.IShard=} [properties] Properties to set + * @returns {vtorcdata.Shard} Shard instance + */ + Shard.create = function create(properties) { + return new Shard(properties); + }; + + /** + * Encodes the specified Shard message. Does not implicitly {@link vtorcdata.Shard.verify|verify} messages. + * @function encode + * @memberof vtorcdata.Shard + * @static + * @param {vtorcdata.IShard} message Shard message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Shard.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.disable_emergency_reparent != null && Object.hasOwnProperty.call(message, "disable_emergency_reparent")) + writer.uint32(/* id 1, wireType 0 =*/8).bool(message.disable_emergency_reparent); + return writer; + }; + + /** + * Encodes the specified Shard message, length delimited. Does not implicitly {@link vtorcdata.Shard.verify|verify} messages. + * @function encodeDelimited + * @memberof vtorcdata.Shard + * @static + * @param {vtorcdata.IShard} message Shard message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + Shard.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a Shard message from the specified reader or buffer. + * @function decode + * @memberof vtorcdata.Shard + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {vtorcdata.Shard} Shard + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Shard.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtorcdata.Shard(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.disable_emergency_reparent = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a Shard message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof vtorcdata.Shard + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {vtorcdata.Shard} Shard + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + Shard.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a Shard message. + * @function verify + * @memberof vtorcdata.Shard + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + Shard.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.disable_emergency_reparent != null && message.hasOwnProperty("disable_emergency_reparent")) + if (typeof message.disable_emergency_reparent !== "boolean") + return "disable_emergency_reparent: boolean expected"; + return null; + }; + + /** + * Creates a Shard message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof vtorcdata.Shard + * @static + * @param {Object.} object Plain object + * @returns {vtorcdata.Shard} Shard + */ + Shard.fromObject = function fromObject(object) { + if (object instanceof $root.vtorcdata.Shard) + return object; + let message = new $root.vtorcdata.Shard(); + if (object.disable_emergency_reparent != null) + message.disable_emergency_reparent = Boolean(object.disable_emergency_reparent); + return message; + }; + + /** + * Creates a plain object from a Shard message. Also converts values to other types if specified. + * @function toObject + * @memberof vtorcdata.Shard + * @static + * @param {vtorcdata.Shard} message Shard + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + Shard.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) + object.disable_emergency_reparent = false; + if (message.disable_emergency_reparent != null && message.hasOwnProperty("disable_emergency_reparent")) + object.disable_emergency_reparent = message.disable_emergency_reparent; + return object; + }; + + /** + * Converts this Shard to JSON. + * @function toJSON + * @memberof vtorcdata.Shard + * @instance + * @returns {Object.} JSON object + */ + Shard.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for Shard + * @function getTypeUrl + * @memberof vtorcdata.Shard + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + Shard.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/vtorcdata.Shard"; + }; + + return Shard; + })(); + + return vtorcdata; +})(); + export const vtrpc = $root.vtrpc = (() => { /** @@ -200281,6 +200755,431 @@ export const vtctldata = $root.vtctldata = (() => { return WorkflowMirrorTrafficResponse; })(); + vtctldata.SetVtorcEmergencyReparentRequest = (function() { + + /** + * Properties of a SetVtorcEmergencyReparentRequest. + * @memberof vtctldata + * @interface ISetVtorcEmergencyReparentRequest + * @property {string|null} [keyspace] SetVtorcEmergencyReparentRequest keyspace + * @property {string|null} [shard] SetVtorcEmergencyReparentRequest shard + * @property {boolean|null} [disable] SetVtorcEmergencyReparentRequest disable + */ + + /** + * Constructs a new SetVtorcEmergencyReparentRequest. + * @memberof vtctldata + * @classdesc Represents a SetVtorcEmergencyReparentRequest. + * @implements ISetVtorcEmergencyReparentRequest + * @constructor + * @param {vtctldata.ISetVtorcEmergencyReparentRequest=} [properties] Properties to set + */ + function SetVtorcEmergencyReparentRequest(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SetVtorcEmergencyReparentRequest keyspace. + * @member {string} keyspace + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @instance + */ + SetVtorcEmergencyReparentRequest.prototype.keyspace = ""; + + /** + * SetVtorcEmergencyReparentRequest shard. + * @member {string} shard + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @instance + */ + SetVtorcEmergencyReparentRequest.prototype.shard = ""; + + /** + * SetVtorcEmergencyReparentRequest disable. + * @member {boolean} disable + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @instance + */ + SetVtorcEmergencyReparentRequest.prototype.disable = false; + + /** + * Creates a new SetVtorcEmergencyReparentRequest instance using the specified properties. + * @function create + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @static + * @param {vtctldata.ISetVtorcEmergencyReparentRequest=} [properties] Properties to set + * @returns {vtctldata.SetVtorcEmergencyReparentRequest} SetVtorcEmergencyReparentRequest instance + */ + SetVtorcEmergencyReparentRequest.create = function create(properties) { + return new SetVtorcEmergencyReparentRequest(properties); + }; + + /** + * Encodes the specified SetVtorcEmergencyReparentRequest message. Does not implicitly {@link vtctldata.SetVtorcEmergencyReparentRequest.verify|verify} messages. + * @function encode + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @static + * @param {vtctldata.ISetVtorcEmergencyReparentRequest} message SetVtorcEmergencyReparentRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SetVtorcEmergencyReparentRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.keyspace != null && Object.hasOwnProperty.call(message, "keyspace")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.keyspace); + if (message.shard != null && Object.hasOwnProperty.call(message, "shard")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.shard); + if (message.disable != null && Object.hasOwnProperty.call(message, "disable")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.disable); + return writer; + }; + + /** + * Encodes the specified SetVtorcEmergencyReparentRequest message, length delimited. Does not implicitly {@link vtctldata.SetVtorcEmergencyReparentRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @static + * @param {vtctldata.ISetVtorcEmergencyReparentRequest} message SetVtorcEmergencyReparentRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SetVtorcEmergencyReparentRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SetVtorcEmergencyReparentRequest message from the specified reader or buffer. + * @function decode + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {vtctldata.SetVtorcEmergencyReparentRequest} SetVtorcEmergencyReparentRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SetVtorcEmergencyReparentRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtctldata.SetVtorcEmergencyReparentRequest(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + message.keyspace = reader.string(); + break; + } + case 2: { + message.shard = reader.string(); + break; + } + case 3: { + message.disable = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SetVtorcEmergencyReparentRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {vtctldata.SetVtorcEmergencyReparentRequest} SetVtorcEmergencyReparentRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SetVtorcEmergencyReparentRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SetVtorcEmergencyReparentRequest message. + * @function verify + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SetVtorcEmergencyReparentRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.keyspace != null && message.hasOwnProperty("keyspace")) + if (!$util.isString(message.keyspace)) + return "keyspace: string expected"; + if (message.shard != null && message.hasOwnProperty("shard")) + if (!$util.isString(message.shard)) + return "shard: string expected"; + if (message.disable != null && message.hasOwnProperty("disable")) + if (typeof message.disable !== "boolean") + return "disable: boolean expected"; + return null; + }; + + /** + * Creates a SetVtorcEmergencyReparentRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @static + * @param {Object.} object Plain object + * @returns {vtctldata.SetVtorcEmergencyReparentRequest} SetVtorcEmergencyReparentRequest + */ + SetVtorcEmergencyReparentRequest.fromObject = function fromObject(object) { + if (object instanceof $root.vtctldata.SetVtorcEmergencyReparentRequest) + return object; + let message = new $root.vtctldata.SetVtorcEmergencyReparentRequest(); + if (object.keyspace != null) + message.keyspace = String(object.keyspace); + if (object.shard != null) + message.shard = String(object.shard); + if (object.disable != null) + message.disable = Boolean(object.disable); + return message; + }; + + /** + * Creates a plain object from a SetVtorcEmergencyReparentRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @static + * @param {vtctldata.SetVtorcEmergencyReparentRequest} message SetVtorcEmergencyReparentRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SetVtorcEmergencyReparentRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + object.keyspace = ""; + object.shard = ""; + object.disable = false; + } + if (message.keyspace != null && message.hasOwnProperty("keyspace")) + object.keyspace = message.keyspace; + if (message.shard != null && message.hasOwnProperty("shard")) + object.shard = message.shard; + if (message.disable != null && message.hasOwnProperty("disable")) + object.disable = message.disable; + return object; + }; + + /** + * Converts this SetVtorcEmergencyReparentRequest to JSON. + * @function toJSON + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @instance + * @returns {Object.} JSON object + */ + SetVtorcEmergencyReparentRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for SetVtorcEmergencyReparentRequest + * @function getTypeUrl + * @memberof vtctldata.SetVtorcEmergencyReparentRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SetVtorcEmergencyReparentRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/vtctldata.SetVtorcEmergencyReparentRequest"; + }; + + return SetVtorcEmergencyReparentRequest; + })(); + + vtctldata.SetVtorcEmergencyReparentResponse = (function() { + + /** + * Properties of a SetVtorcEmergencyReparentResponse. + * @memberof vtctldata + * @interface ISetVtorcEmergencyReparentResponse + */ + + /** + * Constructs a new SetVtorcEmergencyReparentResponse. + * @memberof vtctldata + * @classdesc Represents a SetVtorcEmergencyReparentResponse. + * @implements ISetVtorcEmergencyReparentResponse + * @constructor + * @param {vtctldata.ISetVtorcEmergencyReparentResponse=} [properties] Properties to set + */ + function SetVtorcEmergencyReparentResponse(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new SetVtorcEmergencyReparentResponse instance using the specified properties. + * @function create + * @memberof vtctldata.SetVtorcEmergencyReparentResponse + * @static + * @param {vtctldata.ISetVtorcEmergencyReparentResponse=} [properties] Properties to set + * @returns {vtctldata.SetVtorcEmergencyReparentResponse} SetVtorcEmergencyReparentResponse instance + */ + SetVtorcEmergencyReparentResponse.create = function create(properties) { + return new SetVtorcEmergencyReparentResponse(properties); + }; + + /** + * Encodes the specified SetVtorcEmergencyReparentResponse message. Does not implicitly {@link vtctldata.SetVtorcEmergencyReparentResponse.verify|verify} messages. + * @function encode + * @memberof vtctldata.SetVtorcEmergencyReparentResponse + * @static + * @param {vtctldata.ISetVtorcEmergencyReparentResponse} message SetVtorcEmergencyReparentResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SetVtorcEmergencyReparentResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified SetVtorcEmergencyReparentResponse message, length delimited. Does not implicitly {@link vtctldata.SetVtorcEmergencyReparentResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof vtctldata.SetVtorcEmergencyReparentResponse + * @static + * @param {vtctldata.ISetVtorcEmergencyReparentResponse} message SetVtorcEmergencyReparentResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SetVtorcEmergencyReparentResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SetVtorcEmergencyReparentResponse message from the specified reader or buffer. + * @function decode + * @memberof vtctldata.SetVtorcEmergencyReparentResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {vtctldata.SetVtorcEmergencyReparentResponse} SetVtorcEmergencyReparentResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SetVtorcEmergencyReparentResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vtctldata.SetVtorcEmergencyReparentResponse(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SetVtorcEmergencyReparentResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof vtctldata.SetVtorcEmergencyReparentResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {vtctldata.SetVtorcEmergencyReparentResponse} SetVtorcEmergencyReparentResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SetVtorcEmergencyReparentResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SetVtorcEmergencyReparentResponse message. + * @function verify + * @memberof vtctldata.SetVtorcEmergencyReparentResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SetVtorcEmergencyReparentResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a SetVtorcEmergencyReparentResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof vtctldata.SetVtorcEmergencyReparentResponse + * @static + * @param {Object.} object Plain object + * @returns {vtctldata.SetVtorcEmergencyReparentResponse} SetVtorcEmergencyReparentResponse + */ + SetVtorcEmergencyReparentResponse.fromObject = function fromObject(object) { + if (object instanceof $root.vtctldata.SetVtorcEmergencyReparentResponse) + return object; + return new $root.vtctldata.SetVtorcEmergencyReparentResponse(); + }; + + /** + * Creates a plain object from a SetVtorcEmergencyReparentResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof vtctldata.SetVtorcEmergencyReparentResponse + * @static + * @param {vtctldata.SetVtorcEmergencyReparentResponse} message SetVtorcEmergencyReparentResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SetVtorcEmergencyReparentResponse.toObject = function toObject() { + return {}; + }; + + /** + * Converts this SetVtorcEmergencyReparentResponse to JSON. + * @function toJSON + * @memberof vtctldata.SetVtorcEmergencyReparentResponse + * @instance + * @returns {Object.} JSON object + */ + SetVtorcEmergencyReparentResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for SetVtorcEmergencyReparentResponse + * @function getTypeUrl + * @memberof vtctldata.SetVtorcEmergencyReparentResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + SetVtorcEmergencyReparentResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/vtctldata.SetVtorcEmergencyReparentResponse"; + }; + + return SetVtorcEmergencyReparentResponse; + })(); + return vtctldata; })();