Skip to content

Commit 09fcf54

Browse files
authored
Merge pull request #1256 from planetscale/require-flag
Require tablet-types for switch-traffic
2 parents b378aff + d2c9587 commit 09fcf54

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

internal/cmd/branch/vtctld/move_tables.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@ func MoveTablesSwitchTrafficCmd(ch *cmdutil.Helper) *cobra.Command {
314314
cmd.Flags().Int64Var(&flags.maxReplicationLagAllowed, "max-replication-lag-allowed", 0, "Maximum replication lag allowed in seconds")
315315
cmd.MarkFlagRequired("workflow") // nolint:errcheck
316316
cmd.MarkFlagRequired("target-keyspace") // nolint:errcheck
317+
cmd.MarkFlagRequired("tablet-types") // nolint:errcheck
317318

318319
return cmd
319320
}

internal/cmd/branch/vtctld/move_tables_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,30 @@ func TestMoveTablesSwitchTrafficWithMaxLag(t *testing.T) {
284284
c.Assert(buf.String(), qt.JSONEquals, map[string]string{"summary": "switched"})
285285
}
286286

287+
func TestMoveTablesSwitchTrafficRequiresTabletTypes(t *testing.T) {
288+
c := qt.New(t)
289+
290+
org := "my-org"
291+
db := "my-db"
292+
branch := "my-branch"
293+
294+
svc := &mock.MoveTablesService{}
295+
var buf bytes.Buffer
296+
ch := moveTablesTestHelper(org, svc, &mock.VtctldService{}, &buf)
297+
298+
cmd := MoveTablesCmd(ch)
299+
cmd.SetArgs([]string{"switch-traffic", db, branch,
300+
"--workflow", "my-workflow",
301+
"--target-keyspace", "target-ks",
302+
})
303+
err := cmd.Execute()
304+
305+
c.Assert(err, qt.IsNotNil)
306+
c.Assert(err.Error(), qt.Contains, "required flag")
307+
c.Assert(svc.SwitchTrafficFnInvoked, qt.IsFalse)
308+
c.Assert(buf.String(), qt.Equals, "")
309+
}
310+
287311
func TestMoveTablesReverseTrafficWithFlags(t *testing.T) {
288312
c := qt.New(t)
289313
setMoveTablesPollInterval(t, 0)
@@ -426,6 +450,7 @@ func TestMoveTablesSwitchTrafficOperationFailure(t *testing.T) {
426450
cmd.SetArgs([]string{"switch-traffic", db, branch,
427451
"--workflow", "my-workflow",
428452
"--target-keyspace", "target-ks",
453+
"--tablet-types", "PRIMARY",
429454
})
430455

431456
err := cmd.Execute()
@@ -464,6 +489,7 @@ func TestMoveTablesSwitchTrafficOperationTimeout(t *testing.T) {
464489
cmd.SetArgs([]string{"switch-traffic", db, branch,
465490
"--workflow", "my-workflow",
466491
"--target-keyspace", "target-ks",
492+
"--tablet-types", "PRIMARY",
467493
})
468494

469495
err := cmd.Execute()

0 commit comments

Comments
 (0)