MCPcopy Create free account
hub / github.com/bytebase/bytebase / validateTargets

Function validateTargets

action/command/validation/flags.go:66–84  ·  view source on GitHub ↗

validateTargets validates the targets format and ensures consistency.

(targets []string)

Source from the content-addressed store, hash-verified

64
65// validateTargets validates the targets format and ensures consistency.
66func validateTargets(targets []string) error {
67 var databaseTarget, databaseGroupTarget int
68 for _, target := range targets {
69 if _, _, err := common.GetInstanceDatabaseID(target); err == nil {
70 databaseTarget++
71 } else if _, _, err := common.GetProjectIDDatabaseGroupID(target); err == nil {
72 databaseGroupTarget++
73 } else {
74 return errors.Errorf("invalid target format, must be instances/{instance}/databases/{database} or projects/{project}/databaseGroups/{databaseGroup}")
75 }
76 }
77 if databaseTarget > 0 && databaseGroupTarget > 0 {
78 return errors.Errorf("targets must be either databases or databaseGroups")
79 }
80 if databaseGroupTarget > 1 {
81 return errors.Errorf("targets must be a single databaseGroup")
82 }
83 return nil
84}

Callers 1

ValidateFlagsFunction · 0.85

Calls 3

GetInstanceDatabaseIDFunction · 0.92
ErrorfMethod · 0.80

Tested by

no test coverage detected