blob: 3d109048dc72b3cdddaa3ea94d37aedb8a6dd0b3 [file] [log] [blame]
Jamie Hannaford05d200d2015-02-20 14:49:05 +01001// +build acceptance db
2
3package v1
4
5import (
6 "os"
7 "testing"
8
9 "github.com/rackspace/gophercloud"
10 "github.com/rackspace/gophercloud/openstack"
11 "github.com/rackspace/gophercloud/rackspace"
Jamie Hannaford11108402015-02-23 10:31:41 +010012 "github.com/rackspace/gophercloud/rackspace/db/v1/instances"
Jamie Hannaford05d200d2015-02-20 14:49:05 +010013 th "github.com/rackspace/gophercloud/testhelper"
14)
15
16func newClient(t *testing.T) *gophercloud.ServiceClient {
17 ao, err := openstack.AuthOptionsFromEnv()
18 th.AssertNoErr(t, err)
19
20 client, err := openstack.AuthenticatedClient(ao)
21 th.AssertNoErr(t, err)
22
23 c, err := rackspace.NewDBV1(client, gophercloud.EndpointOpts{
24 Region: os.Getenv("RS_REGION_NAME"),
25 })
26 th.AssertNoErr(t, err)
27
28 return c
29}
30
31type context struct {
32 test *testing.T
33 client *gophercloud.ServiceClient
34 instanceID string
35 DBIDs []string
36 replicaID string
37 backupID string
38 configGroupID string
Jamie Hannaford11108402015-02-23 10:31:41 +010039 users []string
Jamie Hannaford05d200d2015-02-20 14:49:05 +010040}
41
42func newContext(t *testing.T) context {
43 return context{
44 test: t,
45 client: newClient(t),
46 }
47}
48
49func (c context) Logf(msg string, args ...interface{}) {
50 c.test.Logf(msg, args)
51}
52
53func (c context) AssertNoErr(err error) {
54 th.AssertNoErr(c.test, err)
55}
56
57func (c context) WaitUntilActive(id string) {
58 err := gophercloud.WaitFor(60, func() (bool, error) {
59 inst, err := instances.Get(c.client, id).Extract()
60 if err != nil {
61 return false, err
62 }
63 if inst.Status == "ACTIVE" {
64 return true, nil
65 }
66 return false, nil
67 })
Jamie Hannaford11108402015-02-23 10:31:41 +010068 c.AssertNoErr(err)
Jamie Hannaford05d200d2015-02-20 14:49:05 +010069}