Acceptance tests for Rackspace server create/delete.
diff --git a/acceptance/rackspace/compute/v2/servers_test.go b/acceptance/rackspace/compute/v2/servers_test.go
new file mode 100644
index 0000000..fac1825
--- /dev/null
+++ b/acceptance/rackspace/compute/v2/servers_test.go
@@ -0,0 +1,77 @@
+// +build acceptance
+
+package v2
+
+import (
+ "testing"
+
+ "github.com/rackspace/gophercloud"
+ "github.com/rackspace/gophercloud/acceptance/tools"
+ os "github.com/rackspace/gophercloud/openstack/compute/v2/servers"
+ "github.com/rackspace/gophercloud/rackspace/compute/v2/servers"
+ th "github.com/rackspace/gophercloud/testhelper"
+)
+
+func createServer(t *testing.T, client *gophercloud.ServiceClient) *os.Server {
+ options, err := optionsFromEnv()
+ th.AssertNoErr(t, err)
+
+ r := servers.Create(client, &os.CreateOpts{
+ Name: tools.RandomString("Gophercloud-", 8),
+ ImageRef: options.imageID,
+ FlavorRef: options.flavorID,
+ })
+ t.Logf("\n%s", r.PrettyPrintJSON())
+ s, err := r.Extract()
+ th.AssertNoErr(t, err)
+ return s
+}
+
+func deleteServer(t *testing.T, client *gophercloud.ServiceClient, server *os.Server) {
+ err := servers.Delete(client, server.ID)
+ th.AssertNoErr(t, err)
+}
+
+func logServer(t *testing.T, server *os.Server, index int) {
+ if index == -1 {
+ t.Logf(" id=[%s]", server.ID)
+ } else {
+ t.Logf("[%02d] id=[%s]", index, server.ID)
+ }
+ t.Logf(" name=[%s]", server.Name)
+ t.Logf(" tenant ID=[%s]", server.TenantID)
+ t.Logf(" user ID=[%s]", server.UserID)
+ t.Logf(" updated=[%s]", server.Updated)
+ t.Logf(" created=[%s]", server.Created)
+ t.Logf(" host ID=[%s]", server.HostID)
+ t.Logf(" access IPv4=[%s]", server.AccessIPv4)
+ t.Logf(" access IPv6=[%s]", server.AccessIPv6)
+ t.Logf(" image=[%v]", server.Image)
+ t.Logf(" flavor=[%v]", server.Flavor)
+ t.Logf(" addresses=[%v]", server.Addresses)
+ t.Logf(" metadata=[%v]", server.Metadata)
+ t.Logf(" links=[%v]", server.Links)
+ t.Logf(" keyname=[%s]", server.KeyName)
+ t.Logf(" admin password=[%s]", server.AdminPass)
+ t.Logf(" status=[%s]", server.Status)
+ t.Logf(" progress=[%d]", server.Progress)
+}
+
+func TestCreateServer(t *testing.T) {
+ client, err := newClient()
+ th.AssertNoErr(t, err)
+
+ t.Logf("Creating a new server:")
+ s := createServer(t, client)
+ defer func() {
+ t.Logf("Deleting server")
+ deleteServer(t, client, s)
+ }()
+
+ t.Logf("Waiting for server to become active ...")
+ err = servers.WaitForStatus(client, s.ID, "ACTIVE", 300)
+ th.AssertNoErr(t, err)
+
+ t.Logf("Server launched:")
+ logServer(t, s, -1)
+}