(ctx context.Context, s *store.Store, targets []string)
| 247 | } |
| 248 | |
| 249 | func getDatabaseMessagesByTargets(ctx context.Context, s *store.Store, targets []string) ([]*store.DatabaseMessage, error) { |
| 250 | databases := []*store.DatabaseMessage{} |
| 251 | |
| 252 | for _, target := range targets { |
| 253 | if _, _, err := common.GetProjectIDDatabaseGroupID(target); err == nil { |
| 254 | databaseGroup, err := getDatabaseGroupByName(ctx, s, target, v1pb.DatabaseGroupView_DATABASE_GROUP_VIEW_FULL) |
| 255 | if err != nil { |
| 256 | return nil, errors.Wrapf(err, "failed to get database group %q", target) |
| 257 | } |
| 258 | for _, matched := range databaseGroup.MatchedDatabases { |
| 259 | instanceID, databaseName, err := common.GetInstanceDatabaseID(matched.Name) |
| 260 | if err != nil { |
| 261 | return nil, errors.Wrapf(err, "failed to parse %q", matched.Name) |
| 262 | } |
| 263 | database, err := s.GetDatabase(ctx, &store.FindDatabaseMessage{ |
| 264 | Workspace: common.GetWorkspaceIDFromContext(ctx), |
| 265 | InstanceID: &instanceID, |
| 266 | DatabaseName: &databaseName, |
| 267 | }) |
| 268 | if err != nil { |
| 269 | return nil, errors.Wrapf(err, "failed to get database") |
| 270 | } |
| 271 | if database == nil { |
| 272 | return nil, errors.Errorf("database %q not found", matched.Name) |
| 273 | } |
| 274 | databases = append(databases, database) |
| 275 | } |
| 276 | } else if _, _, err := common.GetInstanceDatabaseID(target); err == nil { |
| 277 | instanceID, databaseName, err := common.GetInstanceDatabaseID(target) |
| 278 | if err != nil { |
| 279 | return nil, errors.Wrapf(err, "failed to parse %q", target) |
| 280 | } |
| 281 | database, err := s.GetDatabase(ctx, &store.FindDatabaseMessage{ |
| 282 | Workspace: common.GetWorkspaceIDFromContext(ctx), |
| 283 | InstanceID: &instanceID, |
| 284 | DatabaseName: &databaseName, |
| 285 | }) |
| 286 | if err != nil { |
| 287 | return nil, errors.Wrapf(err, "failed to get database") |
| 288 | } |
| 289 | if database == nil { |
| 290 | return nil, errors.Errorf("database %q not found", target) |
| 291 | } |
| 292 | databases = append(databases, database) |
| 293 | } else { |
| 294 | return nil, errors.Errorf("invalid target %q", target) |
| 295 | } |
| 296 | } |
| 297 | return databases, nil |
| 298 | } |
| 299 | |
| 300 | func getTaskCreatesFromExportDataConfig( |
| 301 | ctx context.Context, |
no test coverage detected