-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
switcher_interface.go
56 lines (48 loc) · 2.48 KB
/
switcher_interface.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*
Copyright 2020 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.
*/
package wrangler
import (
"context"
"time"
"vitess.io/vitess/go/vt/vtctl/workflow"
topodatapb "vitess.io/vitess/go/vt/proto/topodata"
)
type iswitcher interface {
lockKeyspace(ctx context.Context, keyspace, action string) (context.Context, func(*error), error)
cancelMigration(ctx context.Context, sm *workflow.StreamMigrator)
stopStreams(ctx context.Context, sm *workflow.StreamMigrator) ([]string, error)
stopSourceWrites(ctx context.Context) error
waitForCatchup(ctx context.Context, filteredReplicationWaitTime time.Duration) error
migrateStreams(ctx context.Context, sm *workflow.StreamMigrator) error
createReverseVReplication(ctx context.Context) error
createJournals(ctx context.Context, sourceWorkflows []string) error
allowTargetWrites(ctx context.Context) error
changeRouting(ctx context.Context) error
streamMigraterfinalize(ctx context.Context, ts *trafficSwitcher, workflows []string) error
startReverseVReplication(ctx context.Context) error
switchTableReads(ctx context.Context, cells []string, servedType []topodatapb.TabletType, direction workflow.TrafficSwitchDirection) error
switchShardReads(ctx context.Context, cells []string, servedType []topodatapb.TabletType, direction workflow.TrafficSwitchDirection) error
validateWorkflowHasCompleted(ctx context.Context) error
removeSourceTables(ctx context.Context, removalType workflow.TableRemovalType) error
dropSourceShards(ctx context.Context) error
dropSourceDeniedTables(ctx context.Context) error
freezeTargetVReplication(ctx context.Context) error
dropSourceReverseVReplicationStreams(ctx context.Context) error
dropTargetVReplicationStreams(ctx context.Context) error
removeTargetTables(ctx context.Context) error
dropTargetShards(ctx context.Context) error
deleteRoutingRules(ctx context.Context) error
deleteShardRoutingRules(ctx context.Context) error
addParticipatingTablesToKeyspace(ctx context.Context, keyspace, tableSpecs string) error
logs() *[]string
}