blob: 767ece6989753407f1a626dfb9181096fb62d6f9 [file] [log] [blame]
// +build acceptance db rackspace
package v1
import (
"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/acceptance/tools"
"github.com/gophercloud/gophercloud/pagination"
"github.com/gophercloud/gophercloud/rackspace/db/v1/backups"
"github.com/gophercloud/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)
}