1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
// +build acceptance db rackspace
package v1
import (
"github.com/rackspace/gophercloud"
"github.com/rackspace/gophercloud/acceptance/tools"
"github.com/rackspace/gophercloud/pagination"
"github.com/rackspace/gophercloud/rackspace/db/v1/backups"
"github.com/rackspace/gophercloud/rackspace/db/v1/instances"
)
func (c *context) createBackup() {
opts := backups.CreateOpts{
Name: tools.RandomString("backup_", 5),
InstanceID: c.instanceID,
}
backup, err := backups.Create(c.client, opts).Extract()
c.Logf("Created backup %#v", backup)
c.AssertNoErr(err)
err = gophercloud.WaitFor(60, func() (bool, error) {
b, err := backups.Get(c.client, backup.ID).Extract()
if err != nil {
return false, err
}
if b.Status == "COMPLETED" {
return true, nil
}
return false, nil
})
c.AssertNoErr(err)
c.backupID = backup.ID
}
func (c *context) getBackup() {
backup, err := backups.Get(c.client, c.backupID).Extract()
c.AssertNoErr(err)
c.Logf("Getting backup %s", backup.ID)
}
func (c *context) listAllBackups() {
c.Logf("Listing backups")
err := backups.List(c.client, nil).EachPage(func(page pagination.Page) (bool, error) {
backupList, err := backups.ExtractBackups(page)
c.AssertNoErr(err)
for _, b := range backupList {
c.Logf("Backup: %#v", b)
}
return true, nil
})
c.AssertNoErr(err)
}
func (c *context) listInstanceBackups() {
c.Logf("Listing backups for instance %s", c.instanceID)
err := instances.ListBackups(c.client, c.instanceID).EachPage(func(page pagination.Page) (bool, error) {
backupList, err := backups.ExtractBackups(page)
c.AssertNoErr(err)
for _, b := range backupList {
c.Logf("Backup: %#v", b)
}
return true, nil
})
c.AssertNoErr(err)
}
func (c *context) deleteBackup() {
err := backups.Delete(c.client, c.backupID).ExtractErr()
c.AssertNoErr(err)
c.Logf("Deleted backup %s", c.backupID)
}
|