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