diff --git a/tools/tdbg/commands.go b/tools/tdbg/commands.go index 0a7f268bc50..184feb49cef 100644 --- a/tools/tdbg/commands.go +++ b/tools/tdbg/commands.go @@ -461,6 +461,9 @@ func AdminRemoveTask( } var visibilityTimestamp int64 if category.Type() == tasks.CategoryTypeScheduled { + if !c.IsSet(FlagTaskVisibilityTimestamp) { + return fmt.Errorf("%s is required to remove %s tasks", FlagTaskVisibilityTimestamp, category.Name()) + } visibilityTimestamp = c.Int64(FlagTaskVisibilityTimestamp) } diff --git a/tools/tdbg/tdbg_commands.go b/tools/tdbg/tdbg_commands.go index 9bcb4c6911e..89708e08c12 100644 --- a/tools/tdbg/tdbg_commands.go +++ b/tools/tdbg/tdbg_commands.go @@ -267,11 +267,6 @@ func newAdminShardManagementCommands(clientFactory ClientFactory, taskCategoryRe // which is required and does not have a default. The second is the task category // for the remove-task command, which is optional and defaults to transfer. taskCategoryFlag := getTaskCategoryFlag(taskCategoryRegistry) - listTasksCategory := *taskCategoryFlag - listTasksCategory.Required = true - removeTaskCategory := *taskCategoryFlag - removeTaskCategory.Value = tasks.CategoryTransfer.Name() - return []*cli.Command{ { Name: "describe", @@ -305,7 +300,7 @@ func newAdminShardManagementCommands(clientFactory ClientFactory, taskCategoryRe Usage: "The ID of the shard", Required: true, }, - &listTasksCategory, + taskCategoryFlag, &cli.Int64Flag{ Name: FlagMinTaskID, Usage: "Inclusive min taskID. Optional for transfer, replication, visibility tasks. Can't be specified for timer task", @@ -357,14 +352,16 @@ func newAdminShardManagementCommands(clientFactory ClientFactory, taskCategoryRe Usage: "remove a task based on shardId, task category, taskId, and task visibility timestamp", Flags: []cli.Flag{ &cli.IntFlag{ - Name: FlagShardID, - Usage: "shardId", + Name: FlagShardID, + Usage: "shardId", + Required: true, }, &cli.Int64Flag{ - Name: FlagTaskID, - Usage: "taskId", + Name: FlagTaskID, + Usage: "taskId", + Required: true, }, - &removeTaskCategory, + taskCategoryFlag, &cli.Int64Flag{ Name: FlagTaskVisibilityTimestamp, Usage: "task visibility timestamp in nano (required for removing timer task)", @@ -384,8 +381,9 @@ func getTaskCategoryFlag(taskCategoryRegistry tasks.TaskCategoryRegistry) *cli.S options = append(options, category.Name()) } flag := &cli.StringFlag{ - Name: FlagTaskCategory, - Usage: "Task category: " + strings.Join(options, ", "), + Name: FlagTaskCategory, + Usage: "Task category: " + strings.Join(options, ", "), + Required: true, } return flag }