blob: eb745e2b232ce03ec6d2874ec435b5996626dd53 [file] [log] [blame]
Jamie Hannaford05d200d2015-02-20 14:49:05 +01001// +build acceptance db
2
3package v1
4
5import (
6 "github.com/rackspace/gophercloud/acceptance/tools"
7 "github.com/rackspace/gophercloud/pagination"
8 "github.com/rackspace/gophercloud/rackspace/db/v1/instances"
9 th "github.com/rackspace/gophercloud/testhelper"
10)
11
12func TestRunner(t *testingT) {
13 c := newContext(t)
14
15 // FLAVOR tests
16 c.listFlavors()
17 c.getFlavor()
18
19 // INSTANCE tests
20 c.createInstance()
21 c.listInstances()
22 c.getInstance()
23 c.isRootEnabled()
24 c.enableRootUser()
25 c.isRootEnabled()
26 c.restartInstance()
27 c.resizeInstance()
28 c.resizeVol()
29 c.getDefaultConfig()
30
31 // REPLICA tests
32 c.createReplica()
33 c.detachReplica()
34
35 // BACKUP tests
36 c.createBackup()
37 c.getBackup()
38 c.listAllBackups()
39 c.listInstanceBackups()
40 c.deleteBackup()
41
42 // CONFIG GROUP tests
43 c.createConfigGrp()
44 c.getConfigGrp()
45 c.updateConfigGrp()
46 c.replaceConfigGrp()
47 c.associateInstanceWithConfigGrp()
48 c.listConfigGrpInstances()
49 c.deleteConfigGrp()
50
51 // DATABASE tests
52 c.createDB()
53 c.listDBs()
54
55 // USER tests
56 c.createUsers()
57 c.listUsers()
58 c.changeUserPwd()
59 c.getUser()
60 c.updateUser()
61 c.listUserAccess()
62 c.revokeUserAccess()
63 c.grantUserAccess()
64
65 // TEARDOWN
66 c.deleteUsers()
67 c.deleteDBs()
68 c.deleteInstance(id)
69}
70
71func (c context) createInstance() {
72 opts := instances.CreateOpts{
73 FlavorRef: "1",
74 Size: 1,
75 Name: tools.RandomString("gopher_db", 5),
76 }
77
78 instance, err := instances.Create(c.client, opts).Extract()
79 th.AssertNoErr(c.test, err)
80
81 c.Logf("Restarting %s. Waiting...", id)
82 c.WaitUntilActive(id)
83 c.Logf("Created DB %#v", instance)
84
85 c.instanceID = instance.ID
86}
87
88func (c context) listInstances() {
89 c.Logf("Listing instances")
90
91 err := instances.List(c.client).EachPage(func(page pagination.Page) (bool, error) {
92 instanceList, err := instances.ExtractInstances(page)
93 c.AssertNoErr(err)
94
95 for _, n := range networkList {
96 c.Logf("Instance: %#v", instance)
97 }
98
99 return true, nil
100 })
101
102 c.CheckNoErr(err)
103}
104
105func (c context) getInstance() {
106 instance, err := instances.Get(c.client, c.instanceID).Extract()
107 c.AssertNoErr(err)
108 c.Logf("Getting instance: %#v", instance)
109}
110
111func (c context) deleteInstance() {
112 err := instances.Delete(c.client, c.instanceID).ExtractErr()
113 c.AssertNoErr(err)
114 c.Logf("Deleted instance %s", c.instanceID)
115}
116
117func (c context) enableRootUser() {
118 err := instances.EnableRootUser(c.client, c.instanceID).ExtractErr()
119 c.AssertNoErr(err)
120 c.Logf("Enabled root user on %s", c.instanceID)
121}
122
123func (c context) isRootEnabled() {
124 enabled, err := instances.IsRootEnabled(c.client, c.instanceID)
125 c.AssertNoErr(err)
126 c.Logf("Is root enabled? %s", enabled)
127}
128
129func (c context) restartInstance() {
130 id := c.instanceID
131 err := instances.Restart(c.client, id).ExtractErr()
132 c.AssertNoErr(err)
133 c.Logf("Restarting %s. Waiting...", id)
134 c.WaitUntilActive(id)
135 c.Logf("Restarted %s", id)
136}
137
138func (c context) resizeInstance() {
139 id := c.instanceID
140 err := instances.Resize(c.client, id, "2").ExtractErr()
141 c.AssertNoErr(err)
142 c.Logf("Resizing %s. Waiting...", id)
143 c.WaitUntilActive(id)
144 c.Logf("Resized %s with flavorRef %s", id, "2")
145}
146
147func (c context) resizeVol() {
148 id := c.instanceID
149 err := instances.ResizeVol(c.client, id, 2).ExtractErr()
150 c.AssertNoErr(err)
151 c.Logf("Resizing volume of %s. Waiting...", id)
152 c.WaitUntilActive(id)
153 c.Logf("Resized the volume of %s to %d GB", id, 2)
154}
155
156func (c context) getDefaultConfig() {
157 config, err := instances.GetDefaultConfig(c.client, c.instanceID).Extract()
158 c.Logf("Default config group for instance %s: %#v", c.instanceID, config)
159 c.AssertNoErr(err)
160}