move unit tests into 'testing' directories
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..c1dc23e
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1 @@
+ExtractJSON method on gophercloud.Result
diff --git a/acceptance/openstack/compute/v2/quotaset_test.go b/acceptance/openstack/compute/v2/quotaset_test.go
index 3851edf..d7883df 100644
--- a/acceptance/openstack/compute/v2/quotaset_test.go
+++ b/acceptance/openstack/compute/v2/quotaset_test.go
@@ -5,12 +5,12 @@
import (
"testing"
- "github.com/rackspace/gophercloud"
- "github.com/rackspace/gophercloud/openstack"
- "github.com/rackspace/gophercloud/openstack/compute/v2/extensions/quotasets"
- "github.com/rackspace/gophercloud/openstack/identity/v2/tenants"
- "github.com/rackspace/gophercloud/pagination"
- th "github.com/rackspace/gophercloud/testhelper"
+ "github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/quotasets"
+ "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants"
+ "github.com/gophercloud/gophercloud/pagination"
+ th "github.com/gophercloud/gophercloud/testhelper"
)
func TestGetQuotaset(t *testing.T) {
diff --git a/endpoint_search_test.go b/endpoint_search_test.go
deleted file mode 100644
index 462316c..0000000
--- a/endpoint_search_test.go
+++ /dev/null
@@ -1,19 +0,0 @@
-package gophercloud
-
-import (
- "testing"
-
- th "github.com/gophercloud/gophercloud/testhelper"
-)
-
-func TestApplyDefaultsToEndpointOpts(t *testing.T) {
- eo := EndpointOpts{Availability: AvailabilityPublic}
- eo.ApplyDefaults("compute")
- expected := EndpointOpts{Availability: AvailabilityPublic, Type: "compute"}
- th.CheckDeepEquals(t, expected, eo)
-
- eo = EndpointOpts{Type: "compute"}
- eo.ApplyDefaults("object-store")
- expected = EndpointOpts{Availability: AvailabilityPublic, Type: "compute"}
- th.CheckDeepEquals(t, expected, eo)
-}
diff --git a/openstack/blockstorage/v1/apiversions/testing/doc.go b/openstack/blockstorage/v1/apiversions/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/blockstorage/v1/apiversions/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/blockstorage/v1/apiversions/requests_test.go b/openstack/blockstorage/v1/apiversions/testing/fixtures.go
similarity index 63%
rename from openstack/blockstorage/v1/apiversions/requests_test.go
rename to openstack/blockstorage/v1/apiversions/testing/fixtures.go
index 3a14c99..885fdf6 100644
--- a/openstack/blockstorage/v1/apiversions/requests_test.go
+++ b/openstack/blockstorage/v1/apiversions/testing/fixtures.go
@@ -1,19 +1,15 @@
-package apiversions
+package testing
import (
"fmt"
"net/http"
"testing"
- "github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
-func TestListVersions(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
+func MockListResponse(t *testing.T) {
th.Mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
th.TestMethod(t, r, "GET")
th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
@@ -48,39 +44,9 @@
]
}`)
})
-
- count := 0
-
- List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
- count++
- actual, err := ExtractAPIVersions(page)
- th.AssertNoErr(t, err)
-
- expected := []APIVersion{
- APIVersion{
- ID: "v1.0",
- Status: "CURRENT",
- Updated: "2012-01-04T11:33:21Z",
- },
- APIVersion{
- ID: "v2.0",
- Status: "CURRENT",
- Updated: "2012-11-21T11:33:21Z",
- },
- }
-
- th.AssertDeepEquals(t, expected, actual)
-
- return true, nil
- })
-
- th.AssertEquals(t, 1, count)
}
-func TestAPIInfo(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
+func MockGetResponse(t *testing.T) {
th.Mux.HandleFunc("/v1/", func(w http.ResponseWriter, r *http.Request) {
th.TestMethod(t, r, "GET")
th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
@@ -122,17 +88,4 @@
}
}`)
})
-
- actual, err := Get(client.ServiceClient(), "v1").Extract()
- th.AssertNoErr(t, err)
-
- expected := APIVersion{
- ID: "v1.0",
- Status: "CURRENT",
- Updated: "2012-01-04T11:33:21Z",
- }
-
- th.AssertEquals(t, actual.ID, expected.ID)
- th.AssertEquals(t, actual.Status, expected.Status)
- th.AssertEquals(t, actual.Updated, expected.Updated)
}
diff --git a/openstack/blockstorage/v1/apiversions/testing/requests_test.go b/openstack/blockstorage/v1/apiversions/testing/requests_test.go
new file mode 100644
index 0000000..3103497
--- /dev/null
+++ b/openstack/blockstorage/v1/apiversions/testing/requests_test.go
@@ -0,0 +1,64 @@
+package testing
+
+import (
+ "testing"
+
+ "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/apiversions"
+ "github.com/gophercloud/gophercloud/pagination"
+ th "github.com/gophercloud/gophercloud/testhelper"
+ "github.com/gophercloud/gophercloud/testhelper/client"
+)
+
+func TestListVersions(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+
+ MockListResponse(t)
+
+ count := 0
+
+ apiversions.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ count++
+ actual, err := apiversions.ExtractAPIVersions(page)
+ th.AssertNoErr(t, err)
+
+ expected := []apiversions.APIVersion{
+ {
+ ID: "v1.0",
+ Status: "CURRENT",
+ Updated: "2012-01-04T11:33:21Z",
+ },
+ {
+ ID: "v2.0",
+ Status: "CURRENT",
+ Updated: "2012-11-21T11:33:21Z",
+ },
+ }
+
+ th.AssertDeepEquals(t, expected, actual)
+
+ return true, nil
+ })
+
+ th.AssertEquals(t, 1, count)
+}
+
+func TestAPIInfo(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+
+ MockGetResponse(t)
+
+ actual, err := apiversions.Get(client.ServiceClient(), "v1").Extract()
+ th.AssertNoErr(t, err)
+
+ expected := apiversions.APIVersion{
+ ID: "v1.0",
+ Status: "CURRENT",
+ Updated: "2012-01-04T11:33:21Z",
+ }
+
+ th.AssertEquals(t, actual.ID, expected.ID)
+ th.AssertEquals(t, actual.Status, expected.Status)
+ th.AssertEquals(t, actual.Updated, expected.Updated)
+}
diff --git a/openstack/blockstorage/v1/snapshots/testing/doc.go b/openstack/blockstorage/v1/snapshots/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/blockstorage/v1/snapshots/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/blockstorage/v1/snapshots/fixtures.go b/openstack/blockstorage/v1/snapshots/testing/fixtures.go
similarity index 98%
rename from openstack/blockstorage/v1/snapshots/fixtures.go
rename to openstack/blockstorage/v1/snapshots/testing/fixtures.go
index 1dcdfca..7bdc782 100644
--- a/openstack/blockstorage/v1/snapshots/fixtures.go
+++ b/openstack/blockstorage/v1/snapshots/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package snapshots
+package testing
import (
"fmt"
diff --git a/openstack/blockstorage/v1/snapshots/requests_test.go b/openstack/blockstorage/v1/snapshots/testing/requests_test.go
similarity index 67%
rename from openstack/blockstorage/v1/snapshots/requests_test.go
rename to openstack/blockstorage/v1/snapshots/testing/requests_test.go
index 410b753..cfb206b 100644
--- a/openstack/blockstorage/v1/snapshots/requests_test.go
+++ b/openstack/blockstorage/v1/snapshots/testing/requests_test.go
@@ -1,8 +1,9 @@
-package snapshots
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/snapshots"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -16,20 +17,20 @@
count := 0
- List(client.ServiceClient(), &ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ snapshots.List(client.ServiceClient(), &snapshots.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractSnapshots(page)
+ actual, err := snapshots.ExtractSnapshots(page)
if err != nil {
t.Errorf("Failed to extract snapshots: %v", err)
return false, err
}
- expected := []Snapshot{
- Snapshot{
+ expected := []snapshots.Snapshot{
+ {
ID: "289da7f8-6440-407c-9fb4-7db01ec49164",
Name: "snapshot-001",
},
- Snapshot{
+ {
ID: "96c3bda7-c82a-4f50-be73-ca7621794835",
Name: "snapshot-002",
},
@@ -51,7 +52,7 @@
MockGetResponse(t)
- v, err := Get(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").Extract()
+ v, err := snapshots.Get(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, v.Name, "snapshot-001")
@@ -64,8 +65,8 @@
MockCreateResponse(t)
- options := CreateOpts{VolumeID: "1234", Name: "snapshot-001"}
- n, err := Create(client.ServiceClient(), options).Extract()
+ options := snapshots.CreateOpts{VolumeID: "1234", Name: "snapshot-001"}
+ n, err := snapshots.Create(client.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, n.VolumeID, "1234")
@@ -81,13 +82,13 @@
expected := map[string]interface{}{"key": "v1"}
- options := &UpdateMetadataOpts{
+ options := &snapshots.UpdateMetadataOpts{
Metadata: map[string]interface{}{
"key": "v1",
},
}
- actual, err := UpdateMetadata(client.ServiceClient(), "123", options).ExtractMetadata()
+ actual, err := snapshots.UpdateMetadata(client.ServiceClient(), "123", options).ExtractMetadata()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, actual, expected)
@@ -99,6 +100,6 @@
MockDeleteResponse(t)
- res := Delete(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22")
+ res := snapshots.Delete(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/blockstorage/v1/volumes/testing/doc.go b/openstack/blockstorage/v1/volumes/testing/doc.go
index 60fc22a..2f66ba5 100644
--- a/openstack/blockstorage/v1/volumes/testing/doc.go
+++ b/openstack/blockstorage/v1/volumes/testing/doc.go
@@ -2,6 +2,6 @@
This is package created is to hold fixtures (which imports testing),
so that importing volumes package does not inadvertently import testing into production code
More information here:
-https://github.com/gophercloud/gophercloud/issues/473
+https://github.com/rackspace/gophercloud/issues/473
*/
package testing
diff --git a/openstack/blockstorage/v1/volumes/testing/fixtures.go b/openstack/blockstorage/v1/volumes/testing/fixtures.go
index 0d34d5e..421cbf4 100644
--- a/openstack/blockstorage/v1/volumes/testing/fixtures.go
+++ b/openstack/blockstorage/v1/volumes/testing/fixtures.go
@@ -1,5 +1,3 @@
-// +build fixtures
-
package testing
import (
diff --git a/openstack/blockstorage/v1/volumes/requests_test.go b/openstack/blockstorage/v1/volumes/testing/requests_test.go
similarity index 69%
rename from openstack/blockstorage/v1/volumes/requests_test.go
rename to openstack/blockstorage/v1/volumes/testing/requests_test.go
index 436cfdc..85a6cd8 100644
--- a/openstack/blockstorage/v1/volumes/requests_test.go
+++ b/openstack/blockstorage/v1/volumes/testing/requests_test.go
@@ -1,11 +1,11 @@
-package volumes
+package testing
import (
"testing"
"time"
"github.com/gophercloud/gophercloud"
- fixtures "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/testing"
+ "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -15,24 +15,24 @@
th.SetupHTTP()
defer th.TeardownHTTP()
- fixtures.MockListResponse(t)
+ MockListResponse(t)
count := 0
- List(client.ServiceClient(), &ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ volumes.List(client.ServiceClient(), &volumes.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractVolumes(page)
+ actual, err := volumes.ExtractVolumes(page)
if err != nil {
t.Errorf("Failed to extract volumes: %v", err)
return false, err
}
- expected := []Volume{
- Volume{
+ expected := []volumes.Volume{
+ {
ID: "289da7f8-6440-407c-9fb4-7db01ec49164",
Name: "vol-001",
},
- Volume{
+ {
ID: "96c3bda7-c82a-4f50-be73-ca7621794835",
Name: "vol-002",
},
@@ -52,19 +52,19 @@
th.SetupHTTP()
defer th.TeardownHTTP()
- fixtures.MockListResponse(t)
+ MockListResponse(t)
- allPages, err := List(client.ServiceClient(), &ListOpts{}).AllPages()
+ allPages, err := volumes.List(client.ServiceClient(), &volumes.ListOpts{}).AllPages()
th.AssertNoErr(t, err)
- actual, err := ExtractVolumes(allPages)
+ actual, err := volumes.ExtractVolumes(allPages)
th.AssertNoErr(t, err)
- expected := []Volume{
- Volume{
+ expected := []volumes.Volume{
+ {
ID: "289da7f8-6440-407c-9fb4-7db01ec49164",
Name: "vol-001",
},
- Volume{
+ {
ID: "96c3bda7-c82a-4f50-be73-ca7621794835",
Name: "vol-002",
},
@@ -78,12 +78,12 @@
th.SetupHTTP()
defer th.TeardownHTTP()
- fixtures.MockGetResponse(t)
+ MockGetResponse(t)
- actual, err := Get(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").Extract()
+ actual, err := volumes.Get(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").Extract()
th.AssertNoErr(t, err)
- expected := &Volume{
+ expected := &volumes.Volume{
Status: "active",
Name: "vol-001",
Attachments: []map[string]interface{}{
@@ -117,10 +117,10 @@
th.SetupHTTP()
defer th.TeardownHTTP()
- fixtures.MockCreateResponse(t)
+ MockCreateResponse(t)
- options := &CreateOpts{Size: 75}
- n, err := Create(client.ServiceClient(), options).Extract()
+ options := &volumes.CreateOpts{Size: 75}
+ n, err := volumes.Create(client.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, n.Size, 4)
@@ -131,9 +131,9 @@
th.SetupHTTP()
defer th.TeardownHTTP()
- fixtures.MockDeleteResponse(t)
+ MockDeleteResponse(t)
- res := Delete(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22")
+ res := volumes.Delete(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22")
th.AssertNoErr(t, res.Err)
}
@@ -141,10 +141,10 @@
th.SetupHTTP()
defer th.TeardownHTTP()
- fixtures.MockUpdateResponse(t)
+ MockUpdateResponse(t)
- options := UpdateOpts{Name: "vol-002"}
- v, err := Update(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22", options).Extract()
+ options := volumes.UpdateOpts{Name: "vol-002"}
+ v, err := volumes.Update(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22", options).Extract()
th.AssertNoErr(t, err)
th.CheckEquals(t, "vol-002", v.Name)
}
diff --git a/openstack/blockstorage/v1/volumetypes/testing/doc.go b/openstack/blockstorage/v1/volumetypes/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/blockstorage/v1/volumetypes/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/blockstorage/v1/volumetypes/fixtures.go b/openstack/blockstorage/v1/volumetypes/testing/fixtures.go
similarity index 96%
rename from openstack/blockstorage/v1/volumetypes/fixtures.go
rename to openstack/blockstorage/v1/volumetypes/testing/fixtures.go
index cb6fadf..0e2715a 100644
--- a/openstack/blockstorage/v1/volumetypes/fixtures.go
+++ b/openstack/blockstorage/v1/volumetypes/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package volumetypes
+package testing
import (
"fmt"
diff --git a/openstack/blockstorage/v1/volumetypes/requests_test.go b/openstack/blockstorage/v1/volumetypes/testing/requests_test.go
similarity index 78%
rename from openstack/blockstorage/v1/volumetypes/requests_test.go
rename to openstack/blockstorage/v1/volumetypes/testing/requests_test.go
index 72113ec..4244615 100644
--- a/openstack/blockstorage/v1/volumetypes/requests_test.go
+++ b/openstack/blockstorage/v1/volumetypes/testing/requests_test.go
@@ -1,10 +1,11 @@
-package volumetypes
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumetypes"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -18,23 +19,23 @@
count := 0
- List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ volumetypes.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractVolumeTypes(page)
+ actual, err := volumetypes.ExtractVolumeTypes(page)
if err != nil {
t.Errorf("Failed to extract volume types: %v", err)
return false, err
}
- expected := []VolumeType{
- VolumeType{
+ expected := []volumetypes.VolumeType{
+ {
ID: "289da7f8-6440-407c-9fb4-7db01ec49164",
Name: "vol-type-001",
ExtraSpecs: map[string]interface{}{
"capabilities": "gpu",
},
},
- VolumeType{
+ {
ID: "96c3bda7-c82a-4f50-be73-ca7621794835",
Name: "vol-type-002",
ExtraSpecs: map[string]interface{}{},
@@ -57,7 +58,7 @@
MockGetResponse(t)
- vt, err := Get(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").Extract()
+ vt, err := volumetypes.Get(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, vt.ExtraSpecs, map[string]interface{}{"serverNumber": "2"})
@@ -95,8 +96,8 @@
`)
})
- options := &CreateOpts{Name: "vol-type-001"}
- n, err := Create(client.ServiceClient(), options).Extract()
+ options := &volumetypes.CreateOpts{Name: "vol-type-001"}
+ n, err := volumetypes.Create(client.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, n.Name, "vol-type-001")
@@ -113,6 +114,6 @@
w.WriteHeader(http.StatusAccepted)
})
- err := Delete(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").ExtractErr()
+ err := volumetypes.Delete(client.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").ExtractErr()
th.AssertNoErr(t, err)
}
diff --git a/openstack/cdn/v1/base/testing/doc.go b/openstack/cdn/v1/base/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/cdn/v1/base/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/cdn/v1/base/fixtures.go b/openstack/cdn/v1/base/testing/fixtures.go
similarity index 97%
rename from openstack/cdn/v1/base/fixtures.go
rename to openstack/cdn/v1/base/testing/fixtures.go
index 226edae..f1f4ac0 100644
--- a/openstack/cdn/v1/base/fixtures.go
+++ b/openstack/cdn/v1/base/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package base
+package testing
import (
"fmt"
diff --git a/openstack/cdn/v1/base/requests_test.go b/openstack/cdn/v1/base/testing/requests_test.go
similarity index 78%
rename from openstack/cdn/v1/base/requests_test.go
rename to openstack/cdn/v1/base/testing/requests_test.go
index a0559e3..cd1209b 100644
--- a/openstack/cdn/v1/base/requests_test.go
+++ b/openstack/cdn/v1/base/testing/requests_test.go
@@ -1,8 +1,9 @@
-package base
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/cdn/v1/base"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -12,10 +13,10 @@
defer th.TeardownHTTP()
HandleGetSuccessfully(t)
- actual, err := Get(fake.ServiceClient()).Extract()
+ actual, err := base.Get(fake.ServiceClient()).Extract()
th.CheckNoErr(t, err)
- expected := HomeDocument{
+ expected := base.HomeDocument{
"rel/cdn": map[string]interface{}{
"href-template": "services{?marker,limit}",
"href-vars": map[string]interface{}{
@@ -38,6 +39,6 @@
defer th.TeardownHTTP()
HandlePingSuccessfully(t)
- err := Ping(fake.ServiceClient()).ExtractErr()
+ err := base.Ping(fake.ServiceClient()).ExtractErr()
th.CheckNoErr(t, err)
}
diff --git a/openstack/cdn/v1/flavors/testing/doc.go b/openstack/cdn/v1/flavors/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/cdn/v1/flavors/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/cdn/v1/flavors/fixtures.go b/openstack/cdn/v1/flavors/testing/fixtures.go
similarity index 98%
rename from openstack/cdn/v1/flavors/fixtures.go
rename to openstack/cdn/v1/flavors/testing/fixtures.go
index 5d07491..ed97247 100644
--- a/openstack/cdn/v1/flavors/fixtures.go
+++ b/openstack/cdn/v1/flavors/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package flavors
+package testing
import (
"fmt"
diff --git a/openstack/cdn/v1/flavors/requests_test.go b/openstack/cdn/v1/flavors/testing/requests_test.go
similarity index 76%
rename from openstack/cdn/v1/flavors/requests_test.go
rename to openstack/cdn/v1/flavors/testing/requests_test.go
index 0aeda00..bc4b1a5 100644
--- a/openstack/cdn/v1/flavors/requests_test.go
+++ b/openstack/cdn/v1/flavors/testing/requests_test.go
@@ -1,9 +1,10 @@
-package flavors
+package testing
import (
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/cdn/v1/flavors"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -17,19 +18,19 @@
count := 0
- err := List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := flavors.List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractFlavors(page)
+ actual, err := flavors.ExtractFlavors(page)
if err != nil {
t.Errorf("Failed to extract flavors: %v", err)
return false, err
}
- expected := []Flavor{
- Flavor{
+ expected := []flavors.Flavor{
+ {
ID: "europe",
- Providers: []Provider{
- Provider{
+ Providers: []flavors.Provider{
+ {
Provider: "Fastly",
Links: []gophercloud.Link{
gophercloud.Link{
@@ -62,10 +63,10 @@
HandleGetCDNFlavorSuccessfully(t)
- expected := &Flavor{
+ expected := &flavors.Flavor{
ID: "asia",
- Providers: []Provider{
- Provider{
+ Providers: []flavors.Provider{
+ {
Provider: "ChinaCache",
Links: []gophercloud.Link{
gophercloud.Link{
@@ -83,7 +84,7 @@
},
}
- actual, err := Get(fake.ServiceClient(), "asia").Extract()
+ actual, err := flavors.Get(fake.ServiceClient(), "asia").Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, expected, actual)
}
diff --git a/openstack/cdn/v1/serviceassets/requests_test.go b/openstack/cdn/v1/serviceassets/requests_test.go
deleted file mode 100644
index 1204943..0000000
--- a/openstack/cdn/v1/serviceassets/requests_test.go
+++ /dev/null
@@ -1,18 +0,0 @@
-package serviceassets
-
-import (
- "testing"
-
- th "github.com/gophercloud/gophercloud/testhelper"
- fake "github.com/gophercloud/gophercloud/testhelper/client"
-)
-
-func TestDelete(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- HandleDeleteCDNAssetSuccessfully(t)
-
- err := Delete(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0", nil).ExtractErr()
- th.AssertNoErr(t, err)
-}
diff --git a/openstack/cdn/v1/serviceassets/testing/doc.go b/openstack/cdn/v1/serviceassets/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/cdn/v1/serviceassets/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/cdn/v1/serviceassets/fixtures.go b/openstack/cdn/v1/serviceassets/testing/fixtures.go
similarity index 93%
rename from openstack/cdn/v1/serviceassets/fixtures.go
rename to openstack/cdn/v1/serviceassets/testing/fixtures.go
index a66c503..3172d30 100644
--- a/openstack/cdn/v1/serviceassets/fixtures.go
+++ b/openstack/cdn/v1/serviceassets/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package serviceassets
+package testing
import (
"net/http"
diff --git a/openstack/cdn/v1/serviceassets/testing/requests_test.go b/openstack/cdn/v1/serviceassets/testing/requests_test.go
new file mode 100644
index 0000000..ff2073b
--- /dev/null
+++ b/openstack/cdn/v1/serviceassets/testing/requests_test.go
@@ -0,0 +1,19 @@
+package testing
+
+import (
+ "testing"
+
+ "github.com/gophercloud/gophercloud/openstack/cdn/v1/serviceassets"
+ th "github.com/gophercloud/gophercloud/testhelper"
+ fake "github.com/gophercloud/gophercloud/testhelper/client"
+)
+
+func TestDelete(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+
+ HandleDeleteCDNAssetSuccessfully(t)
+
+ err := serviceassets.Delete(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0", nil).ExtractErr()
+ th.AssertNoErr(t, err)
+}
diff --git a/openstack/cdn/v1/services/testing/doc.go b/openstack/cdn/v1/services/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/cdn/v1/services/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/cdn/v1/services/fixtures.go b/openstack/cdn/v1/services/testing/fixtures.go
similarity index 99%
rename from openstack/cdn/v1/services/fixtures.go
rename to openstack/cdn/v1/services/testing/fixtures.go
index 12d260e..d4093e0 100644
--- a/openstack/cdn/v1/services/fixtures.go
+++ b/openstack/cdn/v1/services/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package services
+package testing
import (
"fmt"
diff --git a/openstack/cdn/v1/services/requests_test.go b/openstack/cdn/v1/services/testing/requests_test.go
similarity index 66%
rename from openstack/cdn/v1/services/requests_test.go
rename to openstack/cdn/v1/services/testing/requests_test.go
index 1f27b59..0abc98e 100644
--- a/openstack/cdn/v1/services/requests_test.go
+++ b/openstack/cdn/v1/services/testing/requests_test.go
@@ -1,9 +1,10 @@
-package services
+package testing
import (
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/cdn/v1/services"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -17,61 +18,61 @@
count := 0
- err := List(fake.ServiceClient(), &ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ err := services.List(fake.ServiceClient(), &services.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractServices(page)
+ actual, err := services.ExtractServices(page)
if err != nil {
t.Errorf("Failed to extract services: %v", err)
return false, err
}
- expected := []Service{
- Service{
+ expected := []services.Service{
+ {
ID: "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0",
Name: "mywebsite.com",
- Domains: []Domain{
- Domain{
+ Domains: []services.Domain{
+ {
Domain: "www.mywebsite.com",
},
},
- Origins: []Origin{
- Origin{
+ Origins: []services.Origin{
+ {
Origin: "mywebsite.com",
Port: 80,
SSL: false,
},
},
- Caching: []CacheRule{
- CacheRule{
+ Caching: []services.CacheRule{
+ {
Name: "default",
TTL: 3600,
},
- CacheRule{
+ {
Name: "home",
TTL: 17200,
- Rules: []TTLRule{
- TTLRule{
+ Rules: []services.TTLRule{
+ {
Name: "index",
RequestURL: "/index.htm",
},
},
},
- CacheRule{
+ {
Name: "images",
TTL: 12800,
- Rules: []TTLRule{
- TTLRule{
+ Rules: []services.TTLRule{
+ {
Name: "images",
RequestURL: "*.png",
},
},
},
},
- Restrictions: []Restriction{
- Restriction{
+ Restrictions: []services.Restriction{
+ {
Name: "website only",
- Rules: []RestrictionRule{
- RestrictionRule{
+ Rules: []services.RestrictionRule{
+ {
Name: "mywebsite.com",
Referrer: "www.mywebsite.com",
},
@@ -80,55 +81,55 @@
},
FlavorID: "asia",
Status: "deployed",
- Errors: []Error{},
+ Errors: []services.Error{},
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "https://www.poppycdn.io/v1.0/services/96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "mywebsite.com.cdn123.poppycdn.net",
Rel: "access_url",
},
- gophercloud.Link{
+ {
Href: "https://www.poppycdn.io/v1.0/flavors/asia",
Rel: "flavor",
},
},
},
- Service{
+ {
ID: "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f1",
Name: "myothersite.com",
- Domains: []Domain{
- Domain{
+ Domains: []services.Domain{
+ {
Domain: "www.myothersite.com",
},
},
- Origins: []Origin{
- Origin{
+ Origins: []services.Origin{
+ {
Origin: "44.33.22.11",
Port: 80,
SSL: false,
},
- Origin{
+ {
Origin: "77.66.55.44",
Port: 80,
SSL: false,
- Rules: []OriginRule{
- OriginRule{
+ Rules: []services.OriginRule{
+ {
Name: "videos",
RequestURL: "^/videos/*.m3u",
},
},
},
},
- Caching: []CacheRule{
- CacheRule{
+ Caching: []services.CacheRule{
+ {
Name: "default",
TTL: 3600,
},
},
- Restrictions: []Restriction{},
+ Restrictions: []services.Restriction{},
FlavorID: "europe",
Status: "deployed",
Links: []gophercloud.Link{
@@ -165,36 +166,36 @@
HandleCreateCDNServiceSuccessfully(t)
- createOpts := CreateOpts{
+ createOpts := services.CreateOpts{
Name: "mywebsite.com",
- Domains: []Domain{
- Domain{
+ Domains: []services.Domain{
+ {
Domain: "www.mywebsite.com",
},
- Domain{
+ {
Domain: "blog.mywebsite.com",
},
},
- Origins: []Origin{
- Origin{
+ Origins: []services.Origin{
+ {
Origin: "mywebsite.com",
Port: 80,
SSL: false,
},
},
- Restrictions: []Restriction{
- Restriction{
+ Restrictions: []services.Restriction{
+ {
Name: "website only",
- Rules: []RestrictionRule{
- RestrictionRule{
+ Rules: []services.RestrictionRule{
+ {
Name: "mywebsite.com",
Referrer: "www.mywebsite.com",
},
},
},
},
- Caching: []CacheRule{
- CacheRule{
+ Caching: []services.CacheRule{
+ {
Name: "default",
TTL: 3600,
},
@@ -203,7 +204,7 @@
}
expected := "https://global.cdn.api.rackspacecloud.com/v1.0/services/96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0"
- actual, err := Create(fake.ServiceClient(), createOpts).Extract()
+ actual, err := services.Create(fake.ServiceClient(), createOpts).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, expected, actual)
}
@@ -214,53 +215,53 @@
HandleGetCDNServiceSuccessfully(t)
- expected := &Service{
+ expected := &services.Service{
ID: "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0",
Name: "mywebsite.com",
- Domains: []Domain{
- Domain{
+ Domains: []services.Domain{
+ {
Domain: "www.mywebsite.com",
Protocol: "http",
},
},
- Origins: []Origin{
- Origin{
+ Origins: []services.Origin{
+ {
Origin: "mywebsite.com",
Port: 80,
SSL: false,
},
},
- Caching: []CacheRule{
- CacheRule{
+ Caching: []services.CacheRule{
+ {
Name: "default",
TTL: 3600,
},
- CacheRule{
+ {
Name: "home",
TTL: 17200,
- Rules: []TTLRule{
- TTLRule{
+ Rules: []services.TTLRule{
+ {
Name: "index",
RequestURL: "/index.htm",
},
},
},
- CacheRule{
+ {
Name: "images",
TTL: 12800,
- Rules: []TTLRule{
- TTLRule{
+ Rules: []services.TTLRule{
+ {
Name: "images",
RequestURL: "*.png",
},
},
},
},
- Restrictions: []Restriction{
- Restriction{
+ Restrictions: []services.Restriction{
+ {
Name: "website only",
- Rules: []RestrictionRule{
- RestrictionRule{
+ Rules: []services.RestrictionRule{
+ {
Name: "mywebsite.com",
Referrer: "www.mywebsite.com",
},
@@ -269,24 +270,24 @@
},
FlavorID: "cdn",
Status: "deployed",
- Errors: []Error{},
+ Errors: []services.Error{},
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "https://global.cdn.api.rackspacecloud.com/v1.0/110011/services/96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "blog.mywebsite.com.cdn1.raxcdn.com",
Rel: "access_url",
},
- gophercloud.Link{
+ {
Href: "https://global.cdn.api.rackspacecloud.com/v1.0/110011/flavors/cdn",
Rel: "flavor",
},
},
}
- actual, err := Get(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0").Extract()
+ actual, err := services.Get(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0").Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, expected, actual)
}
@@ -298,51 +299,51 @@
HandleUpdateCDNServiceSuccessfully(t)
expected := "https://www.poppycdn.io/v1.0/services/96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0"
- ops := UpdateOpts{
+ ops := services.UpdateOpts{
// Append a single Domain
- Append{Value: Domain{Domain: "appended.mocksite4.com"}},
+ services.Append{Value: services.Domain{Domain: "appended.mocksite4.com"}},
// Insert a single Domain
- Insertion{
+ services.Insertion{
Index: 4,
- Value: Domain{Domain: "inserted.mocksite4.com"},
+ Value: services.Domain{Domain: "inserted.mocksite4.com"},
},
// Bulk addition
- Append{
- Value: DomainList{
- Domain{Domain: "bulkadded1.mocksite4.com"},
- Domain{Domain: "bulkadded2.mocksite4.com"},
+ services.Append{
+ Value: services.DomainList{
+ {Domain: "bulkadded1.mocksite4.com"},
+ {Domain: "bulkadded2.mocksite4.com"},
},
},
// Replace a single Origin
- Replacement{
+ services.Replacement{
Index: 2,
- Value: Origin{Origin: "44.33.22.11", Port: 80, SSL: false},
+ Value: services.Origin{Origin: "44.33.22.11", Port: 80, SSL: false},
},
// Bulk replace Origins
- Replacement{
+ services.Replacement{
Index: 0, // Ignored
- Value: OriginList{
- Origin{Origin: "44.33.22.11", Port: 80, SSL: false},
- Origin{Origin: "55.44.33.22", Port: 443, SSL: true},
+ Value: services.OriginList{
+ {Origin: "44.33.22.11", Port: 80, SSL: false},
+ {Origin: "55.44.33.22", Port: 443, SSL: true},
},
},
// Remove a single CacheRule
- Removal{
+ services.Removal{
Index: 8,
- Path: PathCaching,
+ Path: services.PathCaching,
},
// Bulk removal
- Removal{
+ services.Removal{
All: true,
- Path: PathCaching,
+ Path: services.PathCaching,
},
// Service name replacement
- NameReplacement{
+ services.NameReplacement{
NewName: "differentServiceName",
},
}
- actual, err := Update(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0", ops).Extract()
+ actual, err := services.Update(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0", ops).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, expected, actual)
}
@@ -353,6 +354,6 @@
HandleDeleteCDNServiceSuccessfully(t)
- err := Delete(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0").ExtractErr()
+ err := services.Delete(fake.ServiceClient(), "96737ae3-cfc1-4c72-be88-5d0e7cc9a3f0").ExtractErr()
th.AssertNoErr(t, err)
}
diff --git a/openstack/common/extensions/testing/doc.go b/openstack/common/extensions/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/common/extensions/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/common/extensions/fixtures.go b/openstack/common/extensions/testing/fixtures.go
similarity index 91%
rename from openstack/common/extensions/fixtures.go
rename to openstack/common/extensions/testing/fixtures.go
index 00d3db4..a986c95 100644
--- a/openstack/common/extensions/fixtures.go
+++ b/openstack/common/extensions/testing/fixtures.go
@@ -1,12 +1,11 @@
-// +build fixtures
-
-package extensions
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/common/extensions"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -41,7 +40,7 @@
`
// ListedExtension is the Extension that should be parsed from ListOutput.
-var ListedExtension = Extension{
+var ListedExtension = extensions.Extension{
Updated: "2013-01-20T00:00:00-00:00",
Name: "Neutron Service Type Management",
Links: []interface{}{},
@@ -51,10 +50,10 @@
}
// ExpectedExtensions is a slice containing the Extension that should be parsed from ListOutput.
-var ExpectedExtensions = []Extension{ListedExtension}
+var ExpectedExtensions = []extensions.Extension{ListedExtension}
// SingleExtension is the Extension that should be parsed from GetOutput.
-var SingleExtension = &Extension{
+var SingleExtension = &extensions.Extension{
Updated: "2013-02-03T10:00:00-00:00",
Name: "agent",
Links: []interface{}{},
diff --git a/openstack/common/extensions/requests_test.go b/openstack/common/extensions/testing/requests_test.go
similarity index 67%
rename from openstack/common/extensions/requests_test.go
rename to openstack/common/extensions/testing/requests_test.go
index 5caf407..fbaedfa 100644
--- a/openstack/common/extensions/requests_test.go
+++ b/openstack/common/extensions/testing/requests_test.go
@@ -1,8 +1,9 @@
-package extensions
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/common/extensions"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -15,9 +16,9 @@
count := 0
- List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ extensions.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractExtensions(page)
+ actual, err := extensions.ExtractExtensions(page)
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, ExpectedExtensions, actual)
@@ -32,7 +33,7 @@
defer th.TeardownHTTP()
HandleGetExtensionSuccessfully(t)
- actual, err := Get(client.ServiceClient(), "agent").Extract()
+ actual, err := extensions.Get(client.ServiceClient(), "agent").Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, SingleExtension, actual)
}
diff --git a/openstack/compute/v2/extensions/bootfromvolume/testing/doc.go b/openstack/compute/v2/extensions/bootfromvolume/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/bootfromvolume/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/bootfromvolume/requests_test.go b/openstack/compute/v2/extensions/bootfromvolume/testing/requests_test.go
similarity index 84%
rename from openstack/compute/v2/extensions/bootfromvolume/requests_test.go
rename to openstack/compute/v2/extensions/bootfromvolume/testing/requests_test.go
index d85070d..dca1105 100644
--- a/openstack/compute/v2/extensions/bootfromvolume/requests_test.go
+++ b/openstack/compute/v2/extensions/bootfromvolume/testing/requests_test.go
@@ -1,8 +1,9 @@
-package bootfromvolume
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/bootfromvolume"
"github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
th "github.com/gophercloud/gophercloud/testhelper"
)
@@ -14,12 +15,12 @@
FlavorRef: "performance1-1",
}
- ext := CreateOptsExt{
+ ext := bootfromvolume.CreateOptsExt{
CreateOptsBuilder: base,
- BlockDevice: []BlockDevice{
- BlockDevice{
+ BlockDevice: []bootfromvolume.BlockDevice{
+ {
UUID: "123456",
- SourceType: Image,
+ SourceType: bootfromvolume.Image,
DestinationType: "volume",
VolumeSize: 10,
DeleteOnTermination: false,
@@ -58,30 +59,30 @@
FlavorRef: "performance1-1",
}
- ext := CreateOptsExt{
+ ext := bootfromvolume.CreateOptsExt{
CreateOptsBuilder: base,
- BlockDevice: []BlockDevice{
- BlockDevice{
+ BlockDevice: []bootfromvolume.BlockDevice{
+ {
BootIndex: 0,
DeleteOnTermination: true,
DestinationType: "local",
- SourceType: Image,
+ SourceType: bootfromvolume.Image,
UUID: "123456",
},
- BlockDevice{
+ {
BootIndex: -1,
DeleteOnTermination: true,
DestinationType: "local",
GuestFormat: "ext4",
- SourceType: Blank,
+ SourceType: bootfromvolume.Blank,
VolumeSize: 1,
},
- BlockDevice{
+ {
BootIndex: -1,
DeleteOnTermination: true,
DestinationType: "local",
GuestFormat: "ext4",
- SourceType: Blank,
+ SourceType: bootfromvolume.Blank,
VolumeSize: 1,
},
},
diff --git a/openstack/compute/v2/extensions/defsecrules/testing/doc.go b/openstack/compute/v2/extensions/defsecrules/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/defsecrules/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/defsecrules/fixtures.go b/openstack/compute/v2/extensions/defsecrules/testing/fixtures.go
similarity index 98%
rename from openstack/compute/v2/extensions/defsecrules/fixtures.go
rename to openstack/compute/v2/extensions/defsecrules/testing/fixtures.go
index 4fee896..e4a62d4 100644
--- a/openstack/compute/v2/extensions/defsecrules/fixtures.go
+++ b/openstack/compute/v2/extensions/defsecrules/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package defsecrules
+package testing
import (
"fmt"
diff --git a/openstack/compute/v2/extensions/defsecrules/requests_test.go b/openstack/compute/v2/extensions/defsecrules/testing/requests_test.go
similarity index 71%
rename from openstack/compute/v2/extensions/defsecrules/requests_test.go
rename to openstack/compute/v2/extensions/defsecrules/testing/requests_test.go
index df568fe..1f2fb86 100644
--- a/openstack/compute/v2/extensions/defsecrules/requests_test.go
+++ b/openstack/compute/v2/extensions/defsecrules/testing/requests_test.go
@@ -1,8 +1,9 @@
-package defsecrules
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/defsecrules"
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/secgroups"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
@@ -19,13 +20,13 @@
count := 0
- err := List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := defsecrules.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractDefaultRules(page)
+ actual, err := defsecrules.ExtractDefaultRules(page)
th.AssertNoErr(t, err)
- expected := []DefaultRule{
- DefaultRule{
+ expected := []defsecrules.DefaultRule{
+ {
FromPort: 80,
ID: ruleID,
IPProtocol: "TCP",
@@ -49,17 +50,17 @@
mockCreateRuleResponse(t)
- opts := CreateOpts{
+ opts := defsecrules.CreateOpts{
IPProtocol: "TCP",
FromPort: 80,
ToPort: 80,
CIDR: "10.10.12.0/24",
}
- group, err := Create(client.ServiceClient(), opts).Extract()
+ group, err := defsecrules.Create(client.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
- expected := &DefaultRule{
+ expected := &defsecrules.DefaultRule{
ID: ruleID,
FromPort: 80,
ToPort: 80,
@@ -75,17 +76,17 @@
mockCreateRuleResponseICMPZero(t)
- opts := CreateOpts{
+ opts := defsecrules.CreateOpts{
IPProtocol: "ICMP",
FromPort: 0,
ToPort: 0,
CIDR: "10.10.12.0/24",
}
- group, err := Create(client.ServiceClient(), opts).Extract()
+ group, err := defsecrules.Create(client.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
- expected := &DefaultRule{
+ expected := &defsecrules.DefaultRule{
ID: ruleID,
FromPort: 0,
ToPort: 0,
@@ -101,10 +102,10 @@
mockGetRuleResponse(t, ruleID)
- group, err := Get(client.ServiceClient(), ruleID).Extract()
+ group, err := defsecrules.Get(client.ServiceClient(), ruleID).Extract()
th.AssertNoErr(t, err)
- expected := &DefaultRule{
+ expected := &defsecrules.DefaultRule{
ID: ruleID,
FromPort: 80,
ToPort: 80,
@@ -121,6 +122,6 @@
mockDeleteRuleResponse(t, ruleID)
- err := Delete(client.ServiceClient(), ruleID).ExtractErr()
+ err := defsecrules.Delete(client.ServiceClient(), ruleID).ExtractErr()
th.AssertNoErr(t, err)
}
diff --git a/openstack/compute/v2/extensions/delegate_test.go b/openstack/compute/v2/extensions/delegate_test.go
deleted file mode 100644
index 4c602ce..0000000
--- a/openstack/compute/v2/extensions/delegate_test.go
+++ /dev/null
@@ -1,96 +0,0 @@
-package extensions
-
-import (
- "fmt"
- "net/http"
- "testing"
-
- common "github.com/gophercloud/gophercloud/openstack/common/extensions"
- "github.com/gophercloud/gophercloud/pagination"
- th "github.com/gophercloud/gophercloud/testhelper"
- "github.com/gophercloud/gophercloud/testhelper/client"
-)
-
-func TestList(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- th.Mux.HandleFunc("/extensions", func(w http.ResponseWriter, r *http.Request) {
- th.TestMethod(t, r, "GET")
- th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
-
- w.Header().Add("Content-Type", "application/json")
-
- fmt.Fprintf(w, `
-{
- "extensions": [
- {
- "updated": "2013-01-20T00:00:00-00:00",
- "name": "Neutron Service Type Management",
- "links": [],
- "namespace": "http://docs.openstack.org/ext/neutron/service-type/api/v1.0",
- "alias": "service-type",
- "description": "API for retrieving service providers for Neutron advanced services"
- }
- ]
-}
- `)
- })
-
- count := 0
- List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
- count++
- actual, err := ExtractExtensions(page)
- th.AssertNoErr(t, err)
-
- expected := []common.Extension{
- common.Extension{
- Updated: "2013-01-20T00:00:00-00:00",
- Name: "Neutron Service Type Management",
- Links: []interface{}{},
- Namespace: "http://docs.openstack.org/ext/neutron/service-type/api/v1.0",
- Alias: "service-type",
- Description: "API for retrieving service providers for Neutron advanced services",
- },
- }
- th.AssertDeepEquals(t, expected, actual)
-
- return true, nil
- })
- th.CheckEquals(t, 1, count)
-}
-
-func TestGet(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- th.Mux.HandleFunc("/extensions/agent", func(w http.ResponseWriter, r *http.Request) {
- th.TestMethod(t, r, "GET")
- th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
-
- w.Header().Add("Content-Type", "application/json")
- w.WriteHeader(http.StatusOK)
-
- fmt.Fprintf(w, `
-{
- "extension": {
- "updated": "2013-02-03T10:00:00-00:00",
- "name": "agent",
- "links": [],
- "namespace": "http://docs.openstack.org/ext/agent/api/v2.0",
- "alias": "agent",
- "description": "The agent management extension."
- }
-}
- `)
- })
-
- ext, err := Get(client.ServiceClient(), "agent").Extract()
- th.AssertNoErr(t, err)
-
- th.AssertEquals(t, ext.Updated, "2013-02-03T10:00:00-00:00")
- th.AssertEquals(t, ext.Name, "agent")
- th.AssertEquals(t, ext.Namespace, "http://docs.openstack.org/ext/agent/api/v2.0")
- th.AssertEquals(t, ext.Alias, "agent")
- th.AssertEquals(t, ext.Description, "The agent management extension.")
-}
diff --git a/openstack/compute/v2/extensions/diskconfig/testing/doc.go b/openstack/compute/v2/extensions/diskconfig/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/diskconfig/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/diskconfig/requests_test.go b/openstack/compute/v2/extensions/diskconfig/testing/requests_test.go
similarity index 81%
rename from openstack/compute/v2/extensions/diskconfig/requests_test.go
rename to openstack/compute/v2/extensions/diskconfig/testing/requests_test.go
index 2e3ae18..6ce560a 100644
--- a/openstack/compute/v2/extensions/diskconfig/requests_test.go
+++ b/openstack/compute/v2/extensions/diskconfig/testing/requests_test.go
@@ -1,8 +1,9 @@
-package diskconfig
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/diskconfig"
"github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
th "github.com/gophercloud/gophercloud/testhelper"
)
@@ -14,9 +15,9 @@
FlavorRef: "performance1-1",
}
- ext := CreateOptsExt{
+ ext := diskconfig.CreateOptsExt{
CreateOptsBuilder: base,
- DiskConfig: Manual,
+ DiskConfig: diskconfig.Manual,
}
expected := `
@@ -41,9 +42,9 @@
ImageID: "asdfasdfasdf",
}
- ext := RebuildOptsExt{
+ ext := diskconfig.RebuildOptsExt{
RebuildOptsBuilder: base,
- DiskConfig: Auto,
+ DiskConfig: diskconfig.Auto,
}
actual, err := ext.ToServerRebuildMap()
@@ -67,9 +68,9 @@
FlavorRef: "performance1-8",
}
- ext := ResizeOptsExt{
+ ext := diskconfig.ResizeOptsExt{
ResizeOptsBuilder: base,
- DiskConfig: Auto,
+ DiskConfig: diskconfig.Auto,
}
actual, err := ext.ToServerResizeMap()
diff --git a/openstack/compute/v2/extensions/floatingips/testing/doc.go b/openstack/compute/v2/extensions/floatingips/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/floatingips/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/floatingips/fixtures.go b/openstack/compute/v2/extensions/floatingips/testing/fixtures.go
similarity index 93%
rename from openstack/compute/v2/extensions/floatingips/fixtures.go
rename to openstack/compute/v2/extensions/floatingips/testing/fixtures.go
index b369ea2..e372606 100644
--- a/openstack/compute/v2/extensions/floatingips/fixtures.go
+++ b/openstack/compute/v2/extensions/floatingips/testing/fixtures.go
@@ -1,12 +1,11 @@
-// +build fixtures
-
-package floatingips
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/floatingips"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -60,14 +59,14 @@
`
// FirstFloatingIP is the first result in ListOutput.
-var FirstFloatingIP = FloatingIP{
+var FirstFloatingIP = floatingips.FloatingIP{
ID: "1",
IP: "10.10.10.1",
Pool: "nova",
}
// SecondFloatingIP is the first result in ListOutput.
-var SecondFloatingIP = FloatingIP{
+var SecondFloatingIP = floatingips.FloatingIP{
FixedIP: "166.78.185.201",
ID: "2",
InstanceID: "4d8c3732-a248-40ed-bebc-539a6ffd25c0",
@@ -77,10 +76,10 @@
// ExpectedFloatingIPsSlice is the slice of results that should be parsed
// from ListOutput, in the expected order.
-var ExpectedFloatingIPsSlice = []FloatingIP{FirstFloatingIP, SecondFloatingIP}
+var ExpectedFloatingIPsSlice = []floatingips.FloatingIP{FirstFloatingIP, SecondFloatingIP}
// CreatedFloatingIP is the parsed result from CreateOutput.
-var CreatedFloatingIP = FloatingIP{
+var CreatedFloatingIP = floatingips.FloatingIP{
ID: "1",
IP: "10.10.10.1",
Pool: "nova",
diff --git a/openstack/compute/v2/extensions/floatingips/requests_test.go b/openstack/compute/v2/extensions/floatingips/testing/requests_test.go
similarity index 60%
rename from openstack/compute/v2/extensions/floatingips/requests_test.go
rename to openstack/compute/v2/extensions/floatingips/testing/requests_test.go
index f0e9560..e53da91 100644
--- a/openstack/compute/v2/extensions/floatingips/requests_test.go
+++ b/openstack/compute/v2/extensions/floatingips/testing/requests_test.go
@@ -1,8 +1,9 @@
-package floatingips
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/floatingips"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -14,9 +15,9 @@
HandleListSuccessfully(t)
count := 0
- err := List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := floatingips.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractFloatingIPs(page)
+ actual, err := floatingips.ExtractFloatingIPs(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedFloatingIPsSlice, actual)
@@ -31,7 +32,7 @@
defer th.TeardownHTTP()
HandleCreateSuccessfully(t)
- actual, err := Create(client.ServiceClient(), CreateOpts{
+ actual, err := floatingips.Create(client.ServiceClient(), floatingips.CreateOpts{
Pool: "nova",
}).Extract()
th.AssertNoErr(t, err)
@@ -43,7 +44,7 @@
defer th.TeardownHTTP()
HandleGetSuccessfully(t)
- actual, err := Get(client.ServiceClient(), "2").Extract()
+ actual, err := floatingips.Get(client.ServiceClient(), "2").Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, &SecondFloatingIP, actual)
}
@@ -53,7 +54,7 @@
defer th.TeardownHTTP()
HandleDeleteSuccessfully(t)
- err := Delete(client.ServiceClient(), "1").ExtractErr()
+ err := floatingips.Delete(client.ServiceClient(), "1").ExtractErr()
th.AssertNoErr(t, err)
}
@@ -62,11 +63,11 @@
defer th.TeardownHTTP()
HandleAssociateSuccessfully(t)
- associateOpts := AssociateOpts{
+ associateOpts := floatingips.AssociateOpts{
FloatingIP: "10.10.10.2",
}
- err := AssociateInstance(client.ServiceClient(), "4d8c3732-a248-40ed-bebc-539a6ffd25c0", associateOpts).ExtractErr()
+ err := floatingips.AssociateInstance(client.ServiceClient(), "4d8c3732-a248-40ed-bebc-539a6ffd25c0", associateOpts).ExtractErr()
th.AssertNoErr(t, err)
}
@@ -75,12 +76,12 @@
defer th.TeardownHTTP()
HandleAssociateFixedSuccessfully(t)
- associateOpts := AssociateOpts{
+ associateOpts := floatingips.AssociateOpts{
FloatingIP: "10.10.10.2",
FixedIP: "166.78.185.201",
}
- err := AssociateInstance(client.ServiceClient(), "4d8c3732-a248-40ed-bebc-539a6ffd25c0", associateOpts).ExtractErr()
+ err := floatingips.AssociateInstance(client.ServiceClient(), "4d8c3732-a248-40ed-bebc-539a6ffd25c0", associateOpts).ExtractErr()
th.AssertNoErr(t, err)
}
@@ -89,10 +90,10 @@
defer th.TeardownHTTP()
HandleDisassociateSuccessfully(t)
- disassociateOpts := DisassociateOpts{
+ disassociateOpts := floatingips.DisassociateOpts{
FloatingIP: "10.10.10.2",
}
- err := DisassociateInstance(client.ServiceClient(), "4d8c3732-a248-40ed-bebc-539a6ffd25c0", disassociateOpts).ExtractErr()
+ err := floatingips.DisassociateInstance(client.ServiceClient(), "4d8c3732-a248-40ed-bebc-539a6ffd25c0", disassociateOpts).ExtractErr()
th.AssertNoErr(t, err)
}
diff --git a/openstack/compute/v2/extensions/keypairs/testing/doc.go b/openstack/compute/v2/extensions/keypairs/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/keypairs/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/keypairs/fixtures.go b/openstack/compute/v2/extensions/keypairs/testing/fixtures.go
similarity index 96%
rename from openstack/compute/v2/extensions/keypairs/fixtures.go
rename to openstack/compute/v2/extensions/keypairs/testing/fixtures.go
index 62c5db2..dc716d8 100644
--- a/openstack/compute/v2/extensions/keypairs/fixtures.go
+++ b/openstack/compute/v2/extensions/keypairs/testing/fixtures.go
@@ -1,12 +1,11 @@
-// +build fixtures
-
-package keypairs
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/keypairs"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -70,14 +69,14 @@
`
// FirstKeyPair is the first result in ListOutput.
-var FirstKeyPair = KeyPair{
+var FirstKeyPair = keypairs.KeyPair{
Name: "firstkey",
Fingerprint: "15:b0:f8:b3:f9:48:63:71:cf:7b:5b:38:6d:44:2d:4a",
PublicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC+Eo/RZRngaGTkFs7I62ZjsIlO79KklKbMXi8F+KITD4bVQHHn+kV+4gRgkgCRbdoDqoGfpaDFs877DYX9n4z6FrAIZ4PES8TNKhatifpn9NdQYWA+IkU8CuvlEKGuFpKRi/k7JLos/gHi2hy7QUwgtRvcefvD/vgQZOVw/mGR9Q== Generated by Nova\n",
}
// SecondKeyPair is the second result in ListOutput.
-var SecondKeyPair = KeyPair{
+var SecondKeyPair = keypairs.KeyPair{
Name: "secondkey",
Fingerprint: "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
PublicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
@@ -85,10 +84,10 @@
// ExpectedKeyPairSlice is the slice of results that should be parsed from ListOutput, in the expected
// order.
-var ExpectedKeyPairSlice = []KeyPair{FirstKeyPair, SecondKeyPair}
+var ExpectedKeyPairSlice = []keypairs.KeyPair{FirstKeyPair, SecondKeyPair}
// CreatedKeyPair is the parsed result from CreatedOutput.
-var CreatedKeyPair = KeyPair{
+var CreatedKeyPair = keypairs.KeyPair{
Name: "createdkey",
Fingerprint: "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
PublicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
@@ -97,7 +96,7 @@
}
// ImportedKeyPair is the parsed result from ImportOutput.
-var ImportedKeyPair = KeyPair{
+var ImportedKeyPair = keypairs.KeyPair{
Name: "importedkey",
Fingerprint: "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c",
PublicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova",
diff --git a/openstack/compute/v2/extensions/keypairs/requests_test.go b/openstack/compute/v2/extensions/keypairs/testing/requests_test.go
similarity index 72%
rename from openstack/compute/v2/extensions/keypairs/requests_test.go
rename to openstack/compute/v2/extensions/keypairs/testing/requests_test.go
index 468e5ea..1e05e66 100644
--- a/openstack/compute/v2/extensions/keypairs/requests_test.go
+++ b/openstack/compute/v2/extensions/keypairs/testing/requests_test.go
@@ -1,8 +1,9 @@
-package keypairs
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/keypairs"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -14,9 +15,9 @@
HandleListSuccessfully(t)
count := 0
- err := List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := keypairs.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractKeyPairs(page)
+ actual, err := keypairs.ExtractKeyPairs(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedKeyPairSlice, actual)
@@ -31,7 +32,7 @@
defer th.TeardownHTTP()
HandleCreateSuccessfully(t)
- actual, err := Create(client.ServiceClient(), CreateOpts{
+ actual, err := keypairs.Create(client.ServiceClient(), keypairs.CreateOpts{
Name: "createdkey",
}).Extract()
th.AssertNoErr(t, err)
@@ -43,7 +44,7 @@
defer th.TeardownHTTP()
HandleImportSuccessfully(t)
- actual, err := Create(client.ServiceClient(), CreateOpts{
+ actual, err := keypairs.Create(client.ServiceClient(), keypairs.CreateOpts{
Name: "importedkey",
PublicKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova",
}).Extract()
@@ -56,7 +57,7 @@
defer th.TeardownHTTP()
HandleGetSuccessfully(t)
- actual, err := Get(client.ServiceClient(), "firstkey").Extract()
+ actual, err := keypairs.Get(client.ServiceClient(), "firstkey").Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, &FirstKeyPair, actual)
}
@@ -66,6 +67,6 @@
defer th.TeardownHTTP()
HandleDeleteSuccessfully(t)
- err := Delete(client.ServiceClient(), "deletedkey").ExtractErr()
+ err := keypairs.Delete(client.ServiceClient(), "deletedkey").ExtractErr()
th.AssertNoErr(t, err)
}
diff --git a/openstack/compute/v2/extensions/networks/requests_test.go b/openstack/compute/v2/extensions/networks/requests_test.go
deleted file mode 100644
index 3afc5d5..0000000
--- a/openstack/compute/v2/extensions/networks/requests_test.go
+++ /dev/null
@@ -1,37 +0,0 @@
-package networks
-
-import (
- "testing"
-
- "github.com/gophercloud/gophercloud/pagination"
- th "github.com/gophercloud/gophercloud/testhelper"
- "github.com/gophercloud/gophercloud/testhelper/client"
-)
-
-func TestList(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
- HandleListSuccessfully(t)
-
- count := 0
- err := List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
- count++
- actual, err := ExtractNetworks(page)
- th.AssertNoErr(t, err)
- th.CheckDeepEquals(t, ExpectedNetworkSlice, actual)
-
- return true, nil
- })
- th.AssertNoErr(t, err)
- th.CheckEquals(t, 1, count)
-}
-
-func TestGet(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
- HandleGetSuccessfully(t)
-
- actual, err := Get(client.ServiceClient(), "20c8acc0-f747-4d71-a389-46d078ebf000").Extract()
- th.AssertNoErr(t, err)
- th.CheckDeepEquals(t, &SecondNetwork, actual)
-}
diff --git a/openstack/compute/v2/extensions/networks/testing/doc.go b/openstack/compute/v2/extensions/networks/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/networks/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/networks/fixtures.go b/openstack/compute/v2/extensions/networks/testing/fixtures.go
similarity index 95%
rename from openstack/compute/v2/extensions/networks/fixtures.go
rename to openstack/compute/v2/extensions/networks/testing/fixtures.go
index ffa4282..e2fa49b 100644
--- a/openstack/compute/v2/extensions/networks/fixtures.go
+++ b/openstack/compute/v2/extensions/networks/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package networks
+package testing
import (
"fmt"
@@ -9,6 +7,7 @@
"time"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/networks"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -114,7 +113,7 @@
// FirstNetwork is the first result in ListOutput.
var nilTime time.Time
-var FirstNetwork = Network{
+var FirstNetwork = networks.Network{
Bridge: "br100",
BridgeInterface: "eth0",
Broadcast: "10.0.0.7",
@@ -146,7 +145,7 @@
}
// SecondNetwork is the second result in ListOutput.
-var SecondNetwork = Network{
+var SecondNetwork = networks.Network{
Bridge: "br101",
BridgeInterface: "eth0",
Broadcast: "10.0.0.15",
@@ -179,7 +178,7 @@
// ExpectedNetworkSlice is the slice of results that should be parsed
// from ListOutput, in the expected order.
-var ExpectedNetworkSlice = []Network{FirstNetwork, SecondNetwork}
+var ExpectedNetworkSlice = []networks.Network{FirstNetwork, SecondNetwork}
// HandleListSuccessfully configures the test server to respond to a List request.
func HandleListSuccessfully(t *testing.T) {
diff --git a/openstack/compute/v2/extensions/tenantnetworks/requests_test.go b/openstack/compute/v2/extensions/networks/testing/requests_test.go
similarity index 64%
rename from openstack/compute/v2/extensions/tenantnetworks/requests_test.go
rename to openstack/compute/v2/extensions/networks/testing/requests_test.go
index e8726c4..36b5463 100644
--- a/openstack/compute/v2/extensions/tenantnetworks/requests_test.go
+++ b/openstack/compute/v2/extensions/networks/testing/requests_test.go
@@ -1,8 +1,9 @@
-package tenantnetworks
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/networks"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -14,9 +15,9 @@
HandleListSuccessfully(t)
count := 0
- err := List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := networks.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractNetworks(page)
+ actual, err := networks.ExtractNetworks(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedNetworkSlice, actual)
@@ -31,7 +32,7 @@
defer th.TeardownHTTP()
HandleGetSuccessfully(t)
- actual, err := Get(client.ServiceClient(), "20c8acc0-f747-4d71-a389-46d078ebf000").Extract()
+ actual, err := networks.Get(client.ServiceClient(), "20c8acc0-f747-4d71-a389-46d078ebf000").Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, &SecondNetwork, actual)
}
diff --git a/openstack/compute/v2/extensions/quotasets/requests.go b/openstack/compute/v2/extensions/quotasets/requests.go
index 52f0839..76beb17 100644
--- a/openstack/compute/v2/extensions/quotasets/requests.go
+++ b/openstack/compute/v2/extensions/quotasets/requests.go
@@ -1,7 +1,7 @@
package quotasets
import (
- "github.com/rackspace/gophercloud"
+ "github.com/gophercloud/gophercloud"
)
// Get returns public data about a previously created QuotaSet.
diff --git a/openstack/compute/v2/extensions/quotasets/requests_test.go b/openstack/compute/v2/extensions/quotasets/requests_test.go
deleted file mode 100644
index 5d766fa..0000000
--- a/openstack/compute/v2/extensions/quotasets/requests_test.go
+++ /dev/null
@@ -1,16 +0,0 @@
-package quotasets
-
-import (
- th "github.com/rackspace/gophercloud/testhelper"
- "github.com/rackspace/gophercloud/testhelper/client"
- "testing"
-)
-
-func TestGet(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
- HandleGetSuccessfully(t)
- actual, err := Get(client.ServiceClient(), FirstTenantID).Extract()
- th.AssertNoErr(t, err)
- th.CheckDeepEquals(t, &FirstQuotaSet, actual)
-}
diff --git a/openstack/compute/v2/extensions/quotasets/results.go b/openstack/compute/v2/extensions/quotasets/results.go
index cbf4d6b..f6c4e5a 100644
--- a/openstack/compute/v2/extensions/quotasets/results.go
+++ b/openstack/compute/v2/extensions/quotasets/results.go
@@ -1,39 +1,38 @@
package quotasets
import (
- "github.com/mitchellh/mapstructure"
- "github.com/rackspace/gophercloud"
- "github.com/rackspace/gophercloud/pagination"
+ "github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/pagination"
)
// QuotaSet is a set of operational limits that allow for control of compute usage.
type QuotaSet struct {
//ID is tenant associated with this quota_set
- ID string `mapstructure:"id"`
+ ID string `json:"id"`
//FixedIps is number of fixed ips alloted this quota_set
- FixedIps int `mapstructure:"fixed_ips"`
+ FixedIps int `json:"fixed_ips"`
// FloatingIps is number of floating ips alloted this quota_set
- FloatingIps int `mapstructure:"floating_ips"`
+ FloatingIps int `json:"floating_ips"`
// InjectedFileContentBytes is content bytes allowed for each injected file
- InjectedFileContentBytes int `mapstructure:"injected_file_content_bytes"`
+ InjectedFileContentBytes int `json:"injected_file_content_bytes"`
// InjectedFilePathBytes is allowed bytes for each injected file path
- InjectedFilePathBytes int `mapstructure:"injected_file_path_bytes"`
+ InjectedFilePathBytes int `json:"injected_file_path_bytes"`
// InjectedFiles is injected files allowed for each project
- InjectedFiles int `mapstructure:"injected_files"`
+ InjectedFiles int `json:"injected_files"`
// KeyPairs is number of ssh keypairs
- KeyPairs int `mapstructure:"keypairs"`
+ KeyPairs int `json:"keypairs"`
// MetadataItems is number of metadata items allowed for each instance
- MetadataItems int `mapstructure:"metadata_items"`
+ MetadataItems int `json:"metadata_items"`
// Ram is megabytes allowed for each instance
- Ram int `mapstructure:"ram"`
+ Ram int `json:"ram"`
// SecurityGroupRules is rules allowed for each security group
- SecurityGroupRules int `mapstructure:"security_group_rules"`
+ SecurityGroupRules int `json:"security_group_rules"`
// SecurityGroups security groups allowed for each project
- SecurityGroups int `mapstructure:"security_groups"`
+ SecurityGroups int `json:"security_groups"`
// Cores is number of instance cores allowed for each project
- Cores int `mapstructure:"cores"`
+ Cores int `json:"cores"`
// Instances is number of instances allowed for each project
- Instances int `mapstructure:"instances"`
+ Instances int `json:"instances"`
}
// QuotaSetPage stores a single, only page of QuotaSet results from a List call.
@@ -48,17 +47,12 @@
}
// ExtractQuotaSets interprets a page of results as a slice of QuotaSets.
-func ExtractQuotaSets(page pagination.Page) ([]QuotaSet, error) {
- var resp struct {
- QuotaSets []QuotaSet `mapstructure:"quotas"`
+func ExtractQuotaSets(r pagination.Page) ([]QuotaSet, error) {
+ var s struct {
+ QuotaSets []QuotaSet `json:"quotas"`
}
-
- err := mapstructure.Decode(page.(QuotaSetPage).Body, &resp)
- results := make([]QuotaSet, len(resp.QuotaSets))
- for i, q := range resp.QuotaSets {
- results[i] = q
- }
- return results, err
+ err := (r.(QuotaSetPage)).ExtractInto(&s)
+ return s.QuotaSets, err
}
type quotaResult struct {
@@ -67,16 +61,11 @@
// Extract is a method that attempts to interpret any QuotaSet resource response as a QuotaSet struct.
func (r quotaResult) Extract() (*QuotaSet, error) {
- if r.Err != nil {
- return nil, r.Err
+ var s struct {
+ QuotaSet *QuotaSet `json:"quota_set"`
}
-
- var res struct {
- QuotaSet *QuotaSet `json:"quota_set" mapstructure:"quota_set"`
- }
-
- err := mapstructure.Decode(r.Body, &res)
- return res.QuotaSet, err
+ err := r.ExtractInto(&s)
+ return s.QuotaSet, err
}
// GetResult is the response from a Get operation. Call its Extract method to interpret it
diff --git a/openstack/compute/v2/extensions/quotasets/testing/doc.go b/openstack/compute/v2/extensions/quotasets/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/quotasets/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/quotasets/fixtures.go b/openstack/compute/v2/extensions/quotasets/testing/fixtures.go
similarity index 84%
rename from openstack/compute/v2/extensions/quotasets/fixtures.go
rename to openstack/compute/v2/extensions/quotasets/testing/fixtures.go
index c1bb4ea..3fef872 100644
--- a/openstack/compute/v2/extensions/quotasets/fixtures.go
+++ b/openstack/compute/v2/extensions/quotasets/testing/fixtures.go
@@ -1,14 +1,13 @@
-// +build fixtures
-
-package quotasets
+package testing
import (
"fmt"
"net/http"
"testing"
- th "github.com/rackspace/gophercloud/testhelper"
- "github.com/rackspace/gophercloud/testhelper/client"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/quotasets"
+ th "github.com/gophercloud/gophercloud/testhelper"
+ "github.com/gophercloud/gophercloud/testhelper/client"
)
// GetOutput is a sample response to a Get call.
@@ -32,7 +31,7 @@
const FirstTenantID = "555544443333222211110000ffffeeee"
// FirstQuotaSet is the first result in ListOutput.
-var FirstQuotaSet = QuotaSet{
+var FirstQuotaSet = quotasets.QuotaSet{
FixedIps: 0,
FloatingIps: 0,
InjectedFileContentBytes: 10240,
diff --git a/openstack/compute/v2/extensions/quotasets/testing/requests_test.go b/openstack/compute/v2/extensions/quotasets/testing/requests_test.go
new file mode 100644
index 0000000..8fc1fd4
--- /dev/null
+++ b/openstack/compute/v2/extensions/quotasets/testing/requests_test.go
@@ -0,0 +1,18 @@
+package testing
+
+import (
+ "testing"
+
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/quotasets"
+ th "github.com/gophercloud/gophercloud/testhelper"
+ "github.com/gophercloud/gophercloud/testhelper/client"
+)
+
+func TestGet(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+ HandleGetSuccessfully(t)
+ actual, err := quotasets.Get(client.ServiceClient(), FirstTenantID).Extract()
+ th.AssertNoErr(t, err)
+ th.CheckDeepEquals(t, &FirstQuotaSet, actual)
+}
diff --git a/openstack/compute/v2/extensions/quotasets/urls.go b/openstack/compute/v2/extensions/quotasets/urls.go
index c04d941..e910376 100644
--- a/openstack/compute/v2/extensions/quotasets/urls.go
+++ b/openstack/compute/v2/extensions/quotasets/urls.go
@@ -1,6 +1,6 @@
package quotasets
-import "github.com/rackspace/gophercloud"
+import "github.com/gophercloud/gophercloud"
const resourcePath = "os-quota-sets"
diff --git a/openstack/compute/v2/extensions/quotasets/urls_test.go b/openstack/compute/v2/extensions/quotasets/urls_test.go
deleted file mode 100644
index f19a6ad..0000000
--- a/openstack/compute/v2/extensions/quotasets/urls_test.go
+++ /dev/null
@@ -1,16 +0,0 @@
-package quotasets
-
-import (
- "testing"
-
- th "github.com/rackspace/gophercloud/testhelper"
- "github.com/rackspace/gophercloud/testhelper/client"
-)
-
-func TestGetURL(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
- c := client.ServiceClient()
-
- th.CheckEquals(t, c.Endpoint+"os-quota-sets/wat", getURL(c, "wat"))
-}
diff --git a/openstack/compute/v2/extensions/schedulerhints/testing/doc.go b/openstack/compute/v2/extensions/schedulerhints/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/schedulerhints/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/schedulerhints/requests_test.go b/openstack/compute/v2/extensions/schedulerhints/testing/requests_test.go
similarity index 91%
rename from openstack/compute/v2/extensions/schedulerhints/requests_test.go
rename to openstack/compute/v2/extensions/schedulerhints/testing/requests_test.go
index 605b72b..cf21c4e 100644
--- a/openstack/compute/v2/extensions/schedulerhints/requests_test.go
+++ b/openstack/compute/v2/extensions/schedulerhints/testing/requests_test.go
@@ -1,8 +1,9 @@
-package schedulerhints
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/schedulerhints"
"github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
th "github.com/gophercloud/gophercloud/testhelper"
)
@@ -14,7 +15,7 @@
FlavorRef: "performance1-1",
}
- schedulerHints := SchedulerHints{
+ schedulerHints := schedulerhints.SchedulerHints{
Group: "101aed42-22d9-4a3e-9ba1-21103b0d1aba",
DifferentHost: []string{
"a0cf03a5-d921-4877-bb5c-86d26cf818e1",
@@ -29,7 +30,7 @@
BuildNearHostIP: "192.168.1.1/24",
}
- ext := CreateOptsExt{
+ ext := schedulerhints.CreateOptsExt{
CreateOptsBuilder: base,
SchedulerHints: schedulerHints,
}
@@ -72,7 +73,7 @@
FlavorRef: "performance1-1",
}
- schedulerHints := SchedulerHints{
+ schedulerHints := schedulerhints.SchedulerHints{
Group: "101aed42-22d9-4a3e-9ba1-21103b0d1aba",
DifferentHost: []string{
"a0cf03a5-d921-4877-bb5c-86d26cf818e1",
@@ -87,7 +88,7 @@
BuildNearHostIP: "192.168.1.1/24",
}
- ext := CreateOptsExt{
+ ext := schedulerhints.CreateOptsExt{
CreateOptsBuilder: base,
SchedulerHints: schedulerHints,
}
diff --git a/openstack/compute/v2/extensions/secgroups/testing/doc.go b/openstack/compute/v2/extensions/secgroups/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/secgroups/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/secgroups/fixtures.go b/openstack/compute/v2/extensions/secgroups/testing/fixtures.go
similarity index 99%
rename from openstack/compute/v2/extensions/secgroups/fixtures.go
rename to openstack/compute/v2/extensions/secgroups/testing/fixtures.go
index e4ca587..8a83ca8 100644
--- a/openstack/compute/v2/extensions/secgroups/fixtures.go
+++ b/openstack/compute/v2/extensions/secgroups/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package secgroups
+package testing
import (
"fmt"
diff --git a/openstack/compute/v2/extensions/secgroups/requests_test.go b/openstack/compute/v2/extensions/secgroups/testing/requests_test.go
similarity index 65%
rename from openstack/compute/v2/extensions/secgroups/requests_test.go
rename to openstack/compute/v2/extensions/secgroups/testing/requests_test.go
index bdbedcd..b7ffa20 100644
--- a/openstack/compute/v2/extensions/secgroups/requests_test.go
+++ b/openstack/compute/v2/extensions/secgroups/testing/requests_test.go
@@ -1,8 +1,9 @@
-package secgroups
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/secgroups"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -22,20 +23,20 @@
count := 0
- err := List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := secgroups.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractSecurityGroups(page)
+ actual, err := secgroups.ExtractSecurityGroups(page)
if err != nil {
t.Errorf("Failed to extract users: %v", err)
return false, err
}
- expected := []SecurityGroup{
- SecurityGroup{
+ expected := []secgroups.SecurityGroup{
+ {
ID: groupID,
Description: "default",
Name: "default",
- Rules: []Rule{},
+ Rules: []secgroups.Rule{},
TenantID: "openstack",
},
}
@@ -57,20 +58,20 @@
count := 0
- err := ListByServer(client.ServiceClient(), serverID).EachPage(func(page pagination.Page) (bool, error) {
+ err := secgroups.ListByServer(client.ServiceClient(), serverID).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractSecurityGroups(page)
+ actual, err := secgroups.ExtractSecurityGroups(page)
if err != nil {
t.Errorf("Failed to extract users: %v", err)
return false, err
}
- expected := []SecurityGroup{
- SecurityGroup{
+ expected := []secgroups.SecurityGroup{
+ {
ID: groupID,
Description: "default",
Name: "default",
- Rules: []Rule{},
+ Rules: []secgroups.Rule{},
TenantID: "openstack",
},
}
@@ -90,20 +91,20 @@
mockCreateGroupResponse(t)
- opts := CreateOpts{
+ opts := secgroups.CreateOpts{
Name: "test",
Description: "something",
}
- group, err := Create(client.ServiceClient(), opts).Extract()
+ group, err := secgroups.Create(client.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
- expected := &SecurityGroup{
+ expected := &secgroups.SecurityGroup{
ID: groupID,
Name: "test",
Description: "something",
TenantID: "openstack",
- Rules: []Rule{},
+ Rules: []secgroups.Rule{},
}
th.AssertDeepEquals(t, expected, group)
}
@@ -114,20 +115,20 @@
mockUpdateGroupResponse(t, groupID)
- opts := UpdateOpts{
+ opts := secgroups.UpdateOpts{
Name: "new_name",
Description: "new_desc",
}
- group, err := Update(client.ServiceClient(), groupID, opts).Extract()
+ group, err := secgroups.Update(client.ServiceClient(), groupID, opts).Extract()
th.AssertNoErr(t, err)
- expected := &SecurityGroup{
+ expected := &secgroups.SecurityGroup{
ID: groupID,
Name: "new_name",
Description: "something",
TenantID: "openstack",
- Rules: []Rule{},
+ Rules: []secgroups.Rule{},
}
th.AssertDeepEquals(t, expected, group)
}
@@ -138,21 +139,21 @@
mockGetGroupsResponse(t, groupID)
- group, err := Get(client.ServiceClient(), groupID).Extract()
+ group, err := secgroups.Get(client.ServiceClient(), groupID).Extract()
th.AssertNoErr(t, err)
- expected := &SecurityGroup{
+ expected := &secgroups.SecurityGroup{
ID: groupID,
Description: "default",
Name: "default",
TenantID: "openstack",
- Rules: []Rule{
- Rule{
+ Rules: []secgroups.Rule{
+ {
FromPort: 80,
ToPort: 85,
IPProtocol: "TCP",
- IPRange: IPRange{CIDR: "0.0.0.0"},
- Group: Group{TenantID: "openstack", Name: "default"},
+ IPRange: secgroups.IPRange{CIDR: "0.0.0.0"},
+ Group: secgroups.Group{TenantID: "openstack", Name: "default"},
ParentGroupID: groupID,
ID: ruleID,
},
@@ -170,10 +171,10 @@
mockGetNumericIDGroupResponse(t, numericGroupID)
- group, err := Get(client.ServiceClient(), "12345").Extract()
+ group, err := secgroups.Get(client.ServiceClient(), "12345").Extract()
th.AssertNoErr(t, err)
- expected := &SecurityGroup{ID: "12345"}
+ expected := &secgroups.SecurityGroup{ID: "12345"}
th.AssertDeepEquals(t, expected, group)
}
@@ -183,7 +184,7 @@
mockDeleteGroupResponse(t, groupID)
- err := Delete(client.ServiceClient(), groupID).ExtractErr()
+ err := secgroups.Delete(client.ServiceClient(), groupID).ExtractErr()
th.AssertNoErr(t, err)
}
@@ -193,7 +194,7 @@
mockAddRuleResponse(t)
- opts := CreateRuleOpts{
+ opts := secgroups.CreateRuleOpts{
ParentGroupID: groupID,
FromPort: 22,
ToPort: 22,
@@ -201,16 +202,16 @@
CIDR: "0.0.0.0/0",
}
- rule, err := CreateRule(client.ServiceClient(), opts).Extract()
+ rule, err := secgroups.CreateRule(client.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
- expected := &Rule{
+ expected := &secgroups.Rule{
FromPort: 22,
ToPort: 22,
- Group: Group{},
+ Group: secgroups.Group{},
IPProtocol: "TCP",
ParentGroupID: groupID,
- IPRange: IPRange{CIDR: "0.0.0.0/0"},
+ IPRange: secgroups.IPRange{CIDR: "0.0.0.0/0"},
ID: ruleID,
}
@@ -223,7 +224,7 @@
mockAddRuleResponseICMPZero(t)
- opts := CreateRuleOpts{
+ opts := secgroups.CreateRuleOpts{
ParentGroupID: groupID,
FromPort: 0,
ToPort: 0,
@@ -231,16 +232,16 @@
CIDR: "0.0.0.0/0",
}
- rule, err := CreateRule(client.ServiceClient(), opts).Extract()
+ rule, err := secgroups.CreateRule(client.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
- expected := &Rule{
+ expected := &secgroups.Rule{
FromPort: 0,
ToPort: 0,
- Group: Group{},
+ Group: secgroups.Group{},
IPProtocol: "ICMP",
ParentGroupID: groupID,
- IPRange: IPRange{CIDR: "0.0.0.0/0"},
+ IPRange: secgroups.IPRange{CIDR: "0.0.0.0/0"},
ID: ruleID,
}
@@ -253,7 +254,7 @@
mockDeleteRuleResponse(t, ruleID)
- err := DeleteRule(client.ServiceClient(), ruleID).ExtractErr()
+ err := secgroups.DeleteRule(client.ServiceClient(), ruleID).ExtractErr()
th.AssertNoErr(t, err)
}
@@ -263,7 +264,7 @@
mockAddServerToGroupResponse(t, serverID)
- err := AddServer(client.ServiceClient(), serverID, "test").ExtractErr()
+ err := secgroups.AddServer(client.ServiceClient(), serverID, "test").ExtractErr()
th.AssertNoErr(t, err)
}
@@ -273,6 +274,6 @@
mockRemoveServerFromGroupResponse(t, serverID)
- err := RemoveServer(client.ServiceClient(), serverID, "test").ExtractErr()
+ err := secgroups.RemoveServer(client.ServiceClient(), serverID, "test").ExtractErr()
th.AssertNoErr(t, err)
}
diff --git a/openstack/compute/v2/extensions/servergroups/testing/doc.go b/openstack/compute/v2/extensions/servergroups/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/servergroups/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/servergroups/fixtures.go b/openstack/compute/v2/extensions/servergroups/testing/fixtures.go
similarity index 91%
rename from openstack/compute/v2/extensions/servergroups/fixtures.go
rename to openstack/compute/v2/extensions/servergroups/testing/fixtures.go
index 003e9aa..b53757a 100644
--- a/openstack/compute/v2/extensions/servergroups/fixtures.go
+++ b/openstack/compute/v2/extensions/servergroups/testing/fixtures.go
@@ -1,12 +1,11 @@
-// +build fixtures
-
-package servergroups
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/servergroups"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -68,7 +67,7 @@
`
// FirstServerGroup is the first result in ListOutput.
-var FirstServerGroup = ServerGroup{
+var FirstServerGroup = servergroups.ServerGroup{
ID: "616fb98f-46ca-475e-917e-2563e5a8cd19",
Name: "test",
Policies: []string{
@@ -79,7 +78,7 @@
}
// SecondServerGroup is the second result in ListOutput.
-var SecondServerGroup = ServerGroup{
+var SecondServerGroup = servergroups.ServerGroup{
ID: "4d8c3732-a248-40ed-bebc-539a6ffd25c0",
Name: "test2",
Policies: []string{
@@ -91,10 +90,10 @@
// ExpectedServerGroupSlice is the slice of results that should be parsed
// from ListOutput, in the expected order.
-var ExpectedServerGroupSlice = []ServerGroup{FirstServerGroup, SecondServerGroup}
+var ExpectedServerGroupSlice = []servergroups.ServerGroup{FirstServerGroup, SecondServerGroup}
// CreatedServerGroup is the parsed result from CreateOutput.
-var CreatedServerGroup = ServerGroup{
+var CreatedServerGroup = servergroups.ServerGroup{
ID: "616fb98f-46ca-475e-917e-2563e5a8cd19",
Name: "test",
Policies: []string{
diff --git a/openstack/compute/v2/extensions/servergroups/requests_test.go b/openstack/compute/v2/extensions/servergroups/testing/requests_test.go
similarity index 64%
rename from openstack/compute/v2/extensions/servergroups/requests_test.go
rename to openstack/compute/v2/extensions/servergroups/testing/requests_test.go
index 458526a..d86fa56 100644
--- a/openstack/compute/v2/extensions/servergroups/requests_test.go
+++ b/openstack/compute/v2/extensions/servergroups/testing/requests_test.go
@@ -1,8 +1,9 @@
-package servergroups
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/servergroups"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -14,9 +15,9 @@
HandleListSuccessfully(t)
count := 0
- err := List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := servergroups.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractServerGroups(page)
+ actual, err := servergroups.ExtractServerGroups(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedServerGroupSlice, actual)
@@ -31,7 +32,7 @@
defer th.TeardownHTTP()
HandleCreateSuccessfully(t)
- actual, err := Create(client.ServiceClient(), CreateOpts{
+ actual, err := servergroups.Create(client.ServiceClient(), servergroups.CreateOpts{
Name: "test",
Policies: []string{"anti-affinity"},
}).Extract()
@@ -44,7 +45,7 @@
defer th.TeardownHTTP()
HandleGetSuccessfully(t)
- actual, err := Get(client.ServiceClient(), "4d8c3732-a248-40ed-bebc-539a6ffd25c0").Extract()
+ actual, err := servergroups.Get(client.ServiceClient(), "4d8c3732-a248-40ed-bebc-539a6ffd25c0").Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, &FirstServerGroup, actual)
}
@@ -54,6 +55,6 @@
defer th.TeardownHTTP()
HandleDeleteSuccessfully(t)
- err := Delete(client.ServiceClient(), "616fb98f-46ca-475e-917e-2563e5a8cd19").ExtractErr()
+ err := servergroups.Delete(client.ServiceClient(), "616fb98f-46ca-475e-917e-2563e5a8cd19").ExtractErr()
th.AssertNoErr(t, err)
}
diff --git a/openstack/compute/v2/extensions/startstop/testing/doc.go b/openstack/compute/v2/extensions/startstop/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/startstop/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/startstop/fixtures.go b/openstack/compute/v2/extensions/startstop/testing/fixtures.go
similarity index 95%
rename from openstack/compute/v2/extensions/startstop/fixtures.go
rename to openstack/compute/v2/extensions/startstop/testing/fixtures.go
index c5b4290..1086b0e 100644
--- a/openstack/compute/v2/extensions/startstop/fixtures.go
+++ b/openstack/compute/v2/extensions/startstop/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package startstop
+package testing
import (
"net/http"
diff --git a/openstack/compute/v2/extensions/startstop/requests_test.go b/openstack/compute/v2/extensions/startstop/testing/requests_test.go
similarity index 65%
rename from openstack/compute/v2/extensions/startstop/requests_test.go
rename to openstack/compute/v2/extensions/startstop/testing/requests_test.go
index c7e26ae..be45bf5 100644
--- a/openstack/compute/v2/extensions/startstop/requests_test.go
+++ b/openstack/compute/v2/extensions/startstop/testing/requests_test.go
@@ -1,8 +1,9 @@
-package startstop
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/startstop"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -15,7 +16,7 @@
mockStartServerResponse(t, serverID)
- err := Start(client.ServiceClient(), serverID).ExtractErr()
+ err := startstop.Start(client.ServiceClient(), serverID).ExtractErr()
th.AssertNoErr(t, err)
}
@@ -25,6 +26,6 @@
mockStopServerResponse(t, serverID)
- err := Stop(client.ServiceClient(), serverID).ExtractErr()
+ err := startstop.Stop(client.ServiceClient(), serverID).ExtractErr()
th.AssertNoErr(t, err)
}
diff --git a/openstack/compute/v2/extensions/tenantnetworks/testing/doc.go b/openstack/compute/v2/extensions/tenantnetworks/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/tenantnetworks/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/tenantnetworks/fixtures.go b/openstack/compute/v2/extensions/tenantnetworks/testing/fixtures.go
similarity index 87%
rename from openstack/compute/v2/extensions/tenantnetworks/fixtures.go
rename to openstack/compute/v2/extensions/tenantnetworks/testing/fixtures.go
index 52fa013..ae679b4 100644
--- a/openstack/compute/v2/extensions/tenantnetworks/fixtures.go
+++ b/openstack/compute/v2/extensions/tenantnetworks/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package tenantnetworks
+package testing
import (
"fmt"
@@ -8,6 +6,7 @@
"testing"
"time"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/tenantnetworks"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -43,14 +42,14 @@
// FirstNetwork is the first result in ListOutput.
var nilTime time.Time
-var FirstNetwork = Network{
+var FirstNetwork = tenantnetworks.Network{
CIDR: "10.0.0.0/29",
ID: "20c8acc0-f747-4d71-a389-46d078ebf047",
Name: "mynet_0",
}
// SecondNetwork is the second result in ListOutput.
-var SecondNetwork = Network{
+var SecondNetwork = tenantnetworks.Network{
CIDR: "10.0.0.10/29",
ID: "20c8acc0-f747-4d71-a389-46d078ebf000",
Name: "mynet_1",
@@ -58,7 +57,7 @@
// ExpectedNetworkSlice is the slice of results that should be parsed
// from ListOutput, in the expected order.
-var ExpectedNetworkSlice = []Network{FirstNetwork, SecondNetwork}
+var ExpectedNetworkSlice = []tenantnetworks.Network{FirstNetwork, SecondNetwork}
// HandleListSuccessfully configures the test server to respond to a List request.
func HandleListSuccessfully(t *testing.T) {
diff --git a/openstack/compute/v2/extensions/tenantnetworks/requests_test.go b/openstack/compute/v2/extensions/tenantnetworks/testing/requests_test.go
similarity index 63%
copy from openstack/compute/v2/extensions/tenantnetworks/requests_test.go
copy to openstack/compute/v2/extensions/tenantnetworks/testing/requests_test.go
index e8726c4..703c846 100644
--- a/openstack/compute/v2/extensions/tenantnetworks/requests_test.go
+++ b/openstack/compute/v2/extensions/tenantnetworks/testing/requests_test.go
@@ -1,8 +1,9 @@
-package tenantnetworks
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/tenantnetworks"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -14,9 +15,9 @@
HandleListSuccessfully(t)
count := 0
- err := List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := tenantnetworks.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractNetworks(page)
+ actual, err := tenantnetworks.ExtractNetworks(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedNetworkSlice, actual)
@@ -31,7 +32,7 @@
defer th.TeardownHTTP()
HandleGetSuccessfully(t)
- actual, err := Get(client.ServiceClient(), "20c8acc0-f747-4d71-a389-46d078ebf000").Extract()
+ actual, err := tenantnetworks.Get(client.ServiceClient(), "20c8acc0-f747-4d71-a389-46d078ebf000").Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, &SecondNetwork, actual)
}
diff --git a/openstack/compute/v2/extensions/testing/delegate_test.go b/openstack/compute/v2/extensions/testing/delegate_test.go
new file mode 100644
index 0000000..822093f
--- /dev/null
+++ b/openstack/compute/v2/extensions/testing/delegate_test.go
@@ -0,0 +1,56 @@
+package testing
+
+import (
+ "testing"
+
+ common "github.com/gophercloud/gophercloud/openstack/common/extensions"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions"
+ "github.com/gophercloud/gophercloud/pagination"
+ th "github.com/gophercloud/gophercloud/testhelper"
+ "github.com/gophercloud/gophercloud/testhelper/client"
+)
+
+func TestList(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+
+ HandleListExtensionsSuccessfully(t)
+
+ count := 0
+ extensions.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ count++
+ actual, err := extensions.ExtractExtensions(page)
+ th.AssertNoErr(t, err)
+
+ expected := []common.Extension{
+ common.Extension{
+ Updated: "2013-01-20T00:00:00-00:00",
+ Name: "Neutron Service Type Management",
+ Links: []interface{}{},
+ Namespace: "http://docs.openstack.org/ext/neutron/service-type/api/v1.0",
+ Alias: "service-type",
+ Description: "API for retrieving service providers for Neutron advanced services",
+ },
+ }
+ th.AssertDeepEquals(t, expected, actual)
+
+ return true, nil
+ })
+ th.CheckEquals(t, 1, count)
+}
+
+func TestGet(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+
+ HandleGetExtensionsSuccessfully(t)
+
+ ext, err := extensions.Get(client.ServiceClient(), "agent").Extract()
+ th.AssertNoErr(t, err)
+
+ th.AssertEquals(t, ext.Updated, "2013-02-03T10:00:00-00:00")
+ th.AssertEquals(t, ext.Name, "agent")
+ th.AssertEquals(t, ext.Namespace, "http://docs.openstack.org/ext/agent/api/v2.0")
+ th.AssertEquals(t, ext.Alias, "agent")
+ th.AssertEquals(t, ext.Description, "The agent management extension.")
+}
diff --git a/openstack/compute/v2/extensions/testing/doc.go b/openstack/compute/v2/extensions/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/extensions/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/extensions/testing/fixtures.go b/openstack/compute/v2/extensions/testing/fixtures.go
new file mode 100644
index 0000000..2a3fb69
--- /dev/null
+++ b/openstack/compute/v2/extensions/testing/fixtures.go
@@ -0,0 +1,57 @@
+package testing
+
+import (
+ "fmt"
+ "net/http"
+ "testing"
+
+ th "github.com/gophercloud/gophercloud/testhelper"
+ "github.com/gophercloud/gophercloud/testhelper/client"
+)
+
+func HandleListExtensionsSuccessfully(t *testing.T) {
+ th.Mux.HandleFunc("/extensions", func(w http.ResponseWriter, r *http.Request) {
+ th.TestMethod(t, r, "GET")
+ th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
+
+ w.Header().Add("Content-Type", "application/json")
+
+ fmt.Fprintf(w, `
+{
+ "extensions": [
+ {
+ "updated": "2013-01-20T00:00:00-00:00",
+ "name": "Neutron Service Type Management",
+ "links": [],
+ "namespace": "http://docs.openstack.org/ext/neutron/service-type/api/v1.0",
+ "alias": "service-type",
+ "description": "API for retrieving service providers for Neutron advanced services"
+ }
+ ]
+}
+ `)
+ })
+}
+
+func HandleGetExtensionsSuccessfully(t *testing.T) {
+ th.Mux.HandleFunc("/extensions/agent", func(w http.ResponseWriter, r *http.Request) {
+ th.TestMethod(t, r, "GET")
+ th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
+
+ w.Header().Add("Content-Type", "application/json")
+ w.WriteHeader(http.StatusOK)
+
+ fmt.Fprintf(w, `
+{
+ "extension": {
+ "updated": "2013-02-03T10:00:00-00:00",
+ "name": "agent",
+ "links": [],
+ "namespace": "http://docs.openstack.org/ext/agent/api/v2.0",
+ "alias": "agent",
+ "description": "The agent management extension."
+ }
+}
+ `)
+ })
+}
diff --git a/openstack/compute/v2/extensions/volumeattach/testing/fixtures.go b/openstack/compute/v2/extensions/volumeattach/testing/fixtures.go
index f662852..4f99610 100644
--- a/openstack/compute/v2/extensions/volumeattach/testing/fixtures.go
+++ b/openstack/compute/v2/extensions/volumeattach/testing/fixtures.go
@@ -1,5 +1,3 @@
-// +build fixtures
-
package testing
import (
diff --git a/openstack/compute/v2/extensions/volumeattach/requests_test.go b/openstack/compute/v2/extensions/volumeattach/testing/requests_test.go
similarity index 68%
rename from openstack/compute/v2/extensions/volumeattach/requests_test.go
rename to openstack/compute/v2/extensions/volumeattach/testing/requests_test.go
index 3257f39..9486f9b 100644
--- a/openstack/compute/v2/extensions/volumeattach/requests_test.go
+++ b/openstack/compute/v2/extensions/volumeattach/testing/requests_test.go
@@ -1,16 +1,16 @@
-package volumeattach
+package testing
import (
"testing"
- fixtures "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
// FirstVolumeAttachment is the first result in ListOutput.
-var FirstVolumeAttachment = VolumeAttachment{
+var FirstVolumeAttachment = volumeattach.VolumeAttachment{
Device: "/dev/vdd",
ID: "a26887c6-c47b-4654-abb5-dfadf7d3f803",
ServerID: "4d8c3732-a248-40ed-bebc-539a6ffd25c0",
@@ -18,7 +18,7 @@
}
// SecondVolumeAttachment is the first result in ListOutput.
-var SecondVolumeAttachment = VolumeAttachment{
+var SecondVolumeAttachment = volumeattach.VolumeAttachment{
Device: "/dev/vdc",
ID: "a26887c6-c47b-4654-abb5-dfadf7d3f804",
ServerID: "4d8c3732-a248-40ed-bebc-539a6ffd25c0",
@@ -27,10 +27,10 @@
// ExpectedVolumeAttachmentSlide is the slice of results that should be parsed
// from ListOutput, in the expected order.
-var ExpectedVolumeAttachmentSlice = []VolumeAttachment{FirstVolumeAttachment, SecondVolumeAttachment}
+var ExpectedVolumeAttachmentSlice = []volumeattach.VolumeAttachment{FirstVolumeAttachment, SecondVolumeAttachment}
//CreatedVolumeAttachment is the parsed result from CreatedOutput.
-var CreatedVolumeAttachment = VolumeAttachment{
+var CreatedVolumeAttachment = volumeattach.VolumeAttachment{
Device: "/dev/vdc",
ID: "a26887c6-c47b-4654-abb5-dfadf7d3f804",
ServerID: "4d8c3732-a248-40ed-bebc-539a6ffd25c0",
@@ -40,13 +40,15 @@
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
- fixtures.HandleListSuccessfully(t)
+
+ HandleListSuccessfully(t)
+
serverID := "4d8c3732-a248-40ed-bebc-539a6ffd25c0"
count := 0
- err := List(client.ServiceClient(), serverID).EachPage(func(page pagination.Page) (bool, error) {
+ err := volumeattach.List(client.ServiceClient(), serverID).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractVolumeAttachments(page)
+ actual, err := volumeattach.ExtractVolumeAttachments(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedVolumeAttachmentSlice, actual)
@@ -59,10 +61,12 @@
func TestCreate(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
- fixtures.HandleCreateSuccessfully(t)
+
+ HandleCreateSuccessfully(t)
+
serverID := "4d8c3732-a248-40ed-bebc-539a6ffd25c0"
- actual, err := Create(client.ServiceClient(), serverID, CreateOpts{
+ actual, err := volumeattach.Create(client.ServiceClient(), serverID, volumeattach.CreateOpts{
Device: "/dev/vdc",
VolumeID: "a26887c6-c47b-4654-abb5-dfadf7d3f804",
}).Extract()
@@ -73,11 +77,13 @@
func TestGet(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
- fixtures.HandleGetSuccessfully(t)
+
+ HandleGetSuccessfully(t)
+
aID := "a26887c6-c47b-4654-abb5-dfadf7d3f804"
serverID := "4d8c3732-a248-40ed-bebc-539a6ffd25c0"
- actual, err := Get(client.ServiceClient(), serverID, aID).Extract()
+ actual, err := volumeattach.Get(client.ServiceClient(), serverID, aID).Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, &SecondVolumeAttachment, actual)
}
@@ -85,10 +91,12 @@
func TestDelete(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
- fixtures.HandleDeleteSuccessfully(t)
+
+ HandleDeleteSuccessfully(t)
+
aID := "a26887c6-c47b-4654-abb5-dfadf7d3f804"
serverID := "4d8c3732-a248-40ed-bebc-539a6ffd25c0"
- err := Delete(client.ServiceClient(), serverID, aID).ExtractErr()
+ err := volumeattach.Delete(client.ServiceClient(), serverID, aID).ExtractErr()
th.AssertNoErr(t, err)
}
diff --git a/openstack/compute/v2/flavors/testing/doc.go b/openstack/compute/v2/flavors/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/flavors/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/flavors/requests_test.go b/openstack/compute/v2/flavors/testing/requests_test.go
similarity index 82%
rename from openstack/compute/v2/flavors/requests_test.go
rename to openstack/compute/v2/flavors/testing/requests_test.go
index 311dbf0..e86512a 100644
--- a/openstack/compute/v2/flavors/requests_test.go
+++ b/openstack/compute/v2/flavors/testing/requests_test.go
@@ -1,4 +1,4 @@
-package flavors
+package testing
import (
"fmt"
@@ -6,6 +6,7 @@
"reflect"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/flavors"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -60,17 +61,17 @@
})
pages := 0
- err := ListDetail(fake.ServiceClient(), nil).EachPage(func(page pagination.Page) (bool, error) {
+ err := flavors.ListDetail(fake.ServiceClient(), nil).EachPage(func(page pagination.Page) (bool, error) {
pages++
- actual, err := ExtractFlavors(page)
+ actual, err := flavors.ExtractFlavors(page)
if err != nil {
return false, err
}
- expected := []Flavor{
- Flavor{ID: "1", Name: "m1.tiny", Disk: 1, RAM: 512, VCPUs: 1},
- Flavor{ID: "2", Name: "m2.small", Disk: 10, RAM: 1024, VCPUs: 2},
+ expected := []flavors.Flavor{
+ {ID: "1", Name: "m1.tiny", Disk: 1, RAM: 512, VCPUs: 1},
+ {ID: "2", Name: "m2.small", Disk: 10, RAM: 1024, VCPUs: 2},
}
if !reflect.DeepEqual(expected, actual) {
@@ -110,12 +111,12 @@
`)
})
- actual, err := Get(fake.ServiceClient(), "12345").Extract()
+ actual, err := flavors.Get(fake.ServiceClient(), "12345").Extract()
if err != nil {
t.Fatalf("Unable to get flavor: %v", err)
}
- expected := &Flavor{
+ expected := &flavors.Flavor{
ID: "1",
Name: "m1.tiny",
Disk: 1,
diff --git a/openstack/compute/v2/images/testing/doc.go b/openstack/compute/v2/images/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/images/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/images/requests_test.go b/openstack/compute/v2/images/testing/requests_test.go
similarity index 89%
rename from openstack/compute/v2/images/requests_test.go
rename to openstack/compute/v2/images/testing/requests_test.go
index 4b94ba1..a13b086 100644
--- a/openstack/compute/v2/images/requests_test.go
+++ b/openstack/compute/v2/images/testing/requests_test.go
@@ -1,4 +1,4 @@
-package images
+package testing
import (
"encoding/json"
@@ -7,6 +7,7 @@
"reflect"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/images"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -63,17 +64,17 @@
})
pages := 0
- options := &ListOpts{Limit: 2}
- err := ListDetail(fake.ServiceClient(), options).EachPage(func(page pagination.Page) (bool, error) {
+ options := &images.ListOpts{Limit: 2}
+ err := images.ListDetail(fake.ServiceClient(), options).EachPage(func(page pagination.Page) (bool, error) {
pages++
- actual, err := ExtractImages(page)
+ actual, err := images.ExtractImages(page)
if err != nil {
return false, err
}
- expected := []Image{
- Image{
+ expected := []images.Image{
+ {
ID: "f3e4a95d-1f4f-4989-97ce-f3a1fb8c04d7",
Name: "F17-x86_64-cfntools",
Created: "2014-09-23T12:54:52Z",
@@ -83,7 +84,7 @@
Progress: 100,
Status: "ACTIVE",
},
- Image{
+ {
ID: "f90f6034-2570-4974-8351-6b49732ef2eb",
Name: "cirros-0.3.2-x86_64-disk",
Created: "2014-09-23T12:51:42Z",
@@ -137,12 +138,12 @@
`)
})
- actual, err := Get(fake.ServiceClient(), "12345678").Extract()
+ actual, err := images.Get(fake.ServiceClient(), "12345678").Extract()
if err != nil {
t.Fatalf("Unexpected error from Get: %v", err)
}
- expected := &Image{
+ expected := &images.Image{
Status: "ACTIVE",
Updated: "2014-09-23T12:54:56Z",
ID: "f3e4a95d-1f4f-4989-97ce-f3a1fb8c04d7",
@@ -159,7 +160,7 @@
}
func TestNextPageURL(t *testing.T) {
- var page ImagePage
+ var page images.ImagePage
var body map[string]interface{}
bodyString := []byte(`{"images":{"links":[{"href":"http://192.154.23.87/12345/images/image3","rel":"bookmark"}]}, "images_links":[{"href":"http://192.154.23.87/12345/images/image4","rel":"next"}]}`)
err := json.Unmarshal(bodyString, &body)
@@ -186,6 +187,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "12345678")
+ res := images.Delete(fake.ServiceClient(), "12345678")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/compute/v2/servers/testing/doc.go b/openstack/compute/v2/servers/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/compute/v2/servers/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/compute/v2/servers/fixtures.go b/openstack/compute/v2/servers/testing/fixtures.go
similarity index 98%
rename from openstack/compute/v2/servers/fixtures.go
rename to openstack/compute/v2/servers/testing/fixtures.go
index 8b2c94d..b4fb7ff 100644
--- a/openstack/compute/v2/servers/fixtures.go
+++ b/openstack/compute/v2/servers/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package servers
+package testing
import (
"fmt"
@@ -8,6 +6,7 @@
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -244,7 +243,7 @@
var (
// ServerHerp is a Server struct that should correspond to the first result in ServerListBody.
- ServerHerp = Server{
+ ServerHerp = servers.Server{
Status: "ACTIVE",
Updated: "2014-09-25T13:10:10Z",
HostID: "29d3c8c896a45aa4c34e52247875d7fefc3d94bbcc9f622b5d204362",
@@ -300,7 +299,7 @@
}
// ServerDerp is a Server struct that should correspond to the second server in ServerListBody.
- ServerDerp = Server{
+ ServerDerp = servers.Server{
Status: "ACTIVE",
Updated: "2014-09-25T13:04:49Z",
HostID: "29d3c8c896a45aa4c34e52247875d7fefc3d94bbcc9f622b5d204362",
@@ -357,7 +356,7 @@
)
type CreateOptsWithCustomField struct {
- CreateOpts
+ servers.CreateOpts
Foo string `json:"foo,omitempty"`
}
@@ -618,19 +617,19 @@
}
// ListAddressesExpected represents an expected repsonse from a ListAddresses request.
-var ListAddressesExpected = map[string][]Address{
- "public": []Address{
- Address{
+var ListAddressesExpected = map[string][]servers.Address{
+ "public": []servers.Address{
+ {
Version: 4,
Address: "80.56.136.39",
},
- Address{
+ {
Version: 6,
Address: "2001:4800:790e:510:be76:4eff:fe04:82a8",
},
},
- "private": []Address{
- Address{
+ "private": []servers.Address{
+ {
Version: 4,
Address: "10.880.3.154",
},
@@ -668,12 +667,12 @@
}
// ListNetworkAddressesExpected represents an expected repsonse from a ListAddressesByNetwork request.
-var ListNetworkAddressesExpected = []Address{
- Address{
+var ListNetworkAddressesExpected = []servers.Address{
+ {
Version: 4,
Address: "50.56.176.35",
},
- Address{
+ {
Version: 6,
Address: "2001:4800:780e:510:be76:4eff:fe04:84a8",
},
diff --git a/openstack/compute/v2/servers/requests_test.go b/openstack/compute/v2/servers/testing/requests_test.go
similarity index 74%
rename from openstack/compute/v2/servers/requests_test.go
rename to openstack/compute/v2/servers/testing/requests_test.go
index 9a5d701..7db6b93 100644
--- a/openstack/compute/v2/servers/requests_test.go
+++ b/openstack/compute/v2/servers/testing/requests_test.go
@@ -1,4 +1,4 @@
-package servers
+package testing
import (
"encoding/base64"
@@ -6,6 +6,7 @@
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -17,10 +18,10 @@
HandleServerListSuccessfully(t)
pages := 0
- err := List(client.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ err := servers.List(client.ServiceClient(), servers.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
pages++
- actual, err := ExtractServers(page)
+ actual, err := servers.ExtractServers(page)
if err != nil {
return false, err
}
@@ -46,9 +47,9 @@
defer th.TeardownHTTP()
HandleServerListSuccessfully(t)
- allPages, err := List(client.ServiceClient(), ListOpts{}).AllPages()
+ allPages, err := servers.List(client.ServiceClient(), servers.ListOpts{}).AllPages()
th.AssertNoErr(t, err)
- actual, err := ExtractServers(allPages)
+ actual, err := servers.ExtractServers(allPages)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ServerHerp, actual[0])
th.CheckDeepEquals(t, ServerDerp, actual[1])
@@ -59,7 +60,7 @@
defer th.TeardownHTTP()
HandleServerCreationSuccessfully(t, SingleServerBody)
- actual, err := Create(client.ServiceClient(), CreateOpts{
+ actual, err := servers.Create(client.ServiceClient(), servers.CreateOpts{
Name: "derp",
ImageRef: "f90f6034-2570-4974-8351-6b49732ef2eb",
FlavorRef: "1",
@@ -74,8 +75,8 @@
defer th.TeardownHTTP()
HandleServerCreationWithCustomFieldSuccessfully(t, SingleServerBody)
- actual, err := Create(client.ServiceClient(), CreateOptsWithCustomField{
- CreateOpts: CreateOpts{
+ actual, err := servers.Create(client.ServiceClient(), CreateOptsWithCustomField{
+ CreateOpts: servers.CreateOpts{
Name: "derp",
ImageRef: "f90f6034-2570-4974-8351-6b49732ef2eb",
FlavorRef: "1",
@@ -92,7 +93,7 @@
defer th.TeardownHTTP()
HandleServerDeletionSuccessfully(t)
- res := Delete(client.ServiceClient(), "asdfasdfasdf")
+ res := servers.Delete(client.ServiceClient(), "asdfasdfasdf")
th.AssertNoErr(t, res.Err)
}
@@ -101,7 +102,7 @@
defer th.TeardownHTTP()
HandleServerForceDeletionSuccessfully(t)
- res := ForceDelete(client.ServiceClient(), "asdfasdfasdf")
+ res := servers.ForceDelete(client.ServiceClient(), "asdfasdfasdf")
th.AssertNoErr(t, res.Err)
}
@@ -111,7 +112,7 @@
HandleServerGetSuccessfully(t)
client := client.ServiceClient()
- actual, err := Get(client, "1234asdf").Extract()
+ actual, err := servers.Get(client, "1234asdf").Extract()
if err != nil {
t.Fatalf("Unexpected Get error: %v", err)
}
@@ -125,7 +126,7 @@
HandleServerUpdateSuccessfully(t)
client := client.ServiceClient()
- actual, err := Update(client, "1234asdf", UpdateOpts{Name: "new-name"}).Extract()
+ actual, err := servers.Update(client, "1234asdf", servers.UpdateOpts{Name: "new-name"}).Extract()
if err != nil {
t.Fatalf("Unexpected Update error: %v", err)
}
@@ -138,7 +139,7 @@
defer th.TeardownHTTP()
HandleAdminPasswordChangeSuccessfully(t)
- res := ChangeAdminPassword(client.ServiceClient(), "1234asdf", "new-password")
+ res := servers.ChangeAdminPassword(client.ServiceClient(), "1234asdf", "new-password")
th.AssertNoErr(t, res.Err)
}
@@ -147,7 +148,7 @@
defer th.TeardownHTTP()
HandlePasswordGetSuccessfully(t)
- res := GetPassword(client.ServiceClient(), "1234asdf")
+ res := servers.GetPassword(client.ServiceClient(), "1234asdf")
th.AssertNoErr(t, res.Err)
}
@@ -156,8 +157,8 @@
defer th.TeardownHTTP()
HandleRebootSuccessfully(t)
- res := Reboot(client.ServiceClient(), "1234asdf", &RebootOpts{
- Type: SoftReboot,
+ res := servers.Reboot(client.ServiceClient(), "1234asdf", &servers.RebootOpts{
+ Type: servers.SoftReboot,
})
th.AssertNoErr(t, res.Err)
}
@@ -167,14 +168,14 @@
defer th.TeardownHTTP()
HandleRebuildSuccessfully(t, SingleServerBody)
- opts := RebuildOpts{
+ opts := servers.RebuildOpts{
Name: "new-name",
AdminPass: "swordfish",
ImageID: "http://104.130.131.164:8774/fcad67a6189847c4aecfa3c81a05783b/images/f90f6034-2570-4974-8351-6b49732ef2eb",
AccessIPv4: "1.2.3.4",
}
- actual, err := Rebuild(client.ServiceClient(), "1234asdf", opts).Extract()
+ actual, err := servers.Rebuild(client.ServiceClient(), "1234asdf", opts).Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ServerDerp, *actual)
@@ -192,7 +193,7 @@
w.WriteHeader(http.StatusAccepted)
})
- res := Resize(client.ServiceClient(), "1234asdf", ResizeOpts{FlavorRef: "2"})
+ res := servers.Resize(client.ServiceClient(), "1234asdf", servers.ResizeOpts{FlavorRef: "2"})
th.AssertNoErr(t, res.Err)
}
@@ -208,7 +209,7 @@
w.WriteHeader(http.StatusNoContent)
})
- res := ConfirmResize(client.ServiceClient(), "1234asdf")
+ res := servers.ConfirmResize(client.ServiceClient(), "1234asdf")
th.AssertNoErr(t, res.Err)
}
@@ -224,7 +225,7 @@
w.WriteHeader(http.StatusAccepted)
})
- res := RevertResize(client.ServiceClient(), "1234asdf")
+ res := servers.RevertResize(client.ServiceClient(), "1234asdf")
th.AssertNoErr(t, res.Err)
}
@@ -234,7 +235,7 @@
HandleServerRescueSuccessfully(t)
- res := Rescue(client.ServiceClient(), "1234asdf", RescueOpts{
+ res := servers.Rescue(client.ServiceClient(), "1234asdf", servers.RescueOpts{
AdminPass: "1234567890",
})
th.AssertNoErr(t, res.Err)
@@ -249,7 +250,7 @@
HandleMetadatumGetSuccessfully(t)
expected := map[string]string{"foo": "bar"}
- actual, err := Metadatum(client.ServiceClient(), "1234asdf", "foo").Extract()
+ actual, err := servers.Metadatum(client.ServiceClient(), "1234asdf", "foo").Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, expected, actual)
}
@@ -261,7 +262,7 @@
HandleMetadatumCreateSuccessfully(t)
expected := map[string]string{"foo": "bar"}
- actual, err := CreateMetadatum(client.ServiceClient(), "1234asdf", MetadatumOpts{"foo": "bar"}).Extract()
+ actual, err := servers.CreateMetadatum(client.ServiceClient(), "1234asdf", servers.MetadatumOpts{"foo": "bar"}).Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, expected, actual)
}
@@ -272,7 +273,7 @@
HandleMetadatumDeleteSuccessfully(t)
- err := DeleteMetadatum(client.ServiceClient(), "1234asdf", "foo").ExtractErr()
+ err := servers.DeleteMetadatum(client.ServiceClient(), "1234asdf", "foo").ExtractErr()
th.AssertNoErr(t, err)
}
@@ -283,7 +284,7 @@
HandleMetadataGetSuccessfully(t)
expected := map[string]string{"foo": "bar", "this": "that"}
- actual, err := Metadata(client.ServiceClient(), "1234asdf").Extract()
+ actual, err := servers.Metadata(client.ServiceClient(), "1234asdf").Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, expected, actual)
}
@@ -295,7 +296,7 @@
HandleMetadataResetSuccessfully(t)
expected := map[string]string{"foo": "bar", "this": "that"}
- actual, err := ResetMetadata(client.ServiceClient(), "1234asdf", MetadataOpts{
+ actual, err := servers.ResetMetadata(client.ServiceClient(), "1234asdf", servers.MetadataOpts{
"foo": "bar",
"this": "that",
}).Extract()
@@ -310,7 +311,7 @@
HandleMetadataUpdateSuccessfully(t)
expected := map[string]string{"foo": "baz", "this": "those"}
- actual, err := UpdateMetadata(client.ServiceClient(), "1234asdf", MetadataOpts{
+ actual, err := servers.UpdateMetadata(client.ServiceClient(), "1234asdf", servers.MetadataOpts{
"foo": "baz",
"this": "those",
}).Extract()
@@ -325,10 +326,10 @@
expected := ListAddressesExpected
pages := 0
- err := ListAddresses(client.ServiceClient(), "asdfasdfasdf").EachPage(func(page pagination.Page) (bool, error) {
+ err := servers.ListAddresses(client.ServiceClient(), "asdfasdfasdf").EachPage(func(page pagination.Page) (bool, error) {
pages++
- actual, err := ExtractAddresses(page)
+ actual, err := servers.ExtractAddresses(page)
th.AssertNoErr(t, err)
if len(actual) != 2 {
@@ -349,10 +350,10 @@
expected := ListNetworkAddressesExpected
pages := 0
- err := ListAddressesByNetwork(client.ServiceClient(), "asdfasdfasdf", "public").EachPage(func(page pagination.Page) (bool, error) {
+ err := servers.ListAddressesByNetwork(client.ServiceClient(), "asdfasdfasdf", "public").EachPage(func(page pagination.Page) (bool, error) {
pages++
- actual, err := ExtractNetworkAddresses(page)
+ actual, err := servers.ExtractNetworkAddresses(page)
th.AssertNoErr(t, err)
if len(actual) != 2 {
@@ -371,7 +372,7 @@
defer th.TeardownHTTP()
HandleCreateServerImageSuccessfully(t)
- _, err := CreateImage(client.ServiceClient(), "serverimage", CreateImageOpts{Name: "test"}).ExtractImageID()
+ _, err := servers.CreateImage(client.ServiceClient(), "serverimage", servers.CreateImageOpts{Name: "test"}).ExtractImageID()
th.AssertNoErr(t, err)
}
@@ -379,8 +380,8 @@
name := "/etc/test"
contents := []byte("asdfasdf")
- personality := Personality{
- &File{
+ personality := servers.Personality{
+ &servers.File{
Path: name,
Contents: contents,
},
diff --git a/openstack/compute/v2/servers/results_test.go b/openstack/compute/v2/servers/testing/results_test.go
similarity index 93%
rename from openstack/compute/v2/servers/results_test.go
rename to openstack/compute/v2/servers/testing/results_test.go
index 5b56055..e5334f0 100644
--- a/openstack/compute/v2/servers/results_test.go
+++ b/openstack/compute/v2/servers/testing/results_test.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package servers
+package testing
import (
"crypto/rsa"
@@ -9,6 +7,7 @@
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
th "github.com/gophercloud/gophercloud/testhelper"
"golang.org/x/crypto/ssh"
)
@@ -21,7 +20,7 @@
if err != nil {
t.Fatalf("%s", err)
}
- resp := GetPasswordResult{gophercloud.Result{Body: dejson}}
+ resp := servers.GetPasswordResult{gophercloud.Result{Body: dejson}}
pwd, err := resp.ExtractPassword(nil)
th.AssertEquals(t, pwd, "")
@@ -38,7 +37,7 @@
if err != nil {
t.Fatalf("%s", err)
}
- resp := GetPasswordResult{gophercloud.Result{Body: dejson}}
+ resp := servers.GetPasswordResult{gophercloud.Result{Body: dejson}}
pwd, err := resp.ExtractPassword(nil)
th.AssertNoErr(t, err)
@@ -91,7 +90,7 @@
if err != nil {
t.Fatalf("%s", err)
}
- resp := GetPasswordResult{gophercloud.Result{Body: dejson}}
+ resp := servers.GetPasswordResult{gophercloud.Result{Body: dejson}}
pwd, err := resp.ExtractPassword(privateKey.(*rsa.PrivateKey))
th.AssertNoErr(t, err)
diff --git a/openstack/db/v1/configurations/testing/doc.go b/openstack/db/v1/configurations/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/db/v1/configurations/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/db/v1/configurations/fixtures.go b/openstack/db/v1/configurations/testing/fixtures.go
similarity index 94%
rename from openstack/db/v1/configurations/fixtures.go
rename to openstack/db/v1/configurations/testing/fixtures.go
index 9064c6c..56e10f4 100644
--- a/openstack/db/v1/configurations/fixtures.go
+++ b/openstack/db/v1/configurations/testing/fixtures.go
@@ -1,10 +1,10 @@
-// +build fixtures
-
-package configurations
+package testing
import (
"fmt"
"time"
+
+ "github.com/gophercloud/gophercloud/openstack/db/v1/configurations"
)
var (
@@ -132,7 +132,7 @@
}
`
-var ExampleConfig = Config{
+var ExampleConfig = configurations.Config{
Created: timeVal,
DatastoreName: "mysql",
DatastoreVersionID: "b00000b0-00b0-0b00-00b0-000b000000bb",
@@ -143,7 +143,7 @@
Updated: timeVal,
}
-var ExampleConfigWithValues = Config{
+var ExampleConfigWithValues = configurations.Config{
Created: timeVal,
DatastoreName: "mysql",
DatastoreVersionID: "b00000b0-00b0-0b00-00b0-000b000000bb",
diff --git a/openstack/db/v1/configurations/requests_test.go b/openstack/db/v1/configurations/testing/requests_test.go
similarity index 65%
rename from openstack/db/v1/configurations/requests_test.go
rename to openstack/db/v1/configurations/testing/requests_test.go
index 575cf4f..643f363 100644
--- a/openstack/db/v1/configurations/requests_test.go
+++ b/openstack/db/v1/configurations/testing/requests_test.go
@@ -1,8 +1,9 @@
-package configurations
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/db/v1/configurations"
"github.com/gophercloud/gophercloud/openstack/db/v1/instances"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
@@ -30,12 +31,12 @@
fixture.SetupHandler(t, _baseURL, "GET", "", ListConfigsJSON, 200)
count := 0
- err := List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := configurations.List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractConfigs(page)
+ actual, err := configurations.ExtractConfigs(page)
th.AssertNoErr(t, err)
- expected := []Config{ExampleConfig}
+ expected := []configurations.Config{ExampleConfig}
th.AssertDeepEquals(t, expected, actual)
return true, nil
@@ -50,7 +51,7 @@
defer th.TeardownHTTP()
fixture.SetupHandler(t, resURL, "GET", "", GetConfigJSON, 200)
- config, err := Get(fake.ServiceClient(), configID).Extract()
+ config, err := configurations.Get(fake.ServiceClient(), configID).Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, &ExampleConfig, config)
}
@@ -60,8 +61,8 @@
defer th.TeardownHTTP()
fixture.SetupHandler(t, _baseURL, "POST", CreateReq, CreateConfigJSON, 200)
- opts := CreateOpts{
- Datastore: &DatastoreOpts{
+ opts := configurations.CreateOpts{
+ Datastore: &configurations.DatastoreOpts{
Type: "a00000a0-00a0-0a00-00a0-000a000000aa",
Version: "b00000b0-00b0-0b00-00b0-000b000000bb",
},
@@ -73,7 +74,7 @@
},
}
- config, err := Create(fake.ServiceClient(), opts).Extract()
+ config, err := configurations.Create(fake.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, &ExampleConfigWithValues, config)
}
@@ -83,13 +84,13 @@
defer th.TeardownHTTP()
fixture.SetupHandler(t, resURL, "PATCH", UpdateReq, "", 200)
- opts := UpdateOpts{
+ opts := configurations.UpdateOpts{
Values: map[string]interface{}{
"connect_timeout": 300,
},
}
- err := Update(fake.ServiceClient(), configID, opts).ExtractErr()
+ err := configurations.Update(fake.ServiceClient(), configID, opts).ExtractErr()
th.AssertNoErr(t, err)
}
@@ -98,13 +99,13 @@
defer th.TeardownHTTP()
fixture.SetupHandler(t, resURL, "PUT", UpdateReq, "", 202)
- opts := UpdateOpts{
+ opts := configurations.UpdateOpts{
Values: map[string]interface{}{
"connect_timeout": 300,
},
}
- err := Replace(fake.ServiceClient(), configID, opts).ExtractErr()
+ err := configurations.Replace(fake.ServiceClient(), configID, opts).ExtractErr()
th.AssertNoErr(t, err)
}
@@ -113,7 +114,7 @@
defer th.TeardownHTTP()
fixture.SetupHandler(t, resURL, "DELETE", "", "", 202)
- err := Delete(fake.ServiceClient(), configID).ExtractErr()
+ err := configurations.Delete(fake.ServiceClient(), configID).ExtractErr()
th.AssertNoErr(t, err)
}
@@ -128,7 +129,7 @@
}
pages := 0
- err := ListInstances(fake.ServiceClient(), configID).EachPage(func(page pagination.Page) (bool, error) {
+ err := configurations.ListInstances(fake.ServiceClient(), configID).EachPage(func(page pagination.Page) (bool, error) {
pages++
actual, err := instances.ExtractInstances(page)
@@ -151,19 +152,19 @@
fixture.SetupHandler(t, dsParamListURL, "GET", "", ListParamsJSON, 200)
pages := 0
- err := ListDatastoreParams(fake.ServiceClient(), dsID, versionID).EachPage(func(page pagination.Page) (bool, error) {
+ err := configurations.ListDatastoreParams(fake.ServiceClient(), dsID, versionID).EachPage(func(page pagination.Page) (bool, error) {
pages++
- actual, err := ExtractParams(page)
+ actual, err := configurations.ExtractParams(page)
if err != nil {
return false, err
}
- expected := []Param{
- Param{Max: 1, Min: 0, Name: "innodb_file_per_table", RestartRequired: true, Type: "integer"},
- Param{Max: 4294967296, Min: 0, Name: "key_buffer_size", RestartRequired: false, Type: "integer"},
- Param{Max: 65535, Min: 2, Name: "connect_timeout", RestartRequired: false, Type: "integer"},
- Param{Max: 4294967296, Min: 0, Name: "join_buffer_size", RestartRequired: false, Type: "integer"},
+ expected := []configurations.Param{
+ {Max: 1, Min: 0, Name: "innodb_file_per_table", RestartRequired: true, Type: "integer"},
+ {Max: 4294967296, Min: 0, Name: "key_buffer_size", RestartRequired: false, Type: "integer"},
+ {Max: 65535, Min: 2, Name: "connect_timeout", RestartRequired: false, Type: "integer"},
+ {Max: 4294967296, Min: 0, Name: "join_buffer_size", RestartRequired: false, Type: "integer"},
}
th.AssertDeepEquals(t, actual, expected)
@@ -180,10 +181,10 @@
defer th.TeardownHTTP()
fixture.SetupHandler(t, dsParamGetURL, "GET", "", GetParamJSON, 200)
- param, err := GetDatastoreParam(fake.ServiceClient(), dsID, versionID, paramID).Extract()
+ param, err := configurations.GetDatastoreParam(fake.ServiceClient(), dsID, versionID, paramID).Extract()
th.AssertNoErr(t, err)
- expected := &Param{
+ expected := &configurations.Param{
Max: 1, Min: 0, Name: "innodb_file_per_table", RestartRequired: true, Type: "integer",
}
@@ -196,19 +197,19 @@
fixture.SetupHandler(t, globalParamListURL, "GET", "", ListParamsJSON, 200)
pages := 0
- err := ListGlobalParams(fake.ServiceClient(), versionID).EachPage(func(page pagination.Page) (bool, error) {
+ err := configurations.ListGlobalParams(fake.ServiceClient(), versionID).EachPage(func(page pagination.Page) (bool, error) {
pages++
- actual, err := ExtractParams(page)
+ actual, err := configurations.ExtractParams(page)
if err != nil {
return false, err
}
- expected := []Param{
- Param{Max: 1, Min: 0, Name: "innodb_file_per_table", RestartRequired: true, Type: "integer"},
- Param{Max: 4294967296, Min: 0, Name: "key_buffer_size", RestartRequired: false, Type: "integer"},
- Param{Max: 65535, Min: 2, Name: "connect_timeout", RestartRequired: false, Type: "integer"},
- Param{Max: 4294967296, Min: 0, Name: "join_buffer_size", RestartRequired: false, Type: "integer"},
+ expected := []configurations.Param{
+ {Max: 1, Min: 0, Name: "innodb_file_per_table", RestartRequired: true, Type: "integer"},
+ {Max: 4294967296, Min: 0, Name: "key_buffer_size", RestartRequired: false, Type: "integer"},
+ {Max: 65535, Min: 2, Name: "connect_timeout", RestartRequired: false, Type: "integer"},
+ {Max: 4294967296, Min: 0, Name: "join_buffer_size", RestartRequired: false, Type: "integer"},
}
th.AssertDeepEquals(t, actual, expected)
@@ -225,10 +226,10 @@
defer th.TeardownHTTP()
fixture.SetupHandler(t, globalParamGetURL, "GET", "", GetParamJSON, 200)
- param, err := GetGlobalParam(fake.ServiceClient(), versionID, paramID).Extract()
+ param, err := configurations.GetGlobalParam(fake.ServiceClient(), versionID, paramID).Extract()
th.AssertNoErr(t, err)
- expected := &Param{
+ expected := &configurations.Param{
Max: 1, Min: 0, Name: "innodb_file_per_table", RestartRequired: true, Type: "integer",
}
diff --git a/openstack/db/v1/databases/requests_test.go b/openstack/db/v1/databases/requests_test.go
deleted file mode 100644
index 5ec45e1..0000000
--- a/openstack/db/v1/databases/requests_test.go
+++ /dev/null
@@ -1,66 +0,0 @@
-package databases
-
-import (
- "testing"
-
- "github.com/gophercloud/gophercloud/pagination"
- th "github.com/gophercloud/gophercloud/testhelper"
- fake "github.com/gophercloud/gophercloud/testhelper/client"
-)
-
-func TestCreate(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
- HandleCreate(t)
-
- opts := BatchCreateOpts{
- CreateOpts{Name: "testingdb", CharSet: "utf8", Collate: "utf8_general_ci"},
- CreateOpts{Name: "sampledb"},
- }
-
- res := Create(fake.ServiceClient(), instanceID, opts)
- th.AssertNoErr(t, res.Err)
-}
-
-func TestList(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
- HandleList(t)
-
- expectedDBs := []Database{
- Database{Name: "anotherexampledb"},
- Database{Name: "exampledb"},
- Database{Name: "nextround"},
- Database{Name: "sampledb"},
- Database{Name: "testingdb"},
- }
-
- pages := 0
- err := List(fake.ServiceClient(), instanceID).EachPage(func(page pagination.Page) (bool, error) {
- pages++
-
- actual, err := ExtractDBs(page)
- if err != nil {
- return false, err
- }
-
- th.CheckDeepEquals(t, expectedDBs, actual)
-
- return true, nil
- })
-
- th.AssertNoErr(t, err)
-
- if pages != 1 {
- t.Errorf("Expected 1 page, saw %d", pages)
- }
-}
-
-func TestDelete(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
- HandleDelete(t)
-
- err := Delete(fake.ServiceClient(), instanceID, "{dbName}").ExtractErr()
- th.AssertNoErr(t, err)
-}
diff --git a/openstack/db/v1/databases/testing/doc.go b/openstack/db/v1/databases/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/db/v1/databases/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/db/v1/databases/fixtures.go b/openstack/db/v1/databases/testing/fixtures.go
similarity index 95%
rename from openstack/db/v1/databases/fixtures.go
rename to openstack/db/v1/databases/testing/fixtures.go
index c99f990..02b9ecc 100644
--- a/openstack/db/v1/databases/fixtures.go
+++ b/openstack/db/v1/databases/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package databases
+package testing
import (
"testing"
diff --git a/openstack/db/v1/databases/testing/requests_test.go b/openstack/db/v1/databases/testing/requests_test.go
new file mode 100644
index 0000000..a470ffa
--- /dev/null
+++ b/openstack/db/v1/databases/testing/requests_test.go
@@ -0,0 +1,67 @@
+package testing
+
+import (
+ "testing"
+
+ "github.com/gophercloud/gophercloud/openstack/db/v1/databases"
+ "github.com/gophercloud/gophercloud/pagination"
+ th "github.com/gophercloud/gophercloud/testhelper"
+ fake "github.com/gophercloud/gophercloud/testhelper/client"
+)
+
+func TestCreate(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+ HandleCreate(t)
+
+ opts := databases.BatchCreateOpts{
+ databases.CreateOpts{Name: "testingdb", CharSet: "utf8", Collate: "utf8_general_ci"},
+ databases.CreateOpts{Name: "sampledb"},
+ }
+
+ res := databases.Create(fake.ServiceClient(), instanceID, opts)
+ th.AssertNoErr(t, res.Err)
+}
+
+func TestList(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+ HandleList(t)
+
+ expectedDBs := []databases.Database{
+ {Name: "anotherexampledb"},
+ {Name: "exampledb"},
+ {Name: "nextround"},
+ {Name: "sampledb"},
+ {Name: "testingdb"},
+ }
+
+ pages := 0
+ err := databases.List(fake.ServiceClient(), instanceID).EachPage(func(page pagination.Page) (bool, error) {
+ pages++
+
+ actual, err := databases.ExtractDBs(page)
+ if err != nil {
+ return false, err
+ }
+
+ th.CheckDeepEquals(t, expectedDBs, actual)
+
+ return true, nil
+ })
+
+ th.AssertNoErr(t, err)
+
+ if pages != 1 {
+ t.Errorf("Expected 1 page, saw %d", pages)
+ }
+}
+
+func TestDelete(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+ HandleDelete(t)
+
+ err := databases.Delete(fake.ServiceClient(), instanceID, "{dbName}").ExtractErr()
+ th.AssertNoErr(t, err)
+}
diff --git a/openstack/db/v1/datastores/testing/doc.go b/openstack/db/v1/datastores/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/db/v1/datastores/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/db/v1/datastores/fixtures.go b/openstack/db/v1/datastores/testing/fixtures.go
similarity index 67%
rename from openstack/db/v1/datastores/fixtures.go
rename to openstack/db/v1/datastores/testing/fixtures.go
index 8caa586..3b82646 100644
--- a/openstack/db/v1/datastores/fixtures.go
+++ b/openstack/db/v1/datastores/testing/fixtures.go
@@ -1,11 +1,10 @@
-// +build fixtures
-
-package datastores
+package testing
import (
"fmt"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/db/v1/datastores"
)
const version1JSON = `
@@ -70,32 +69,32 @@
GetVersionResp = fmt.Sprintf(`{"version":%s}`, version1JSON)
)
-var ExampleVersion1 = Version{
+var ExampleVersion1 = datastores.Version{
ID: "b00000b0-00b0-0b00-00b0-000b000000bb",
Links: []gophercloud.Link{
- gophercloud.Link{Rel: "self", Href: "https://10.240.28.38:8779/v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb"},
- gophercloud.Link{Rel: "bookmark", Href: "https://10.240.28.38:8779/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb"},
+ {Rel: "self", Href: "https://10.240.28.38:8779/v1.0/1234/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb"},
+ {Rel: "bookmark", Href: "https://10.240.28.38:8779/datastores/versions/b00000b0-00b0-0b00-00b0-000b000000bb"},
},
Name: "5.1",
}
-var exampleVersion2 = Version{
+var exampleVersion2 = datastores.Version{
ID: "c00000b0-00c0-0c00-00c0-000b000000cc",
Links: []gophercloud.Link{
- gophercloud.Link{Rel: "self", Href: "https://10.240.28.38:8779/v1.0/1234/datastores/versions/c00000b0-00c0-0c00-00c0-000b000000cc"},
- gophercloud.Link{Rel: "bookmark", Href: "https://10.240.28.38:8779/datastores/versions/c00000b0-00c0-0c00-00c0-000b000000cc"},
+ {Rel: "self", Href: "https://10.240.28.38:8779/v1.0/1234/datastores/versions/c00000b0-00c0-0c00-00c0-000b000000cc"},
+ {Rel: "bookmark", Href: "https://10.240.28.38:8779/datastores/versions/c00000b0-00c0-0c00-00c0-000b000000cc"},
},
Name: "5.2",
}
-var ExampleVersions = []Version{ExampleVersion1, exampleVersion2}
+var ExampleVersions = []datastores.Version{ExampleVersion1, exampleVersion2}
-var ExampleDatastore = Datastore{
+var ExampleDatastore = datastores.Datastore{
DefaultVersion: "c00000b0-00c0-0c00-00c0-000b000000cc",
ID: "10000000-0000-0000-0000-000000000001",
Links: []gophercloud.Link{
- gophercloud.Link{Rel: "self", Href: "https://10.240.28.38:8779/v1.0/1234/datastores/10000000-0000-0000-0000-000000000001"},
- gophercloud.Link{Rel: "bookmark", Href: "https://10.240.28.38:8779/datastores/10000000-0000-0000-0000-000000000001"},
+ {Rel: "self", Href: "https://10.240.28.38:8779/v1.0/1234/datastores/10000000-0000-0000-0000-000000000001"},
+ {Rel: "bookmark", Href: "https://10.240.28.38:8779/datastores/10000000-0000-0000-0000-000000000001"},
},
Name: "mysql",
Versions: ExampleVersions,
diff --git a/openstack/db/v1/datastores/requests_test.go b/openstack/db/v1/datastores/testing/requests_test.go
similarity index 68%
rename from openstack/db/v1/datastores/requests_test.go
rename to openstack/db/v1/datastores/testing/requests_test.go
index 07faf2c..b505726 100644
--- a/openstack/db/v1/datastores/requests_test.go
+++ b/openstack/db/v1/datastores/testing/requests_test.go
@@ -1,8 +1,9 @@
-package datastores
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/db/v1/datastores"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -16,15 +17,15 @@
pages := 0
- err := List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := datastores.List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
pages++
- actual, err := ExtractDatastores(page)
+ actual, err := datastores.ExtractDatastores(page)
if err != nil {
return false, err
}
- th.CheckDeepEquals(t, []Datastore{ExampleDatastore}, actual)
+ th.CheckDeepEquals(t, []datastores.Datastore{ExampleDatastore}, actual)
return true, nil
})
@@ -38,7 +39,7 @@
defer th.TeardownHTTP()
fixture.SetupHandler(t, "/datastores/{dsID}", "GET", "", GetDSResp, 200)
- ds, err := Get(fake.ServiceClient(), "{dsID}").Extract()
+ ds, err := datastores.Get(fake.ServiceClient(), "{dsID}").Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, &ExampleDatastore, ds)
}
@@ -50,10 +51,10 @@
pages := 0
- err := ListVersions(fake.ServiceClient(), "{dsID}").EachPage(func(page pagination.Page) (bool, error) {
+ err := datastores.ListVersions(fake.ServiceClient(), "{dsID}").EachPage(func(page pagination.Page) (bool, error) {
pages++
- actual, err := ExtractVersions(page)
+ actual, err := datastores.ExtractVersions(page)
if err != nil {
return false, err
}
@@ -72,7 +73,7 @@
defer th.TeardownHTTP()
fixture.SetupHandler(t, "/datastores/{dsID}/versions/{versionID}", "GET", "", GetVersionResp, 200)
- ds, err := GetVersion(fake.ServiceClient(), "{dsID}", "{versionID}").Extract()
+ ds, err := datastores.GetVersion(fake.ServiceClient(), "{dsID}", "{versionID}").Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, &ExampleVersion1, ds)
}
diff --git a/openstack/db/v1/flavors/requests_test.go b/openstack/db/v1/flavors/requests_test.go
deleted file mode 100644
index ce01759..0000000
--- a/openstack/db/v1/flavors/requests_test.go
+++ /dev/null
@@ -1,91 +0,0 @@
-package flavors
-
-import (
- "testing"
-
- "github.com/gophercloud/gophercloud"
- "github.com/gophercloud/gophercloud/pagination"
- th "github.com/gophercloud/gophercloud/testhelper"
- fake "github.com/gophercloud/gophercloud/testhelper/client"
-)
-
-func TestListFlavors(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
- HandleList(t)
-
- pages := 0
- err := List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
- pages++
-
- actual, err := ExtractFlavors(page)
- if err != nil {
- return false, err
- }
-
- expected := []Flavor{
- Flavor{
- ID: 1,
- Name: "m1.tiny",
- RAM: 512,
- Links: []gophercloud.Link{
- gophercloud.Link{Href: "https://openstack.example.com/v1.0/1234/flavors/1", Rel: "self"},
- gophercloud.Link{Href: "https://openstack.example.com/flavors/1", Rel: "bookmark"},
- },
- },
- Flavor{
- ID: 2,
- Name: "m1.small",
- RAM: 1024,
- Links: []gophercloud.Link{
- gophercloud.Link{Href: "https://openstack.example.com/v1.0/1234/flavors/2", Rel: "self"},
- gophercloud.Link{Href: "https://openstack.example.com/flavors/2", Rel: "bookmark"},
- },
- },
- Flavor{
- ID: 3,
- Name: "m1.medium",
- RAM: 2048,
- Links: []gophercloud.Link{
- gophercloud.Link{Href: "https://openstack.example.com/v1.0/1234/flavors/3", Rel: "self"},
- gophercloud.Link{Href: "https://openstack.example.com/flavors/3", Rel: "bookmark"},
- },
- },
- Flavor{
- ID: 4,
- Name: "m1.large",
- RAM: 4096,
- Links: []gophercloud.Link{
- gophercloud.Link{Href: "https://openstack.example.com/v1.0/1234/flavors/4", Rel: "self"},
- gophercloud.Link{Href: "https://openstack.example.com/flavors/4", Rel: "bookmark"},
- },
- },
- }
-
- th.AssertDeepEquals(t, expected, actual)
- return true, nil
- })
-
- th.AssertNoErr(t, err)
- th.AssertEquals(t, 1, pages)
-}
-
-func TestGetFlavor(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
- HandleGet(t)
-
- actual, err := Get(fake.ServiceClient(), flavorID).Extract()
- th.AssertNoErr(t, err)
-
- expected := &Flavor{
- ID: 1,
- Name: "m1.tiny",
- RAM: 512,
- Links: []gophercloud.Link{
- gophercloud.Link{Href: "https://openstack.example.com/v1.0/1234/flavors/1", Rel: "self"},
- },
- }
-
- th.AssertDeepEquals(t, expected, actual)
-}
diff --git a/openstack/db/v1/flavors/testing/doc.go b/openstack/db/v1/flavors/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/db/v1/flavors/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/db/v1/flavors/fixtures.go b/openstack/db/v1/flavors/testing/fixtures.go
similarity index 96%
rename from openstack/db/v1/flavors/fixtures.go
rename to openstack/db/v1/flavors/testing/fixtures.go
index 257b214..b2b2d5f 100644
--- a/openstack/db/v1/flavors/fixtures.go
+++ b/openstack/db/v1/flavors/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package flavors
+package testing
import (
"fmt"
diff --git a/openstack/db/v1/flavors/testing/requests_test.go b/openstack/db/v1/flavors/testing/requests_test.go
new file mode 100644
index 0000000..cbc0edd
--- /dev/null
+++ b/openstack/db/v1/flavors/testing/requests_test.go
@@ -0,0 +1,92 @@
+package testing
+
+import (
+ "testing"
+
+ "github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/db/v1/flavors"
+ "github.com/gophercloud/gophercloud/pagination"
+ th "github.com/gophercloud/gophercloud/testhelper"
+ fake "github.com/gophercloud/gophercloud/testhelper/client"
+)
+
+func TestListFlavors(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+ HandleList(t)
+
+ pages := 0
+ err := flavors.List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ pages++
+
+ actual, err := flavors.ExtractFlavors(page)
+ if err != nil {
+ return false, err
+ }
+
+ expected := []flavors.Flavor{
+ {
+ ID: 1,
+ Name: "m1.tiny",
+ RAM: 512,
+ Links: []gophercloud.Link{
+ {Href: "https://openstack.example.com/v1.0/1234/flavors/1", Rel: "self"},
+ {Href: "https://openstack.example.com/flavors/1", Rel: "bookmark"},
+ },
+ },
+ {
+ ID: 2,
+ Name: "m1.small",
+ RAM: 1024,
+ Links: []gophercloud.Link{
+ {Href: "https://openstack.example.com/v1.0/1234/flavors/2", Rel: "self"},
+ {Href: "https://openstack.example.com/flavors/2", Rel: "bookmark"},
+ },
+ },
+ {
+ ID: 3,
+ Name: "m1.medium",
+ RAM: 2048,
+ Links: []gophercloud.Link{
+ {Href: "https://openstack.example.com/v1.0/1234/flavors/3", Rel: "self"},
+ {Href: "https://openstack.example.com/flavors/3", Rel: "bookmark"},
+ },
+ },
+ {
+ ID: 4,
+ Name: "m1.large",
+ RAM: 4096,
+ Links: []gophercloud.Link{
+ {Href: "https://openstack.example.com/v1.0/1234/flavors/4", Rel: "self"},
+ {Href: "https://openstack.example.com/flavors/4", Rel: "bookmark"},
+ },
+ },
+ }
+
+ th.AssertDeepEquals(t, expected, actual)
+ return true, nil
+ })
+
+ th.AssertNoErr(t, err)
+ th.AssertEquals(t, 1, pages)
+}
+
+func TestGetFlavor(t *testing.T) {
+ th.SetupHTTP()
+ defer th.TeardownHTTP()
+ HandleGet(t)
+
+ actual, err := flavors.Get(fake.ServiceClient(), flavorID).Extract()
+ th.AssertNoErr(t, err)
+
+ expected := &flavors.Flavor{
+ ID: 1,
+ Name: "m1.tiny",
+ RAM: 512,
+ Links: []gophercloud.Link{
+ {Href: "https://openstack.example.com/v1.0/1234/flavors/1", Rel: "self"},
+ },
+ }
+
+ th.AssertDeepEquals(t, expected, actual)
+}
diff --git a/openstack/db/v1/instances/testing/doc.go b/openstack/db/v1/instances/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/db/v1/instances/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/db/v1/instances/fixtures.go b/openstack/db/v1/instances/testing/fixtures.go
similarity index 89%
rename from openstack/db/v1/instances/fixtures.go
rename to openstack/db/v1/instances/testing/fixtures.go
index 6be384c..e0a0d28 100644
--- a/openstack/db/v1/instances/fixtures.go
+++ b/openstack/db/v1/instances/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package instances
+package testing
import (
"fmt"
@@ -10,6 +8,7 @@
"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack/db/v1/datastores"
"github.com/gophercloud/gophercloud/openstack/db/v1/flavors"
+ "github.com/gophercloud/gophercloud/openstack/db/v1/instances"
"github.com/gophercloud/gophercloud/testhelper/fixture"
)
@@ -110,24 +109,24 @@
isUserEnabledResp = `{"rootEnabled":true}`
)
-var expectedInstance = Instance{
+var expectedInstance = instances.Instance{
Created: timeVal,
Updated: timeVal,
Flavor: flavors.Flavor{
ID: 1,
Links: []gophercloud.Link{
- gophercloud.Link{Href: "https://my-openstack.com/v1.0/1234/flavors/1", Rel: "self"},
- gophercloud.Link{Href: "https://my-openstack.com/v1.0/1234/flavors/1", Rel: "bookmark"},
+ {Href: "https://my-openstack.com/v1.0/1234/flavors/1", Rel: "self"},
+ {Href: "https://my-openstack.com/v1.0/1234/flavors/1", Rel: "bookmark"},
},
},
Hostname: "e09ad9a3f73309469cf1f43d11e79549caf9acf2.my-openstack.com",
ID: instanceID,
Links: []gophercloud.Link{
- gophercloud.Link{Href: "https://my-openstack.com/v1.0/1234/instances/1", Rel: "self"},
+ {Href: "https://my-openstack.com/v1.0/1234/instances/1", Rel: "self"},
},
Name: "json_rack_instance",
Status: "BUILD",
- Volume: Volume{Size: 2},
+ Volume: instances.Volume{Size: 2},
Datastore: datastores.DatastorePartial{
Type: "mysql",
Version: "5.6",
diff --git a/openstack/db/v1/instances/requests_test.go b/openstack/db/v1/instances/testing/requests_test.go
similarity index 67%
rename from openstack/db/v1/instances/requests_test.go
rename to openstack/db/v1/instances/testing/requests_test.go
index 3caac23..e3c81e3 100644
--- a/openstack/db/v1/instances/requests_test.go
+++ b/openstack/db/v1/instances/testing/requests_test.go
@@ -1,9 +1,10 @@
-package instances
+package testing
import (
"testing"
db "github.com/gophercloud/gophercloud/openstack/db/v1/databases"
+ "github.com/gophercloud/gophercloud/openstack/db/v1/instances"
"github.com/gophercloud/gophercloud/openstack/db/v1/users"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
@@ -15,26 +16,26 @@
defer th.TeardownHTTP()
HandleCreate(t)
- opts := CreateOpts{
+ opts := instances.CreateOpts{
Name: "json_rack_instance",
FlavorRef: "1",
Databases: db.BatchCreateOpts{
- db.CreateOpts{CharSet: "utf8", Collate: "utf8_general_ci", Name: "sampledb"},
- db.CreateOpts{Name: "nextround"},
+ {CharSet: "utf8", Collate: "utf8_general_ci", Name: "sampledb"},
+ {Name: "nextround"},
},
Users: users.BatchCreateOpts{
- users.CreateOpts{
+ {
Name: "demouser",
Password: "demopassword",
Databases: db.BatchCreateOpts{
- db.CreateOpts{Name: "sampledb"},
+ {Name: "sampledb"},
},
},
},
Size: 2,
}
- instance, err := Create(fake.ServiceClient(), opts).Extract()
+ instance, err := instances.Create(fake.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, &expectedInstance, instance)
@@ -46,15 +47,15 @@
HandleList(t)
pages := 0
- err := List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := instances.List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
pages++
- actual, err := ExtractInstances(page)
+ actual, err := instances.ExtractInstances(page)
if err != nil {
return false, err
}
- th.CheckDeepEquals(t, []Instance{expectedInstance}, actual)
+ th.CheckDeepEquals(t, []instances.Instance{expectedInstance}, actual)
return true, nil
})
@@ -67,7 +68,7 @@
defer th.TeardownHTTP()
HandleGet(t)
- instance, err := Get(fake.ServiceClient(), instanceID).Extract()
+ instance, err := instances.Get(fake.ServiceClient(), instanceID).Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, &expectedInstance, instance)
@@ -78,7 +79,7 @@
defer th.TeardownHTTP()
HandleDelete(t)
- res := Delete(fake.ServiceClient(), instanceID)
+ res := instances.Delete(fake.ServiceClient(), instanceID)
th.AssertNoErr(t, res.Err)
}
@@ -88,7 +89,7 @@
HandleEnableRoot(t)
expected := &users.User{Name: "root", Password: "secretsecret"}
- user, err := EnableRootUser(fake.ServiceClient(), instanceID).Extract()
+ user, err := instances.EnableRootUser(fake.ServiceClient(), instanceID).Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, expected, user)
@@ -99,7 +100,7 @@
defer th.TeardownHTTP()
HandleIsRootEnabled(t)
- isEnabled, err := IsRootEnabled(fake.ServiceClient(), instanceID).Extract()
+ isEnabled, err := instances.IsRootEnabled(fake.ServiceClient(), instanceID).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, true, isEnabled)
@@ -110,7 +111,7 @@
defer th.TeardownHTTP()
HandleRestart(t)
- res := Restart(fake.ServiceClient(), instanceID)
+ res := instances.Restart(fake.ServiceClient(), instanceID)
th.AssertNoErr(t, res.Err)
}
@@ -119,7 +120,7 @@
defer th.TeardownHTTP()
HandleResize(t)
- res := Resize(fake.ServiceClient(), instanceID, "2")
+ res := instances.Resize(fake.ServiceClient(), instanceID, "2")
th.AssertNoErr(t, res.Err)
}
@@ -128,6 +129,6 @@
defer th.TeardownHTTP()
HandleResizeVol(t)
- res := ResizeVolume(fake.ServiceClient(), instanceID, 4)
+ res := instances.ResizeVolume(fake.ServiceClient(), instanceID, 4)
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/db/v1/users/testing/doc.go b/openstack/db/v1/users/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/db/v1/users/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/db/v1/users/fixtures.go b/openstack/db/v1/users/testing/fixtures.go
similarity index 96%
rename from openstack/db/v1/users/fixtures.go
rename to openstack/db/v1/users/testing/fixtures.go
index 3661154..f49f46f 100644
--- a/openstack/db/v1/users/fixtures.go
+++ b/openstack/db/v1/users/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package users
+package testing
import (
"fmt"
diff --git a/openstack/db/v1/users/requests_test.go b/openstack/db/v1/users/testing/requests_test.go
similarity index 68%
rename from openstack/db/v1/users/requests_test.go
rename to openstack/db/v1/users/testing/requests_test.go
index 1eefb33..952f245 100644
--- a/openstack/db/v1/users/requests_test.go
+++ b/openstack/db/v1/users/testing/requests_test.go
@@ -1,9 +1,10 @@
-package users
+package testing
import (
"testing"
db "github.com/gophercloud/gophercloud/openstack/db/v1/databases"
+ "github.com/gophercloud/gophercloud/openstack/db/v1/users"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -14,25 +15,25 @@
defer th.TeardownHTTP()
HandleCreate(t)
- opts := BatchCreateOpts{
- CreateOpts{
+ opts := users.BatchCreateOpts{
+ {
Databases: db.BatchCreateOpts{
db.CreateOpts{Name: "databaseA"},
},
Name: "dbuser3",
Password: "secretsecret",
},
- CreateOpts{
+ {
Databases: db.BatchCreateOpts{
- db.CreateOpts{Name: "databaseB"},
- db.CreateOpts{Name: "databaseC"},
+ {Name: "databaseB"},
+ {Name: "databaseC"},
},
Name: "dbuser4",
Password: "secretsecret",
},
}
- res := Create(fake.ServiceClient(), instanceID, opts)
+ res := users.Create(fake.ServiceClient(), instanceID, opts)
th.AssertNoErr(t, res.Err)
}
@@ -41,27 +42,27 @@
defer th.TeardownHTTP()
HandleList(t)
- expectedUsers := []User{
- User{
+ expectedUsers := []users.User{
+ {
Databases: []db.Database{
db.Database{Name: "databaseA"},
},
Name: "dbuser3",
},
- User{
+ {
Databases: []db.Database{
- db.Database{Name: "databaseB"},
- db.Database{Name: "databaseC"},
+ {Name: "databaseB"},
+ {Name: "databaseC"},
},
Name: "dbuser4",
},
}
pages := 0
- err := List(fake.ServiceClient(), instanceID).EachPage(func(page pagination.Page) (bool, error) {
+ err := users.List(fake.ServiceClient(), instanceID).EachPage(func(page pagination.Page) (bool, error) {
pages++
- actual, err := ExtractUsers(page)
+ actual, err := users.ExtractUsers(page)
if err != nil {
return false, err
}
@@ -79,6 +80,6 @@
defer th.TeardownHTTP()
HandleDelete(t)
- res := Delete(fake.ServiceClient(), instanceID, "{userName}")
+ res := users.Delete(fake.ServiceClient(), instanceID, "{userName}")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/identity/v2/extensions/admin/roles/testing/doc.go b/openstack/identity/v2/extensions/admin/roles/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/identity/v2/extensions/admin/roles/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/identity/v2/extensions/admin/roles/fixtures.go b/openstack/identity/v2/extensions/admin/roles/testing/fixtures.go
similarity index 97%
rename from openstack/identity/v2/extensions/admin/roles/fixtures.go
rename to openstack/identity/v2/extensions/admin/roles/testing/fixtures.go
index 6b11f5c..498c161 100644
--- a/openstack/identity/v2/extensions/admin/roles/fixtures.go
+++ b/openstack/identity/v2/extensions/admin/roles/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package roles
+package testing
import (
"fmt"
diff --git a/openstack/identity/v2/extensions/admin/roles/requests_test.go b/openstack/identity/v2/extensions/admin/roles/testing/requests_test.go
similarity index 65%
rename from openstack/identity/v2/extensions/admin/roles/requests_test.go
rename to openstack/identity/v2/extensions/admin/roles/testing/requests_test.go
index cf3402d..8cf5395 100644
--- a/openstack/identity/v2/extensions/admin/roles/requests_test.go
+++ b/openstack/identity/v2/extensions/admin/roles/testing/requests_test.go
@@ -1,8 +1,9 @@
-package roles
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/identity/v2/extensions/admin/roles"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -16,16 +17,16 @@
count := 0
- err := List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := roles.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractRoles(page)
+ actual, err := roles.ExtractRoles(page)
if err != nil {
t.Errorf("Failed to extract users: %v", err)
return false, err
}
- expected := []Role{
- Role{
+ expected := []roles.Role{
+ {
ID: "123",
Name: "compute:admin",
Description: "Nova Administrator",
@@ -47,7 +48,7 @@
MockAddUserRoleResponse(t)
- err := AddUser(client.ServiceClient(), "{tenant_id}", "{user_id}", "{role_id}").ExtractErr()
+ err := roles.AddUser(client.ServiceClient(), "{tenant_id}", "{user_id}", "{role_id}").ExtractErr()
th.AssertNoErr(t, err)
}
@@ -58,7 +59,7 @@
MockDeleteUserRoleResponse(t)
- err := DeleteUser(client.ServiceClient(), "{tenant_id}", "{user_id}", "{role_id}").ExtractErr()
+ err := roles.DeleteUser(client.ServiceClient(), "{tenant_id}", "{user_id}", "{role_id}").ExtractErr()
th.AssertNoErr(t, err)
}
diff --git a/openstack/identity/v2/extensions/delegate_test.go b/openstack/identity/v2/extensions/testing/delegate_test.go
similarity index 69%
rename from openstack/identity/v2/extensions/delegate_test.go
rename to openstack/identity/v2/extensions/testing/delegate_test.go
index b425130..e7869d8 100644
--- a/openstack/identity/v2/extensions/delegate_test.go
+++ b/openstack/identity/v2/extensions/testing/delegate_test.go
@@ -1,9 +1,10 @@
-package extensions
+package testing
import (
"testing"
- common "github.com/gophercloud/gophercloud/openstack/common/extensions"
+ common "github.com/gophercloud/gophercloud/openstack/common/extensions/testing"
+ "github.com/gophercloud/gophercloud/openstack/identity/v2/extensions"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -15,9 +16,9 @@
HandleListExtensionsSuccessfully(t)
count := 0
- err := List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := extensions.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractExtensions(page)
+ actual, err := extensions.ExtractExtensions(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, common.ExpectedExtensions, actual)
@@ -32,7 +33,7 @@
defer th.TeardownHTTP()
common.HandleGetExtensionSuccessfully(t)
- actual, err := Get(client.ServiceClient(), "agent").Extract()
+ actual, err := extensions.Get(client.ServiceClient(), "agent").Extract()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, common.SingleExtension, actual)
}
diff --git a/openstack/identity/v2/extensions/testing/doc.go b/openstack/identity/v2/extensions/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/identity/v2/extensions/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/identity/v2/extensions/fixtures.go b/openstack/identity/v2/extensions/testing/fixtures.go
similarity index 97%
rename from openstack/identity/v2/extensions/fixtures.go
rename to openstack/identity/v2/extensions/testing/fixtures.go
index 3fd5ad9..60afb74 100644
--- a/openstack/identity/v2/extensions/fixtures.go
+++ b/openstack/identity/v2/extensions/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package extensions
+package testing
import (
"fmt"
diff --git a/openstack/identity/v2/tenants/testing/doc.go b/openstack/identity/v2/tenants/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/identity/v2/tenants/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/identity/v2/tenants/fixtures.go b/openstack/identity/v2/tenants/testing/fixtures.go
similarity index 86%
rename from openstack/identity/v2/tenants/fixtures.go
rename to openstack/identity/v2/tenants/testing/fixtures.go
index 3ccc791..7ddba45 100644
--- a/openstack/identity/v2/tenants/fixtures.go
+++ b/openstack/identity/v2/tenants/testing/fixtures.go
@@ -1,12 +1,11 @@
-// +build fixtures
-
-package tenants
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -32,7 +31,7 @@
`
// RedTeam is a Tenant fixture.
-var RedTeam = Tenant{
+var RedTeam = tenants.Tenant{
ID: "1234",
Name: "Red Team",
Description: "The team that is red",
@@ -40,7 +39,7 @@
}
// BlueTeam is a Tenant fixture.
-var BlueTeam = Tenant{
+var BlueTeam = tenants.Tenant{
ID: "9876",
Name: "Blue Team",
Description: "The team that is blue",
@@ -48,7 +47,7 @@
}
// ExpectedTenantSlice is the slice of tenants expected to be returned from ListOutput.
-var ExpectedTenantSlice = []Tenant{RedTeam, BlueTeam}
+var ExpectedTenantSlice = []tenants.Tenant{RedTeam, BlueTeam}
// HandleListTenantsSuccessfully creates an HTTP handler at `/tenants` on the test handler mux that
// responds with a list of two tenants.
diff --git a/openstack/identity/v2/tenants/requests_test.go b/openstack/identity/v2/tenants/testing/requests_test.go
similarity index 67%
rename from openstack/identity/v2/tenants/requests_test.go
rename to openstack/identity/v2/tenants/testing/requests_test.go
index d7a4db0..2a9b71c 100644
--- a/openstack/identity/v2/tenants/requests_test.go
+++ b/openstack/identity/v2/tenants/testing/requests_test.go
@@ -1,8 +1,9 @@
-package tenants
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -14,10 +15,10 @@
HandleListTenantsSuccessfully(t)
count := 0
- err := List(client.ServiceClient(), nil).EachPage(func(page pagination.Page) (bool, error) {
+ err := tenants.List(client.ServiceClient(), nil).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractTenants(page)
+ actual, err := tenants.ExtractTenants(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedTenantSlice, actual)
diff --git a/openstack/identity/v2/tokens/testing/doc.go b/openstack/identity/v2/tokens/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/identity/v2/tokens/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/identity/v2/tokens/fixtures.go b/openstack/identity/v2/tokens/testing/fixtures.go
similarity index 86%
rename from openstack/identity/v2/tokens/fixtures.go
rename to openstack/identity/v2/tokens/testing/fixtures.go
index 85a9571..d3a8f24 100644
--- a/openstack/identity/v2/tokens/fixtures.go
+++ b/openstack/identity/v2/tokens/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package tokens
+package testing
import (
"fmt"
@@ -9,12 +7,13 @@
"time"
"github.com/gophercloud/gophercloud/openstack/identity/v2/tenants"
+ "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens"
th "github.com/gophercloud/gophercloud/testhelper"
thclient "github.com/gophercloud/gophercloud/testhelper/client"
)
// ExpectedToken is the token that should be parsed from TokenCreationResponse.
-var ExpectedToken = &Token{
+var ExpectedToken = &tokens.Token{
ID: "aaaabbbbccccdddd",
ExpiresAt: time.Date(2014, time.January, 31, 15, 30, 58, 0, time.UTC),
Tenant: tenants.Tenant{
@@ -26,27 +25,27 @@
}
// ExpectedServiceCatalog is the service catalog that should be parsed from TokenCreationResponse.
-var ExpectedServiceCatalog = &ServiceCatalog{
- Entries: []CatalogEntry{
- CatalogEntry{
+var ExpectedServiceCatalog = &tokens.ServiceCatalog{
+ Entries: []tokens.CatalogEntry{
+ {
Name: "inscrutablewalrus",
Type: "something",
- Endpoints: []Endpoint{
- Endpoint{
+ Endpoints: []tokens.Endpoint{
+ {
PublicURL: "http://something0:1234/v2/",
Region: "region0",
},
- Endpoint{
+ {
PublicURL: "http://something1:1234/v2/",
Region: "region1",
},
},
},
- CatalogEntry{
+ {
Name: "arbitrarypenguin",
Type: "else",
- Endpoints: []Endpoint{
- Endpoint{
+ Endpoints: []tokens.Endpoint{
+ {
PublicURL: "http://else0:4321/v3/",
Region: "region0",
},
@@ -56,10 +55,10 @@
}
// ExpectedUser is the token that should be parsed from TokenGetResponse.
-var ExpectedUser = &User{
+var ExpectedUser = &tokens.User{
ID: "a530fefc3d594c4ba2693a4ecd6be74e",
Name: "apiserver",
- Roles: []Role{{"member"}, {"service"}},
+ Roles: []tokens.Role{{"member"}, {"service"}},
UserName: "apiserver",
}
@@ -123,19 +122,19 @@
"name": "test"
}
},
- "serviceCatalog": [],
+ "serviceCatalog": [],
"user": {
- "id": "a530fefc3d594c4ba2693a4ecd6be74e",
- "name": "apiserver",
+ "id": "a530fefc3d594c4ba2693a4ecd6be74e",
+ "name": "apiserver",
"roles": [
{
"name": "member"
- },
+ },
{
"name": "service"
}
- ],
- "roles_links": [],
+ ],
+ "roles_links": [],
"username": "apiserver"
}
}
@@ -172,7 +171,7 @@
// IsSuccessful ensures that a CreateResult was successful and contains the correct token and
// service catalog.
-func IsSuccessful(t *testing.T, result CreateResult) {
+func IsSuccessful(t *testing.T, result tokens.CreateResult) {
token, err := result.ExtractToken()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedToken, token)
@@ -184,7 +183,7 @@
// GetIsSuccessful ensures that a GetResult was successful and contains the correct token and
// User Info.
-func GetIsSuccessful(t *testing.T, result GetResult) {
+func GetIsSuccessful(t *testing.T, result tokens.GetResult) {
token, err := result.ExtractToken()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedToken, token)
diff --git a/openstack/identity/v2/tokens/requests_test.go b/openstack/identity/v2/tokens/testing/requests_test.go
similarity index 84%
rename from openstack/identity/v2/tokens/requests_test.go
rename to openstack/identity/v2/tokens/testing/requests_test.go
index a6d16f3..b687a92 100644
--- a/openstack/identity/v2/tokens/requests_test.go
+++ b/openstack/identity/v2/tokens/testing/requests_test.go
@@ -1,19 +1,20 @@
-package tokens
+package testing
import (
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
)
-func tokenPost(t *testing.T, options gophercloud.AuthOptions, requestJSON string) CreateResult {
+func tokenPost(t *testing.T, options gophercloud.AuthOptions, requestJSON string) tokens.CreateResult {
th.SetupHTTP()
defer th.TeardownHTTP()
HandleTokenPost(t, requestJSON)
- return Create(client.ServiceClient(), options)
+ return tokens.Create(client.ServiceClient(), options)
}
func tokenPostErr(t *testing.T, options gophercloud.AuthOptions, expectedErr error) {
@@ -21,7 +22,7 @@
defer th.TeardownHTTP()
HandleTokenPost(t, "")
- actualErr := Create(client.ServiceClient(), options).Err
+ actualErr := tokens.Create(client.ServiceClient(), options).Err
th.CheckDeepEquals(t, expectedErr, actualErr)
}
@@ -91,11 +92,11 @@
tokenPostErr(t, options, gophercloud.ErrMissingInput{Argument: "Username"})
}
-func tokenGet(t *testing.T, tokenId string) GetResult {
+func tokenGet(t *testing.T, tokenId string) tokens.GetResult {
th.SetupHTTP()
defer th.TeardownHTTP()
HandleTokenGet(t, tokenId)
- return Get(client.ServiceClient(), tokenId)
+ return tokens.Get(client.ServiceClient(), tokenId)
}
func TestGetWithToken(t *testing.T) {
diff --git a/openstack/identity/v2/users/testing/doc.go b/openstack/identity/v2/users/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/identity/v2/users/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/identity/v2/users/fixtures.go b/openstack/identity/v2/users/testing/fixtures.go
similarity index 98%
rename from openstack/identity/v2/users/fixtures.go
rename to openstack/identity/v2/users/testing/fixtures.go
index 7b0bc4c..c1c3b89 100644
--- a/openstack/identity/v2/users/fixtures.go
+++ b/openstack/identity/v2/users/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package users
+package testing
import (
"fmt"
diff --git a/openstack/identity/v2/users/requests_test.go b/openstack/identity/v2/users/testing/requests_test.go
similarity index 71%
rename from openstack/identity/v2/users/requests_test.go
rename to openstack/identity/v2/users/testing/requests_test.go
index 0e6da37..3cb047e 100644
--- a/openstack/identity/v2/users/requests_test.go
+++ b/openstack/identity/v2/users/testing/requests_test.go
@@ -1,9 +1,10 @@
-package users
+package testing
import (
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/identity/v2/users"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -17,13 +18,13 @@
count := 0
- err := List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := users.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractUsers(page)
+ actual, err := users.ExtractUsers(page)
th.AssertNoErr(t, err)
- expected := []User{
- User{
+ expected := []users.User{
+ {
ID: "u1000",
Name: "John Smith",
Username: "jqsmith",
@@ -31,7 +32,7 @@
Enabled: true,
TenantID: "12345",
},
- User{
+ {
ID: "u1001",
Name: "Jane Smith",
Username: "jqsmith",
@@ -53,18 +54,18 @@
mockCreateUserResponse(t)
- opts := CreateOpts{
+ opts := users.CreateOpts{
Name: "new_user",
TenantID: "12345",
Enabled: gophercloud.Disabled,
Email: "new_user@foo.com",
}
- user, err := Create(client.ServiceClient(), opts).Extract()
+ user, err := users.Create(client.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
- expected := &User{
+ expected := &users.User{
Name: "new_user",
ID: "c39e3de9be2d4c779f1dfd6abacc176d",
Email: "new_user@foo.com",
@@ -81,10 +82,10 @@
mockGetUserResponse(t)
- user, err := Get(client.ServiceClient(), "new_user").Extract()
+ user, err := users.Get(client.ServiceClient(), "new_user").Extract()
th.AssertNoErr(t, err)
- expected := &User{
+ expected := &users.User{
Name: "new_user",
ID: "c39e3de9be2d4c779f1dfd6abacc176d",
Email: "new_user@foo.com",
@@ -102,17 +103,17 @@
mockUpdateUserResponse(t)
id := "c39e3de9be2d4c779f1dfd6abacc176d"
- opts := UpdateOpts{
+ opts := users.UpdateOpts{
Name: "new_name",
Enabled: gophercloud.Enabled,
Email: "new_email@foo.com",
}
- user, err := Update(client.ServiceClient(), id, opts).Extract()
+ user, err := users.Update(client.ServiceClient(), id, opts).Extract()
th.AssertNoErr(t, err)
- expected := &User{
+ expected := &users.User{
Name: "new_name",
ID: id,
Email: "new_email@foo.com",
@@ -129,7 +130,7 @@
mockDeleteUserResponse(t)
- res := Delete(client.ServiceClient(), "c39e3de9be2d4c779f1dfd6abacc176d")
+ res := users.Delete(client.ServiceClient(), "c39e3de9be2d4c779f1dfd6abacc176d")
th.AssertNoErr(t, res.Err)
}
@@ -142,13 +143,13 @@
tenantID := "1d8b6120dcc640fda4fc9194ffc80273"
userID := "c39e3de9be2d4c779f1dfd6abacc176d"
- err := ListRoles(client.ServiceClient(), tenantID, userID).EachPage(func(page pagination.Page) (bool, error) {
- actual, err := ExtractRoles(page)
+ err := users.ListRoles(client.ServiceClient(), tenantID, userID).EachPage(func(page pagination.Page) (bool, error) {
+ actual, err := users.ExtractRoles(page)
th.AssertNoErr(t, err)
- expected := []Role{
- Role{ID: "9fe2ff9ee4384b1894a90878d3e92bab", Name: "foo_role"},
- Role{ID: "1ea3d56793574b668e85960fbf651e13", Name: "admin"},
+ expected := []users.Role{
+ {ID: "9fe2ff9ee4384b1894a90878d3e92bab", Name: "foo_role"},
+ {ID: "1ea3d56793574b668e85960fbf651e13", Name: "admin"},
}
th.CheckDeepEquals(t, expected, actual)
diff --git a/openstack/identity/v3/endpoints/testing/doc.go b/openstack/identity/v3/endpoints/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/identity/v3/endpoints/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/identity/v3/endpoints/requests_test.go b/openstack/identity/v3/endpoints/testing/requests_test.go
similarity index 88%
rename from openstack/identity/v3/endpoints/requests_test.go
rename to openstack/identity/v3/endpoints/testing/requests_test.go
index 14bbe6a..53d8488 100644
--- a/openstack/identity/v3/endpoints/requests_test.go
+++ b/openstack/identity/v3/endpoints/testing/requests_test.go
@@ -1,4 +1,4 @@
-package endpoints
+package testing
import (
"fmt"
@@ -6,6 +6,7 @@
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/identity/v3/endpoints"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -48,7 +49,7 @@
`)
})
- actual, err := Create(client.ServiceClient(), CreateOpts{
+ actual, err := endpoints.Create(client.ServiceClient(), endpoints.CreateOpts{
Availability: gophercloud.AvailabilityPublic,
Name: "the-endiest-of-points",
Region: "underground",
@@ -57,7 +58,7 @@
}).Extract()
th.AssertNoErr(t, err)
- expected := &Endpoint{
+ expected := &endpoints.Endpoint{
ID: "12",
Availability: gophercloud.AvailabilityPublic,
Name: "the-endiest-of-points",
@@ -113,16 +114,16 @@
})
count := 0
- List(client.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ endpoints.List(client.ServiceClient(), endpoints.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractEndpoints(page)
+ actual, err := endpoints.ExtractEndpoints(page)
if err != nil {
t.Errorf("Failed to extract endpoints: %v", err)
return false, err
}
- expected := []Endpoint{
- Endpoint{
+ expected := []endpoints.Endpoint{
+ {
ID: "12",
Availability: gophercloud.AvailabilityPublic,
Name: "the-endiest-of-points",
@@ -130,7 +131,7 @@
ServiceID: "asdfasdfasdfasdf",
URL: "https://1.2.3.4:9000/",
},
- Endpoint{
+ {
ID: "13",
Availability: gophercloud.AvailabilityInternal,
Name: "shhhh",
@@ -178,7 +179,7 @@
`)
})
- actual, err := Update(client.ServiceClient(), "12", UpdateOpts{
+ actual, err := endpoints.Update(client.ServiceClient(), "12", endpoints.UpdateOpts{
Name: "renamed",
Region: "somewhere-else",
}).Extract()
@@ -186,7 +187,7 @@
t.Fatalf("Unexpected error from Update: %v", err)
}
- expected := &Endpoint{
+ expected := &endpoints.Endpoint{
ID: "12",
Availability: gophercloud.AvailabilityPublic,
Name: "renamed",
@@ -208,6 +209,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(client.ServiceClient(), "34")
+ res := endpoints.Delete(client.ServiceClient(), "34")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/identity/v3/roles/testing/doc.go b/openstack/identity/v3/roles/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/identity/v3/roles/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/identity/v3/roles/requests_test.go b/openstack/identity/v3/roles/testing/requests_test.go
similarity index 79%
rename from openstack/identity/v3/roles/requests_test.go
rename to openstack/identity/v3/roles/testing/requests_test.go
index ec6531c..dd9b704 100644
--- a/openstack/identity/v3/roles/requests_test.go
+++ b/openstack/identity/v3/roles/testing/requests_test.go
@@ -1,4 +1,4 @@
-package roles
+package testing
import (
"fmt"
@@ -6,6 +6,7 @@
"reflect"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/identity/v3/roles"
"github.com/gophercloud/gophercloud/pagination"
"github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -67,25 +68,25 @@
})
count := 0
- err := ListAssignments(client.ServiceClient(), ListAssignmentsOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ err := roles.ListAssignments(client.ServiceClient(), roles.ListAssignmentsOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractRoleAssignments(page)
+ actual, err := roles.ExtractRoleAssignments(page)
if err != nil {
return false, err
}
- expected := []RoleAssignment{
- RoleAssignment{
- Role: Role{ID: "123456"},
- Scope: Scope{Domain: Domain{ID: "161718"}},
- User: User{ID: "313233"},
- Group: Group{},
+ expected := []roles.RoleAssignment{
+ {
+ Role: roles.Role{ID: "123456"},
+ Scope: roles.Scope{Domain: roles.Domain{ID: "161718"}},
+ User: roles.User{ID: "313233"},
+ Group: roles.Group{},
},
- RoleAssignment{
- Role: Role{ID: "123456"},
- Scope: Scope{Project: Project{ID: "456789"}},
- User: User{ID: "313233"},
- Group: Group{},
+ {
+ Role: roles.Role{ID: "123456"},
+ Scope: roles.Scope{Project: roles.Project{ID: "456789"}},
+ User: roles.User{ID: "313233"},
+ Group: roles.Group{},
},
}
diff --git a/openstack/identity/v3/services/testing/doc.go b/openstack/identity/v3/services/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/identity/v3/services/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/identity/v3/services/requests_test.go b/openstack/identity/v3/services/testing/requests_test.go
similarity index 84%
rename from openstack/identity/v3/services/requests_test.go
rename to openstack/identity/v3/services/testing/requests_test.go
index aa19bcc..0a065a2 100644
--- a/openstack/identity/v3/services/requests_test.go
+++ b/openstack/identity/v3/services/testing/requests_test.go
@@ -1,10 +1,11 @@
-package services
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/identity/v3/services"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
"github.com/gophercloud/gophercloud/testhelper/client"
@@ -31,14 +32,14 @@
}`)
})
- expected := &Service{
+ expected := &services.Service{
Description: "Here's your service",
ID: "1234",
Name: "InscrutableOpenStackProjectName",
Type: "compute",
}
- actual, err := Create(client.ServiceClient(), "compute").Extract()
+ actual, err := services.Create(client.ServiceClient(), "compute").Extract()
if err != nil {
t.Fatalf("Unexpected error from Create: %v", err)
}
@@ -79,21 +80,21 @@
})
count := 0
- err := List(client.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ err := services.List(client.ServiceClient(), services.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractServices(page)
+ actual, err := services.ExtractServices(page)
if err != nil {
return false, err
}
- expected := []Service{
- Service{
+ expected := []services.Service{
+ {
Description: "Service One",
ID: "1234",
Name: "service-one",
Type: "identity",
},
- Service{
+ {
Description: "Service Two",
ID: "9876",
Name: "service-two",
@@ -128,10 +129,10 @@
`)
})
- actual, err := Get(client.ServiceClient(), "12345").Extract()
+ actual, err := services.Get(client.ServiceClient(), "12345").Extract()
th.AssertNoErr(t, err)
- expected := &Service{
+ expected := &services.Service{
ID: "12345",
Description: "Service One",
Name: "service-one",
@@ -161,12 +162,12 @@
`)
})
- expected := &Service{
+ expected := &services.Service{
ID: "12345",
Type: "lasermagic",
}
- actual, err := Update(client.ServiceClient(), "12345", "lasermagic").Extract()
+ actual, err := services.Update(client.ServiceClient(), "12345", "lasermagic").Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, expected, actual)
}
@@ -181,6 +182,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(client.ServiceClient(), "12345")
+ res := services.Delete(client.ServiceClient(), "12345")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/identity/v3/tokens/testing/doc.go b/openstack/identity/v3/tokens/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/identity/v3/tokens/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/identity/v3/tokens/requests_test.go b/openstack/identity/v3/tokens/testing/requests_test.go
similarity index 66%
rename from openstack/identity/v3/tokens/requests_test.go
rename to openstack/identity/v3/tokens/testing/requests_test.go
index faa79e0..cbb675f 100644
--- a/openstack/identity/v3/tokens/requests_test.go
+++ b/openstack/identity/v3/tokens/testing/requests_test.go
@@ -1,4 +1,4 @@
-package tokens
+package testing
import (
"fmt"
@@ -7,11 +7,12 @@
"time"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens"
"github.com/gophercloud/gophercloud/testhelper"
)
// authTokenPost verifies that providing certain AuthOptions and Scope results in an expected JSON structure.
-func authTokenPost(t *testing.T, options AuthOptions, scope *Scope, requestJSON string) {
+func authTokenPost(t *testing.T, options tokens.AuthOptions, scope *tokens.Scope, requestJSON string) {
testhelper.SetupHTTP()
defer testhelper.TeardownHTTP()
@@ -34,13 +35,13 @@
}`)
})
- _, err := Create(&client, options, scope).Extract()
+ _, err := tokens.Create(&client, options, scope).Extract()
if err != nil {
t.Errorf("Create returned an error: %v", err)
}
}
-func authTokenPostErr(t *testing.T, options AuthOptions, scope *Scope, includeToken bool, expectedErr error) {
+func authTokenPostErr(t *testing.T, options tokens.AuthOptions, scope *tokens.Scope, includeToken bool, expectedErr error) {
testhelper.SetupHTTP()
defer testhelper.TeardownHTTP()
@@ -52,7 +53,7 @@
client.TokenID = "abcdef123456"
}
- _, err := Create(&client, options, scope).Extract()
+ _, err := tokens.Create(&client, options, scope).Extract()
if err == nil {
t.Errorf("Create did NOT return an error")
}
@@ -62,7 +63,7 @@
}
func TestCreateUserIDAndPassword(t *testing.T) {
- authTokenPost(t, AuthOptions{UserID: "me", Password: "squirrel!"}, nil, `
+ authTokenPost(t, tokens.AuthOptions{UserID: "me", Password: "squirrel!"}, nil, `
{
"auth": {
"identity": {
@@ -77,7 +78,7 @@
}
func TestCreateUsernameDomainIDPassword(t *testing.T) {
- authTokenPost(t, AuthOptions{Username: "fakey", Password: "notpassword", DomainID: "abc123"}, nil, `
+ authTokenPost(t, tokens.AuthOptions{Username: "fakey", Password: "notpassword", DomainID: "abc123"}, nil, `
{
"auth": {
"identity": {
@@ -98,7 +99,7 @@
}
func TestCreateUsernameDomainNamePassword(t *testing.T) {
- authTokenPost(t, AuthOptions{Username: "frank", Password: "swordfish", DomainName: "spork.net"}, nil, `
+ authTokenPost(t, tokens.AuthOptions{Username: "frank", Password: "swordfish", DomainName: "spork.net"}, nil, `
{
"auth": {
"identity": {
@@ -119,7 +120,7 @@
}
func TestCreateTokenID(t *testing.T) {
- authTokenPost(t, AuthOptions{TokenID: "12345abcdef"}, nil, `
+ authTokenPost(t, tokens.AuthOptions{TokenID: "12345abcdef"}, nil, `
{
"auth": {
"identity": {
@@ -134,8 +135,8 @@
}
func TestCreateProjectIDScope(t *testing.T) {
- options := AuthOptions{UserID: "fenris", Password: "g0t0h311"}
- scope := &Scope{ProjectID: "123456"}
+ options := tokens.AuthOptions{UserID: "fenris", Password: "g0t0h311"}
+ scope := &tokens.Scope{ProjectID: "123456"}
authTokenPost(t, options, scope, `
{
"auth": {
@@ -159,8 +160,8 @@
}
func TestCreateDomainIDScope(t *testing.T) {
- options := AuthOptions{UserID: "fenris", Password: "g0t0h311"}
- scope := &Scope{DomainID: "1000"}
+ options := tokens.AuthOptions{UserID: "fenris", Password: "g0t0h311"}
+ scope := &tokens.Scope{DomainID: "1000"}
authTokenPost(t, options, scope, `
{
"auth": {
@@ -184,8 +185,8 @@
}
func TestCreateProjectNameAndDomainIDScope(t *testing.T) {
- options := AuthOptions{UserID: "fenris", Password: "g0t0h311"}
- scope := &Scope{ProjectName: "world-domination", DomainID: "1000"}
+ options := tokens.AuthOptions{UserID: "fenris", Password: "g0t0h311"}
+ scope := &tokens.Scope{ProjectName: "world-domination", DomainID: "1000"}
authTokenPost(t, options, scope, `
{
"auth": {
@@ -212,8 +213,8 @@
}
func TestCreateProjectNameAndDomainNameScope(t *testing.T) {
- options := AuthOptions{UserID: "fenris", Password: "g0t0h311"}
- scope := &Scope{ProjectName: "world-domination", DomainName: "evil-plans"}
+ options := tokens.AuthOptions{UserID: "fenris", Password: "g0t0h311"}
+ scope := &tokens.Scope{ProjectName: "world-domination", DomainName: "evil-plans"}
authTokenPost(t, options, scope, `
{
"auth": {
@@ -259,8 +260,8 @@
}`)
})
- options := AuthOptions{UserID: "me", Password: "shhh"}
- token, err := Create(&client, options, nil).Extract()
+ options := tokens.AuthOptions{UserID: "me", Password: "shhh"}
+ token, err := tokens.Create(&client, options, nil).Extract()
if err != nil {
t.Fatalf("Create returned an error: %v", err)
}
@@ -271,123 +272,123 @@
}
func TestCreateFailureEmptyAuth(t *testing.T) {
- authTokenPostErr(t, AuthOptions{}, nil, false, ErrMissingPassword{})
+ authTokenPostErr(t, tokens.AuthOptions{}, nil, false, tokens.ErrMissingPassword{})
}
func TestCreateFailureTenantID(t *testing.T) {
- authTokenPostErr(t, AuthOptions{TenantID: "something"}, nil, false, ErrTenantIDProvided{})
+ authTokenPostErr(t, tokens.AuthOptions{TenantID: "something"}, nil, false, tokens.ErrTenantIDProvided{})
}
func TestCreateFailureTenantName(t *testing.T) {
- authTokenPostErr(t, AuthOptions{TenantName: "something"}, nil, false, ErrTenantNameProvided{})
+ authTokenPostErr(t, tokens.AuthOptions{TenantName: "something"}, nil, false, tokens.ErrTenantNameProvided{})
}
func TestCreateFailureTokenIDUsername(t *testing.T) {
- authTokenPostErr(t, AuthOptions{Username: "something", TokenID: "12345"}, nil, true, ErrUsernameWithToken{})
+ authTokenPostErr(t, tokens.AuthOptions{Username: "something", TokenID: "12345"}, nil, true, tokens.ErrUsernameWithToken{})
}
func TestCreateFailureTokenIDUserID(t *testing.T) {
- authTokenPostErr(t, AuthOptions{UserID: "something", TokenID: "12345"}, nil, true, ErrUserIDWithToken{})
+ authTokenPostErr(t, tokens.AuthOptions{UserID: "something", TokenID: "12345"}, nil, true, tokens.ErrUserIDWithToken{})
}
func TestCreateFailureTokenIDDomainID(t *testing.T) {
- authTokenPostErr(t, AuthOptions{DomainID: "something", TokenID: "12345"}, nil, true, ErrDomainIDWithToken{})
+ authTokenPostErr(t, tokens.AuthOptions{DomainID: "something", TokenID: "12345"}, nil, true, tokens.ErrDomainIDWithToken{})
}
func TestCreateFailureTokenIDDomainName(t *testing.T) {
- authTokenPostErr(t, AuthOptions{DomainName: "something", TokenID: "12345"}, nil, true, ErrDomainNameWithToken{})
+ authTokenPostErr(t, tokens.AuthOptions{DomainName: "something", TokenID: "12345"}, nil, true, tokens.ErrDomainNameWithToken{})
}
func TestCreateFailureMissingUser(t *testing.T) {
- options := AuthOptions{Password: "supersecure"}
- authTokenPostErr(t, options, nil, false, ErrUsernameOrUserID{})
+ options := tokens.AuthOptions{Password: "supersecure"}
+ authTokenPostErr(t, options, nil, false, tokens.ErrUsernameOrUserID{})
}
func TestCreateFailureBothUser(t *testing.T) {
- options := AuthOptions{
+ options := tokens.AuthOptions{
Password: "supersecure",
Username: "oops",
UserID: "redundancy",
}
- authTokenPostErr(t, options, nil, false, ErrUsernameOrUserID{})
+ authTokenPostErr(t, options, nil, false, tokens.ErrUsernameOrUserID{})
}
func TestCreateFailureMissingDomain(t *testing.T) {
- options := AuthOptions{
+ options := tokens.AuthOptions{
Password: "supersecure",
Username: "notuniqueenough",
}
- authTokenPostErr(t, options, nil, false, ErrDomainIDOrDomainName{})
+ authTokenPostErr(t, options, nil, false, tokens.ErrDomainIDOrDomainName{})
}
func TestCreateFailureBothDomain(t *testing.T) {
- options := AuthOptions{
+ options := tokens.AuthOptions{
Password: "supersecure",
Username: "someone",
DomainID: "hurf",
DomainName: "durf",
}
- authTokenPostErr(t, options, nil, false, ErrDomainIDOrDomainName{})
+ authTokenPostErr(t, options, nil, false, tokens.ErrDomainIDOrDomainName{})
}
func TestCreateFailureUserIDDomainID(t *testing.T) {
- options := AuthOptions{
+ options := tokens.AuthOptions{
UserID: "100",
Password: "stuff",
DomainID: "oops",
}
- authTokenPostErr(t, options, nil, false, ErrDomainIDWithUserID{})
+ authTokenPostErr(t, options, nil, false, tokens.ErrDomainIDWithUserID{})
}
func TestCreateFailureUserIDDomainName(t *testing.T) {
- options := AuthOptions{
+ options := tokens.AuthOptions{
UserID: "100",
Password: "sssh",
DomainName: "oops",
}
- authTokenPostErr(t, options, nil, false, ErrDomainNameWithUserID{})
+ authTokenPostErr(t, options, nil, false, tokens.ErrDomainNameWithUserID{})
}
func TestCreateFailureScopeProjectNameAlone(t *testing.T) {
- options := AuthOptions{UserID: "myself", Password: "swordfish"}
- scope := &Scope{ProjectName: "notenough"}
- authTokenPostErr(t, options, scope, false, ErrScopeDomainIDOrDomainName{})
+ options := tokens.AuthOptions{UserID: "myself", Password: "swordfish"}
+ scope := &tokens.Scope{ProjectName: "notenough"}
+ authTokenPostErr(t, options, scope, false, tokens.ErrScopeDomainIDOrDomainName{})
}
func TestCreateFailureScopeProjectNameAndID(t *testing.T) {
- options := AuthOptions{UserID: "myself", Password: "swordfish"}
- scope := &Scope{ProjectName: "whoops", ProjectID: "toomuch", DomainID: "1234"}
- authTokenPostErr(t, options, scope, false, ErrScopeProjectIDOrProjectName{})
+ options := tokens.AuthOptions{UserID: "myself", Password: "swordfish"}
+ scope := &tokens.Scope{ProjectName: "whoops", ProjectID: "toomuch", DomainID: "1234"}
+ authTokenPostErr(t, options, scope, false, tokens.ErrScopeProjectIDOrProjectName{})
}
func TestCreateFailureScopeProjectIDAndDomainID(t *testing.T) {
- options := AuthOptions{UserID: "myself", Password: "swordfish"}
- scope := &Scope{ProjectID: "toomuch", DomainID: "notneeded"}
- authTokenPostErr(t, options, scope, false, ErrScopeProjectIDAlone{})
+ options := tokens.AuthOptions{UserID: "myself", Password: "swordfish"}
+ scope := &tokens.Scope{ProjectID: "toomuch", DomainID: "notneeded"}
+ authTokenPostErr(t, options, scope, false, tokens.ErrScopeProjectIDAlone{})
}
func TestCreateFailureScopeProjectIDAndDomainNAme(t *testing.T) {
- options := AuthOptions{UserID: "myself", Password: "swordfish"}
- scope := &Scope{ProjectID: "toomuch", DomainName: "notneeded"}
- authTokenPostErr(t, options, scope, false, ErrScopeProjectIDAlone{})
+ options := tokens.AuthOptions{UserID: "myself", Password: "swordfish"}
+ scope := &tokens.Scope{ProjectID: "toomuch", DomainName: "notneeded"}
+ authTokenPostErr(t, options, scope, false, tokens.ErrScopeProjectIDAlone{})
}
func TestCreateFailureScopeDomainIDAndDomainName(t *testing.T) {
- options := AuthOptions{UserID: "myself", Password: "swordfish"}
- scope := &Scope{DomainID: "toomuch", DomainName: "notneeded"}
- authTokenPostErr(t, options, scope, false, ErrScopeDomainIDOrDomainName{})
+ options := tokens.AuthOptions{UserID: "myself", Password: "swordfish"}
+ scope := &tokens.Scope{DomainID: "toomuch", DomainName: "notneeded"}
+ authTokenPostErr(t, options, scope, false, tokens.ErrScopeDomainIDOrDomainName{})
}
func TestCreateFailureScopeDomainNameAlone(t *testing.T) {
- options := AuthOptions{UserID: "myself", Password: "swordfish"}
- scope := &Scope{DomainName: "notenough"}
- authTokenPostErr(t, options, scope, false, ErrScopeDomainName{})
+ options := tokens.AuthOptions{UserID: "myself", Password: "swordfish"}
+ scope := &tokens.Scope{DomainName: "notenough"}
+ authTokenPostErr(t, options, scope, false, tokens.ErrScopeDomainName{})
}
func TestCreateFailureEmptyScope(t *testing.T) {
- options := AuthOptions{UserID: "myself", Password: "swordfish"}
- scope := &Scope{}
- authTokenPostErr(t, options, scope, false, ErrScopeEmpty{})
+ options := tokens.AuthOptions{UserID: "myself", Password: "swordfish"}
+ scope := &tokens.Scope{}
+ authTokenPostErr(t, options, scope, false, tokens.ErrScopeEmpty{})
}
func TestGetRequest(t *testing.T) {
@@ -414,7 +415,7 @@
`)
})
- token, err := Get(&client, "abcdef12345").Extract()
+ token, err := tokens.Get(&client, "abcdef12345").Extract()
if err != nil {
t.Errorf("Info returned an error: %v", err)
}
@@ -451,7 +452,7 @@
defer testhelper.TeardownHTTP()
client := prepareAuthTokenHandler(t, "HEAD", http.StatusNoContent)
- ok, err := Validate(&client, "abcdef12345")
+ ok, err := tokens.Validate(&client, "abcdef12345")
if err != nil {
t.Errorf("Unexpected error from Validate: %v", err)
}
@@ -466,7 +467,7 @@
defer testhelper.TeardownHTTP()
client := prepareAuthTokenHandler(t, "HEAD", http.StatusNotFound)
- ok, err := Validate(&client, "abcdef12345")
+ ok, err := tokens.Validate(&client, "abcdef12345")
if err != nil {
t.Errorf("Unexpected error from Validate: %v", err)
}
@@ -481,7 +482,7 @@
defer testhelper.TeardownHTTP()
client := prepareAuthTokenHandler(t, "HEAD", http.StatusUnauthorized)
- _, err := Validate(&client, "abcdef12345")
+ _, err := tokens.Validate(&client, "abcdef12345")
if err == nil {
t.Errorf("Missing expected error from Validate")
}
@@ -492,7 +493,7 @@
defer testhelper.TeardownHTTP()
client := prepareAuthTokenHandler(t, "DELETE", http.StatusNoContent)
- res := Revoke(&client, "abcdef12345")
+ res := tokens.Revoke(&client, "abcdef12345")
testhelper.AssertNoErr(t, res.Err)
}
@@ -501,7 +502,7 @@
defer testhelper.TeardownHTTP()
client := prepareAuthTokenHandler(t, "DELETE", http.StatusNotFound)
- res := Revoke(&client, "abcdef12345")
+ res := tokens.Revoke(&client, "abcdef12345")
if res.Err == nil {
t.Errorf("Missing expected error from Revoke")
}
diff --git a/openstack/networking/v2/apiversions/errors.go b/openstack/networking/v2/apiversions/errors.go
deleted file mode 100644
index 76bdb14..0000000
--- a/openstack/networking/v2/apiversions/errors.go
+++ /dev/null
@@ -1 +0,0 @@
-package apiversions
diff --git a/openstack/networking/v2/apiversions/testing/doc.go b/openstack/networking/v2/apiversions/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/apiversions/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/apiversions/requests_test.go b/openstack/networking/v2/apiversions/testing/requests_test.go
similarity index 78%
rename from openstack/networking/v2/apiversions/requests_test.go
rename to openstack/networking/v2/apiversions/testing/requests_test.go
index 375bfa6..5a66a2a 100644
--- a/openstack/networking/v2/apiversions/requests_test.go
+++ b/openstack/networking/v2/apiversions/testing/requests_test.go
@@ -1,10 +1,11 @@
-package apiversions
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/apiversions"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -40,16 +41,16 @@
count := 0
- ListVersions(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ apiversions.ListVersions(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractAPIVersions(page)
+ actual, err := apiversions.ExtractAPIVersions(page)
if err != nil {
t.Errorf("Failed to extract API versions: %v", err)
return false, err
}
- expected := []APIVersion{
- APIVersion{
+ expected := []apiversions.APIVersion{
+ {
Status: "CURRENT",
ID: "v2.0",
},
@@ -73,8 +74,8 @@
w.WriteHeader(http.StatusOK)
})
- ListVersions(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
- if _, err := ExtractAPIVersions(page); err == nil {
+ apiversions.ListVersions(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ if _, err := apiversions.ExtractAPIVersions(page); err == nil {
t.Fatalf("Expected error, got nil")
}
return true, nil
@@ -132,24 +133,24 @@
count := 0
- ListVersionResources(fake.ServiceClient(), "v2.0").EachPage(func(page pagination.Page) (bool, error) {
+ apiversions.ListVersionResources(fake.ServiceClient(), "v2.0").EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractVersionResources(page)
+ actual, err := apiversions.ExtractVersionResources(page)
if err != nil {
t.Errorf("Failed to extract version resources: %v", err)
return false, err
}
- expected := []APIVersionResource{
- APIVersionResource{
+ expected := []apiversions.APIVersionResource{
+ {
Name: "subnet",
Collection: "subnets",
},
- APIVersionResource{
+ {
Name: "network",
Collection: "networks",
},
- APIVersionResource{
+ {
Name: "port",
Collection: "ports",
},
@@ -173,8 +174,8 @@
w.WriteHeader(http.StatusOK)
})
- ListVersionResources(fake.ServiceClient(), "v2.0").EachPage(func(page pagination.Page) (bool, error) {
- if _, err := ExtractVersionResources(page); err == nil {
+ apiversions.ListVersionResources(fake.ServiceClient(), "v2.0").EachPage(func(page pagination.Page) (bool, error) {
+ if _, err := apiversions.ExtractVersionResources(page); err == nil {
t.Fatalf("Expected error, got nil")
}
return true, nil
diff --git a/openstack/networking/v2/extensions/external/testing/doc.go b/openstack/networking/v2/extensions/external/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/external/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/external/results_test.go b/openstack/networking/v2/extensions/external/testing/results_test.go
similarity index 89%
rename from openstack/networking/v2/extensions/external/results_test.go
rename to openstack/networking/v2/extensions/external/testing/results_test.go
index c5d72e9..2ddc3ac 100644
--- a/openstack/networking/v2/extensions/external/results_test.go
+++ b/openstack/networking/v2/extensions/external/testing/results_test.go
@@ -1,4 +1,4 @@
-package external
+package testing
import (
"errors"
@@ -7,6 +7,7 @@
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/external"
"github.com/gophercloud/gophercloud/openstack/networking/v2/networks"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
@@ -60,14 +61,14 @@
networks.List(fake.ServiceClient(), networks.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractList(page)
+ actual, err := external.ExtractList(page)
if err != nil {
t.Errorf("Failed to extract networks: %v", err)
return false, err
}
- expected := []NetworkExternal{
- NetworkExternal{
+ expected := []external.NetworkExternal{
+ {
Status: "ACTIVE",
Subnets: []string{"25778974-48a8-46e7-8998-9dc8c70d2f06"},
Name: "net1",
@@ -77,7 +78,7 @@
ID: "0f38d5ad-10a6-428f-a5fc-825cfe0f1970",
External: false,
},
- NetworkExternal{
+ {
Status: "ACTIVE",
Subnets: []string{"2f1fb918-9b0e-4bf9-9a50-6cebbb4db2c5"},
Name: "ext_net",
@@ -129,7 +130,7 @@
})
res := networks.Get(fake.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22")
- n, err := ExtractGet(res)
+ n, err := external.ExtractGet(res)
th.AssertNoErr(t, err)
th.AssertEquals(t, true, n.External)
@@ -175,10 +176,10 @@
`)
})
- options := CreateOpts{networks.CreateOpts{Name: "ext_net", AdminStateUp: gophercloud.Enabled}, gophercloud.Enabled}
+ options := external.CreateOpts{networks.CreateOpts{Name: "ext_net", AdminStateUp: gophercloud.Enabled}, gophercloud.Enabled}
res := networks.Create(fake.ServiceClient(), options)
- n, err := ExtractCreate(res)
+ n, err := external.ExtractCreate(res)
th.AssertNoErr(t, err)
th.AssertEquals(t, true, n.External)
@@ -223,9 +224,9 @@
`)
})
- options := UpdateOpts{networks.UpdateOpts{Name: "new_name"}, gophercloud.Enabled}
+ options := external.UpdateOpts{networks.UpdateOpts{Name: "new_name"}, gophercloud.Enabled}
res := networks.Update(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", options)
- n, err := ExtractUpdate(res)
+ n, err := external.ExtractUpdate(res)
th.AssertNoErr(t, err)
th.AssertEquals(t, true, n.External)
@@ -235,21 +236,21 @@
gr := networks.GetResult{}
gr.Err = errors.New("")
- if _, err := ExtractGet(gr); err == nil {
+ if _, err := external.ExtractGet(gr); err == nil {
t.Fatalf("Expected error, got one")
}
ur := networks.UpdateResult{}
ur.Err = errors.New("")
- if _, err := ExtractUpdate(ur); err == nil {
+ if _, err := external.ExtractUpdate(ur); err == nil {
t.Fatalf("Expected error, got one")
}
cr := networks.CreateResult{}
cr.Err = errors.New("")
- if _, err := ExtractCreate(cr); err == nil {
+ if _, err := external.ExtractCreate(cr); err == nil {
t.Fatalf("Expected error, got one")
}
}
diff --git a/openstack/networking/v2/extensions/fwaas/firewalls/testing/doc.go b/openstack/networking/v2/extensions/fwaas/firewalls/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/fwaas/firewalls/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/fwaas/firewalls/requests_test.go b/openstack/networking/v2/extensions/fwaas/firewalls/testing/requests_test.go
similarity index 89%
rename from openstack/networking/v2/extensions/fwaas/firewalls/requests_test.go
rename to openstack/networking/v2/extensions/fwaas/firewalls/testing/requests_test.go
index 29a7832..01ab732 100644
--- a/openstack/networking/v2/extensions/fwaas/firewalls/requests_test.go
+++ b/openstack/networking/v2/extensions/fwaas/firewalls/testing/requests_test.go
@@ -1,4 +1,4 @@
-package firewalls
+package testing
import (
"fmt"
@@ -7,17 +7,11 @@
"github.com/gophercloud/gophercloud"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/firewalls"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
-func TestURLs(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- th.AssertEquals(t, th.Endpoint()+"v2.0/fw/firewalls", rootURL(fake.ServiceClient()))
-}
-
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
@@ -57,16 +51,16 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ firewalls.List(fake.ServiceClient(), firewalls.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractFirewalls(page)
+ actual, err := firewalls.ExtractFirewalls(page)
if err != nil {
t.Errorf("Failed to extract members: %v", err)
return false, err
}
- expected := []Firewall{
- Firewall{
+ expected := []firewalls.Firewall{
+ {
Status: "ACTIVE",
Name: "fw1",
AdminStateUp: false,
@@ -75,7 +69,7 @@
ID: "fb5b5315-64f6-4ea3-8e58-981cc37c6f61",
Description: "OpenStack firewall 1",
},
- Firewall{
+ {
Status: "PENDING_UPDATE",
Name: "fw2",
AdminStateUp: true,
@@ -134,14 +128,14 @@
`)
})
- options := CreateOpts{
+ options := firewalls.CreateOpts{
TenantID: "b4eedccc6fb74fa8a7ad6b08382b852b",
Name: "fw",
Description: "OpenStack firewall",
AdminStateUp: gophercloud.Enabled,
PolicyID: "19ab8c87-4a32-4e6a-a74e-b77fffb89a0c",
}
- _, err := Create(fake.ServiceClient(), options).Extract()
+ _, err := firewalls.Create(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
}
@@ -171,7 +165,7 @@
`)
})
- fw, err := Get(fake.ServiceClient(), "fb5b5315-64f6-4ea3-8e58-981cc37c6f61").Extract()
+ fw, err := firewalls.Get(fake.ServiceClient(), "fb5b5315-64f6-4ea3-8e58-981cc37c6f61").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "ACTIVE", fw.Status)
@@ -221,14 +215,14 @@
`)
})
- options := UpdateOpts{
+ options := firewalls.UpdateOpts{
Name: "fw",
Description: "updated fw",
AdminStateUp: gophercloud.Disabled,
PolicyID: "19ab8c87-4a32-4e6a-a74e-b77fffb89a0c",
}
- _, err := Update(fake.ServiceClient(), "ea5b5315-64f6-4ea3-8e58-981cc37c6576", options).Extract()
+ _, err := firewalls.Update(fake.ServiceClient(), "ea5b5315-64f6-4ea3-8e58-981cc37c6576", options).Extract()
th.AssertNoErr(t, err)
}
@@ -242,6 +236,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304")
+ res := firewalls.Delete(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/extensions/fwaas/policies/testing/doc.go b/openstack/networking/v2/extensions/fwaas/policies/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/fwaas/policies/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/fwaas/policies/requests_test.go b/openstack/networking/v2/extensions/fwaas/policies/testing/requests_test.go
similarity index 90%
rename from openstack/networking/v2/extensions/fwaas/policies/requests_test.go
rename to openstack/networking/v2/extensions/fwaas/policies/testing/requests_test.go
index 23d6a66..11b9848 100644
--- a/openstack/networking/v2/extensions/fwaas/policies/requests_test.go
+++ b/openstack/networking/v2/extensions/fwaas/policies/testing/requests_test.go
@@ -1,4 +1,4 @@
-package policies
+package testing
import (
"fmt"
@@ -7,17 +7,11 @@
"github.com/gophercloud/gophercloud"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/policies"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
-func TestURLs(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- th.AssertEquals(t, th.Endpoint()+"v2.0/fw/firewall_policies", rootURL(fake.ServiceClient()))
-}
-
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
@@ -62,16 +56,16 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ policies.List(fake.ServiceClient(), policies.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractPolicies(page)
+ actual, err := policies.ExtractPolicies(page)
if err != nil {
t.Errorf("Failed to extract members: %v", err)
return false, err
}
- expected := []Policy{
- Policy{
+ expected := []policies.Policy{
+ {
Name: "policy1",
Rules: []string{
"75452b36-268e-4e75-aaf4-f0e7ed50bc97",
@@ -83,7 +77,7 @@
ID: "f2b08c1e-aa81-4668-8ae1-1401bcb0576c",
Description: "Firewall policy 1",
},
- Policy{
+ {
Name: "policy2",
Rules: []string{
"03d2a6ad-633f-431a-8463-4370d06a22c8",
@@ -151,7 +145,7 @@
`)
})
- options := CreateOpts{
+ options := policies.CreateOpts{
TenantID: "9145d91459d248b1b02fdaca97c6a75d",
Name: "policy",
Description: "Firewall policy",
@@ -163,7 +157,7 @@
},
}
- _, err := Create(fake.ServiceClient(), options).Extract()
+ _, err := policies.Create(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
}
@@ -196,7 +190,7 @@
`)
})
- policy, err := Get(fake.ServiceClient(), "bcab5315-64f6-4ea3-8e58-981cc37c6f61").Extract()
+ policy, err := policies.Get(fake.ServiceClient(), "bcab5315-64f6-4ea3-8e58-981cc37c6f61").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "www", policy.Name)
@@ -252,7 +246,7 @@
`)
})
- options := UpdateOpts{
+ options := policies.UpdateOpts{
Name: "policy",
Description: "Firewall policy",
Rules: []string{
@@ -261,7 +255,7 @@
},
}
- _, err := Update(fake.ServiceClient(), "f2b08c1e-aa81-4668-8ae1-1401bcb0576c", options).Extract()
+ _, err := policies.Update(fake.ServiceClient(), "f2b08c1e-aa81-4668-8ae1-1401bcb0576c", options).Extract()
th.AssertNoErr(t, err)
}
@@ -275,6 +269,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "4ec89077-d057-4a2b-911f-60a3b47ee304")
+ res := policies.Delete(fake.ServiceClient(), "4ec89077-d057-4a2b-911f-60a3b47ee304")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/extensions/fwaas/rules/testing/doc.go b/openstack/networking/v2/extensions/fwaas/rules/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/fwaas/rules/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/fwaas/rules/requests_test.go b/openstack/networking/v2/extensions/fwaas/rules/testing/requests_test.go
similarity index 91%
rename from openstack/networking/v2/extensions/fwaas/rules/requests_test.go
rename to openstack/networking/v2/extensions/fwaas/rules/testing/requests_test.go
index 4ca73e7..dbf377a 100644
--- a/openstack/networking/v2/extensions/fwaas/rules/requests_test.go
+++ b/openstack/networking/v2/extensions/fwaas/rules/testing/requests_test.go
@@ -1,4 +1,4 @@
-package rules
+package testing
import (
"fmt"
@@ -7,17 +7,11 @@
"github.com/gophercloud/gophercloud"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/rules"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
-func TestURLs(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- th.AssertEquals(t, th.Endpoint()+"v2.0/fw/firewall_rules", rootURL(fake.ServiceClient()))
-}
-
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
@@ -73,16 +67,16 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ rules.List(fake.ServiceClient(), rules.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractRules(page)
+ actual, err := rules.ExtractRules(page)
if err != nil {
t.Errorf("Failed to extract members: %v", err)
return false, err
}
- expected := []Rule{
- Rule{
+ expected := []rules.Rule{
+ {
Protocol: "tcp",
Description: "ssh rule",
SourcePort: "",
@@ -99,7 +93,7 @@
IPVersion: 4,
Shared: false,
},
- Rule{
+ {
Protocol: "udp",
Description: "udp rule",
SourcePort: "",
@@ -177,7 +171,7 @@
`)
})
- options := CreateOpts{
+ options := rules.CreateOpts{
TenantID: "80cf934d6ffb4ef5b244f1c512ad1e61",
Protocol: "tcp",
Description: "ssh rule",
@@ -187,7 +181,7 @@
Action: "allow",
}
- _, err := Create(fake.ServiceClient(), options).Extract()
+ _, err := rules.Create(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
}
@@ -225,7 +219,7 @@
`)
})
- rule, err := Get(fake.ServiceClient(), "f03bd950-6c56-4f5e-a307-45967078f507").Extract()
+ rule, err := rules.Get(fake.ServiceClient(), "f03bd950-6c56-4f5e-a307-45967078f507").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "tcp", rule.Protocol)
@@ -297,7 +291,7 @@
newName := "ssh_form_any"
newAction := "allow"
- options := UpdateOpts{
+ options := rules.UpdateOpts{
Protocol: &newProtocol,
Description: &newDescription,
DestinationIPAddress: &newDestinationIP,
@@ -307,7 +301,7 @@
Enabled: gophercloud.Disabled,
}
- _, err := Update(fake.ServiceClient(), "f03bd950-6c56-4f5e-a307-45967078f507", options).Extract()
+ _, err := rules.Update(fake.ServiceClient(), "f03bd950-6c56-4f5e-a307-45967078f507", options).Extract()
th.AssertNoErr(t, err)
}
@@ -321,6 +315,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "4ec89077-d057-4a2b-911f-60a3b47ee304")
+ res := rules.Delete(fake.ServiceClient(), "4ec89077-d057-4a2b-911f-60a3b47ee304")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/extensions/layer3/floatingips/testing/doc.go b/openstack/networking/v2/extensions/layer3/floatingips/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/layer3/floatingips/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/layer3/floatingips/requests_test.go b/openstack/networking/v2/extensions/layer3/floatingips/testing/requests_test.go
similarity index 87%
rename from openstack/networking/v2/extensions/layer3/floatingips/requests_test.go
rename to openstack/networking/v2/extensions/layer3/floatingips/testing/requests_test.go
index 3e9a91f..45f27eb 100644
--- a/openstack/networking/v2/extensions/layer3/floatingips/requests_test.go
+++ b/openstack/networking/v2/extensions/layer3/floatingips/testing/requests_test.go
@@ -1,4 +1,4 @@
-package floatingips
+package testing
import (
"fmt"
@@ -6,6 +6,7 @@
"testing"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
@@ -51,16 +52,16 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ floatingips.List(fake.ServiceClient(), floatingips.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractFloatingIPs(page)
+ actual, err := floatingips.ExtractFloatingIPs(page)
if err != nil {
t.Errorf("Failed to extract floating IPs: %v", err)
return false, err
}
- expected := []FloatingIP{
- FloatingIP{
+ expected := []floatingips.FloatingIP{
+ {
FloatingNetworkID: "6d67c30a-ddb4-49a1-bec3-a65b286b4170",
FixedIP: "",
FloatingIP: "192.0.0.4",
@@ -69,7 +70,7 @@
PortID: "",
ID: "2f95fd2b-9f6a-4e8e-9e9a-2cbe286cbf9e",
},
- FloatingIP{
+ {
FloatingNetworkID: "90f742b1-6d17-487b-ba95-71881dbc0b64",
FixedIP: "192.0.0.2",
FloatingIP: "10.0.0.3",
@@ -100,19 +101,19 @@
fmt.Fprintf(w, `{"floatingips": [{}], "floatingips_links": {}}`)
})
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
- ExtractFloatingIPs(page)
+ floatingips.List(fake.ServiceClient(), floatingips.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ floatingips.ExtractFloatingIPs(page)
return true, nil
})
}
func TestRequiredFieldsForCreate(t *testing.T) {
- res1 := Create(fake.ServiceClient(), CreateOpts{FloatingNetworkID: ""})
+ res1 := floatingips.Create(fake.ServiceClient(), floatingips.CreateOpts{FloatingNetworkID: ""})
if res1.Err == nil {
t.Fatalf("Expected error, got none")
}
- res2 := Create(fake.ServiceClient(), CreateOpts{FloatingNetworkID: "foo", PortID: ""})
+ res2 := floatingips.Create(fake.ServiceClient(), floatingips.CreateOpts{FloatingNetworkID: "foo", PortID: ""})
if res2.Err == nil {
t.Fatalf("Expected error, got none")
}
@@ -154,12 +155,12 @@
`)
})
- options := CreateOpts{
+ options := floatingips.CreateOpts{
FloatingNetworkID: "376da547-b977-4cfe-9cba-275c80debf57",
PortID: "ce705c24-c1ef-408a-bda3-7bbd946164ab",
}
- ip, err := Create(fake.ServiceClient(), options).Extract()
+ ip, err := floatingips.Create(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "2f245a7b-796b-4f26-9cf9-9e82d248fda7", ip.ID)
@@ -204,11 +205,11 @@
`)
})
- options := CreateOpts{
+ options := floatingips.CreateOpts{
FloatingNetworkID: "376da547-b977-4cfe-9cba-275c80debf57",
}
- ip, err := Create(fake.ServiceClient(), options).Extract()
+ ip, err := floatingips.Create(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "2f245a7b-796b-4f26-9cf9-9e82d248fda7", ip.ID)
@@ -245,7 +246,7 @@
`)
})
- ip, err := Get(fake.ServiceClient(), "2f245a7b-796b-4f26-9cf9-9e82d248fda7").Extract()
+ ip, err := floatingips.Get(fake.ServiceClient(), "2f245a7b-796b-4f26-9cf9-9e82d248fda7").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "90f742b1-6d17-487b-ba95-71881dbc0b64", ip.FloatingNetworkID)
@@ -292,7 +293,7 @@
`)
})
- ip, err := Update(fake.ServiceClient(), "2f245a7b-796b-4f26-9cf9-9e82d248fda7", UpdateOpts{PortID: "423abc8d-2991-4a55-ba98-2aaea84cc72e"}).Extract()
+ ip, err := floatingips.Update(fake.ServiceClient(), "2f245a7b-796b-4f26-9cf9-9e82d248fda7", floatingips.UpdateOpts{PortID: "423abc8d-2991-4a55-ba98-2aaea84cc72e"}).Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, "423abc8d-2991-4a55-ba98-2aaea84cc72e", ip.PortID)
@@ -333,7 +334,7 @@
`)
})
- ip, err := Update(fake.ServiceClient(), "2f245a7b-796b-4f26-9cf9-9e82d248fda7", UpdateOpts{}).Extract()
+ ip, err := floatingips.Update(fake.ServiceClient(), "2f245a7b-796b-4f26-9cf9-9e82d248fda7", floatingips.UpdateOpts{}).Extract()
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, "", ip.FixedIP)
@@ -350,6 +351,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "2f245a7b-796b-4f26-9cf9-9e82d248fda7")
+ res := floatingips.Delete(fake.ServiceClient(), "2f245a7b-796b-4f26-9cf9-9e82d248fda7")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/extensions/layer3/routers/testing/doc.go b/openstack/networking/v2/extensions/layer3/routers/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/layer3/routers/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/layer3/routers/requests_test.go b/openstack/networking/v2/extensions/layer3/routers/testing/requests_test.go
similarity index 79%
rename from openstack/networking/v2/extensions/layer3/routers/requests_test.go
rename to openstack/networking/v2/extensions/layer3/routers/testing/requests_test.go
index c6cd7b3..bf7f35e 100644
--- a/openstack/networking/v2/extensions/layer3/routers/requests_test.go
+++ b/openstack/networking/v2/extensions/layer3/routers/testing/requests_test.go
@@ -1,4 +1,4 @@
-package routers
+package testing
import (
"fmt"
@@ -6,17 +6,11 @@
"testing"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
-func TestURLs(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- th.AssertEquals(t, th.Endpoint()+"v2.0/routers", rootURL(fake.ServiceClient()))
-}
-
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
@@ -58,27 +52,27 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ routers.List(fake.ServiceClient(), routers.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractRouters(page)
+ actual, err := routers.ExtractRouters(page)
if err != nil {
t.Errorf("Failed to extract routers: %v", err)
return false, err
}
- expected := []Router{
- Router{
+ expected := []routers.Router{
+ {
Status: "ACTIVE",
- GatewayInfo: GatewayInfo{NetworkID: ""},
+ GatewayInfo: routers.GatewayInfo{NetworkID: ""},
AdminStateUp: true,
Distributed: false,
Name: "second_routers",
ID: "7177abc4-5ae9-4bb7-b0d4-89e94a4abf3b",
TenantID: "6b96ff0cb17a4b859e1e575d221683d3",
},
- Router{
+ {
Status: "ACTIVE",
- GatewayInfo: GatewayInfo{NetworkID: "3c5bcddd-6af9-4e6b-9c3e-c153e521cab8"},
+ GatewayInfo: routers.GatewayInfo{NetworkID: "3c5bcddd-6af9-4e6b-9c3e-c153e521cab8"},
AdminStateUp: true,
Distributed: false,
Name: "router1",
@@ -139,19 +133,19 @@
})
asu := false
- gwi := GatewayInfo{NetworkID: "8ca37218-28ff-41cb-9b10-039601ea7e6b"}
+ gwi := routers.GatewayInfo{NetworkID: "8ca37218-28ff-41cb-9b10-039601ea7e6b"}
- options := CreateOpts{
+ options := routers.CreateOpts{
Name: "foo_router",
AdminStateUp: &asu,
GatewayInfo: &gwi,
}
- r, err := Create(fake.ServiceClient(), options).Extract()
+ r, err := routers.Create(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "foo_router", r.Name)
th.AssertEquals(t, false, r.AdminStateUp)
- th.AssertDeepEquals(t, GatewayInfo{NetworkID: "8ca37218-28ff-41cb-9b10-039601ea7e6b"}, r.GatewayInfo)
+ th.AssertDeepEquals(t, routers.GatewayInfo{NetworkID: "8ca37218-28ff-41cb-9b10-039601ea7e6b"}, r.GatewayInfo)
}
func TestGet(t *testing.T) {
@@ -188,16 +182,16 @@
`)
})
- n, err := Get(fake.ServiceClient(), "a07eea83-7710-4860-931b-5fe220fae533").Extract()
+ n, err := routers.Get(fake.ServiceClient(), "a07eea83-7710-4860-931b-5fe220fae533").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, n.Status, "ACTIVE")
- th.AssertDeepEquals(t, n.GatewayInfo, GatewayInfo{NetworkID: "85d76829-6415-48ff-9c63-5c5ca8c61ac6"})
+ th.AssertDeepEquals(t, n.GatewayInfo, routers.GatewayInfo{NetworkID: "85d76829-6415-48ff-9c63-5c5ca8c61ac6"})
th.AssertEquals(t, n.Name, "router1")
th.AssertEquals(t, n.AdminStateUp, true)
th.AssertEquals(t, n.TenantID, "d6554fe62e2f41efbb6e026fad5c1542")
th.AssertEquals(t, n.ID, "a07eea83-7710-4860-931b-5fe220fae533")
- th.AssertDeepEquals(t, n.Routes, []Route{Route{DestinationCIDR: "40.0.1.0/24", NextHop: "10.1.0.10"}})
+ th.AssertDeepEquals(t, n.Routes, []routers.Route{{DestinationCIDR: "40.0.1.0/24", NextHop: "10.1.0.10"}})
}
func TestUpdate(t *testing.T) {
@@ -252,16 +246,16 @@
`)
})
- gwi := GatewayInfo{NetworkID: "8ca37218-28ff-41cb-9b10-039601ea7e6b"}
- r := []Route{Route{DestinationCIDR: "40.0.1.0/24", NextHop: "10.1.0.10"}}
- options := UpdateOpts{Name: "new_name", GatewayInfo: &gwi, Routes: r}
+ gwi := routers.GatewayInfo{NetworkID: "8ca37218-28ff-41cb-9b10-039601ea7e6b"}
+ r := []routers.Route{{DestinationCIDR: "40.0.1.0/24", NextHop: "10.1.0.10"}}
+ options := routers.UpdateOpts{Name: "new_name", GatewayInfo: &gwi, Routes: r}
- n, err := Update(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", options).Extract()
+ n, err := routers.Update(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, n.Name, "new_name")
- th.AssertDeepEquals(t, n.GatewayInfo, GatewayInfo{NetworkID: "8ca37218-28ff-41cb-9b10-039601ea7e6b"})
- th.AssertDeepEquals(t, n.Routes, []Route{Route{DestinationCIDR: "40.0.1.0/24", NextHop: "10.1.0.10"}})
+ th.AssertDeepEquals(t, n.GatewayInfo, routers.GatewayInfo{NetworkID: "8ca37218-28ff-41cb-9b10-039601ea7e6b"})
+ th.AssertDeepEquals(t, n.Routes, []routers.Route{{DestinationCIDR: "40.0.1.0/24", NextHop: "10.1.0.10"}})
}
func TestAllRoutesRemoved(t *testing.T) {
@@ -302,13 +296,13 @@
`)
})
- r := []Route{}
- options := UpdateOpts{Routes: r}
+ r := []routers.Route{}
+ options := routers.UpdateOpts{Routes: r}
- n, err := Update(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", options).Extract()
+ n, err := routers.Update(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", options).Extract()
th.AssertNoErr(t, err)
- th.AssertDeepEquals(t, n.Routes, []Route{})
+ th.AssertDeepEquals(t, n.Routes, []routers.Route{})
}
func TestDelete(t *testing.T) {
@@ -321,7 +315,7 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c")
+ res := routers.Delete(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c")
th.AssertNoErr(t, res.Err)
}
@@ -353,8 +347,8 @@
`)
})
- opts := AddInterfaceOpts{SubnetID: "a2f1f29d-571b-4533-907f-5803ab96ead1"}
- res, err := AddInterface(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", opts).Extract()
+ opts := routers.AddInterfaceOpts{SubnetID: "a2f1f29d-571b-4533-907f-5803ab96ead1"}
+ res, err := routers.AddInterface(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", opts).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "0d32a837-8069-4ec3-84c4-3eef3e10b188", res.SubnetID)
@@ -364,11 +358,11 @@
}
func TestAddInterfaceRequiredOpts(t *testing.T) {
- _, err := AddInterface(fake.ServiceClient(), "foo", AddInterfaceOpts{}).Extract()
+ _, err := routers.AddInterface(fake.ServiceClient(), "foo", routers.AddInterfaceOpts{}).Extract()
if err == nil {
t.Fatalf("Expected error, got none")
}
- _, err = AddInterface(fake.ServiceClient(), "foo", AddInterfaceOpts{SubnetID: "bar", PortID: "baz"}).Extract()
+ _, err = routers.AddInterface(fake.ServiceClient(), "foo", routers.AddInterfaceOpts{SubnetID: "bar", PortID: "baz"}).Extract()
if err == nil {
t.Fatalf("Expected error, got none")
}
@@ -402,8 +396,8 @@
`)
})
- opts := RemoveInterfaceOpts{SubnetID: "a2f1f29d-571b-4533-907f-5803ab96ead1"}
- res, err := RemoveInterface(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", opts).Extract()
+ opts := routers.RemoveInterfaceOpts{SubnetID: "a2f1f29d-571b-4533-907f-5803ab96ead1"}
+ res, err := routers.RemoveInterface(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", opts).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "0d32a837-8069-4ec3-84c4-3eef3e10b188", res.SubnetID)
diff --git a/openstack/networking/v2/extensions/lbaas/members/testing/doc.go b/openstack/networking/v2/extensions/lbaas/members/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/lbaas/members/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/lbaas/members/requests_test.go b/openstack/networking/v2/extensions/lbaas/members/testing/requests_test.go
similarity index 87%
rename from openstack/networking/v2/extensions/lbaas/members/requests_test.go
rename to openstack/networking/v2/extensions/lbaas/members/testing/requests_test.go
index 27593e7..3e4f1d4 100644
--- a/openstack/networking/v2/extensions/lbaas/members/requests_test.go
+++ b/openstack/networking/v2/extensions/lbaas/members/testing/requests_test.go
@@ -1,4 +1,4 @@
-package members
+package testing
import (
"fmt"
@@ -7,17 +7,11 @@
"github.com/gophercloud/gophercloud"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
-func TestURLs(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- th.AssertEquals(t, th.Endpoint()+"v2.0/lb/members", rootURL(fake.ServiceClient()))
-}
-
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
@@ -59,16 +53,16 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ members.List(fake.ServiceClient(), members.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractMembers(page)
+ actual, err := members.ExtractMembers(page)
if err != nil {
t.Errorf("Failed to extract members: %v", err)
return false, err
}
- expected := []Member{
- Member{
+ expected := []members.Member{
+ {
Status: "ACTIVE",
Weight: 1,
AdminStateUp: true,
@@ -78,7 +72,7 @@
ProtocolPort: 80,
ID: "701b531b-111a-4f21-ad85-4795b7b12af6",
},
- Member{
+ {
Status: "ACTIVE",
Weight: 1,
AdminStateUp: true,
@@ -138,13 +132,13 @@
`)
})
- options := CreateOpts{
+ options := members.CreateOpts{
TenantID: "453105b9-1754-413f-aab1-55f1af620750",
Address: "192.0.2.14",
ProtocolPort: 8080,
PoolID: "foo",
}
- _, err := Create(fake.ServiceClient(), options).Extract()
+ _, err := members.Create(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
}
@@ -174,7 +168,7 @@
`)
})
- m, err := Get(fake.ServiceClient(), "975592ca-e308-48ad-8298-731935ee9f45").Extract()
+ m, err := members.Get(fake.ServiceClient(), "975592ca-e308-48ad-8298-731935ee9f45").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "975592ca-e308-48ad-8298-731935ee9f45", m.ID)
@@ -223,9 +217,9 @@
`)
})
- options := UpdateOpts{AdminStateUp: gophercloud.Disabled}
+ options := members.UpdateOpts{AdminStateUp: gophercloud.Disabled}
- _, err := Update(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853", options).Extract()
+ _, err := members.Update(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853", options).Extract()
th.AssertNoErr(t, err)
}
@@ -239,6 +233,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853")
+ res := members.Delete(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/extensions/lbaas/monitors/testing/doc.go b/openstack/networking/v2/extensions/lbaas/monitors/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/lbaas/monitors/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/lbaas/monitors/requests_test.go b/openstack/networking/v2/extensions/lbaas/monitors/testing/requests_test.go
similarity index 87%
rename from openstack/networking/v2/extensions/lbaas/monitors/requests_test.go
rename to openstack/networking/v2/extensions/lbaas/monitors/testing/requests_test.go
index bd22ae1..f736074 100644
--- a/openstack/networking/v2/extensions/lbaas/monitors/requests_test.go
+++ b/openstack/networking/v2/extensions/lbaas/monitors/testing/requests_test.go
@@ -1,4 +1,4 @@
-package monitors
+package testing
import (
"fmt"
@@ -7,16 +7,11 @@
"github.com/gophercloud/gophercloud"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
-func TestURLs(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
- th.AssertEquals(t, th.Endpoint()+"v2.0/lb/health_monitors", rootURL(fake.ServiceClient()))
-}
-
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
@@ -59,16 +54,16 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ monitors.List(fake.ServiceClient(), monitors.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractMonitors(page)
+ actual, err := monitors.ExtractMonitors(page)
if err != nil {
t.Errorf("Failed to extract monitors: %v", err)
return false, err
}
- expected := []Monitor{
- Monitor{
+ expected := []monitors.Monitor{
+ {
AdminStateUp: true,
TenantID: "83657cfcdfe44cd5920adaf26c48ceea",
Delay: 10,
@@ -77,7 +72,7 @@
Type: "PING",
ID: "466c8345-28d8-4f84-a246-e04380b0461d",
},
- Monitor{
+ {
AdminStateUp: true,
TenantID: "83657cfcdfe44cd5920adaf26c48ceea",
Delay: 5,
@@ -102,7 +97,7 @@
}
func TestDelayMustBeGreaterOrEqualThanTimeout(t *testing.T) {
- _, err := Create(fake.ServiceClient(), CreateOpts{
+ _, err := monitors.Create(fake.ServiceClient(), monitors.CreateOpts{
Type: "HTTP",
Delay: 1,
Timeout: 10,
@@ -115,7 +110,7 @@
t.Fatalf("Expected error, got none")
}
- _, err = Update(fake.ServiceClient(), "453105b9-1754-413f-aab1-55f1af620750", UpdateOpts{
+ _, err = monitors.Update(fake.ServiceClient(), "453105b9-1754-413f-aab1-55f1af620750", monitors.UpdateOpts{
Delay: 1,
Timeout: 10,
}).Extract()
@@ -170,7 +165,7 @@
`)
})
- _, err := Create(fake.ServiceClient(), CreateOpts{
+ _, err := monitors.Create(fake.ServiceClient(), monitors.CreateOpts{
Type: "HTTP",
TenantID: "453105b9-1754-413f-aab1-55f1af620750",
Delay: 20,
@@ -184,11 +179,11 @@
}
func TestRequiredCreateOpts(t *testing.T) {
- res := Create(fake.ServiceClient(), CreateOpts{})
+ res := monitors.Create(fake.ServiceClient(), monitors.CreateOpts{})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
- res = Create(fake.ServiceClient(), CreateOpts{Type: TypeHTTP})
+ res = monitors.Create(fake.ServiceClient(), monitors.CreateOpts{Type: monitors.TypeHTTP})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
@@ -224,7 +219,7 @@
`)
})
- hm, err := Get(fake.ServiceClient(), "f3eeab00-8367-4524-b662-55e64d4cacb5").Extract()
+ hm, err := monitors.Get(fake.ServiceClient(), "f3eeab00-8367-4524-b662-55e64d4cacb5").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "f3eeab00-8367-4524-b662-55e64d4cacb5", hm.ID)
@@ -288,7 +283,7 @@
`)
})
- _, err := Update(fake.ServiceClient(), "b05e44b5-81f9-4551-b474-711a722698f7", UpdateOpts{
+ _, err := monitors.Update(fake.ServiceClient(), "b05e44b5-81f9-4551-b474-711a722698f7", monitors.UpdateOpts{
Delay: 30,
Timeout: 20,
MaxRetries: 10,
@@ -310,6 +305,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "b05e44b5-81f9-4551-b474-711a722698f7")
+ res := monitors.Delete(fake.ServiceClient(), "b05e44b5-81f9-4551-b474-711a722698f7")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/extensions/lbaas/pools/testing/doc.go b/openstack/networking/v2/extensions/lbaas/pools/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/lbaas/pools/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/lbaas/pools/requests_test.go b/openstack/networking/v2/extensions/lbaas/pools/testing/requests_test.go
similarity index 87%
rename from openstack/networking/v2/extensions/lbaas/pools/requests_test.go
rename to openstack/networking/v2/extensions/lbaas/pools/testing/requests_test.go
index 5ef0a3b..a42d1aa 100644
--- a/openstack/networking/v2/extensions/lbaas/pools/requests_test.go
+++ b/openstack/networking/v2/extensions/lbaas/pools/testing/requests_test.go
@@ -1,4 +1,4 @@
-package pools
+package testing
import (
"fmt"
@@ -6,17 +6,11 @@
"testing"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
-func TestURLs(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- th.AssertEquals(t, th.Endpoint()+"v2.0/lb/pools", rootURL(fake.ServiceClient()))
-}
-
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
@@ -61,16 +55,16 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ pools.List(fake.ServiceClient(), pools.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractPools(page)
+ actual, err := pools.ExtractPools(page)
if err != nil {
t.Errorf("Failed to extract pools: %v", err)
return false, err
}
- expected := []Pool{
- Pool{
+ expected := []pools.Pool{
+ {
Status: "ACTIVE",
LBMethod: "ROUND_ROBIN",
Protocol: "HTTP",
@@ -149,14 +143,14 @@
`)
})
- options := CreateOpts{
- LBMethod: LBMethodRoundRobin,
+ options := pools.CreateOpts{
+ LBMethod: pools.LBMethodRoundRobin,
Protocol: "HTTP",
Name: "Example pool",
SubnetID: "1981f108-3c48-48d2-b908-30f7d28532c9",
TenantID: "2ffc6e22aae24e4795f87155d24c896f",
}
- p, err := Create(fake.ServiceClient(), options).Extract()
+ p, err := pools.Create(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "PENDING_CREATE", p.Status)
@@ -203,7 +197,7 @@
`)
})
- n, err := Get(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853").Extract()
+ n, err := pools.Get(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, n.ID, "332abe93-f488-41ba-870b-2ac66be7f853")
@@ -254,9 +248,9 @@
`)
})
- options := UpdateOpts{Name: "SuperPool", LBMethod: LBMethodLeastConnections}
+ options := pools.UpdateOpts{Name: "SuperPool", LBMethod: pools.LBMethodLeastConnections}
- n, err := Update(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853", options).Extract()
+ n, err := pools.Update(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853", options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "SuperPool", n.Name)
@@ -273,7 +267,7 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853")
+ res := pools.Delete(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853")
th.AssertNoErr(t, res.Err)
}
@@ -299,7 +293,7 @@
fmt.Fprintf(w, `{}`)
})
- _, err := AssociateMonitor(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853", "b624decf-d5d3-4c66-9a3d-f047e7786181").Extract()
+ _, err := pools.AssociateMonitor(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853", "b624decf-d5d3-4c66-9a3d-f047e7786181").Extract()
th.AssertNoErr(t, err)
}
@@ -313,6 +307,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := DisassociateMonitor(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853", "b624decf-d5d3-4c66-9a3d-f047e7786181")
+ res := pools.DisassociateMonitor(fake.ServiceClient(), "332abe93-f488-41ba-870b-2ac66be7f853", "b624decf-d5d3-4c66-9a3d-f047e7786181")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/extensions/lbaas/vips/testing/doc.go b/openstack/networking/v2/extensions/lbaas/vips/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/lbaas/vips/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/lbaas/vips/requests_test.go b/openstack/networking/v2/extensions/lbaas/vips/testing/requests_test.go
similarity index 85%
rename from openstack/networking/v2/extensions/lbaas/vips/requests_test.go
rename to openstack/networking/v2/extensions/lbaas/vips/testing/requests_test.go
index a7612da..7f9b6dd 100644
--- a/openstack/networking/v2/extensions/lbaas/vips/requests_test.go
+++ b/openstack/networking/v2/extensions/lbaas/vips/testing/requests_test.go
@@ -1,4 +1,4 @@
-package vips
+package testing
import (
"fmt"
@@ -7,18 +7,11 @@
"github.com/gophercloud/gophercloud"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
-func TestURLs(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- th.AssertEquals(t, th.Endpoint()+"v2.0/lb/vips", rootURL(fake.ServiceClient()))
- th.AssertEquals(t, th.Endpoint()+"v2.0/lb/vips/foo", resourceURL(fake.ServiceClient(), "foo"))
-}
-
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
@@ -70,16 +63,16 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ vips.List(fake.ServiceClient(), vips.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractVIPs(page)
+ actual, err := vips.ExtractVIPs(page)
if err != nil {
t.Errorf("Failed to extract LBs: %v", err)
return false, err
}
- expected := []VirtualIP{
- VirtualIP{
+ expected := []vips.VirtualIP{
+ {
ID: "db902c0c-d5ff-4753-b465-668ad9656918",
TenantID: "310df60f-2a10-4ee5-9554-98393092194c",
Name: "web_vip",
@@ -90,12 +83,12 @@
Protocol: "HTTP",
ProtocolPort: 80,
PoolID: "cfc6589d-f949-4c66-99d2-c2da56ef3764",
- Persistence: SessionPersistence{},
+ Persistence: vips.SessionPersistence{},
ConnLimit: 0,
AdminStateUp: true,
Status: "ACTIVE",
},
- VirtualIP{
+ {
ID: "36e08a3e-a78f-4b40-a229-1e7e23eee1ab",
TenantID: "310df60f-2a10-4ee5-9554-98393092194c",
Name: "db_vip",
@@ -106,7 +99,7 @@
Protocol: "TCP",
ProtocolPort: 3306,
PoolID: "41efe233-7591-43c5-9cf7-923964759f9e",
- Persistence: SessionPersistence{Type: "SOURCE_IP"},
+ Persistence: vips.SessionPersistence{Type: "SOURCE_IP"},
ConnLimit: 2000,
AdminStateUp: true,
Status: "INACTIVE",
@@ -170,17 +163,17 @@
`)
})
- opts := CreateOpts{
+ opts := vips.CreateOpts{
Protocol: "HTTP",
Name: "NewVip",
AdminStateUp: gophercloud.Enabled,
SubnetID: "8032909d-47a1-4715-90af-5153ffe39861",
PoolID: "61b1f87a-7a21-4ad3-9dda-7f81d249944f",
ProtocolPort: 80,
- Persistence: &SessionPersistence{Type: "SOURCE_IP"},
+ Persistence: &vips.SessionPersistence{Type: "SOURCE_IP"},
}
- r, err := Create(fake.ServiceClient(), opts).Extract()
+ r, err := vips.Create(fake.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "PENDING_CREATE", r.Status)
@@ -199,23 +192,23 @@
}
func TestRequiredCreateOpts(t *testing.T) {
- res := Create(fake.ServiceClient(), CreateOpts{})
+ res := vips.Create(fake.ServiceClient(), vips.CreateOpts{})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
- res = Create(fake.ServiceClient(), CreateOpts{Name: "foo"})
+ res = vips.Create(fake.ServiceClient(), vips.CreateOpts{Name: "foo"})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
- res = Create(fake.ServiceClient(), CreateOpts{Name: "foo", SubnetID: "bar"})
+ res = vips.Create(fake.ServiceClient(), vips.CreateOpts{Name: "foo", SubnetID: "bar"})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
- res = Create(fake.ServiceClient(), CreateOpts{Name: "foo", SubnetID: "bar", Protocol: "bar"})
+ res = vips.Create(fake.ServiceClient(), vips.CreateOpts{Name: "foo", SubnetID: "bar", Protocol: "bar"})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
- res = Create(fake.ServiceClient(), CreateOpts{Name: "foo", SubnetID: "bar", Protocol: "bar", ProtocolPort: 80})
+ res = vips.Create(fake.ServiceClient(), vips.CreateOpts{Name: "foo", SubnetID: "bar", Protocol: "bar", ProtocolPort: 80})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
@@ -257,7 +250,7 @@
`)
})
- vip, err := Get(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304").Extract()
+ vip, err := vips.Get(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "ACTIVE", vip.Status)
@@ -265,7 +258,7 @@
th.AssertEquals(t, "", vip.Description)
th.AssertEquals(t, true, vip.AdminStateUp)
th.AssertEquals(t, 1000, vip.ConnLimit)
- th.AssertEquals(t, SessionPersistence{Type: "APP_COOKIE", CookieName: "MyAppCookie"}, vip.Persistence)
+ th.AssertEquals(t, vips.SessionPersistence{Type: "APP_COOKIE", CookieName: "MyAppCookie"}, vip.Persistence)
}
func TestUpdate(t *testing.T) {
@@ -311,11 +304,11 @@
})
i1000 := 1000
- options := UpdateOpts{
+ options := vips.UpdateOpts{
ConnLimit: &i1000,
- Persistence: &SessionPersistence{Type: "SOURCE_IP"},
+ Persistence: &vips.SessionPersistence{Type: "SOURCE_IP"},
}
- vip, err := Update(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304", options).Extract()
+ vip, err := vips.Update(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304", options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "PENDING_UPDATE", vip.Status)
@@ -332,6 +325,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304")
+ res := vips.Delete(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/extensions/provider/testing/doc.go b/openstack/networking/v2/extensions/provider/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/provider/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/provider/results_test.go b/openstack/networking/v2/extensions/provider/testing/results_test.go
similarity index 95%
rename from openstack/networking/v2/extensions/provider/results_test.go
rename to openstack/networking/v2/extensions/provider/testing/results_test.go
index d41e39e..3b6a6fd 100644
--- a/openstack/networking/v2/extensions/provider/results_test.go
+++ b/openstack/networking/v2/extensions/provider/testing/results_test.go
@@ -1,4 +1,4 @@
-package provider
+package testing
import (
"fmt"
@@ -7,6 +7,7 @@
"github.com/gophercloud/gophercloud"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/provider"
"github.com/gophercloud/gophercloud/openstack/networking/v2/networks"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
@@ -63,14 +64,14 @@
networks.List(fake.ServiceClient(), networks.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractList(page)
+ actual, err := provider.ExtractList(page)
if err != nil {
t.Errorf("Failed to extract networks: %v", err)
return false, err
}
- expected := []NetworkExtAttrs{
- NetworkExtAttrs{
+ expected := []provider.NetworkExtAttrs{
+ {
Status: "ACTIVE",
Subnets: []string{"54d6f61d-db07-451c-9ab3-b9609b6b6f0b"},
Name: "private-network",
@@ -82,7 +83,7 @@
PhysicalNetwork: "",
SegmentationID: "",
},
- NetworkExtAttrs{
+ {
Status: "ACTIVE",
Subnets: []string{"08eae331-0402-425a-923c-34f7cfe39c1b"},
Name: "private",
@@ -138,7 +139,7 @@
})
res := networks.Get(fake.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22")
- n, err := ExtractGet(res)
+ n, err := provider.ExtractGet(res)
th.AssertNoErr(t, err)
@@ -190,7 +191,7 @@
options := networks.CreateOpts{Name: "sample_network", AdminStateUp: gophercloud.Enabled}
res := networks.Create(fake.ServiceClient(), options)
- n, err := ExtractCreate(res)
+ n, err := provider.ExtractCreate(res)
th.AssertNoErr(t, err)
@@ -244,7 +245,7 @@
iTrue := true
options := networks.UpdateOpts{Name: "new_network_name", AdminStateUp: gophercloud.Disabled, Shared: &iTrue}
res := networks.Update(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", options)
- n, err := ExtractUpdate(res)
+ n, err := provider.ExtractUpdate(res)
th.AssertNoErr(t, err)
diff --git a/openstack/networking/v2/extensions/security/groups/testing/doc.go b/openstack/networking/v2/extensions/security/groups/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/security/groups/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/security/groups/requests_test.go b/openstack/networking/v2/extensions/security/groups/testing/requests_test.go
similarity index 88%
rename from openstack/networking/v2/extensions/security/groups/requests_test.go
rename to openstack/networking/v2/extensions/security/groups/testing/requests_test.go
index 4519e6c..acd3230 100644
--- a/openstack/networking/v2/extensions/security/groups/requests_test.go
+++ b/openstack/networking/v2/extensions/security/groups/testing/requests_test.go
@@ -1,4 +1,4 @@
-package groups
+package testing
import (
"fmt"
@@ -6,19 +6,12 @@
"testing"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups"
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
-func TestURLs(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- th.AssertEquals(t, th.Endpoint()+"v2.0/security-groups", rootURL(fake.ServiceClient()))
- th.AssertEquals(t, th.Endpoint()+"v2.0/security-groups/foo", resourceURL(fake.ServiceClient(), "foo"))
-}
-
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
@@ -47,16 +40,16 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ groups.List(fake.ServiceClient(), groups.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractGroups(page)
+ actual, err := groups.ExtractGroups(page)
if err != nil {
t.Errorf("Failed to extract secgroups: %v", err)
return false, err
}
- expected := []SecGroup{
- SecGroup{
+ expected := []groups.SecGroup{
+ {
Description: "default",
ID: "85cc3048-abc3-43cc-89b3-377341426ac5",
Name: "default",
@@ -134,8 +127,8 @@
`)
})
- opts := CreateOpts{Name: "new-webservers", Description: "security group for webservers"}
- _, err := Create(fake.ServiceClient(), opts).Extract()
+ opts := groups.CreateOpts{Name: "new-webservers", Description: "security group for webservers"}
+ _, err := groups.Create(fake.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
}
@@ -188,7 +181,7 @@
`)
})
- sg, err := Get(fake.ServiceClient(), "85cc3048-abc3-43cc-89b3-377341426ac5").Extract()
+ sg, err := groups.Get(fake.ServiceClient(), "85cc3048-abc3-43cc-89b3-377341426ac5").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "default", sg.Description)
@@ -208,6 +201,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304")
+ res := groups.Delete(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/extensions/security/rules/testing/doc.go b/openstack/networking/v2/extensions/security/rules/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/security/rules/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/extensions/security/rules/requests_test.go b/openstack/networking/v2/extensions/security/rules/testing/requests_test.go
similarity index 83%
rename from openstack/networking/v2/extensions/security/rules/requests_test.go
rename to openstack/networking/v2/extensions/security/rules/testing/requests_test.go
index 974b3ce..968fd04 100644
--- a/openstack/networking/v2/extensions/security/rules/requests_test.go
+++ b/openstack/networking/v2/extensions/security/rules/testing/requests_test.go
@@ -1,4 +1,4 @@
-package rules
+package testing
import (
"fmt"
@@ -6,18 +6,11 @@
"testing"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
-func TestURLs(t *testing.T) {
- th.SetupHTTP()
- defer th.TeardownHTTP()
-
- th.AssertEquals(t, th.Endpoint()+"v2.0/security-group-rules", rootURL(fake.ServiceClient()))
- th.AssertEquals(t, th.Endpoint()+"v2.0/security-group-rules/foo", resourceURL(fake.ServiceClient(), "foo"))
-}
-
func TestList(t *testing.T) {
th.SetupHTTP()
defer th.TeardownHTTP()
@@ -63,16 +56,16 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ rules.List(fake.ServiceClient(), rules.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractRules(page)
+ actual, err := rules.ExtractRules(page)
if err != nil {
t.Errorf("Failed to extract secrules: %v", err)
return false, err
}
- expected := []SecGroupRule{
- SecGroupRule{
+ expected := []rules.SecGroupRule{
+ {
Direction: "egress",
EtherType: "IPv6",
ID: "3c0e45ff-adaf-4124-b083-bf390e5482ff",
@@ -84,7 +77,7 @@
SecGroupID: "85cc3048-abc3-43cc-89b3-377341426ac5",
TenantID: "e4f50856753b4dc6afee5fa6b9b6c550",
},
- SecGroupRule{
+ {
Direction: "egress",
EtherType: "IPv4",
ID: "93aa42e5-80db-4581-9391-3a608bd0e448",
@@ -152,33 +145,33 @@
`)
})
- opts := CreateOpts{
+ opts := rules.CreateOpts{
Direction: "ingress",
PortRangeMin: 80,
- EtherType: EtherType4,
+ EtherType: rules.EtherType4,
PortRangeMax: 80,
Protocol: "tcp",
RemoteGroupID: "85cc3048-abc3-43cc-89b3-377341426ac5",
SecGroupID: "a7734e61-b545-452d-a3cd-0189cbd9747a",
}
- _, err := Create(fake.ServiceClient(), opts).Extract()
+ _, err := rules.Create(fake.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
}
func TestRequiredCreateOpts(t *testing.T) {
- res := Create(fake.ServiceClient(), CreateOpts{Direction: DirIngress})
+ res := rules.Create(fake.ServiceClient(), rules.CreateOpts{Direction: rules.DirIngress})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
- res = Create(fake.ServiceClient(), CreateOpts{Direction: DirIngress, EtherType: EtherType4})
+ res = rules.Create(fake.ServiceClient(), rules.CreateOpts{Direction: rules.DirIngress, EtherType: rules.EtherType4})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
- res = Create(fake.ServiceClient(), CreateOpts{Direction: DirIngress, EtherType: EtherType4})
+ res = rules.Create(fake.ServiceClient(), rules.CreateOpts{Direction: rules.DirIngress, EtherType: rules.EtherType4})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
- res = Create(fake.ServiceClient(), CreateOpts{Direction: DirIngress, EtherType: EtherType4, SecGroupID: "something", Protocol: "foo"})
+ res = rules.Create(fake.ServiceClient(), rules.CreateOpts{Direction: rules.DirIngress, EtherType: rules.EtherType4, SecGroupID: "something", Protocol: "foo"})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
@@ -213,7 +206,7 @@
`)
})
- sr, err := Get(fake.ServiceClient(), "3c0e45ff-adaf-4124-b083-bf390e5482ff").Extract()
+ sr, err := rules.Get(fake.ServiceClient(), "3c0e45ff-adaf-4124-b083-bf390e5482ff").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, "egress", sr.Direction)
@@ -238,6 +231,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304")
+ res := rules.Delete(fake.ServiceClient(), "4ec89087-d057-4e2c-911f-60a3b47ee304")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/extensions/delegate_test.go b/openstack/networking/v2/extensions/testing/delegate_test.go
similarity index 88%
rename from openstack/networking/v2/extensions/delegate_test.go
rename to openstack/networking/v2/extensions/testing/delegate_test.go
index 26ab0ef..618d052 100755
--- a/openstack/networking/v2/extensions/delegate_test.go
+++ b/openstack/networking/v2/extensions/testing/delegate_test.go
@@ -1,4 +1,4 @@
-package extensions
+package testing
import (
"fmt"
@@ -7,6 +7,7 @@
common "github.com/gophercloud/gophercloud/openstack/common/extensions"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
@@ -39,15 +40,15 @@
count := 0
- List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ extensions.List(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractExtensions(page)
+ actual, err := extensions.ExtractExtensions(page)
if err != nil {
t.Errorf("Failed to extract extensions: %v", err)
}
- expected := []Extension{
- Extension{
+ expected := []extensions.Extension{
+ {
common.Extension{
Updated: "2013-01-20T00:00:00-00:00",
Name: "Neutron Service Type Management",
@@ -94,7 +95,7 @@
`)
})
- ext, err := Get(fake.ServiceClient(), "agent").Extract()
+ ext, err := extensions.Get(fake.ServiceClient(), "agent").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, ext.Updated, "2013-02-03T10:00:00-00:00")
diff --git a/openstack/networking/v2/extensions/testing/doc.go b/openstack/networking/v2/extensions/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/extensions/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/networks/errors.go b/openstack/networking/v2/networks/errors.go
deleted file mode 100644
index 83c4a6a..0000000
--- a/openstack/networking/v2/networks/errors.go
+++ /dev/null
@@ -1 +0,0 @@
-package networks
diff --git a/openstack/networking/v2/networks/testing/doc.go b/openstack/networking/v2/networks/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/networks/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/networks/requests_test.go b/openstack/networking/v2/networks/testing/requests_test.go
similarity index 87%
rename from openstack/networking/v2/networks/requests_test.go
rename to openstack/networking/v2/networks/testing/requests_test.go
index c5660ac..5b9f03d 100644
--- a/openstack/networking/v2/networks/requests_test.go
+++ b/openstack/networking/v2/networks/testing/requests_test.go
@@ -1,4 +1,4 @@
-package networks
+package testing
import (
"fmt"
@@ -6,6 +6,7 @@
"testing"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/networks"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
@@ -54,16 +55,16 @@
client := fake.ServiceClient()
count := 0
- List(client, ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ networks.List(client, networks.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractNetworks(page)
+ actual, err := networks.ExtractNetworks(page)
if err != nil {
t.Errorf("Failed to extract networks: %v", err)
return false, err
}
- expected := []Network{
- Network{
+ expected := []networks.Network{
+ {
Status: "ACTIVE",
Subnets: []string{"54d6f61d-db07-451c-9ab3-b9609b6b6f0b"},
Name: "private-network",
@@ -72,7 +73,7 @@
Shared: true,
ID: "d32019d3-bc6e-4319-9c1d-6722fc136a22",
},
- Network{
+ {
Status: "ACTIVE",
Subnets: []string{"08eae331-0402-425a-923c-34f7cfe39c1b"},
Name: "private",
@@ -121,7 +122,7 @@
`)
})
- n, err := Get(fake.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").Extract()
+ n, err := networks.Get(fake.ServiceClient(), "d32019d3-bc6e-4319-9c1d-6722fc136a22").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, n.Status, "ACTIVE")
@@ -170,8 +171,8 @@
})
iTrue := true
- options := CreateOpts{Name: "sample_network", AdminStateUp: &iTrue}
- n, err := Create(fake.ServiceClient(), options).Extract()
+ options := networks.CreateOpts{Name: "sample_network", AdminStateUp: &iTrue}
+ n, err := networks.Create(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, n.Status, "ACTIVE")
@@ -208,8 +209,8 @@
})
iTrue := true
- options := CreateOpts{Name: "sample_network", AdminStateUp: &iTrue, Shared: &iTrue, TenantID: "12345"}
- _, err := Create(fake.ServiceClient(), options).Extract()
+ options := networks.CreateOpts{Name: "sample_network", AdminStateUp: &iTrue, Shared: &iTrue, TenantID: "12345"}
+ _, err := networks.Create(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
}
@@ -251,8 +252,8 @@
})
iTrue, iFalse := true, false
- options := UpdateOpts{Name: "new_network_name", AdminStateUp: &iFalse, Shared: &iTrue}
- n, err := Update(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", options).Extract()
+ options := networks.UpdateOpts{Name: "new_network_name", AdminStateUp: &iFalse, Shared: &iTrue}
+ n, err := networks.Update(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c", options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, n.Name, "new_network_name")
@@ -271,6 +272,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c")
+ res := networks.Delete(fake.ServiceClient(), "4e8e5957-649f-477b-9e5b-f1f75b21c03c")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/ports/testing/doc.go b/openstack/networking/v2/ports/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/ports/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/ports/requests_test.go b/openstack/networking/v2/ports/testing/requests_test.go
similarity index 82%
rename from openstack/networking/v2/ports/requests_test.go
rename to openstack/networking/v2/ports/testing/requests_test.go
index bcd69d4..007dc5a 100644
--- a/openstack/networking/v2/ports/requests_test.go
+++ b/openstack/networking/v2/ports/testing/requests_test.go
@@ -1,4 +1,4 @@
-package ports
+package testing
import (
"fmt"
@@ -6,6 +6,7 @@
"testing"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/ports"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
@@ -50,16 +51,16 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ ports.List(fake.ServiceClient(), ports.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractPorts(page)
+ actual, err := ports.ExtractPorts(page)
if err != nil {
t.Errorf("Failed to extract subnets: %v", err)
return false, nil
}
- expected := []Port{
- Port{
+ expected := []ports.Port{
+ {
Status: "ACTIVE",
Name: "",
AdminStateUp: true,
@@ -67,8 +68,8 @@
TenantID: "",
DeviceOwner: "network:router_gateway",
MACAddress: "fa:16:3e:58:42:ed",
- FixedIPs: []IP{
- IP{
+ FixedIPs: []ports.IP{
+ {
SubnetID: "008ba151-0b8c-4a67-98b5-0d2b87666062",
IPAddress: "172.24.4.2",
},
@@ -124,7 +125,7 @@
`)
})
- n, err := Get(fake.ServiceClient(), "46d4bfb9-b26e-41f3-bd2e-e6dcc1ccedb2").Extract()
+ n, err := ports.Get(fake.ServiceClient(), "46d4bfb9-b26e-41f3-bd2e-e6dcc1ccedb2").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, n.Status, "ACTIVE")
@@ -134,8 +135,8 @@
th.AssertEquals(t, n.TenantID, "7e02058126cc4950b75f9970368ba177")
th.AssertEquals(t, n.DeviceOwner, "network:router_interface")
th.AssertEquals(t, n.MACAddress, "fa:16:3e:23:fd:d7")
- th.AssertDeepEquals(t, n.FixedIPs, []IP{
- IP{SubnetID: "a0304c3a-4f08-4c43-88af-d796509c97d2", IPAddress: "10.0.0.1"},
+ th.AssertDeepEquals(t, n.FixedIPs, []ports.IP{
+ {SubnetID: "a0304c3a-4f08-4c43-88af-d796509c97d2", IPAddress: "10.0.0.1"},
})
th.AssertEquals(t, n.ID, "46d4bfb9-b26e-41f3-bd2e-e6dcc1ccedb2")
th.AssertDeepEquals(t, n.SecurityGroups, []string{})
@@ -211,19 +212,19 @@
})
asu := true
- options := CreateOpts{
+ options := ports.CreateOpts{
Name: "private-port",
AdminStateUp: &asu,
NetworkID: "a87cc70a-3e15-4acf-8205-9b711a3531b7",
- FixedIPs: []IP{
- IP{SubnetID: "a0304c3a-4f08-4c43-88af-d796509c97d2", IPAddress: "10.0.0.2"},
+ FixedIPs: []ports.IP{
+ {SubnetID: "a0304c3a-4f08-4c43-88af-d796509c97d2", IPAddress: "10.0.0.2"},
},
SecurityGroups: []string{"foo"},
- AllowedAddressPairs: []AddressPair{
- AddressPair{IPAddress: "10.0.0.4", MACAddress: "fa:16:3e:c9:cb:f0"},
+ AllowedAddressPairs: []ports.AddressPair{
+ {IPAddress: "10.0.0.4", MACAddress: "fa:16:3e:c9:cb:f0"},
},
}
- n, err := Create(fake.ServiceClient(), options).Extract()
+ n, err := ports.Create(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, n.Status, "DOWN")
@@ -233,18 +234,18 @@
th.AssertEquals(t, n.TenantID, "d6700c0c9ffa4f1cb322cd4a1f3906fa")
th.AssertEquals(t, n.DeviceOwner, "")
th.AssertEquals(t, n.MACAddress, "fa:16:3e:c9:cb:f0")
- th.AssertDeepEquals(t, n.FixedIPs, []IP{
- IP{SubnetID: "a0304c3a-4f08-4c43-88af-d796509c97d2", IPAddress: "10.0.0.2"},
+ th.AssertDeepEquals(t, n.FixedIPs, []ports.IP{
+ {SubnetID: "a0304c3a-4f08-4c43-88af-d796509c97d2", IPAddress: "10.0.0.2"},
})
th.AssertEquals(t, n.ID, "65c0ee9f-d634-4522-8954-51021b570b0d")
th.AssertDeepEquals(t, n.SecurityGroups, []string{"f0ac4394-7e4a-4409-9701-ba8be283dbc3"})
- th.AssertDeepEquals(t, n.AllowedAddressPairs, []AddressPair{
- AddressPair{IPAddress: "10.0.0.4", MACAddress: "fa:16:3e:c9:cb:f0"},
+ th.AssertDeepEquals(t, n.AllowedAddressPairs, []ports.AddressPair{
+ {IPAddress: "10.0.0.4", MACAddress: "fa:16:3e:c9:cb:f0"},
})
}
func TestRequiredCreateOpts(t *testing.T) {
- res := Create(fake.ServiceClient(), CreateOpts{})
+ res := ports.Create(fake.ServiceClient(), ports.CreateOpts{})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
@@ -317,26 +318,26 @@
`)
})
- options := UpdateOpts{
+ options := ports.UpdateOpts{
Name: "new_port_name",
- FixedIPs: []IP{
- IP{SubnetID: "a0304c3a-4f08-4c43-88af-d796509c97d2", IPAddress: "10.0.0.3"},
+ FixedIPs: []ports.IP{
+ {SubnetID: "a0304c3a-4f08-4c43-88af-d796509c97d2", IPAddress: "10.0.0.3"},
},
SecurityGroups: []string{"f0ac4394-7e4a-4409-9701-ba8be283dbc3"},
- AllowedAddressPairs: []AddressPair{
- AddressPair{IPAddress: "10.0.0.4", MACAddress: "fa:16:3e:c9:cb:f0"},
+ AllowedAddressPairs: []ports.AddressPair{
+ {IPAddress: "10.0.0.4", MACAddress: "fa:16:3e:c9:cb:f0"},
},
}
- s, err := Update(fake.ServiceClient(), "65c0ee9f-d634-4522-8954-51021b570b0d", options).Extract()
+ s, err := ports.Update(fake.ServiceClient(), "65c0ee9f-d634-4522-8954-51021b570b0d", options).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, s.Name, "new_port_name")
- th.AssertDeepEquals(t, s.FixedIPs, []IP{
- IP{SubnetID: "a0304c3a-4f08-4c43-88af-d796509c97d2", IPAddress: "10.0.0.3"},
+ th.AssertDeepEquals(t, s.FixedIPs, []ports.IP{
+ {SubnetID: "a0304c3a-4f08-4c43-88af-d796509c97d2", IPAddress: "10.0.0.3"},
})
- th.AssertDeepEquals(t, s.AllowedAddressPairs, []AddressPair{
- AddressPair{IPAddress: "10.0.0.4", MACAddress: "fa:16:3e:c9:cb:f0"},
+ th.AssertDeepEquals(t, s.AllowedAddressPairs, []ports.AddressPair{
+ {IPAddress: "10.0.0.4", MACAddress: "fa:16:3e:c9:cb:f0"},
})
th.AssertDeepEquals(t, s.SecurityGroups, []string{"f0ac4394-7e4a-4409-9701-ba8be283dbc3"})
}
@@ -351,6 +352,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "65c0ee9f-d634-4522-8954-51021b570b0d")
+ res := ports.Delete(fake.ServiceClient(), "65c0ee9f-d634-4522-8954-51021b570b0d")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/subnets/errors.go b/openstack/networking/v2/subnets/errors.go
deleted file mode 100644
index d2f7b46..0000000
--- a/openstack/networking/v2/subnets/errors.go
+++ /dev/null
@@ -1,14 +0,0 @@
-package subnets
-
-import "fmt"
-
-func err(str string) error {
- return fmt.Errorf("%s", str)
-}
-
-var (
- errNetworkIDRequired = err("A network ID is required")
- errCIDRRequired = err("A valid CIDR is required")
- errInvalidIPType = err("An IP type must either be 4 or 6")
- errInvalidGatewayConfig = err("Both disabling the gateway and specifying a gateway is not allowed")
-)
diff --git a/openstack/networking/v2/subnets/testing/doc.go b/openstack/networking/v2/subnets/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/networking/v2/subnets/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/networking/v2/subnets/requests_test.go b/openstack/networking/v2/subnets/testing/requests_test.go
similarity index 85%
rename from openstack/networking/v2/subnets/requests_test.go
rename to openstack/networking/v2/subnets/testing/requests_test.go
index 4241c63..13fa9df 100644
--- a/openstack/networking/v2/subnets/requests_test.go
+++ b/openstack/networking/v2/subnets/testing/requests_test.go
@@ -1,4 +1,4 @@
-package subnets
+package testing
import (
"fmt"
@@ -6,6 +6,7 @@
"testing"
fake "github.com/gophercloud/gophercloud/openstack/networking/v2/common"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/subnets"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
)
@@ -85,64 +86,64 @@
count := 0
- List(fake.ServiceClient(), ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
+ subnets.List(fake.ServiceClient(), subnets.ListOpts{}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractSubnets(page)
+ actual, err := subnets.ExtractSubnets(page)
if err != nil {
t.Errorf("Failed to extract subnets: %v", err)
return false, nil
}
- expected := []Subnet{
- Subnet{
+ expected := []subnets.Subnet{
+ {
Name: "private-subnet",
EnableDHCP: true,
NetworkID: "db193ab3-96e3-4cb3-8fc5-05f4296d0324",
TenantID: "26a7980765d0414dbc1fc1f88cdb7e6e",
DNSNameservers: []string{},
- AllocationPools: []AllocationPool{
- AllocationPool{
+ AllocationPools: []subnets.AllocationPool{
+ {
Start: "10.0.0.2",
End: "10.0.0.254",
},
},
- HostRoutes: []HostRoute{},
+ HostRoutes: []subnets.HostRoute{},
IPVersion: 4,
GatewayIP: "10.0.0.1",
CIDR: "10.0.0.0/24",
ID: "08eae331-0402-425a-923c-34f7cfe39c1b",
},
- Subnet{
+ {
Name: "my_subnet",
EnableDHCP: true,
NetworkID: "d32019d3-bc6e-4319-9c1d-6722fc136a22",
TenantID: "4fd44f30292945e481c7b8a0c8908869",
DNSNameservers: []string{},
- AllocationPools: []AllocationPool{
- AllocationPool{
+ AllocationPools: []subnets.AllocationPool{
+ {
Start: "192.0.0.2",
End: "192.255.255.254",
},
},
- HostRoutes: []HostRoute{},
+ HostRoutes: []subnets.HostRoute{},
IPVersion: 4,
GatewayIP: "192.0.0.1",
CIDR: "192.0.0.0/8",
ID: "54d6f61d-db07-451c-9ab3-b9609b6b6f0b",
},
- Subnet{
+ subnets.Subnet{
Name: "my_gatewayless_subnet",
EnableDHCP: true,
NetworkID: "d32019d3-bc6e-4319-9c1d-6722fc136a23",
TenantID: "4fd44f30292945e481c7b8a0c8908869",
DNSNameservers: []string{},
- AllocationPools: []AllocationPool{
- AllocationPool{
+ AllocationPools: []subnets.AllocationPool{
+ {
Start: "192.168.1.2",
End: "192.168.1.254",
},
},
- HostRoutes: []HostRoute{},
+ HostRoutes: []subnets.HostRoute{},
IPVersion: 4,
GatewayIP: "",
CIDR: "192.168.1.0/24",
@@ -195,7 +196,7 @@
`)
})
- s, err := Get(fake.ServiceClient(), "54d6f61d-db07-451c-9ab3-b9609b6b6f0b").Extract()
+ s, err := subnets.Get(fake.ServiceClient(), "54d6f61d-db07-451c-9ab3-b9609b6b6f0b").Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, s.Name, "my_subnet")
@@ -203,13 +204,13 @@
th.AssertEquals(t, s.NetworkID, "d32019d3-bc6e-4319-9c1d-6722fc136a22")
th.AssertEquals(t, s.TenantID, "4fd44f30292945e481c7b8a0c8908869")
th.AssertDeepEquals(t, s.DNSNameservers, []string{})
- th.AssertDeepEquals(t, s.AllocationPools, []AllocationPool{
- AllocationPool{
+ th.AssertDeepEquals(t, s.AllocationPools, []subnets.AllocationPool{
+ {
Start: "192.0.0.2",
End: "192.255.255.254",
},
})
- th.AssertDeepEquals(t, s.HostRoutes, []HostRoute{})
+ th.AssertDeepEquals(t, s.HostRoutes, []subnets.HostRoute{})
th.AssertEquals(t, s.IPVersion, 4)
th.AssertEquals(t, s.GatewayIP, "192.0.0.1")
th.AssertEquals(t, s.CIDR, "192.0.0.0/8")
@@ -271,22 +272,22 @@
`)
})
- opts := CreateOpts{
+ opts := subnets.CreateOpts{
NetworkID: "d32019d3-bc6e-4319-9c1d-6722fc136a22",
IPVersion: 4,
CIDR: "192.168.199.0/24",
- AllocationPools: []AllocationPool{
- AllocationPool{
+ AllocationPools: []subnets.AllocationPool{
+ {
Start: "192.168.199.2",
End: "192.168.199.254",
},
},
DNSNameservers: []string{"foo"},
- HostRoutes: []HostRoute{
- HostRoute{NextHop: "bar"},
+ HostRoutes: []subnets.HostRoute{
+ {NextHop: "bar"},
},
}
- s, err := Create(fake.ServiceClient(), opts).Extract()
+ s, err := subnets.Create(fake.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, s.Name, "")
@@ -294,13 +295,13 @@
th.AssertEquals(t, s.NetworkID, "d32019d3-bc6e-4319-9c1d-6722fc136a22")
th.AssertEquals(t, s.TenantID, "4fd44f30292945e481c7b8a0c8908869")
th.AssertDeepEquals(t, s.DNSNameservers, []string{})
- th.AssertDeepEquals(t, s.AllocationPools, []AllocationPool{
- AllocationPool{
+ th.AssertDeepEquals(t, s.AllocationPools, []subnets.AllocationPool{
+ {
Start: "192.168.199.2",
End: "192.168.199.254",
},
})
- th.AssertDeepEquals(t, s.HostRoutes, []HostRoute{})
+ th.AssertDeepEquals(t, s.HostRoutes, []subnets.HostRoute{})
th.AssertEquals(t, s.IPVersion, 4)
th.AssertEquals(t, s.GatewayIP, "192.168.199.1")
th.AssertEquals(t, s.CIDR, "192.168.199.0/24")
@@ -359,32 +360,32 @@
`)
})
- opts := CreateOpts{
+ opts := subnets.CreateOpts{
NetworkID: "d32019d3-bc6e-4319-9c1d-6722fc136a23",
IPVersion: 4,
CIDR: "192.168.1.0/24",
- AllocationPools: []AllocationPool{
- AllocationPool{
+ AllocationPools: []subnets.AllocationPool{
+ {
Start: "192.168.1.2",
End: "192.168.1.254",
},
},
DNSNameservers: []string{},
}
- s, err := Create(fake.ServiceClient(), opts).Extract()
+ s, err := subnets.Create(fake.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, s.Name, "")
th.AssertEquals(t, s.EnableDHCP, true)
th.AssertEquals(t, s.NetworkID, "d32019d3-bc6e-4319-9c1d-6722fc136a23")
th.AssertEquals(t, s.TenantID, "4fd44f30292945e481c7b8a0c8908869")
- th.AssertDeepEquals(t, s.AllocationPools, []AllocationPool{
- AllocationPool{
+ th.AssertDeepEquals(t, s.AllocationPools, []subnets.AllocationPool{
+ {
Start: "192.168.1.2",
End: "192.168.1.254",
},
})
- th.AssertDeepEquals(t, s.HostRoutes, []HostRoute{})
+ th.AssertDeepEquals(t, s.HostRoutes, []subnets.HostRoute{})
th.AssertEquals(t, s.IPVersion, 4)
th.AssertEquals(t, s.GatewayIP, "")
th.AssertEquals(t, s.CIDR, "192.168.1.0/24")
@@ -392,17 +393,17 @@
}
func TestRequiredCreateOpts(t *testing.T) {
- res := Create(fake.ServiceClient(), CreateOpts{})
+ res := subnets.Create(fake.ServiceClient(), subnets.CreateOpts{})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
- res = Create(fake.ServiceClient(), CreateOpts{NetworkID: "foo"})
+ res = subnets.Create(fake.ServiceClient(), subnets.CreateOpts{NetworkID: "foo"})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
- res = Create(fake.ServiceClient(), CreateOpts{NetworkID: "foo", CIDR: "bar", IPVersion: 40})
+ res = subnets.Create(fake.ServiceClient(), subnets.CreateOpts{NetworkID: "foo", CIDR: "bar", IPVersion: 40})
if res.Err == nil {
t.Fatalf("Expected error, got none")
}
@@ -454,14 +455,14 @@
`)
})
- opts := UpdateOpts{
+ opts := subnets.UpdateOpts{
Name: "my_new_subnet",
DNSNameservers: []string{"foo"},
- HostRoutes: []HostRoute{
- HostRoute{NextHop: "bar"},
+ HostRoutes: []subnets.HostRoute{
+ {NextHop: "bar"},
},
}
- s, err := Update(fake.ServiceClient(), "08eae331-0402-425a-923c-34f7cfe39c1b", opts).Extract()
+ s, err := subnets.Update(fake.ServiceClient(), "08eae331-0402-425a-923c-34f7cfe39c1b", opts).Extract()
th.AssertNoErr(t, err)
th.AssertEquals(t, s.Name, "my_new_subnet")
@@ -478,6 +479,6 @@
w.WriteHeader(http.StatusNoContent)
})
- res := Delete(fake.ServiceClient(), "08eae331-0402-425a-923c-34f7cfe39c1b")
+ res := subnets.Delete(fake.ServiceClient(), "08eae331-0402-425a-923c-34f7cfe39c1b")
th.AssertNoErr(t, res.Err)
}
diff --git a/openstack/networking/v2/subnets/results_test.go b/openstack/networking/v2/subnets/testing/results_test.go
similarity index 77%
rename from openstack/networking/v2/subnets/results_test.go
rename to openstack/networking/v2/subnets/testing/results_test.go
index ce71a46..a227ccd 100644
--- a/openstack/networking/v2/subnets/results_test.go
+++ b/openstack/networking/v2/subnets/testing/results_test.go
@@ -1,10 +1,12 @@
-package subnets
+package testing
import (
"encoding/json"
- "github.com/gophercloud/gophercloud"
- th "github.com/gophercloud/gophercloud/testhelper"
"testing"
+
+ "github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/networking/v2/subnets"
+ th "github.com/gophercloud/gophercloud/testhelper"
)
func TestHostRoute(t *testing.T) {
@@ -26,7 +28,7 @@
"host_routes": [
{
"destination": "172.20.1.0/24",
- "nexthop": "172.16.0.2"
+ "nexthop": "172.16.0.2"
}
],
"ip_version": 4,
@@ -43,12 +45,15 @@
t.Fatalf("%s", err)
}
- resp := commonResult{gophercloud.Result{Body: dejson}}
- subnet, err := resp.Extract()
+ resp := gophercloud.Result{Body: dejson}
+ var subnetWrapper struct {
+ Subnet subnets.Subnet `json:"subnet"`
+ }
+ err = resp.ExtractInto(&subnetWrapper)
if err != nil {
t.Fatalf("%s", err)
}
- route := subnet.HostRoutes[0]
+ route := subnetWrapper.Subnet.HostRoutes[0]
th.AssertEquals(t, route.NextHop, "172.16.0.2")
th.AssertEquals(t, route.DestinationCIDR, "172.20.1.0/24")
}
diff --git a/openstack/objectstorage/v1/accounts/testing/doc.go b/openstack/objectstorage/v1/accounts/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/objectstorage/v1/accounts/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/objectstorage/v1/accounts/fixtures.go b/openstack/objectstorage/v1/accounts/testing/fixtures.go
similarity index 96%
rename from openstack/objectstorage/v1/accounts/fixtures.go
rename to openstack/objectstorage/v1/accounts/testing/fixtures.go
index 16327e8..a265199 100644
--- a/openstack/objectstorage/v1/accounts/fixtures.go
+++ b/openstack/objectstorage/v1/accounts/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package accounts
+package testing
import (
"net/http"
diff --git a/openstack/objectstorage/v1/accounts/requests_test.go b/openstack/objectstorage/v1/accounts/testing/requests_test.go
similarity index 66%
rename from openstack/objectstorage/v1/accounts/requests_test.go
rename to openstack/objectstorage/v1/accounts/testing/requests_test.go
index 8aba591..cf3fe05 100644
--- a/openstack/objectstorage/v1/accounts/requests_test.go
+++ b/openstack/objectstorage/v1/accounts/testing/requests_test.go
@@ -1,8 +1,9 @@
-package accounts
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/accounts"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -12,8 +13,8 @@
defer th.TeardownHTTP()
HandleUpdateAccountSuccessfully(t)
- options := &UpdateOpts{Metadata: map[string]string{"gophercloud-test": "accounts"}}
- _, err := Update(fake.ServiceClient(), options).Extract()
+ options := &accounts.UpdateOpts{Metadata: map[string]string{"gophercloud-test": "accounts"}}
+ _, err := accounts.Update(fake.ServiceClient(), options).Extract()
th.AssertNoErr(t, err)
}
@@ -23,7 +24,7 @@
HandleGetAccountSuccessfully(t)
expectedMetadata := map[string]string{"Subject": "books"}
- res := Get(fake.ServiceClient(), &GetOpts{})
+ res := accounts.Get(fake.ServiceClient(), &accounts.GetOpts{})
th.AssertNoErr(t, res.Err)
actualMetadata, _ := res.ExtractMetadata()
th.CheckDeepEquals(t, expectedMetadata, actualMetadata)
diff --git a/openstack/objectstorage/v1/containers/testing/doc.go b/openstack/objectstorage/v1/containers/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/objectstorage/v1/containers/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/objectstorage/v1/containers/fixtures.go b/openstack/objectstorage/v1/containers/testing/fixtures.go
similarity index 96%
rename from openstack/objectstorage/v1/containers/fixtures.go
rename to openstack/objectstorage/v1/containers/testing/fixtures.go
index fde8815..fe579d8 100644
--- a/openstack/objectstorage/v1/containers/fixtures.go
+++ b/openstack/objectstorage/v1/containers/testing/fixtures.go
@@ -1,25 +1,24 @@
-// +build fixtures
-
-package containers
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/containers"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
)
// ExpectedListInfo is the result expected from a call to `List` when full
// info is requested.
-var ExpectedListInfo = []Container{
- Container{
+var ExpectedListInfo = []containers.Container{
+ {
Count: 0,
Bytes: 0,
Name: "janeausten",
},
- Container{
+ {
Count: 1,
Bytes: 14,
Name: "marktwain",
diff --git a/openstack/objectstorage/v1/containers/requests_test.go b/openstack/objectstorage/v1/containers/testing/requests_test.go
similarity index 63%
rename from openstack/objectstorage/v1/containers/requests_test.go
rename to openstack/objectstorage/v1/containers/testing/requests_test.go
index 5066ab2..0d32882 100644
--- a/openstack/objectstorage/v1/containers/requests_test.go
+++ b/openstack/objectstorage/v1/containers/testing/requests_test.go
@@ -1,8 +1,9 @@
-package containers
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/containers"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -16,9 +17,9 @@
HandleListContainerInfoSuccessfully(t)
count := 0
- err := List(fake.ServiceClient(), &ListOpts{Full: true}).EachPage(func(page pagination.Page) (bool, error) {
+ err := containers.List(fake.ServiceClient(), &containers.ListOpts{Full: true}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractInfo(page)
+ actual, err := containers.ExtractInfo(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedListInfo, actual)
@@ -34,9 +35,9 @@
defer th.TeardownHTTP()
HandleListContainerInfoSuccessfully(t)
- allPages, err := List(fake.ServiceClient(), &ListOpts{Full: true}).AllPages()
+ allPages, err := containers.List(fake.ServiceClient(), &containers.ListOpts{Full: true}).AllPages()
th.AssertNoErr(t, err)
- actual, err := ExtractInfo(allPages)
+ actual, err := containers.ExtractInfo(allPages)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedListInfo, actual)
}
@@ -47,9 +48,9 @@
HandleListContainerNamesSuccessfully(t)
count := 0
- err := List(fake.ServiceClient(), &ListOpts{Full: false}).EachPage(func(page pagination.Page) (bool, error) {
+ err := containers.List(fake.ServiceClient(), &containers.ListOpts{Full: false}).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractNames(page)
+ actual, err := containers.ExtractNames(page)
if err != nil {
t.Errorf("Failed to extract container names: %v", err)
return false, err
@@ -68,9 +69,9 @@
defer th.TeardownHTTP()
HandleListContainerNamesSuccessfully(t)
- allPages, err := List(fake.ServiceClient(), &ListOpts{Full: false}).AllPages()
+ allPages, err := containers.List(fake.ServiceClient(), &containers.ListOpts{Full: false}).AllPages()
th.AssertNoErr(t, err)
- actual, err := ExtractNames(allPages)
+ actual, err := containers.ExtractNames(allPages)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedListNames, actual)
}
@@ -80,8 +81,8 @@
defer th.TeardownHTTP()
HandleCreateContainerSuccessfully(t)
- options := CreateOpts{ContentType: "application/json", Metadata: map[string]string{"foo": "bar"}}
- res := Create(fake.ServiceClient(), "testContainer", options)
+ options := containers.CreateOpts{ContentType: "application/json", Metadata: map[string]string{"foo": "bar"}}
+ res := containers.Create(fake.ServiceClient(), "testContainer", options)
c, err := res.Extract()
th.CheckNoErr(t, err)
th.CheckEquals(t, "bar", res.Header["X-Container-Meta-Foo"][0])
@@ -93,7 +94,7 @@
defer th.TeardownHTTP()
HandleDeleteContainerSuccessfully(t)
- res := Delete(fake.ServiceClient(), "testContainer")
+ res := containers.Delete(fake.ServiceClient(), "testContainer")
th.CheckNoErr(t, res.Err)
}
@@ -102,8 +103,8 @@
defer th.TeardownHTTP()
HandleUpdateContainerSuccessfully(t)
- options := &UpdateOpts{Metadata: map[string]string{"foo": "bar"}}
- res := Update(fake.ServiceClient(), "testContainer", options)
+ options := &containers.UpdateOpts{Metadata: map[string]string{"foo": "bar"}}
+ res := containers.Update(fake.ServiceClient(), "testContainer", options)
th.CheckNoErr(t, res.Err)
}
@@ -112,6 +113,6 @@
defer th.TeardownHTTP()
HandleGetContainerSuccessfully(t)
- _, err := Get(fake.ServiceClient(), "testContainer").ExtractMetadata()
+ _, err := containers.Get(fake.ServiceClient(), "testContainer").ExtractMetadata()
th.CheckNoErr(t, err)
}
diff --git a/openstack/objectstorage/v1/objects/testing/doc.go b/openstack/objectstorage/v1/objects/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/objectstorage/v1/objects/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/objectstorage/v1/objects/fixtures.go b/openstack/objectstorage/v1/objects/testing/fixtures.go
similarity index 97%
rename from openstack/objectstorage/v1/objects/fixtures.go
rename to openstack/objectstorage/v1/objects/testing/fixtures.go
index 999b305..5077c3f 100644
--- a/openstack/objectstorage/v1/objects/fixtures.go
+++ b/openstack/objectstorage/v1/objects/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package objects
+package testing
import (
"crypto/md5"
@@ -9,6 +7,7 @@
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/objects"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -27,15 +26,15 @@
// ExpectedListInfo is the result expected from a call to `List` when full
// info is requested.
-var ExpectedListInfo = []Object{
- Object{
+var ExpectedListInfo = []objects.Object{
+ {
Hash: "451e372e48e0f6b1114fa0724aa79fa1",
LastModified: "2009-11-10 23:00:00 +0000 UTC",
Bytes: 14,
Name: "goodbye",
ContentType: "application/octet-stream",
},
- Object{
+ {
Hash: "451e372e48e0f6b1114fa0724aa79fa1",
LastModified: "2009-11-10 23:00:00 +0000 UTC",
Bytes: 14,
diff --git a/openstack/objectstorage/v1/objects/requests_test.go b/openstack/objectstorage/v1/objects/testing/requests_test.go
similarity index 68%
rename from openstack/objectstorage/v1/objects/requests_test.go
rename to openstack/objectstorage/v1/objects/testing/requests_test.go
index e612319..332028e 100644
--- a/openstack/objectstorage/v1/objects/requests_test.go
+++ b/openstack/objectstorage/v1/objects/testing/requests_test.go
@@ -1,4 +1,4 @@
-package objects
+package testing
import (
"bytes"
@@ -6,6 +6,7 @@
"strings"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/objects"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -16,7 +17,7 @@
defer th.TeardownHTTP()
HandleDownloadObjectSuccessfully(t)
- response := Download(fake.ServiceClient(), "testContainer", "testObject", nil)
+ response := objects.Download(fake.ServiceClient(), "testContainer", "testObject", nil)
defer response.Body.Close()
// Check reader
@@ -30,7 +31,7 @@
defer th.TeardownHTTP()
HandleDownloadObjectSuccessfully(t)
- response := Download(fake.ServiceClient(), "testContainer", "testObject", nil)
+ response := objects.Download(fake.ServiceClient(), "testContainer", "testObject", nil)
// Check []byte extraction
bytes, err := response.ExtractContent()
@@ -44,10 +45,10 @@
HandleListObjectsInfoSuccessfully(t)
count := 0
- options := &ListOpts{Full: true}
- err := List(fake.ServiceClient(), "testContainer", options).EachPage(func(page pagination.Page) (bool, error) {
+ options := &objects.ListOpts{Full: true}
+ err := objects.List(fake.ServiceClient(), "testContainer", options).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractInfo(page)
+ actual, err := objects.ExtractInfo(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ExpectedListInfo, actual)
@@ -64,10 +65,10 @@
HandleListObjectNamesSuccessfully(t)
count := 0
- options := &ListOpts{Full: false}
- err := List(fake.ServiceClient(), "testContainer", options).EachPage(func(page pagination.Page) (bool, error) {
+ options := &objects.ListOpts{Full: false}
+ err := objects.List(fake.ServiceClient(), "testContainer", options).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractNames(page)
+ actual, err := objects.ExtractNames(page)
if err != nil {
t.Errorf("Failed to extract container names: %v", err)
return false, err
@@ -89,8 +90,8 @@
HandleCreateTextObjectSuccessfully(t, content)
- options := &CreateOpts{ContentType: "text/plain", Content: strings.NewReader(content)}
- res := Create(fake.ServiceClient(), "testContainer", "testObject", options)
+ options := &objects.CreateOpts{ContentType: "text/plain", Content: strings.NewReader(content)}
+ res := objects.Create(fake.ServiceClient(), "testContainer", "testObject", options)
th.AssertNoErr(t, res.Err)
}
@@ -102,7 +103,7 @@
HandleCreateTypelessObjectSuccessfully(t, content)
- res := Create(fake.ServiceClient(), "testContainer", "testObject", &CreateOpts{Content: strings.NewReader(content)})
+ res := objects.Create(fake.ServiceClient(), "testContainer", "testObject", &objects.CreateOpts{Content: strings.NewReader(content)})
th.AssertNoErr(t, res.Err)
}
@@ -129,8 +130,8 @@
defer th.TeardownHTTP()
HandleCopyObjectSuccessfully(t)
- options := &CopyOpts{Destination: "/newTestContainer/newTestObject"}
- res := Copy(fake.ServiceClient(), "testContainer", "testObject", options)
+ options := &objects.CopyOpts{Destination: "/newTestContainer/newTestObject"}
+ res := objects.Copy(fake.ServiceClient(), "testContainer", "testObject", options)
th.AssertNoErr(t, res.Err)
}
@@ -139,7 +140,7 @@
defer th.TeardownHTTP()
HandleDeleteObjectSuccessfully(t)
- res := Delete(fake.ServiceClient(), "testContainer", "testObject", nil)
+ res := objects.Delete(fake.ServiceClient(), "testContainer", "testObject", nil)
th.AssertNoErr(t, res.Err)
}
@@ -148,8 +149,8 @@
defer th.TeardownHTTP()
HandleUpdateObjectSuccessfully(t)
- options := &UpdateOpts{Metadata: map[string]string{"Gophercloud-Test": "objects"}}
- res := Update(fake.ServiceClient(), "testContainer", "testObject", options)
+ options := &objects.UpdateOpts{Metadata: map[string]string{"Gophercloud-Test": "objects"}}
+ res := objects.Update(fake.ServiceClient(), "testContainer", "testObject", options)
th.AssertNoErr(t, res.Err)
}
@@ -159,7 +160,7 @@
HandleGetObjectSuccessfully(t)
expected := map[string]string{"Gophercloud-Test": "objects"}
- actual, err := Get(fake.ServiceClient(), "testContainer", "testObject", nil).ExtractMetadata()
+ actual, err := objects.Get(fake.ServiceClient(), "testContainer", "testObject", nil).ExtractMetadata()
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, expected, actual)
}
diff --git a/openstack/orchestration/v1/apiversions/testing/doc.go b/openstack/orchestration/v1/apiversions/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/orchestration/v1/apiversions/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/orchestration/v1/apiversions/requests_test.go b/openstack/orchestration/v1/apiversions/testing/requests_test.go
similarity index 77%
rename from openstack/orchestration/v1/apiversions/requests_test.go
rename to openstack/orchestration/v1/apiversions/testing/requests_test.go
index 477b804..ac59b6c 100644
--- a/openstack/orchestration/v1/apiversions/requests_test.go
+++ b/openstack/orchestration/v1/apiversions/testing/requests_test.go
@@ -1,4 +1,4 @@
-package apiversions
+package testing
import (
"fmt"
@@ -6,6 +6,7 @@
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/orchestration/v1/apiversions"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -41,16 +42,16 @@
count := 0
- ListVersions(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ apiversions.ListVersions(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractAPIVersions(page)
+ actual, err := apiversions.ExtractAPIVersions(page)
if err != nil {
t.Errorf("Failed to extract API versions: %v", err)
return false, err
}
- expected := []APIVersion{
- APIVersion{
+ expected := []apiversions.APIVersion{
+ {
Status: "CURRENT",
ID: "v1.0",
Links: []gophercloud.Link{
@@ -80,8 +81,8 @@
w.WriteHeader(http.StatusOK)
})
- ListVersions(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
- if _, err := ExtractAPIVersions(page); err == nil {
+ apiversions.ListVersions(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ if _, err := apiversions.ExtractAPIVersions(page); err == nil {
t.Fatalf("Expected error, got nil")
}
return true, nil
diff --git a/openstack/orchestration/v1/buildinfo/testing/doc.go b/openstack/orchestration/v1/buildinfo/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/orchestration/v1/buildinfo/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/orchestration/v1/buildinfo/fixtures.go b/openstack/orchestration/v1/buildinfo/testing/fixtures.go
similarity index 83%
rename from openstack/orchestration/v1/buildinfo/fixtures.go
rename to openstack/orchestration/v1/buildinfo/testing/fixtures.go
index 87bc3ec..c240d5f 100644
--- a/openstack/orchestration/v1/buildinfo/fixtures.go
+++ b/openstack/orchestration/v1/buildinfo/testing/fixtures.go
@@ -1,22 +1,21 @@
-// +build fixtures
-
-package buildinfo
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/orchestration/v1/buildinfo"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
)
// GetExpected represents the expected object from a Get request.
-var GetExpected = &BuildInfo{
- API: Revision{
+var GetExpected = &buildinfo.BuildInfo{
+ API: buildinfo.Revision{
Revision: "2.4.5",
},
- Engine: Revision{
+ Engine: buildinfo.Revision{
Revision: "1.2.1",
},
}
diff --git a/openstack/orchestration/v1/buildinfo/requests_test.go b/openstack/orchestration/v1/buildinfo/testing/requests_test.go
similarity index 69%
rename from openstack/orchestration/v1/buildinfo/requests_test.go
rename to openstack/orchestration/v1/buildinfo/testing/requests_test.go
index 18d15b3..bd2e164 100644
--- a/openstack/orchestration/v1/buildinfo/requests_test.go
+++ b/openstack/orchestration/v1/buildinfo/testing/requests_test.go
@@ -1,8 +1,9 @@
-package buildinfo
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/orchestration/v1/buildinfo"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -12,7 +13,7 @@
defer th.TeardownHTTP()
HandleGetSuccessfully(t, GetOutput)
- actual, err := Get(fake.ServiceClient()).Extract()
+ actual, err := buildinfo.Get(fake.ServiceClient()).Extract()
th.AssertNoErr(t, err)
expected := GetExpected
diff --git a/openstack/orchestration/v1/stackevents/testing/doc.go b/openstack/orchestration/v1/stackevents/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/orchestration/v1/stackevents/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/orchestration/v1/stackevents/fixtures.go b/openstack/orchestration/v1/stackevents/testing/fixtures.go
similarity index 96%
rename from openstack/orchestration/v1/stackevents/fixtures.go
rename to openstack/orchestration/v1/stackevents/testing/fixtures.go
index e4af1bb..a7af025 100644
--- a/openstack/orchestration/v1/stackevents/fixtures.go
+++ b/openstack/orchestration/v1/stackevents/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package stackevents
+package testing
import (
"fmt"
@@ -9,25 +7,26 @@
"time"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/orchestration/v1/stackevents"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
)
// FindExpected represents the expected object from a Find request.
-var FindExpected = []Event{
- Event{
+var FindExpected = []stackevents.Event{
+ {
ResourceName: "hello_world",
Time: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 5, 21, 33, 11, 0, time.UTC)),
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world/events/06feb26f-9298-4a9b-8749-9d770e5d577a",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world",
Rel: "resource",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b",
Rel: "stack",
},
@@ -38,19 +37,19 @@
PhysicalResourceID: "",
ID: "06feb26f-9298-4a9b-8749-9d770e5d577a",
},
- Event{
+ {
ResourceName: "hello_world",
Time: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 5, 21, 33, 27, 0, time.UTC)),
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world/events/93940999-7d40-44ae-8de4-19624e7b8d18",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world",
Rel: "resource",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b",
Rel: "stack",
},
@@ -131,20 +130,20 @@
}
// ListExpected represents the expected object from a List request.
-var ListExpected = []Event{
- Event{
+var ListExpected = []stackevents.Event{
+ {
ResourceName: "hello_world",
Time: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 5, 21, 33, 11, 0, time.UTC)),
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world/events/06feb26f-9298-4a9b-8749-9d770e5d577a",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world",
Rel: "resource",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b",
Rel: "stack",
},
@@ -155,19 +154,19 @@
PhysicalResourceID: "",
ID: "06feb26f-9298-4a9b-8749-9d770e5d577a",
},
- Event{
+ {
ResourceName: "hello_world",
Time: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 5, 21, 33, 27, 0, time.UTC)),
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world/events/93940999-7d40-44ae-8de4-19624e7b8d18",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world",
Rel: "resource",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b",
Rel: "stack",
},
@@ -256,20 +255,20 @@
}
// ListResourceEventsExpected represents the expected object from a ListResourceEvents request.
-var ListResourceEventsExpected = []Event{
- Event{
+var ListResourceEventsExpected = []stackevents.Event{
+ {
ResourceName: "hello_world",
Time: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 5, 21, 33, 11, 0, time.UTC)),
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world/events/06feb26f-9298-4a9b-8749-9d770e5d577a",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world",
Rel: "resource",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b",
Rel: "stack",
},
@@ -280,19 +279,19 @@
PhysicalResourceID: "",
ID: "06feb26f-9298-4a9b-8749-9d770e5d577a",
},
- Event{
+ {
ResourceName: "hello_world",
Time: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 5, 21, 33, 27, 0, time.UTC)),
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world/events/93940999-7d40-44ae-8de4-19624e7b8d18",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world",
Rel: "resource",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b",
Rel: "stack",
},
@@ -381,19 +380,19 @@
}
// GetExpected represents the expected object from a Get request.
-var GetExpected = &Event{
+var GetExpected = &stackevents.Event{
ResourceName: "hello_world",
Time: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 5, 21, 33, 27, 0, time.UTC)),
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world/events/93940999-7d40-44ae-8de4-19624e7b8d18",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world",
Rel: "resource",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b",
Rel: "stack",
},
diff --git a/openstack/orchestration/v1/stackevents/requests_test.go b/openstack/orchestration/v1/stackevents/testing/requests_test.go
similarity index 60%
rename from openstack/orchestration/v1/stackevents/requests_test.go
rename to openstack/orchestration/v1/stackevents/testing/requests_test.go
index cead1f3..0ad3fc3 100644
--- a/openstack/orchestration/v1/stackevents/requests_test.go
+++ b/openstack/orchestration/v1/stackevents/testing/requests_test.go
@@ -1,8 +1,9 @@
-package stackevents
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/orchestration/v1/stackevents"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -13,7 +14,7 @@
defer th.TeardownHTTP()
HandleFindSuccessfully(t, FindOutput)
- actual, err := Find(fake.ServiceClient(), "postman_stack").Extract()
+ actual, err := stackevents.Find(fake.ServiceClient(), "postman_stack").Extract()
th.AssertNoErr(t, err)
expected := FindExpected
@@ -26,9 +27,9 @@
HandleListSuccessfully(t, ListOutput)
count := 0
- err := List(fake.ServiceClient(), "hello_world", "49181cd6-169a-4130-9455-31185bbfc5bf", nil).EachPage(func(page pagination.Page) (bool, error) {
+ err := stackevents.List(fake.ServiceClient(), "hello_world", "49181cd6-169a-4130-9455-31185bbfc5bf", nil).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractEvents(page)
+ actual, err := stackevents.ExtractEvents(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ListExpected, actual)
@@ -45,9 +46,9 @@
HandleListResourceEventsSuccessfully(t, ListResourceEventsOutput)
count := 0
- err := ListResourceEvents(fake.ServiceClient(), "hello_world", "49181cd6-169a-4130-9455-31185bbfc5bf", "my_resource", nil).EachPage(func(page pagination.Page) (bool, error) {
+ err := stackevents.ListResourceEvents(fake.ServiceClient(), "hello_world", "49181cd6-169a-4130-9455-31185bbfc5bf", "my_resource", nil).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractEvents(page)
+ actual, err := stackevents.ExtractEvents(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ListResourceEventsExpected, actual)
@@ -63,7 +64,7 @@
defer th.TeardownHTTP()
HandleGetSuccessfully(t, GetOutput)
- actual, err := Get(fake.ServiceClient(), "hello_world", "49181cd6-169a-4130-9455-31185bbfc5bf", "my_resource", "93940999-7d40-44ae-8de4-19624e7b8d18").Extract()
+ actual, err := stackevents.Get(fake.ServiceClient(), "hello_world", "49181cd6-169a-4130-9455-31185bbfc5bf", "my_resource", "93940999-7d40-44ae-8de4-19624e7b8d18").Extract()
th.AssertNoErr(t, err)
expected := GetExpected
diff --git a/openstack/orchestration/v1/stackresources/testing/doc.go b/openstack/orchestration/v1/stackresources/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/orchestration/v1/stackresources/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/orchestration/v1/stackresources/fixtures.go b/openstack/orchestration/v1/stackresources/testing/fixtures.go
similarity index 97%
rename from openstack/orchestration/v1/stackresources/fixtures.go
rename to openstack/orchestration/v1/stackresources/testing/fixtures.go
index beec637..adcd4c6 100644
--- a/openstack/orchestration/v1/stackresources/fixtures.go
+++ b/openstack/orchestration/v1/stackresources/testing/fixtures.go
@@ -1,6 +1,4 @@
-// +build fixtures
-
-package stackresources
+package testing
import (
"fmt"
@@ -9,20 +7,21 @@
"time"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/orchestration/v1/stackresources"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
)
// FindExpected represents the expected object from a Find request.
-var FindExpected = []Resource{
- Resource{
+var FindExpected = []stackresources.Resource{
+ {
Name: "hello_world",
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b",
Rel: "stack",
},
@@ -85,15 +84,15 @@
}
// ListExpected represents the expected object from a List request.
-var ListExpected = []Resource{
- Resource{
+var ListExpected = []stackresources.Resource{
+ {
Name: "hello_world",
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b/resources/hello_world",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/5f57cff9-93fc-424e-9f78-df0515e7f48b",
Rel: "stack",
},
@@ -163,14 +162,14 @@
}
// GetExpected represents the expected object from a Get request.
-var GetExpected = &Resource{
+var GetExpected = &stackresources.Resource{
Name: "wordpress_instance",
Links: []gophercloud.Link{
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/teststack/0b1771bd-9336-4f2b-ae86-a80f971faf1e/resources/wordpress_instance",
Rel: "self",
},
- gophercloud.Link{
+ {
Href: "http://166.78.160.107:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/teststack/0b1771bd-9336-4f2b-ae86-a80f971faf1e",
Rel: "stack",
},
@@ -257,7 +256,7 @@
}
// ListTypesExpected represents the expected object from a ListTypes request.
-var ListTypesExpected = ResourceTypes{
+var ListTypesExpected = stackresources.ResourceTypes{
"OS::Nova::Server",
"OS::Heat::RandomString",
"OS::Swift::Container",
@@ -269,7 +268,7 @@
}
// same as above, but sorted
-var SortedListTypesExpected = ResourceTypes{
+var SortedListTypesExpected = stackresources.ResourceTypes{
"OS::Cinder::VolumeAttachment",
"OS::Heat::RandomString",
"OS::Nova::FloatingIP",
@@ -310,7 +309,7 @@
}
// GetSchemaExpected represents the expected object from a Schema request.
-var GetSchemaExpected = &TypeSchema{
+var GetSchemaExpected = &stackresources.TypeSchema{
Attributes: map[string]interface{}{
"an_attribute": map[string]interface{}{
"description": "An attribute description .",
diff --git a/openstack/orchestration/v1/stackresources/requests_test.go b/openstack/orchestration/v1/stackresources/testing/requests_test.go
similarity index 66%
rename from openstack/orchestration/v1/stackresources/requests_test.go
rename to openstack/orchestration/v1/stackresources/testing/requests_test.go
index 7932873..c714047 100644
--- a/openstack/orchestration/v1/stackresources/requests_test.go
+++ b/openstack/orchestration/v1/stackresources/testing/requests_test.go
@@ -1,9 +1,10 @@
-package stackresources
+package testing
import (
"sort"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/orchestration/v1/stackresources"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -14,7 +15,7 @@
defer th.TeardownHTTP()
HandleFindSuccessfully(t, FindOutput)
- actual, err := Find(fake.ServiceClient(), "hello_world").Extract()
+ actual, err := stackresources.Find(fake.ServiceClient(), "hello_world").Extract()
th.AssertNoErr(t, err)
expected := FindExpected
@@ -27,9 +28,9 @@
HandleListSuccessfully(t, ListOutput)
count := 0
- err := List(fake.ServiceClient(), "hello_world", "49181cd6-169a-4130-9455-31185bbfc5bf", nil).EachPage(func(page pagination.Page) (bool, error) {
+ err := stackresources.List(fake.ServiceClient(), "hello_world", "49181cd6-169a-4130-9455-31185bbfc5bf", nil).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractResources(page)
+ actual, err := stackresources.ExtractResources(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ListExpected, actual)
@@ -45,7 +46,7 @@
defer th.TeardownHTTP()
HandleGetSuccessfully(t, GetOutput)
- actual, err := Get(fake.ServiceClient(), "teststack", "0b1771bd-9336-4f2b-ae86-a80f971faf1e", "wordpress_instance").Extract()
+ actual, err := stackresources.Get(fake.ServiceClient(), "teststack", "0b1771bd-9336-4f2b-ae86-a80f971faf1e", "wordpress_instance").Extract()
th.AssertNoErr(t, err)
expected := GetExpected
@@ -57,7 +58,7 @@
defer th.TeardownHTTP()
HandleMetadataSuccessfully(t, MetadataOutput)
- actual, err := Metadata(fake.ServiceClient(), "teststack", "0b1771bd-9336-4f2b-ae86-a80f971faf1e", "wordpress_instance").Extract()
+ actual, err := stackresources.Metadata(fake.ServiceClient(), "teststack", "0b1771bd-9336-4f2b-ae86-a80f971faf1e", "wordpress_instance").Extract()
th.AssertNoErr(t, err)
expected := MetadataExpected
@@ -70,9 +71,9 @@
HandleListTypesSuccessfully(t, ListTypesOutput)
count := 0
- err := ListTypes(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
+ err := stackresources.ListTypes(fake.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractResourceTypes(page)
+ actual, err := stackresources.ExtractResourceTypes(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ListTypesExpected, actual)
@@ -91,7 +92,7 @@
defer th.TeardownHTTP()
HandleGetSchemaSuccessfully(t, GetSchemaOutput)
- actual, err := Schema(fake.ServiceClient(), "OS::Heat::AResourceName").Extract()
+ actual, err := stackresources.Schema(fake.ServiceClient(), "OS::Heat::AResourceName").Extract()
th.AssertNoErr(t, err)
expected := GetSchemaExpected
@@ -103,7 +104,7 @@
defer th.TeardownHTTP()
HandleGetTemplateSuccessfully(t, GetTemplateOutput)
- actual, err := Template(fake.ServiceClient(), "OS::Heat::AResourceName").Extract()
+ actual, err := stackresources.Template(fake.ServiceClient(), "OS::Heat::AResourceName").Extract()
th.AssertNoErr(t, err)
expected := GetTemplateExpected
diff --git a/openstack/orchestration/v1/stacks/environment_test.go b/openstack/orchestration/v1/stacks/environment_test.go
index 5f8a430..a7e3aae 100644
--- a/openstack/orchestration/v1/stacks/environment_test.go
+++ b/openstack/orchestration/v1/stacks/environment_test.go
@@ -11,6 +11,7 @@
)
func TestEnvironmentValidation(t *testing.T) {
+
environmentJSON := new(Environment)
environmentJSON.Bin = []byte(ValidJSONEnvironment)
err := environmentJSON.Validate()
diff --git a/openstack/orchestration/v1/stacks/fixtures.go b/openstack/orchestration/v1/stacks/fixtures.go
index 4126cf6..d6fd075 100644
--- a/openstack/orchestration/v1/stacks/fixtures.go
+++ b/openstack/orchestration/v1/stacks/fixtures.go
@@ -1,412 +1,5 @@
-// +build fixtures
-
package stacks
-import (
- "fmt"
- "net/http"
- "testing"
- "time"
-
- "github.com/gophercloud/gophercloud"
- th "github.com/gophercloud/gophercloud/testhelper"
- fake "github.com/gophercloud/gophercloud/testhelper/client"
-)
-
-// CreateExpected represents the expected object from a Create request.
-var CreateExpected = &CreatedStack{
- ID: "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- Links: []gophercloud.Link{
- gophercloud.Link{
- Href: "http://168.28.170.117:8004/v1/98606384f58drad0bhdb7d02779549ac/stacks/stackcreated/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- Rel: "self",
- },
- },
-}
-
-// CreateOutput represents the response body from a Create request.
-const CreateOutput = `
-{
- "stack": {
- "id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- "links": [
- {
- "href": "http://168.28.170.117:8004/v1/98606384f58drad0bhdb7d02779549ac/stacks/stackcreated/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- "rel": "self"
- }
- ]
- }
-}`
-
-// HandleCreateSuccessfully creates an HTTP handler at `/stacks` on the test handler mux
-// that responds with a `Create` response.
-func HandleCreateSuccessfully(t *testing.T, output string) {
- th.Mux.HandleFunc("/stacks", 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, "Accept", "application/json")
- w.WriteHeader(http.StatusCreated)
- fmt.Fprintf(w, output)
- })
-}
-
-// ListExpected represents the expected object from a List request.
-var ListExpected = []ListedStack{
- ListedStack{
- Description: "Simple template to test heat commands",
- Links: []gophercloud.Link{
- gophercloud.Link{
- Href: "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- Rel: "self",
- },
- },
- StatusReason: "Stack CREATE completed successfully",
- Name: "postman_stack",
- CreationTime: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 3, 20, 7, 39, 0, time.UTC)),
- Status: "CREATE_COMPLETE",
- ID: "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- Tags: []string{"rackspace", "atx"},
- },
- ListedStack{
- Description: "Simple template to test heat commands",
- Links: []gophercloud.Link{
- gophercloud.Link{
- Href: "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/gophercloud-test-stack-2/db6977b2-27aa-4775-9ae7-6213212d4ada",
- Rel: "self",
- },
- },
- StatusReason: "Stack successfully updated",
- Name: "gophercloud-test-stack-2",
- CreationTime: gophercloud.JSONRFC3339NoZ(time.Date(2014, 12, 11, 17, 39, 16, 0, time.UTC)),
- UpdatedTime: gophercloud.JSONRFC3339NoZ(time.Date(2014, 12, 11, 17, 40, 37, 0, time.UTC)),
- Status: "UPDATE_COMPLETE",
- ID: "db6977b2-27aa-4775-9ae7-6213212d4ada",
- Tags: []string{"sfo", "satx"},
- },
-}
-
-// FullListOutput represents the response body from a List request without a marker.
-const FullListOutput = `
-{
- "stacks": [
- {
- "description": "Simple template to test heat commands",
- "links": [
- {
- "href": "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- "rel": "self"
- }
- ],
- "stack_status_reason": "Stack CREATE completed successfully",
- "stack_name": "postman_stack",
- "creation_time": "2015-02-03T20:07:39",
- "updated_time": null,
- "stack_status": "CREATE_COMPLETE",
- "id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- "tags": ["rackspace", "atx"]
- },
- {
- "description": "Simple template to test heat commands",
- "links": [
- {
- "href": "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/gophercloud-test-stack-2/db6977b2-27aa-4775-9ae7-6213212d4ada",
- "rel": "self"
- }
- ],
- "stack_status_reason": "Stack successfully updated",
- "stack_name": "gophercloud-test-stack-2",
- "creation_time": "2014-12-11T17:39:16",
- "updated_time": "2014-12-11T17:40:37",
- "stack_status": "UPDATE_COMPLETE",
- "id": "db6977b2-27aa-4775-9ae7-6213212d4ada",
- "tags": ["sfo", "satx"]
- }
- ]
-}
-`
-
-// HandleListSuccessfully creates an HTTP handler at `/stacks` on the test handler mux
-// that responds with a `List` response.
-func HandleListSuccessfully(t *testing.T, output string) {
- th.Mux.HandleFunc("/stacks", func(w http.ResponseWriter, r *http.Request) {
- th.TestMethod(t, r, "GET")
- th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
- th.TestHeader(t, r, "Accept", "application/json")
-
- w.Header().Set("Content-Type", "application/json")
- r.ParseForm()
- marker := r.Form.Get("marker")
- switch marker {
- case "":
- fmt.Fprintf(w, output)
- case "db6977b2-27aa-4775-9ae7-6213212d4ada":
- fmt.Fprintf(w, `[]`)
- default:
- t.Fatalf("Unexpected marker: [%s]", marker)
- }
- })
-}
-
-// GetExpected represents the expected object from a Get request.
-var GetExpected = &RetrievedStack{
- DisableRollback: true,
- Description: "Simple template to test heat commands",
- Parameters: map[string]string{
- "flavor": "m1.tiny",
- "OS::stack_name": "postman_stack",
- "OS::stack_id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- },
- StatusReason: "Stack CREATE completed successfully",
- Name: "postman_stack",
- Outputs: []map[string]interface{}{},
- CreationTime: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 3, 20, 7, 39, 0, time.UTC)),
- Links: []gophercloud.Link{
- gophercloud.Link{
- Href: "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- Rel: "self",
- },
- },
- Capabilities: []interface{}{},
- NotificationTopics: []interface{}{},
- Status: "CREATE_COMPLETE",
- ID: "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- TemplateDescription: "Simple template to test heat commands",
- Tags: []string{"rackspace", "atx"},
-}
-
-// GetOutput represents the response body from a Get request.
-const GetOutput = `
-{
- "stack": {
- "disable_rollback": true,
- "description": "Simple template to test heat commands",
- "parameters": {
- "flavor": "m1.tiny",
- "OS::stack_name": "postman_stack",
- "OS::stack_id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87"
- },
- "stack_status_reason": "Stack CREATE completed successfully",
- "stack_name": "postman_stack",
- "outputs": [],
- "creation_time": "2015-02-03T20:07:39",
- "links": [
- {
- "href": "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- "rel": "self"
- }
- ],
- "capabilities": [],
- "notification_topics": [],
- "timeout_mins": null,
- "stack_status": "CREATE_COMPLETE",
- "updated_time": null,
- "id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- "template_description": "Simple template to test heat commands",
- "tags": ["rackspace", "atx"]
- }
-}
-`
-
-// HandleGetSuccessfully creates an HTTP handler at `/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87`
-// on the test handler mux that responds with a `Get` response.
-func HandleGetSuccessfully(t *testing.T, output string) {
- th.Mux.HandleFunc("/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87", func(w http.ResponseWriter, r *http.Request) {
- th.TestMethod(t, r, "GET")
- th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
- th.TestHeader(t, r, "Accept", "application/json")
-
- w.Header().Set("Content-Type", "application/json")
- w.WriteHeader(http.StatusOK)
- fmt.Fprintf(w, output)
- })
-}
-
-// HandleUpdateSuccessfully creates an HTTP handler at `/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87`
-// on the test handler mux that responds with an `Update` response.
-func HandleUpdateSuccessfully(t *testing.T) {
- th.Mux.HandleFunc("/stacks/gophercloud-test-stack-2/db6977b2-27aa-4775-9ae7-6213212d4ada", func(w http.ResponseWriter, r *http.Request) {
- th.TestMethod(t, r, "PUT")
- th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
- th.TestHeader(t, r, "Accept", "application/json")
-
- w.Header().Set("Content-Type", "application/json")
- w.WriteHeader(http.StatusAccepted)
- })
-}
-
-// HandleDeleteSuccessfully creates an HTTP handler at `/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87`
-// on the test handler mux that responds with a `Delete` response.
-func HandleDeleteSuccessfully(t *testing.T) {
- th.Mux.HandleFunc("/stacks/gophercloud-test-stack-2/db6977b2-27aa-4775-9ae7-6213212d4ada", func(w http.ResponseWriter, r *http.Request) {
- th.TestMethod(t, r, "DELETE")
- th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
- th.TestHeader(t, r, "Accept", "application/json")
-
- w.Header().Set("Content-Type", "application/json")
- w.WriteHeader(http.StatusNoContent)
- })
-}
-
-// GetExpected represents the expected object from a Get request.
-var PreviewExpected = &PreviewedStack{
- DisableRollback: true,
- Description: "Simple template to test heat commands",
- Parameters: map[string]string{
- "flavor": "m1.tiny",
- "OS::stack_name": "postman_stack",
- "OS::stack_id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- },
- Name: "postman_stack",
- CreationTime: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 3, 20, 7, 39, 0, time.UTC)),
- Links: []gophercloud.Link{
- gophercloud.Link{
- Href: "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- Rel: "self",
- },
- },
- Capabilities: []interface{}{},
- NotificationTopics: []interface{}{},
- ID: "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- TemplateDescription: "Simple template to test heat commands",
-}
-
-// HandlePreviewSuccessfully creates an HTTP handler at `/stacks/preview`
-// on the test handler mux that responds with a `Preview` response.
-func HandlePreviewSuccessfully(t *testing.T, output string) {
- th.Mux.HandleFunc("/stacks/preview", 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, "Accept", "application/json")
-
- w.Header().Set("Content-Type", "application/json")
- w.WriteHeader(http.StatusOK)
- fmt.Fprintf(w, output)
- })
-}
-
-// AbandonExpected represents the expected object from an Abandon request.
-var AbandonExpected = &AbandonedStack{
- Status: "COMPLETE",
- Name: "postman_stack",
- Template: map[string]interface{}{
- "heat_template_version": "2013-05-23",
- "description": "Simple template to test heat commands",
- "parameters": map[string]interface{}{
- "flavor": map[string]interface{}{
- "default": "m1.tiny",
- "type": "string",
- },
- },
- "resources": map[string]interface{}{
- "hello_world": map[string]interface{}{
- "type": "OS::Nova::Server",
- "properties": map[string]interface{}{
- "key_name": "heat_key",
- "flavor": map[string]interface{}{
- "get_param": "flavor",
- },
- "image": "ad091b52-742f-469e-8f3c-fd81cadf0743",
- "user_data": "#!/bin/bash -xv\necho \"hello world\" > /root/hello-world.txt\n",
- },
- },
- },
- },
- Action: "CREATE",
- ID: "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- Resources: map[string]interface{}{
- "hello_world": map[string]interface{}{
- "status": "COMPLETE",
- "name": "hello_world",
- "resource_id": "8a310d36-46fc-436f-8be4-37a696b8ac63",
- "action": "CREATE",
- "type": "OS::Nova::Server",
- },
- },
- Files: map[string]string{
- "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml": "heat_template_version: 2014-10-16\nparameters:\n flavor:\n type: string\n description: Flavor for the server to be created\n default: 4353\n hidden: true\nresources:\n test_server:\n type: \"OS::Nova::Server\"\n properties:\n name: test-server\n flavor: 2 GB General Purpose v1\n image: Debian 7 (Wheezy) (PVHVM)\n",
- },
- StackUserProjectID: "897686",
- ProjectID: "897686",
- Environment: map[string]interface{}{
- "encrypted_param_names": make([]map[string]interface{}, 0),
- "parameter_defaults": make(map[string]interface{}),
- "parameters": make(map[string]interface{}),
- "resource_registry": map[string]interface{}{
- "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml": "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml",
- "resources": make(map[string]interface{}),
- },
- },
-}
-
-// AbandonOutput represents the response body from an Abandon request.
-const AbandonOutput = `
-{
- "status": "COMPLETE",
- "name": "postman_stack",
- "template": {
- "heat_template_version": "2013-05-23",
- "description": "Simple template to test heat commands",
- "parameters": {
- "flavor": {
- "default": "m1.tiny",
- "type": "string"
- }
- },
- "resources": {
- "hello_world": {
- "type": "OS::Nova::Server",
- "properties": {
- "key_name": "heat_key",
- "flavor": {
- "get_param": "flavor"
- },
- "image": "ad091b52-742f-469e-8f3c-fd81cadf0743",
- "user_data": "#!/bin/bash -xv\necho \"hello world\" > /root/hello-world.txt\n"
- }
- }
- }
- },
- "action": "CREATE",
- "id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
- "resources": {
- "hello_world": {
- "status": "COMPLETE",
- "name": "hello_world",
- "resource_id": "8a310d36-46fc-436f-8be4-37a696b8ac63",
- "action": "CREATE",
- "type": "OS::Nova::Server"
- }
- },
- "files": {
- "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml": "heat_template_version: 2014-10-16\nparameters:\n flavor:\n type: string\n description: Flavor for the server to be created\n default: 4353\n hidden: true\nresources:\n test_server:\n type: \"OS::Nova::Server\"\n properties:\n name: test-server\n flavor: 2 GB General Purpose v1\n image: Debian 7 (Wheezy) (PVHVM)\n"
-},
- "environment": {
- "encrypted_param_names": [],
- "parameter_defaults": {},
- "parameters": {},
- "resource_registry": {
- "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml": "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml",
- "resources": {}
- }
- },
- "stack_user_project_id": "897686",
- "project_id": "897686"
-}`
-
-// HandleAbandonSuccessfully creates an HTTP handler at `/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87/abandon`
-// on the test handler mux that responds with an `Abandon` response.
-func HandleAbandonSuccessfully(t *testing.T, output string) {
- th.Mux.HandleFunc("/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c8/abandon", func(w http.ResponseWriter, r *http.Request) {
- th.TestMethod(t, r, "DELETE")
- th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
- th.TestHeader(t, r, "Accept", "application/json")
-
- w.Header().Set("Content-Type", "application/json")
- w.WriteHeader(http.StatusOK)
- fmt.Fprintf(w, output)
- })
-}
-
// ValidJSONTemplate is a valid OpenStack Heat template in JSON format
const ValidJSONTemplate = `
{
@@ -432,29 +25,6 @@
}
`
-// ValidJSONTemplateParsed is the expected parsed version of ValidJSONTemplate
-var ValidJSONTemplateParsed = map[string]interface{}{
- "heat_template_version": "2014-10-16",
- "parameters": map[string]interface{}{
- "flavor": map[string]interface{}{
- "default": 4353,
- "description": "Flavor for the server to be created",
- "hidden": true,
- "type": "string",
- },
- },
- "resources": map[string]interface{}{
- "test_server": map[string]interface{}{
- "properties": map[string]interface{}{
- "flavor": "2 GB General Purpose v1",
- "image": "Debian 7 (Wheezy) (PVHVM)",
- "name": "test-server",
- },
- "type": "OS::Nova::Server",
- },
- },
-}
-
// ValidYAMLTemplate is a valid OpenStack Heat template in YAML format
const ValidYAMLTemplate = `
heat_template_version: 2014-10-16
@@ -493,39 +63,84 @@
// ValidJSONEnvironment is a valid environment for a stack in JSON format
const ValidJSONEnvironment = `
{
- "parameters": {
- "user_key": "userkey"
- },
- "resource_registry": {
- "My::WP::Server": "file:///home/shardy/git/heat-templates/hot/F18/WordPress_Native.yaml",
- "OS::Quantum*": "OS::Neutron*",
- "AWS::CloudWatch::Alarm": "file:///etc/heat/templates/AWS_CloudWatch_Alarm.yaml",
- "OS::Metering::Alarm": "OS::Ceilometer::Alarm",
- "AWS::RDS::DBInstance": "file:///etc/heat/templates/AWS_RDS_DBInstance.yaml",
- "resources": {
- "my_db_server": {
- "OS::DBInstance": "file:///home/mine/all_my_cool_templates/db.yaml"
- },
- "my_server": {
- "OS::DBInstance": "file:///home/mine/all_my_cool_templates/db.yaml",
- "hooks": "pre-create"
- },
- "nested_stack": {
- "nested_resource": {
- "hooks": "pre-update"
- },
- "another_resource": {
- "hooks": [
- "pre-create",
- "pre-update"
- ]
- }
- }
- }
- }
+ "parameters": {
+ "user_key": "userkey"
+ },
+ "resource_registry": {
+ "My::WP::Server": "file:///home/shardy/git/heat-templates/hot/F18/WordPress_Native.yaml",
+ "OS::Quantum*": "OS::Neutron*",
+ "AWS::CloudWatch::Alarm": "file:///etc/heat/templates/AWS_CloudWatch_Alarm.yaml",
+ "OS::Metering::Alarm": "OS::Ceilometer::Alarm",
+ "AWS::RDS::DBInstance": "file:///etc/heat/templates/AWS_RDS_DBInstance.yaml",
+ "resources": {
+ "my_db_server": {
+ "OS::DBInstance": "file:///home/mine/all_my_cool_templates/db.yaml"
+ },
+ "my_server": {
+ "OS::DBInstance": "file:///home/mine/all_my_cool_templates/db.yaml",
+ "hooks": "pre-create"
+ },
+ "nested_stack": {
+ "nested_resource": {
+ "hooks": "pre-update"
+ },
+ "another_resource": {
+ "hooks": [
+ "pre-create",
+ "pre-update"
+ ]
+ }
+ }
+ }
+ }
}
`
+// ValidYAMLEnvironment is a valid environment for a stack in YAML format
+const ValidYAMLEnvironment = `
+parameters:
+ user_key: userkey
+resource_registry:
+ My::WP::Server: file:///home/shardy/git/heat-templates/hot/F18/WordPress_Native.yaml
+ # allow older templates with Quantum in them.
+ "OS::Quantum*": "OS::Neutron*"
+ # Choose your implementation of AWS::CloudWatch::Alarm
+ "AWS::CloudWatch::Alarm": "file:///etc/heat/templates/AWS_CloudWatch_Alarm.yaml"
+ #"AWS::CloudWatch::Alarm": "OS::Heat::CWLiteAlarm"
+ "OS::Metering::Alarm": "OS::Ceilometer::Alarm"
+ "AWS::RDS::DBInstance": "file:///etc/heat/templates/AWS_RDS_DBInstance.yaml"
+ resources:
+ my_db_server:
+ "OS::DBInstance": file:///home/mine/all_my_cool_templates/db.yaml
+ my_server:
+ "OS::DBInstance": file:///home/mine/all_my_cool_templates/db.yaml
+ hooks: pre-create
+ nested_stack:
+ nested_resource:
+ hooks: pre-update
+ another_resource:
+ hooks: [pre-create, pre-update]
+`
+
+// InvalidEnvironment is an invalid environment as it has an extra section called `resources`
+const InvalidEnvironment = `
+parameters:
+ flavor:
+ type: string
+ description: Flavor for the server to be created
+ default: 4353
+ hidden: true
+resources:
+ test_server:
+ type: "OS::Nova::Server"
+ properties:
+ name: test-server
+ flavor: 2 GB General Purpose v1
+ image: Debian 7 (Wheezy) (PVHVM)
+parameter_defaults:
+ KeyName: heat_key
+`
+
// ValidJSONEnvironmentParsed is the expected parsed version of ValidJSONEnvironment
var ValidJSONEnvironmentParsed = map[string]interface{}{
"parameters": map[string]interface{}{
@@ -560,47 +175,25 @@
},
}
-// ValidYAMLEnvironment is a valid environment for a stack in YAML format
-const ValidYAMLEnvironment = `
-parameters:
- user_key: userkey
-resource_registry:
- My::WP::Server: file:///home/shardy/git/heat-templates/hot/F18/WordPress_Native.yaml
- # allow older templates with Quantum in them.
- "OS::Quantum*": "OS::Neutron*"
- # Choose your implementation of AWS::CloudWatch::Alarm
- "AWS::CloudWatch::Alarm": "file:///etc/heat/templates/AWS_CloudWatch_Alarm.yaml"
- #"AWS::CloudWatch::Alarm": "OS::Heat::CWLiteAlarm"
- "OS::Metering::Alarm": "OS::Ceilometer::Alarm"
- "AWS::RDS::DBInstance": "file:///etc/heat/templates/AWS_RDS_DBInstance.yaml"
- resources:
- my_db_server:
- "OS::DBInstance": file:///home/mine/all_my_cool_templates/db.yaml
- my_server:
- "OS::DBInstance": file:///home/mine/all_my_cool_templates/db.yaml
- hooks: pre-create
- nested_stack:
- nested_resource:
- hooks: pre-update
- another_resource:
- hooks: [pre-create, pre-update]
-`
-
-// InvalidEnvironment is an invalid environment as it has an extra section called `resources`
-const InvalidEnvironment = `
-parameters:
- flavor:
- type: string
- description: Flavor for the server to be created
- default: 4353
- hidden: true
-resources:
- test_server:
- type: "OS::Nova::Server"
- properties:
- name: test-server
- flavor: 2 GB General Purpose v1
- image: Debian 7 (Wheezy) (PVHVM)
-parameter_defaults:
- KeyName: heat_key
-`
+// ValidJSONTemplateParsed is the expected parsed version of ValidJSONTemplate
+var ValidJSONTemplateParsed = map[string]interface{}{
+ "heat_template_version": "2014-10-16",
+ "parameters": map[string]interface{}{
+ "flavor": map[string]interface{}{
+ "default": 4353,
+ "description": "Flavor for the server to be created",
+ "hidden": true,
+ "type": "string",
+ },
+ },
+ "resources": map[string]interface{}{
+ "test_server": map[string]interface{}{
+ "properties": map[string]interface{}{
+ "flavor": "2 GB General Purpose v1",
+ "image": "Debian 7 (Wheezy) (PVHVM)",
+ "name": "test-server",
+ },
+ "type": "OS::Nova::Server",
+ },
+ },
+}
diff --git a/openstack/orchestration/v1/stacks/testing/doc.go b/openstack/orchestration/v1/stacks/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/orchestration/v1/stacks/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/orchestration/v1/stacks/testing/fixtures.go b/openstack/orchestration/v1/stacks/testing/fixtures.go
new file mode 100644
index 0000000..2afbed2
--- /dev/null
+++ b/openstack/orchestration/v1/stacks/testing/fixtures.go
@@ -0,0 +1,407 @@
+package testing
+
+import (
+ "fmt"
+ "net/http"
+ "testing"
+ "time"
+
+ "github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/orchestration/v1/stacks"
+ th "github.com/gophercloud/gophercloud/testhelper"
+ fake "github.com/gophercloud/gophercloud/testhelper/client"
+)
+
+// CreateExpected represents the expected object from a Create request.
+var CreateExpected = &stacks.CreatedStack{
+ ID: "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ Links: []gophercloud.Link{
+ {
+ Href: "http://168.28.170.117:8004/v1/98606384f58drad0bhdb7d02779549ac/stacks/stackcreated/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ Rel: "self",
+ },
+ },
+}
+
+// CreateOutput represents the response body from a Create request.
+const CreateOutput = `
+{
+ "stack": {
+ "id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ "links": [
+ {
+ "href": "http://168.28.170.117:8004/v1/98606384f58drad0bhdb7d02779549ac/stacks/stackcreated/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ "rel": "self"
+ }
+ ]
+ }
+}`
+
+// HandleCreateSuccessfully creates an HTTP handler at `/stacks` on the test handler mux
+// that responds with a `Create` response.
+func HandleCreateSuccessfully(t *testing.T, output string) {
+ th.Mux.HandleFunc("/stacks", 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, "Accept", "application/json")
+ w.WriteHeader(http.StatusCreated)
+ fmt.Fprintf(w, output)
+ })
+}
+
+// ListExpected represents the expected object from a List request.
+var ListExpected = []stacks.ListedStack{
+ {
+ Description: "Simple template to test heat commands",
+ Links: []gophercloud.Link{
+ {
+ Href: "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ Rel: "self",
+ },
+ },
+ StatusReason: "Stack CREATE completed successfully",
+ Name: "postman_stack",
+ CreationTime: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 3, 20, 7, 39, 0, time.UTC)),
+ Status: "CREATE_COMPLETE",
+ ID: "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ Tags: []string{"rackspace", "atx"},
+ },
+ {
+ Description: "Simple template to test heat commands",
+ Links: []gophercloud.Link{
+ {
+ Href: "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/gophercloud-test-stack-2/db6977b2-27aa-4775-9ae7-6213212d4ada",
+ Rel: "self",
+ },
+ },
+ StatusReason: "Stack successfully updated",
+ Name: "gophercloud-test-stack-2",
+ CreationTime: gophercloud.JSONRFC3339NoZ(time.Date(2014, 12, 11, 17, 39, 16, 0, time.UTC)),
+ UpdatedTime: gophercloud.JSONRFC3339NoZ(time.Date(2014, 12, 11, 17, 40, 37, 0, time.UTC)),
+ Status: "UPDATE_COMPLETE",
+ ID: "db6977b2-27aa-4775-9ae7-6213212d4ada",
+ Tags: []string{"sfo", "satx"},
+ },
+}
+
+// FullListOutput represents the response body from a List request without a marker.
+const FullListOutput = `
+{
+ "stacks": [
+ {
+ "description": "Simple template to test heat commands",
+ "links": [
+ {
+ "href": "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ "rel": "self"
+ }
+ ],
+ "stack_status_reason": "Stack CREATE completed successfully",
+ "stack_name": "postman_stack",
+ "creation_time": "2015-02-03T20:07:39",
+ "updated_time": null,
+ "stack_status": "CREATE_COMPLETE",
+ "id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ "tags": ["rackspace", "atx"]
+ },
+ {
+ "description": "Simple template to test heat commands",
+ "links": [
+ {
+ "href": "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/gophercloud-test-stack-2/db6977b2-27aa-4775-9ae7-6213212d4ada",
+ "rel": "self"
+ }
+ ],
+ "stack_status_reason": "Stack successfully updated",
+ "stack_name": "gophercloud-test-stack-2",
+ "creation_time": "2014-12-11T17:39:16",
+ "updated_time": "2014-12-11T17:40:37",
+ "stack_status": "UPDATE_COMPLETE",
+ "id": "db6977b2-27aa-4775-9ae7-6213212d4ada",
+ "tags": ["sfo", "satx"]
+ }
+ ]
+}
+`
+
+// HandleListSuccessfully creates an HTTP handler at `/stacks` on the test handler mux
+// that responds with a `List` response.
+func HandleListSuccessfully(t *testing.T, output string) {
+ th.Mux.HandleFunc("/stacks", func(w http.ResponseWriter, r *http.Request) {
+ th.TestMethod(t, r, "GET")
+ th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
+ th.TestHeader(t, r, "Accept", "application/json")
+
+ w.Header().Set("Content-Type", "application/json")
+ r.ParseForm()
+ marker := r.Form.Get("marker")
+ switch marker {
+ case "":
+ fmt.Fprintf(w, output)
+ case "db6977b2-27aa-4775-9ae7-6213212d4ada":
+ fmt.Fprintf(w, `[]`)
+ default:
+ t.Fatalf("Unexpected marker: [%s]", marker)
+ }
+ })
+}
+
+// GetExpected represents the expected object from a Get request.
+var GetExpected = &stacks.RetrievedStack{
+ DisableRollback: true,
+ Description: "Simple template to test heat commands",
+ Parameters: map[string]string{
+ "flavor": "m1.tiny",
+ "OS::stack_name": "postman_stack",
+ "OS::stack_id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ },
+ StatusReason: "Stack CREATE completed successfully",
+ Name: "postman_stack",
+ Outputs: []map[string]interface{}{},
+ CreationTime: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 3, 20, 7, 39, 0, time.UTC)),
+ Links: []gophercloud.Link{
+ {
+ Href: "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ Rel: "self",
+ },
+ },
+ Capabilities: []interface{}{},
+ NotificationTopics: []interface{}{},
+ Status: "CREATE_COMPLETE",
+ ID: "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ TemplateDescription: "Simple template to test heat commands",
+ Tags: []string{"rackspace", "atx"},
+}
+
+// GetOutput represents the response body from a Get request.
+const GetOutput = `
+{
+ "stack": {
+ "disable_rollback": true,
+ "description": "Simple template to test heat commands",
+ "parameters": {
+ "flavor": "m1.tiny",
+ "OS::stack_name": "postman_stack",
+ "OS::stack_id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87"
+ },
+ "stack_status_reason": "Stack CREATE completed successfully",
+ "stack_name": "postman_stack",
+ "outputs": [],
+ "creation_time": "2015-02-03T20:07:39",
+ "links": [
+ {
+ "href": "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ "rel": "self"
+ }
+ ],
+ "capabilities": [],
+ "notification_topics": [],
+ "timeout_mins": null,
+ "stack_status": "CREATE_COMPLETE",
+ "updated_time": null,
+ "id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ "template_description": "Simple template to test heat commands",
+ "tags": ["rackspace", "atx"]
+ }
+}
+`
+
+// HandleGetSuccessfully creates an HTTP handler at `/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87`
+// on the test handler mux that responds with a `Get` response.
+func HandleGetSuccessfully(t *testing.T, output string) {
+ th.Mux.HandleFunc("/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87", func(w http.ResponseWriter, r *http.Request) {
+ th.TestMethod(t, r, "GET")
+ th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
+ th.TestHeader(t, r, "Accept", "application/json")
+
+ w.Header().Set("Content-Type", "application/json")
+ w.WriteHeader(http.StatusOK)
+ fmt.Fprintf(w, output)
+ })
+}
+
+// HandleUpdateSuccessfully creates an HTTP handler at `/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87`
+// on the test handler mux that responds with an `Update` response.
+func HandleUpdateSuccessfully(t *testing.T) {
+ th.Mux.HandleFunc("/stacks/gophercloud-test-stack-2/db6977b2-27aa-4775-9ae7-6213212d4ada", func(w http.ResponseWriter, r *http.Request) {
+ th.TestMethod(t, r, "PUT")
+ th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
+ th.TestHeader(t, r, "Accept", "application/json")
+
+ w.Header().Set("Content-Type", "application/json")
+ w.WriteHeader(http.StatusAccepted)
+ })
+}
+
+// HandleDeleteSuccessfully creates an HTTP handler at `/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87`
+// on the test handler mux that responds with a `Delete` response.
+func HandleDeleteSuccessfully(t *testing.T) {
+ th.Mux.HandleFunc("/stacks/gophercloud-test-stack-2/db6977b2-27aa-4775-9ae7-6213212d4ada", func(w http.ResponseWriter, r *http.Request) {
+ th.TestMethod(t, r, "DELETE")
+ th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
+ th.TestHeader(t, r, "Accept", "application/json")
+
+ w.Header().Set("Content-Type", "application/json")
+ w.WriteHeader(http.StatusNoContent)
+ })
+}
+
+// GetExpected represents the expected object from a Get request.
+var PreviewExpected = &stacks.PreviewedStack{
+ DisableRollback: true,
+ Description: "Simple template to test heat commands",
+ Parameters: map[string]string{
+ "flavor": "m1.tiny",
+ "OS::stack_name": "postman_stack",
+ "OS::stack_id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ },
+ Name: "postman_stack",
+ CreationTime: gophercloud.JSONRFC3339NoZ(time.Date(2015, 2, 3, 20, 7, 39, 0, time.UTC)),
+ Links: []gophercloud.Link{
+ {
+ Href: "http://166.76.160.117:8004/v1/98606384f58d4ad0b3db7d0d779549ac/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ Rel: "self",
+ },
+ },
+ Capabilities: []interface{}{},
+ NotificationTopics: []interface{}{},
+ ID: "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ TemplateDescription: "Simple template to test heat commands",
+}
+
+// HandlePreviewSuccessfully creates an HTTP handler at `/stacks/preview`
+// on the test handler mux that responds with a `Preview` response.
+func HandlePreviewSuccessfully(t *testing.T, output string) {
+ th.Mux.HandleFunc("/stacks/preview", 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, "Accept", "application/json")
+
+ w.Header().Set("Content-Type", "application/json")
+ w.WriteHeader(http.StatusOK)
+ fmt.Fprintf(w, output)
+ })
+}
+
+// AbandonExpected represents the expected object from an Abandon request.
+var AbandonExpected = &stacks.AbandonedStack{
+ Status: "COMPLETE",
+ Name: "postman_stack",
+ Template: map[string]interface{}{
+ "heat_template_version": "2013-05-23",
+ "description": "Simple template to test heat commands",
+ "parameters": map[string]interface{}{
+ "flavor": map[string]interface{}{
+ "default": "m1.tiny",
+ "type": "string",
+ },
+ },
+ "resources": map[string]interface{}{
+ "hello_world": map[string]interface{}{
+ "type": "OS::Nova::Server",
+ "properties": map[string]interface{}{
+ "key_name": "heat_key",
+ "flavor": map[string]interface{}{
+ "get_param": "flavor",
+ },
+ "image": "ad091b52-742f-469e-8f3c-fd81cadf0743",
+ "user_data": "#!/bin/bash -xv\necho \"hello world\" > /root/hello-world.txt\n",
+ },
+ },
+ },
+ },
+ Action: "CREATE",
+ ID: "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ Resources: map[string]interface{}{
+ "hello_world": map[string]interface{}{
+ "status": "COMPLETE",
+ "name": "hello_world",
+ "resource_id": "8a310d36-46fc-436f-8be4-37a696b8ac63",
+ "action": "CREATE",
+ "type": "OS::Nova::Server",
+ },
+ },
+ Files: map[string]string{
+ "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml": "heat_template_version: 2014-10-16\nparameters:\n flavor:\n type: string\n description: Flavor for the server to be created\n default: 4353\n hidden: true\nresources:\n test_server:\n type: \"OS::Nova::Server\"\n properties:\n name: test-server\n flavor: 2 GB General Purpose v1\n image: Debian 7 (Wheezy) (PVHVM)\n",
+ },
+ StackUserProjectID: "897686",
+ ProjectID: "897686",
+ Environment: map[string]interface{}{
+ "encrypted_param_names": make([]map[string]interface{}, 0),
+ "parameter_defaults": make(map[string]interface{}),
+ "parameters": make(map[string]interface{}),
+ "resource_registry": map[string]interface{}{
+ "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml": "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml",
+ "resources": make(map[string]interface{}),
+ },
+ },
+}
+
+// AbandonOutput represents the response body from an Abandon request.
+const AbandonOutput = `
+{
+ "status": "COMPLETE",
+ "name": "postman_stack",
+ "template": {
+ "heat_template_version": "2013-05-23",
+ "description": "Simple template to test heat commands",
+ "parameters": {
+ "flavor": {
+ "default": "m1.tiny",
+ "type": "string"
+ }
+ },
+ "resources": {
+ "hello_world": {
+ "type": "OS::Nova::Server",
+ "properties": {
+ "key_name": "heat_key",
+ "flavor": {
+ "get_param": "flavor"
+ },
+ "image": "ad091b52-742f-469e-8f3c-fd81cadf0743",
+ "user_data": "#!/bin/bash -xv\necho \"hello world\" > /root/hello-world.txt\n"
+ }
+ }
+ }
+ },
+ "action": "CREATE",
+ "id": "16ef0584-4458-41eb-87c8-0dc8d5f66c87",
+ "resources": {
+ "hello_world": {
+ "status": "COMPLETE",
+ "name": "hello_world",
+ "resource_id": "8a310d36-46fc-436f-8be4-37a696b8ac63",
+ "action": "CREATE",
+ "type": "OS::Nova::Server"
+ }
+ },
+ "files": {
+ "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml": "heat_template_version: 2014-10-16\nparameters:\n flavor:\n type: string\n description: Flavor for the server to be created\n default: 4353\n hidden: true\nresources:\n test_server:\n type: \"OS::Nova::Server\"\n properties:\n name: test-server\n flavor: 2 GB General Purpose v1\n image: Debian 7 (Wheezy) (PVHVM)\n"
+},
+ "environment": {
+ "encrypted_param_names": [],
+ "parameter_defaults": {},
+ "parameters": {},
+ "resource_registry": {
+ "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml": "file:///Users/prat8228/go/src/github.com/rackspace/rack/my_nova.yaml",
+ "resources": {}
+ }
+ },
+ "stack_user_project_id": "897686",
+ "project_id": "897686"
+}`
+
+// HandleAbandonSuccessfully creates an HTTP handler at `/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c87/abandon`
+// on the test handler mux that responds with an `Abandon` response.
+func HandleAbandonSuccessfully(t *testing.T, output string) {
+ th.Mux.HandleFunc("/stacks/postman_stack/16ef0584-4458-41eb-87c8-0dc8d5f66c8/abandon", func(w http.ResponseWriter, r *http.Request) {
+ th.TestMethod(t, r, "DELETE")
+ th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
+ th.TestHeader(t, r, "Accept", "application/json")
+
+ w.Header().Set("Content-Type", "application/json")
+ w.WriteHeader(http.StatusOK)
+ fmt.Fprintf(w, output)
+ })
+}
diff --git a/openstack/orchestration/v1/stacks/requests_test.go b/openstack/orchestration/v1/stacks/testing/requests_test.go
similarity index 74%
rename from openstack/orchestration/v1/stacks/requests_test.go
rename to openstack/orchestration/v1/stacks/testing/requests_test.go
index 5cff622..bdc6229 100644
--- a/openstack/orchestration/v1/stacks/requests_test.go
+++ b/openstack/orchestration/v1/stacks/testing/requests_test.go
@@ -1,9 +1,10 @@
-package stacks
+package testing
import (
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/orchestration/v1/stacks"
"github.com/gophercloud/gophercloud/pagination"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
@@ -13,7 +14,7 @@
th.SetupHTTP()
defer th.TeardownHTTP()
HandleCreateSuccessfully(t, CreateOutput)
- template := new(Template)
+ template := new(stacks.Template)
template.Bin = []byte(`
{
"heat_template_version": "2013-05-23",
@@ -25,13 +26,13 @@
}
}
}`)
- createOpts := CreateOpts{
+ createOpts := stacks.CreateOpts{
Name: "stackcreated",
Timeout: 60,
TemplateOpts: template,
DisableRollback: gophercloud.Disabled,
}
- actual, err := Create(fake.ServiceClient(), createOpts).Extract()
+ actual, err := stacks.Create(fake.ServiceClient(), createOpts).Extract()
th.AssertNoErr(t, err)
expected := CreateExpected
@@ -42,7 +43,7 @@
th.SetupHTTP()
defer th.TeardownHTTP()
HandleCreateSuccessfully(t, CreateOutput)
- template := new(Template)
+ template := new(stacks.Template)
template.Bin = []byte(`
{
"stack_name": "postman_stack",
@@ -70,14 +71,14 @@
}
}
}`)
- adoptOpts := AdoptOpts{
+ adoptOpts := stacks.AdoptOpts{
AdoptStackData: `{environment{parameters{}}}`,
Name: "stackcreated",
Timeout: 60,
TemplateOpts: template,
DisableRollback: gophercloud.Disabled,
}
- actual, err := Adopt(fake.ServiceClient(), adoptOpts).Extract()
+ actual, err := stacks.Adopt(fake.ServiceClient(), adoptOpts).Extract()
th.AssertNoErr(t, err)
expected := CreateExpected
@@ -90,9 +91,9 @@
HandleListSuccessfully(t, FullListOutput)
count := 0
- err := List(fake.ServiceClient(), nil).EachPage(func(page pagination.Page) (bool, error) {
+ err := stacks.List(fake.ServiceClient(), nil).EachPage(func(page pagination.Page) (bool, error) {
count++
- actual, err := ExtractStacks(page)
+ actual, err := stacks.ExtractStacks(page)
th.AssertNoErr(t, err)
th.CheckDeepEquals(t, ListExpected, actual)
@@ -108,7 +109,7 @@
defer th.TeardownHTTP()
HandleGetSuccessfully(t, GetOutput)
- actual, err := Get(fake.ServiceClient(), "postman_stack", "16ef0584-4458-41eb-87c8-0dc8d5f66c87").Extract()
+ actual, err := stacks.Get(fake.ServiceClient(), "postman_stack", "16ef0584-4458-41eb-87c8-0dc8d5f66c87").Extract()
th.AssertNoErr(t, err)
expected := GetExpected
@@ -120,7 +121,7 @@
defer th.TeardownHTTP()
HandleUpdateSuccessfully(t)
- template := new(Template)
+ template := new(stacks.Template)
template.Bin = []byte(`
{
"heat_template_version": "2013-05-23",
@@ -132,10 +133,10 @@
}
}
}`)
- updateOpts := UpdateOpts{
+ updateOpts := stacks.UpdateOpts{
TemplateOpts: template,
}
- err := Update(fake.ServiceClient(), "gophercloud-test-stack-2", "db6977b2-27aa-4775-9ae7-6213212d4ada", updateOpts).ExtractErr()
+ err := stacks.Update(fake.ServiceClient(), "gophercloud-test-stack-2", "db6977b2-27aa-4775-9ae7-6213212d4ada", updateOpts).ExtractErr()
th.AssertNoErr(t, err)
}
@@ -144,7 +145,7 @@
defer th.TeardownHTTP()
HandleDeleteSuccessfully(t)
- err := Delete(fake.ServiceClient(), "gophercloud-test-stack-2", "db6977b2-27aa-4775-9ae7-6213212d4ada").ExtractErr()
+ err := stacks.Delete(fake.ServiceClient(), "gophercloud-test-stack-2", "db6977b2-27aa-4775-9ae7-6213212d4ada").ExtractErr()
th.AssertNoErr(t, err)
}
@@ -153,7 +154,7 @@
defer th.TeardownHTTP()
HandlePreviewSuccessfully(t, GetOutput)
- template := new(Template)
+ template := new(stacks.Template)
template.Bin = []byte(`
{
"heat_template_version": "2013-05-23",
@@ -165,13 +166,13 @@
}
}
}`)
- previewOpts := PreviewOpts{
+ previewOpts := stacks.PreviewOpts{
Name: "stackcreated",
Timeout: 60,
TemplateOpts: template,
DisableRollback: gophercloud.Disabled,
}
- actual, err := Preview(fake.ServiceClient(), previewOpts).Extract()
+ actual, err := stacks.Preview(fake.ServiceClient(), previewOpts).Extract()
th.AssertNoErr(t, err)
expected := PreviewExpected
@@ -183,7 +184,7 @@
defer th.TeardownHTTP()
HandleAbandonSuccessfully(t, AbandonOutput)
- actual, err := Abandon(fake.ServiceClient(), "postman_stack", "16ef0584-4458-41eb-87c8-0dc8d5f66c8").Extract()
+ actual, err := stacks.Abandon(fake.ServiceClient(), "postman_stack", "16ef0584-4458-41eb-87c8-0dc8d5f66c8").Extract()
th.AssertNoErr(t, err)
expected := AbandonExpected
diff --git a/openstack/orchestration/v1/stacktemplates/testing/doc.go b/openstack/orchestration/v1/stacktemplates/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/orchestration/v1/stacktemplates/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/orchestration/v1/stacktemplates/fixtures.go b/openstack/orchestration/v1/stacktemplates/testing/fixtures.go
similarity index 95%
rename from openstack/orchestration/v1/stacktemplates/fixtures.go
rename to openstack/orchestration/v1/stacktemplates/testing/fixtures.go
index 4444a57..23ec579 100644
--- a/openstack/orchestration/v1/stacktemplates/fixtures.go
+++ b/openstack/orchestration/v1/stacktemplates/testing/fixtures.go
@@ -1,12 +1,11 @@
-// +build fixtures
-
-package stacktemplates
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/openstack/orchestration/v1/stacktemplates"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -54,7 +53,7 @@
}
// ValidateExpected represents the expected object from a Validate request.
-var ValidateExpected = &ValidatedTemplate{
+var ValidateExpected = &stacktemplates.ValidatedTemplate{
Description: "Simple template to test heat commands",
Parameters: map[string]interface{}{
"flavor": map[string]interface{}{
diff --git a/openstack/orchestration/v1/stacktemplates/requests_test.go b/openstack/orchestration/v1/stacktemplates/testing/requests_test.go
similarity index 78%
rename from openstack/orchestration/v1/stacktemplates/requests_test.go
rename to openstack/orchestration/v1/stacktemplates/testing/requests_test.go
index 42663dc..442bcb7 100644
--- a/openstack/orchestration/v1/stacktemplates/requests_test.go
+++ b/openstack/orchestration/v1/stacktemplates/testing/requests_test.go
@@ -1,8 +1,9 @@
-package stacktemplates
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud/openstack/orchestration/v1/stacktemplates"
th "github.com/gophercloud/gophercloud/testhelper"
fake "github.com/gophercloud/gophercloud/testhelper/client"
)
@@ -12,7 +13,7 @@
defer th.TeardownHTTP()
HandleGetSuccessfully(t, GetOutput)
- actual, err := Get(fake.ServiceClient(), "postman_stack", "16ef0584-4458-41eb-87c8-0dc8d5f66c87").Extract()
+ actual, err := stacktemplates.Get(fake.ServiceClient(), "postman_stack", "16ef0584-4458-41eb-87c8-0dc8d5f66c87").Extract()
th.AssertNoErr(t, err)
expected := GetExpected
@@ -24,7 +25,7 @@
defer th.TeardownHTTP()
HandleValidateSuccessfully(t, ValidateOutput)
- opts := ValidateOpts{
+ opts := stacktemplates.ValidateOpts{
Template: `{
"heat_template_version": "2013-05-23",
"description": "Simple template to test heat commands",
@@ -49,7 +50,7 @@
}
}`,
}
- actual, err := Validate(fake.ServiceClient(), opts).Extract()
+ actual, err := stacktemplates.Validate(fake.ServiceClient(), opts).Extract()
th.AssertNoErr(t, err)
expected := ValidateExpected
diff --git a/openstack/client_test.go b/openstack/testing/client_test.go
similarity index 95%
rename from openstack/client_test.go
rename to openstack/testing/client_test.go
index 8698756..37e63c1 100644
--- a/openstack/client_test.go
+++ b/openstack/testing/client_test.go
@@ -1,4 +1,4 @@
-package openstack
+package testing
import (
"fmt"
@@ -6,6 +6,7 @@
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack"
th "github.com/gophercloud/gophercloud/testhelper"
)
@@ -52,7 +53,7 @@
Password: "secret",
IdentityEndpoint: th.Endpoint(),
}
- client, err := AuthenticatedClient(options)
+ client, err := openstack.AuthenticatedClient(options)
th.AssertNoErr(t, err)
th.CheckEquals(t, ID, client.TokenID)
}
@@ -155,7 +156,7 @@
Password: "secret",
IdentityEndpoint: th.Endpoint(),
}
- client, err := AuthenticatedClient(options)
+ client, err := openstack.AuthenticatedClient(options)
th.AssertNoErr(t, err)
th.CheckEquals(t, "01234567890", client.TokenID)
}
diff --git a/openstack/testing/doc.go b/openstack/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/openstack/endpoint_location_test.go b/openstack/testing/endpoint_location_test.go
similarity index 89%
rename from openstack/endpoint_location_test.go
rename to openstack/testing/endpoint_location_test.go
index b538e84..ea7bdd2 100644
--- a/openstack/endpoint_location_test.go
+++ b/openstack/testing/endpoint_location_test.go
@@ -1,10 +1,11 @@
-package openstack
+package testing
import (
"strings"
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack"
tokens2 "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens"
tokens3 "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens"
th "github.com/gophercloud/gophercloud/testhelper"
@@ -68,7 +69,7 @@
}
for availability, expected := range expectedURLs {
- actual, err := V2EndpointURL(&catalog2, gophercloud.EndpointOpts{
+ actual, err := openstack.V2EndpointURL(&catalog2, gophercloud.EndpointOpts{
Type: "same",
Name: "same",
Region: "same",
@@ -80,7 +81,7 @@
}
func TestV2EndpointNone(t *testing.T) {
- _, actual := V2EndpointURL(&catalog2, gophercloud.EndpointOpts{
+ _, actual := openstack.V2EndpointURL(&catalog2, gophercloud.EndpointOpts{
Type: "nope",
Availability: gophercloud.AvailabilityPublic,
})
@@ -89,7 +90,7 @@
}
func TestV2EndpointMultiple(t *testing.T) {
- _, err := V2EndpointURL(&catalog2, gophercloud.EndpointOpts{
+ _, err := openstack.V2EndpointURL(&catalog2, gophercloud.EndpointOpts{
Type: "same",
Region: "same",
Availability: gophercloud.AvailabilityPublic,
@@ -100,7 +101,7 @@
}
func TestV2EndpointBadAvailability(t *testing.T) {
- _, err := V2EndpointURL(&catalog2, gophercloud.EndpointOpts{
+ _, err := openstack.V2EndpointURL(&catalog2, gophercloud.EndpointOpts{
Type: "same",
Name: "same",
Region: "same",
@@ -188,7 +189,7 @@
}
for availability, expected := range expectedURLs {
- actual, err := V3EndpointURL(&catalog3, gophercloud.EndpointOpts{
+ actual, err := openstack.V3EndpointURL(&catalog3, gophercloud.EndpointOpts{
Type: "same",
Name: "same",
Region: "same",
@@ -200,7 +201,7 @@
}
func TestV3EndpointNone(t *testing.T) {
- _, actual := V3EndpointURL(&catalog3, gophercloud.EndpointOpts{
+ _, actual := openstack.V3EndpointURL(&catalog3, gophercloud.EndpointOpts{
Type: "nope",
Availability: gophercloud.AvailabilityPublic,
})
@@ -209,7 +210,7 @@
}
func TestV3EndpointMultiple(t *testing.T) {
- _, err := V3EndpointURL(&catalog3, gophercloud.EndpointOpts{
+ _, err := openstack.V3EndpointURL(&catalog3, gophercloud.EndpointOpts{
Type: "same",
Region: "same",
Availability: gophercloud.AvailabilityPublic,
@@ -220,7 +221,7 @@
}
func TestV3EndpointBadAvailability(t *testing.T) {
- _, err := V3EndpointURL(&catalog3, gophercloud.EndpointOpts{
+ _, err := openstack.V3EndpointURL(&catalog3, gophercloud.EndpointOpts{
Type: "same",
Name: "same",
Region: "same",
diff --git a/openstack/utils/choose_version_test.go b/openstack/utils/testing/choose_version_test.go
similarity index 77%
rename from openstack/utils/choose_version_test.go
rename to openstack/utils/testing/choose_version_test.go
index 9f2f363..9c0119c 100644
--- a/openstack/utils/choose_version_test.go
+++ b/openstack/utils/testing/choose_version_test.go
@@ -1,4 +1,4 @@
-package utils
+package testing
import (
"fmt"
@@ -6,6 +6,7 @@
"testing"
"github.com/gophercloud/gophercloud"
+ "github.com/gophercloud/gophercloud/openstack/utils"
"github.com/gophercloud/gophercloud/testhelper"
)
@@ -41,14 +42,14 @@
defer testhelper.TeardownHTTP()
setupVersionHandler()
- v2 := &Version{ID: "v2.0", Priority: 2, Suffix: "blarg"}
- v3 := &Version{ID: "v3.0", Priority: 3, Suffix: "hargl"}
+ v2 := &utils.Version{ID: "v2.0", Priority: 2, Suffix: "blarg"}
+ v3 := &utils.Version{ID: "v3.0", Priority: 3, Suffix: "hargl"}
c := &gophercloud.ProviderClient{
IdentityBase: testhelper.Endpoint(),
IdentityEndpoint: "",
}
- v, endpoint, err := ChooseVersion(c, []*Version{v2, v3})
+ v, endpoint, err := utils.ChooseVersion(c, []*utils.Version{v2, v3})
if err != nil {
t.Fatalf("Unexpected error from ChooseVersion: %v", err)
@@ -69,14 +70,14 @@
defer testhelper.TeardownHTTP()
setupVersionHandler()
- v2 := &Version{ID: "v2.0", Priority: 2, Suffix: "nope"}
- v3 := &Version{ID: "v3.0", Priority: 3, Suffix: "northis"}
+ v2 := &utils.Version{ID: "v2.0", Priority: 2, Suffix: "nope"}
+ v3 := &utils.Version{ID: "v3.0", Priority: 3, Suffix: "northis"}
c := &gophercloud.ProviderClient{
IdentityBase: testhelper.Endpoint(),
IdentityEndpoint: testhelper.Endpoint() + "v2.0/",
}
- v, endpoint, err := ChooseVersion(c, []*Version{v2, v3})
+ v, endpoint, err := utils.ChooseVersion(c, []*utils.Version{v2, v3})
if err != nil {
t.Fatalf("Unexpected error from ChooseVersion: %v", err)
}
@@ -95,14 +96,14 @@
testhelper.SetupHTTP()
defer testhelper.TeardownHTTP()
- v2 := &Version{ID: "v2.0", Priority: 2, Suffix: "/v2.0/"}
- v3 := &Version{ID: "v3.0", Priority: 3, Suffix: "/v3.0/"}
+ v2 := &utils.Version{ID: "v2.0", Priority: 2, Suffix: "/v2.0/"}
+ v3 := &utils.Version{ID: "v3.0", Priority: 3, Suffix: "/v3.0/"}
c := &gophercloud.ProviderClient{
IdentityBase: testhelper.Endpoint(),
IdentityEndpoint: testhelper.Endpoint() + "v2.0/",
}
- v, endpoint, err := ChooseVersion(c, []*Version{v2, v3})
+ v, endpoint, err := utils.ChooseVersion(c, []*utils.Version{v2, v3})
if err != nil {
t.Fatalf("Unexpected error from ChooseVersion: %v", err)
}
diff --git a/openstack/utils/testing/doc.go b/openstack/utils/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/openstack/utils/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/pagination/testing/doc.go b/pagination/testing/doc.go
new file mode 100644
index 0000000..7603f83
--- /dev/null
+++ b/pagination/testing/doc.go
@@ -0,0 +1 @@
+package testing
diff --git a/pagination/linked_test.go b/pagination/testing/linked_test.go
similarity index 82%
rename from pagination/linked_test.go
rename to pagination/testing/linked_test.go
index 67e6e3c..3533e44 100644
--- a/pagination/linked_test.go
+++ b/pagination/testing/linked_test.go
@@ -1,4 +1,4 @@
-package pagination
+package testing
import (
"fmt"
@@ -6,13 +6,14 @@
"reflect"
"testing"
+ "github.com/gophercloud/gophercloud/pagination"
"github.com/gophercloud/gophercloud/testhelper"
)
// LinkedPager sample and test cases.
type LinkedPageResult struct {
- LinkedPageBase
+ pagination.LinkedPageBase
}
func (r LinkedPageResult) IsEmpty() (bool, error) {
@@ -20,7 +21,7 @@
return len(is) == 0, err
}
-func ExtractLinkedInts(r Page) ([]int, error) {
+func ExtractLinkedInts(r pagination.Page) ([]int, error) {
var s struct {
Ints []int `json:"ints"`
}
@@ -28,7 +29,7 @@
return s.Ints, err
}
-func createLinked(t *testing.T) Pager {
+func createLinked(t *testing.T) pagination.Pager {
testhelper.SetupHTTP()
testhelper.Mux.HandleFunc("/page1", func(w http.ResponseWriter, r *http.Request) {
@@ -48,11 +49,11 @@
client := createClient()
- createPage := func(r PageResult) Page {
- return LinkedPageResult{LinkedPageBase{PageResult: r}}
+ createPage := func(r pagination.PageResult) pagination.Page {
+ return LinkedPageResult{pagination.LinkedPageBase{PageResult: r}}
}
- return NewPager(client, testhelper.Server.URL+"/page1", createPage)
+ return pagination.NewPager(client, testhelper.Server.URL+"/page1", createPage)
}
func TestEnumerateLinked(t *testing.T) {
@@ -60,7 +61,7 @@
defer testhelper.TeardownHTTP()
callCount := 0
- err := pager.EachPage(func(page Page) (bool, error) {
+ err := pager.EachPage(func(page pagination.Page) (bool, error) {
actual, err := ExtractLinkedInts(page)
if err != nil {
return false, err
diff --git a/pagination/marker_test.go b/pagination/testing/marker_test.go
similarity index 83%
rename from pagination/marker_test.go
rename to pagination/testing/marker_test.go
index 4ade8d3..7b1a6da 100644
--- a/pagination/marker_test.go
+++ b/pagination/testing/marker_test.go
@@ -1,4 +1,4 @@
-package pagination
+package testing
import (
"fmt"
@@ -6,13 +6,14 @@
"strings"
"testing"
+ "github.com/gophercloud/gophercloud/pagination"
"github.com/gophercloud/gophercloud/testhelper"
)
// MarkerPager sample and test cases.
type MarkerPageResult struct {
- MarkerPageBase
+ pagination.MarkerPageBase
}
func (r MarkerPageResult) IsEmpty() (bool, error) {
@@ -34,7 +35,7 @@
return results[len(results)-1], nil
}
-func createMarkerPaged(t *testing.T) Pager {
+func createMarkerPaged(t *testing.T) pagination.Pager {
testhelper.SetupHTTP()
testhelper.Mux.HandleFunc("/page", func(w http.ResponseWriter, r *http.Request) {
@@ -56,16 +57,16 @@
client := createClient()
- createPage := func(r PageResult) Page {
- p := MarkerPageResult{MarkerPageBase{PageResult: r}}
+ createPage := func(r pagination.PageResult) pagination.Page {
+ p := MarkerPageResult{pagination.MarkerPageBase{PageResult: r}}
p.MarkerPageBase.Owner = p
return p
}
- return NewPager(client, testhelper.Server.URL+"/page", createPage)
+ return pagination.NewPager(client, testhelper.Server.URL+"/page", createPage)
}
-func ExtractMarkerStrings(page Page) ([]string, error) {
+func ExtractMarkerStrings(page pagination.Page) ([]string, error) {
content := page.(MarkerPageResult).Body.([]uint8)
parts := strings.Split(string(content), "\n")
results := make([]string, 0, len(parts))
@@ -82,7 +83,7 @@
defer testhelper.TeardownHTTP()
callCount := 0
- err := pager.EachPage(func(page Page) (bool, error) {
+ err := pager.EachPage(func(page pagination.Page) (bool, error) {
actual, err := ExtractMarkerStrings(page)
if err != nil {
return false, err
diff --git a/pagination/pagination_test.go b/pagination/testing/pagination_test.go
similarity index 93%
rename from pagination/pagination_test.go
rename to pagination/testing/pagination_test.go
index bd3295e..170dca4 100644
--- a/pagination/pagination_test.go
+++ b/pagination/testing/pagination_test.go
@@ -1,4 +1,4 @@
-package pagination
+package testing
import (
"github.com/gophercloud/gophercloud"
diff --git a/pagination/single_test.go b/pagination/testing/single_test.go
similarity index 75%
rename from pagination/single_test.go
rename to pagination/testing/single_test.go
index 2a9466c..8d95e94 100644
--- a/pagination/single_test.go
+++ b/pagination/testing/single_test.go
@@ -1,17 +1,18 @@
-package pagination
+package testing
import (
"fmt"
"net/http"
"testing"
+ "github.com/gophercloud/gophercloud/pagination"
"github.com/gophercloud/gophercloud/testhelper"
)
// SinglePage sample and test cases.
type SinglePageResult struct {
- SinglePageBase
+ pagination.SinglePageBase
}
func (r SinglePageResult) IsEmpty() (bool, error) {
@@ -22,7 +23,7 @@
return len(is) == 0, nil
}
-func ExtractSingleInts(r Page) ([]int, error) {
+func ExtractSingleInts(r pagination.Page) ([]int, error) {
var s struct {
Ints []int `json:"ints"`
}
@@ -30,7 +31,7 @@
return s.Ints, err
}
-func setupSinglePaged() Pager {
+func setupSinglePaged() pagination.Pager {
testhelper.SetupHTTP()
client := createClient()
@@ -39,11 +40,11 @@
fmt.Fprintf(w, `{ "ints": [1, 2, 3] }`)
})
- createPage := func(r PageResult) Page {
- return SinglePageResult{SinglePageBase(r)}
+ createPage := func(r pagination.PageResult) pagination.Page {
+ return SinglePageResult{pagination.SinglePageBase(r)}
}
- return NewPager(client, testhelper.Server.URL+"/only", createPage)
+ return pagination.NewPager(client, testhelper.Server.URL+"/only", createPage)
}
func TestEnumerateSinglePaged(t *testing.T) {
@@ -51,7 +52,7 @@
pager := setupSinglePaged()
defer testhelper.TeardownHTTP()
- err := pager.EachPage(func(page Page) (bool, error) {
+ err := pager.EachPage(func(page pagination.Page) (bool, error) {
callCount++
expected := []int{1, 2, 3}
diff --git a/script/acceptancetest b/script/acceptancetest
index f9c89f4..9debd48 100755
--- a/script/acceptancetest
+++ b/script/acceptancetest
@@ -2,4 +2,4 @@
#
# Run the acceptance tests.
-exec go test -p=1 -tags 'acceptance fixtures' github.com/rackspace/gophercloud/acceptance/... $@
+exec go test -p=1 github.com/gophercloud/gophercloud/acceptance/... $@
diff --git a/testing/endpoint_search_test.go b/testing/endpoint_search_test.go
new file mode 100644
index 0000000..22476cb
--- /dev/null
+++ b/testing/endpoint_search_test.go
@@ -0,0 +1,20 @@
+package testing
+
+import (
+ "testing"
+
+ "github.com/gophercloud/gophercloud"
+ th "github.com/gophercloud/gophercloud/testhelper"
+)
+
+func TestApplyDefaultsToEndpointOpts(t *testing.T) {
+ eo := gophercloud.EndpointOpts{Availability: gophercloud.AvailabilityPublic}
+ eo.ApplyDefaults("compute")
+ expected := gophercloud.EndpointOpts{Availability: gophercloud.AvailabilityPublic, Type: "compute"}
+ th.CheckDeepEquals(t, expected, eo)
+
+ eo = gophercloud.EndpointOpts{Type: "compute"}
+ eo.ApplyDefaults("object-store")
+ expected = gophercloud.EndpointOpts{Availability: gophercloud.AvailabilityPublic, Type: "compute"}
+ th.CheckDeepEquals(t, expected, eo)
+}
diff --git a/params_test.go b/testing/params_test.go
similarity index 73%
rename from params_test.go
rename to testing/params_test.go
index 6789a5a..90f3fad 100644
--- a/params_test.go
+++ b/testing/params_test.go
@@ -1,35 +1,35 @@
-package gophercloud
+package testing
import (
"net/url"
"reflect"
"testing"
- "time"
+ "github.com/gophercloud/gophercloud"
th "github.com/gophercloud/gophercloud/testhelper"
)
func TestMaybeString(t *testing.T) {
testString := ""
var expected *string
- actual := MaybeString(testString)
+ actual := gophercloud.MaybeString(testString)
th.CheckDeepEquals(t, expected, actual)
testString = "carol"
expected = &testString
- actual = MaybeString(testString)
+ actual = gophercloud.MaybeString(testString)
th.CheckDeepEquals(t, expected, actual)
}
func TestMaybeInt(t *testing.T) {
testInt := 0
var expected *int
- actual := MaybeInt(testInt)
+ actual := gophercloud.MaybeInt(testInt)
th.CheckDeepEquals(t, expected, actual)
testInt = 4
expected = &testInt
- actual = MaybeInt(testInt)
+ actual = gophercloud.MaybeInt(testInt)
th.CheckDeepEquals(t, expected, actual)
}
@@ -51,7 +51,7 @@
TI: []int{1, 2},
}
expected := &url.URL{RawQuery: "c=true&j=2&r=red&s=one&s=two&s=three&ti=1&ti=2&ts=a&ts=b"}
- actual, err := BuildQueryString(&opts)
+ actual, err := gophercloud.BuildQueryString(&opts)
if err != nil {
t.Errorf("Error building query string: %v", err)
}
@@ -68,13 +68,13 @@
J: 2,
C: true,
}
- _, err = BuildQueryString(&opts)
+ _, err = gophercloud.BuildQueryString(&opts)
if err == nil {
t.Errorf("Expected error: 'Required field not set'")
}
th.CheckDeepEquals(t, expected, actual)
- _, err = BuildQueryString(map[string]interface{}{"Number": 4})
+ _, err = gophercloud.BuildQueryString(map[string]interface{}{"Number": 4})
if err == nil {
t.Errorf("Expected error: 'Options type is not a struct'")
}
@@ -91,65 +91,22 @@
Style: true,
}
expected := map[string]string{"Accept": "application/json", "Number": "4", "Style": "true"}
- actual, err := BuildHeaders(&testStruct)
+ actual, err := gophercloud.BuildHeaders(&testStruct)
th.CheckNoErr(t, err)
th.CheckDeepEquals(t, expected, actual)
testStruct.Num = 0
- _, err = BuildHeaders(&testStruct)
+ _, err = gophercloud.BuildHeaders(&testStruct)
if err == nil {
t.Errorf("Expected error: 'Required header not set'")
}
- _, err = BuildHeaders(map[string]interface{}{"Number": 4})
+ _, err = gophercloud.BuildHeaders(map[string]interface{}{"Number": 4})
if err == nil {
t.Errorf("Expected error: 'Options type is not a struct'")
}
}
-func TestIsZero(t *testing.T) {
- var testMap map[string]interface{}
- testMapValue := reflect.ValueOf(testMap)
- expected := true
- actual := isZero(testMapValue)
- th.CheckEquals(t, expected, actual)
- testMap = map[string]interface{}{"empty": false}
- testMapValue = reflect.ValueOf(testMap)
- expected = false
- actual = isZero(testMapValue)
- th.CheckEquals(t, expected, actual)
-
- var testArray [2]string
- testArrayValue := reflect.ValueOf(testArray)
- expected = true
- actual = isZero(testArrayValue)
- th.CheckEquals(t, expected, actual)
- testArray = [2]string{"one", "two"}
- testArrayValue = reflect.ValueOf(testArray)
- expected = false
- actual = isZero(testArrayValue)
- th.CheckEquals(t, expected, actual)
-
- var testStruct struct {
- A string
- B time.Time
- }
- testStructValue := reflect.ValueOf(testStruct)
- expected = true
- actual = isZero(testStructValue)
- th.CheckEquals(t, expected, actual)
- testStruct = struct {
- A string
- B time.Time
- }{
- B: time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC),
- }
- testStructValue = reflect.ValueOf(testStruct)
- expected = false
- actual = isZero(testStructValue)
- th.CheckEquals(t, expected, actual)
-}
-
func TestQueriesAreEscaped(t *testing.T) {
type foo struct {
Name string `q:"something"`
@@ -158,7 +115,7 @@
expected := &url.URL{RawQuery: "else=Triangl+e&something=blah%2B%3F%21%21foo"}
- actual, err := BuildQueryString(foo{Name: "blah+?!!foo", Shape: "Triangl e"})
+ actual, err := gophercloud.BuildQueryString(foo{Name: "blah+?!!foo", Shape: "Triangl e"})
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, expected, actual)
@@ -236,7 +193,7 @@
}
for _, successCase := range successCases {
- actual, err := BuildRequestBody(successCase.opts, "auth")
+ actual, err := gophercloud.BuildRequestBody(successCase.opts, "auth")
th.AssertNoErr(t, err)
th.AssertDeepEquals(t, successCase.expected, actual)
}
@@ -250,7 +207,7 @@
TenantID: "987654321",
TenantName: "me",
},
- ErrMissingInput{},
+ gophercloud.ErrMissingInput{},
},
{
AuthOptions{
@@ -262,7 +219,7 @@
Password: "swordfish",
},
},
- ErrMissingInput{},
+ gophercloud.ErrMissingInput{},
},
{
AuthOptions{
@@ -270,7 +227,7 @@
Password: "swordfish",
},
},
- ErrMissingInput{},
+ gophercloud.ErrMissingInput{},
},
{
AuthOptions{
@@ -282,12 +239,12 @@
Filler: 2,
},
},
- ErrMissingInput{},
+ gophercloud.ErrMissingInput{},
},
}
for _, failCase := range failCases {
- _, err := BuildRequestBody(failCase.opts, "auth")
+ _, err := gophercloud.BuildRequestBody(failCase.opts, "auth")
th.AssertDeepEquals(t, reflect.TypeOf(failCase.expected), reflect.TypeOf(err))
}
}
diff --git a/provider_client_test.go b/testing/provider_client_test.go
similarity index 83%
rename from provider_client_test.go
rename to testing/provider_client_test.go
index 468b2c3..7c0e84e 100644
--- a/provider_client_test.go
+++ b/testing/provider_client_test.go
@@ -1,13 +1,14 @@
-package gophercloud
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud"
th "github.com/gophercloud/gophercloud/testhelper"
)
func TestAuthenticatedHeaders(t *testing.T) {
- p := &ProviderClient{
+ p := &gophercloud.ProviderClient{
TokenID: "1234",
}
expected := map[string]string{"X-Auth-Token": "1234"}
@@ -16,7 +17,7 @@
}
func TestUserAgent(t *testing.T) {
- p := &ProviderClient{}
+ p := &gophercloud.ProviderClient{}
p.UserAgent.Prepend("custom-user-agent/2.4.0")
expected := "custom-user-agent/2.4.0 gophercloud/2.0.0"
@@ -28,7 +29,7 @@
actual = p.UserAgent.Join()
th.CheckEquals(t, expected, actual)
- p.UserAgent = UserAgent{}
+ p.UserAgent = gophercloud.UserAgent{}
expected = "gophercloud/2.0.0"
actual = p.UserAgent.Join()
th.CheckEquals(t, expected, actual)
diff --git a/service_client_test.go b/testing/service_client_test.go
similarity index 67%
rename from service_client_test.go
rename to testing/service_client_test.go
index 0bd0006..904b303 100644
--- a/service_client_test.go
+++ b/testing/service_client_test.go
@@ -1,13 +1,14 @@
-package gophercloud
+package testing
import (
"testing"
+ "github.com/gophercloud/gophercloud"
th "github.com/gophercloud/gophercloud/testhelper"
)
func TestServiceURL(t *testing.T) {
- c := &ServiceClient{Endpoint: "http://123.45.67.8/"}
+ c := &gophercloud.ServiceClient{Endpoint: "http://123.45.67.8/"}
expected := "http://123.45.67.8/more/parts/here"
actual := c.ServiceURL("more", "parts", "here")
th.CheckEquals(t, expected, actual)
diff --git a/util_test.go b/testing/util_test.go
similarity index 75%
rename from util_test.go
rename to testing/util_test.go
index 6b0d734..5985bc3 100644
--- a/util_test.go
+++ b/testing/util_test.go
@@ -1,4 +1,4 @@
-package gophercloud
+package testing
import (
"os"
@@ -6,11 +6,12 @@
"strings"
"testing"
+ "github.com/gophercloud/gophercloud"
th "github.com/gophercloud/gophercloud/testhelper"
)
func TestWaitFor(t *testing.T) {
- err := WaitFor(5, func() (bool, error) {
+ err := gophercloud.WaitFor(5, func() (bool, error) {
return true, nil
})
th.CheckNoErr(t, err)
@@ -26,7 +27,7 @@
"SlashAtEnd/",
}
for i := 0; i < len(expected); i++ {
- th.CheckEquals(t, expected[i], NormalizeURL(urls[i]))
+ th.CheckEquals(t, expected[i], gophercloud.NormalizeURL(urls[i]))
}
}
@@ -36,49 +37,49 @@
rawPath := "template.yaml"
basePath, _ := filepath.Abs(".")
- result, _ := NormalizePathURL(basePath, rawPath)
+ result, _ := gophercloud.NormalizePathURL(basePath, rawPath)
expected := strings.Join([]string{"file:/", filepath.ToSlash(baseDir), "template.yaml"}, "/")
th.CheckEquals(t, expected, result)
rawPath = "http://www.google.com"
basePath, _ = filepath.Abs(".")
- result, _ = NormalizePathURL(basePath, rawPath)
+ result, _ = gophercloud.NormalizePathURL(basePath, rawPath)
expected = "http://www.google.com"
th.CheckEquals(t, expected, result)
rawPath = "very/nested/file.yaml"
basePath, _ = filepath.Abs(".")
- result, _ = NormalizePathURL(basePath, rawPath)
+ result, _ = gophercloud.NormalizePathURL(basePath, rawPath)
expected = strings.Join([]string{"file:/", filepath.ToSlash(baseDir), "very/nested/file.yaml"}, "/")
th.CheckEquals(t, expected, result)
rawPath = "very/nested/file.yaml"
basePath = "http://www.google.com"
- result, _ = NormalizePathURL(basePath, rawPath)
+ result, _ = gophercloud.NormalizePathURL(basePath, rawPath)
expected = "http://www.google.com/very/nested/file.yaml"
th.CheckEquals(t, expected, result)
rawPath = "very/nested/file.yaml/"
basePath = "http://www.google.com/"
- result, _ = NormalizePathURL(basePath, rawPath)
+ result, _ = gophercloud.NormalizePathURL(basePath, rawPath)
expected = "http://www.google.com/very/nested/file.yaml"
th.CheckEquals(t, expected, result)
rawPath = "very/nested/file.yaml"
basePath = "http://www.google.com/even/more"
- result, _ = NormalizePathURL(basePath, rawPath)
+ result, _ = gophercloud.NormalizePathURL(basePath, rawPath)
expected = "http://www.google.com/even/more/very/nested/file.yaml"
th.CheckEquals(t, expected, result)
rawPath = "very/nested/file.yaml"
basePath = strings.Join([]string{"file:/", filepath.ToSlash(baseDir), "only/file/even/more"}, "/")
- result, _ = NormalizePathURL(basePath, rawPath)
+ result, _ = gophercloud.NormalizePathURL(basePath, rawPath)
expected = strings.Join([]string{"file:/", filepath.ToSlash(baseDir), "only/file/even/more/very/nested/file.yaml"}, "/")
th.CheckEquals(t, expected, result)
rawPath = "very/nested/file.yaml/"
basePath = strings.Join([]string{"file:/", filepath.ToSlash(baseDir), "only/file/even/more"}, "/")
- result, _ = NormalizePathURL(basePath, rawPath)
+ result, _ = gophercloud.NormalizePathURL(basePath, rawPath)
expected = strings.Join([]string{"file:/", filepath.ToSlash(baseDir), "only/file/even/more/very/nested/file.yaml"}, "/")
th.CheckEquals(t, expected, result)