blob: d4b9da023646b5679d6034af67e753d841678f18 [file] [log] [blame]
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": [
{
"id": "47e9ecc5-4045-4ee3-9a4b-d859d546a0cf",
"volume_id": "289da7f8-6440-407c-9fb4-7db01ec49164",
"instance_uuid": "d1c4788b-9435-42e2-9b81-29f3be1cd01f",
"attached_host": "stack",
"mountpoint": "/dev/vdc"
}
],
"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": [{
"attachment_id": "dbce64e3-f3b9-4423-a44f-a2b15deffa1b",
"id": "3eafc6f5-ed74-456d-90fb-f253f594dbae",
"volume_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
"server_id": "d1c4788b-9435-42e2-9b81-29f3be1cd01f",
"host_name": "stack",
"device": "/dev/vdd"
}],
"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"
}
}
`)
})
}