MCPcopy
hub / github.com/digitalocean/doctl / buildDatabaseForkRequest

Function buildDatabaseForkRequest

commands/databases.go:391–429  ·  view source on GitHub ↗
(c *CmdConfig)

Source from the content-addressed store, hash-verified

389}
390
391func 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
431func 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.

Callers 1

RunDatabaseForkFunction · 0.85

Calls 3

convertUTCtoISO8601Function · 0.85
GetStringMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected