(c *CmdConfig)
| 389 | } |
| 390 | |
| 391 | func buildDatabaseForkRequest(c *CmdConfig) (*godo.DatabaseCreateRequest, error) { |
| 392 | r := &godo.DatabaseCreateRequest{Name: c.Args[0]} |
| 393 | |
| 394 | existingDatabaseID, err := c.Doit.GetString(c.NS, doctl.ArgDatabaseRestoreFromClusterID) |
| 395 | if err != nil { |
| 396 | return nil, err |
| 397 | } |
| 398 | |
| 399 | existingDatabase, err := c.Databases().Get(existingDatabaseID) |
| 400 | if err != nil { |
| 401 | return nil, err |
| 402 | } |
| 403 | |
| 404 | backUpRestore := &godo.DatabaseBackupRestore{} |
| 405 | backUpRestore.DatabaseName = existingDatabase.Name |
| 406 | restoreFromTimestamp, err := c.Doit.GetString(c.NS, doctl.ArgDatabaseRestoreFromTimestamp) |
| 407 | if err != nil { |
| 408 | return nil, err |
| 409 | } |
| 410 | if restoreFromTimestamp != "" { |
| 411 | dateFormatted, err := convertUTCtoISO8601(restoreFromTimestamp) |
| 412 | if err != nil { |
| 413 | return nil, err |
| 414 | } |
| 415 | backUpRestore.BackupCreatedAt = dateFormatted |
| 416 | } |
| 417 | |
| 418 | r.BackupRestore = backUpRestore |
| 419 | r.EngineSlug = existingDatabase.EngineSlug |
| 420 | r.NumNodes = existingDatabase.NumNodes |
| 421 | r.SizeSlug = existingDatabase.SizeSlug |
| 422 | r.Region = existingDatabase.RegionSlug |
| 423 | r.Version = existingDatabase.VersionSlug |
| 424 | r.PrivateNetworkUUID = existingDatabase.PrivateNetworkUUID |
| 425 | r.Tags = existingDatabase.Tags |
| 426 | r.ProjectID = existingDatabase.ProjectID |
| 427 | |
| 428 | return r, nil |
| 429 | } |
| 430 | |
| 431 | func convertUTCtoISO8601(restoreFromTimestamp string) (string, error) { |
| 432 | // accepts UTC time format from user (to match db list output) and converts it to ISO8601 for api parity. |
no test coverage detected