|  | // +build acceptance db rackspace | 
|  |  | 
|  | package v1 | 
|  |  | 
|  | import ( | 
|  | "testing" | 
|  |  | 
|  | "github.com/rackspace/gophercloud" | 
|  | "github.com/rackspace/gophercloud/acceptance/tools" | 
|  | "github.com/rackspace/gophercloud/rackspace" | 
|  | "github.com/rackspace/gophercloud/rackspace/db/v1/instances" | 
|  | th "github.com/rackspace/gophercloud/testhelper" | 
|  | ) | 
|  |  | 
|  | func newClient(t *testing.T) *gophercloud.ServiceClient { | 
|  | opts, err := rackspace.AuthOptionsFromEnv() | 
|  | th.AssertNoErr(t, err) | 
|  | opts = tools.OnlyRS(opts) | 
|  |  | 
|  | client, err := rackspace.AuthenticatedClient(opts) | 
|  | th.AssertNoErr(t, err) | 
|  |  | 
|  | c, err := rackspace.NewDBV1(client, gophercloud.EndpointOpts{ | 
|  | Region: "IAD", | 
|  | }) | 
|  | th.AssertNoErr(t, err) | 
|  |  | 
|  | return c | 
|  | } | 
|  |  | 
|  | type context struct { | 
|  | test          *testing.T | 
|  | client        *gophercloud.ServiceClient | 
|  | instanceID    string | 
|  | DBIDs         []string | 
|  | replicaID     string | 
|  | backupID      string | 
|  | configGroupID string | 
|  | users         []string | 
|  | } | 
|  |  | 
|  | func newContext(t *testing.T) context { | 
|  | return context{ | 
|  | test:   t, | 
|  | client: newClient(t), | 
|  | } | 
|  | } | 
|  |  | 
|  | func (c context) Logf(msg string, args ...interface{}) { | 
|  | if len(args) > 0 { | 
|  | c.test.Logf(msg, args...) | 
|  | } else { | 
|  | c.test.Log(msg) | 
|  | } | 
|  | } | 
|  |  | 
|  | func (c context) AssertNoErr(err error) { | 
|  | th.AssertNoErr(c.test, err) | 
|  | } | 
|  |  | 
|  | func (c context) WaitUntilActive(id string) { | 
|  | err := gophercloud.WaitFor(60, func() (bool, error) { | 
|  | inst, err := instances.Get(c.client, id).Extract() | 
|  | if err != nil { | 
|  | return false, err | 
|  | } | 
|  | if inst.Status == "ACTIVE" { | 
|  | return true, nil | 
|  | } | 
|  | return false, nil | 
|  | }) | 
|  | c.AssertNoErr(err) | 
|  | } |