/
fixtures.go
203 lines (191 loc) · 5.85 KB
/
fixtures.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
package testing
import (
"fmt"
"net/http"
"testing"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
)
func MockListResponse(t *testing.T) {
th.Mux.HandleFunc("/volumes/detail", func(w http.ResponseWriter, r *http.Request) {
th.TestMethod(t, r, "GET")
th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
w.Header().Add("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, `
{
"volumes": [
{
"volume_type": "lvmdriver-1",
"created_at": "2015-09-17T03:35:03.000000",
"bootable": "false",
"name": "vol-001",
"os-vol-mig-status-attr:name_id": null,
"consistencygroup_id": null,
"source_volid": null,
"os-volume-replication:driver_data": null,
"multiattach": false,
"snapshot_id": null,
"replication_status": "disabled",
"os-volume-replication:extended_status": null,
"encrypted": false,
"os-vol-host-attr:host": null,
"availability_zone": "nova",
"attachments": [{
"server_id": "83ec2e3b-4321-422b-8706-a84185f52a0a",
"attachment_id": "05551600-a936-4d4a-ba42-79a037c1-c91a",
"attached_at": "2016-08-06T14:48:20.000000",
"host_name": "foobar",
"volume_id": "d6cacb1a-8b59-4c88-ad90-d70ebb82bb75",
"device": "/dev/vdc",
"id": "d6cacb1a-8b59-4c88-ad90-d70ebb82bb75"
}],
"id": "289da7f8-6440-407c-9fb4-7db01ec49164",
"size": 75,
"user_id": "ff1ce52c03ab433aaba9108c2e3ef541",
"os-vol-tenant-attr:tenant_id": "304dc00909ac4d0da6c62d816bcb3459",
"os-vol-mig-status-attr:migstat": null,
"metadata": {"foo": "bar"},
"status": "available",
"description": null
},
{
"volume_type": "lvmdriver-1",
"created_at": "2015-09-17T03:32:29.000000",
"bootable": "false",
"name": "vol-002",
"os-vol-mig-status-attr:name_id": null,
"consistencygroup_id": null,
"source_volid": null,
"os-volume-replication:driver_data": null,
"multiattach": false,
"snapshot_id": null,
"replication_status": "disabled",
"os-volume-replication:extended_status": null,
"encrypted": false,
"os-vol-host-attr:host": null,
"availability_zone": "nova",
"attachments": [],
"id": "96c3bda7-c82a-4f50-be73-ca7621794835",
"size": 75,
"user_id": "ff1ce52c03ab433aaba9108c2e3ef541",
"os-vol-tenant-attr:tenant_id": "304dc00909ac4d0da6c62d816bcb3459",
"os-vol-mig-status-attr:migstat": null,
"metadata": {},
"status": "available",
"description": null
}
]
}
`)
})
}
func MockGetResponse(t *testing.T) {
th.Mux.HandleFunc("/volumes/d32019d3-bc6e-4319-9c1d-6722fc136a22", func(w http.ResponseWriter, r *http.Request) {
th.TestMethod(t, r, "GET")
th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
w.Header().Add("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, `
{
"volume": {
"volume_type": "lvmdriver-1",
"created_at": "2015-09-17T03:32:29.000000",
"bootable": "false",
"name": "vol-001",
"os-vol-mig-status-attr:name_id": null,
"consistencygroup_id": null,
"source_volid": null,
"os-volume-replication:driver_data": null,
"multiattach": false,
"snapshot_id": null,
"replication_status": "disabled",
"os-volume-replication:extended_status": null,
"encrypted": false,
"os-vol-host-attr:host": null,
"availability_zone": "nova",
"attachments": [{
"server_id": "83ec2e3b-4321-422b-8706-a84185f52a0a",
"attachment_id": "05551600-a936-4d4a-ba42-79a037c1-c91a",
"attached_at": "2016-08-06T14:48:20.000000",
"host_name": "foobar",
"volume_id": "d6cacb1a-8b59-4c88-ad90-d70ebb82bb75",
"device": "/dev/vdc",
"id": "d6cacb1a-8b59-4c88-ad90-d70ebb82bb75"
}],
"id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
"size": 75,
"user_id": "ff1ce52c03ab433aaba9108c2e3ef541",
"os-vol-tenant-attr:tenant_id": "304dc00909ac4d0da6c62d816bcb3459",
"os-vol-mig-status-attr:migstat": null,
"metadata": {},
"status": "available",
"description": null
}
}
`)
})
}
func MockCreateResponse(t *testing.T) {
th.Mux.HandleFunc("/volumes", func(w http.ResponseWriter, r *http.Request) {
th.TestMethod(t, r, "POST")
th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
th.TestHeader(t, r, "Content-Type", "application/json")
th.TestHeader(t, r, "Accept", "application/json")
th.TestJSONRequest(t, r, `
{
"volume": {
"name": "vol-001",
"size": 75
}
}
`)
w.Header().Add("Content-Type", "application/json")
w.WriteHeader(http.StatusAccepted)
fmt.Fprintf(w, `
{
"volume": {
"size": 75,
"id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
"metadata": {},
"created_at": "2015-09-17T03:32:29.044216",
"encrypted": false,
"bootable": "false",
"availability_zone": "nova",
"attachments": [],
"user_id": "ff1ce52c03ab433aaba9108c2e3ef541",
"status": "creating",
"description": null,
"volume_type": "lvmdriver-1",
"name": "vol-001",
"replication_status": "disabled",
"consistencygroup_id": null,
"source_volid": null,
"snapshot_id": null,
"multiattach": false
}
}
`)
})
}
func MockDeleteResponse(t *testing.T) {
th.Mux.HandleFunc("/volumes/d32019d3-bc6e-4319-9c1d-6722fc136a22", func(w http.ResponseWriter, r *http.Request) {
th.TestMethod(t, r, "DELETE")
th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
w.WriteHeader(http.StatusAccepted)
})
}
func MockUpdateResponse(t *testing.T) {
th.Mux.HandleFunc("/volumes/d32019d3-bc6e-4319-9c1d-6722fc136a22", func(w http.ResponseWriter, r *http.Request) {
th.TestMethod(t, r, "PUT")
th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, `
{
"volume": {
"name": "vol-002"
}
}
`)
})
}