multi ephemeral support

This commit adds the ability to specify multiple ephemeral disks through the
bootfromvolume extension.
diff --git a/acceptance/openstack/compute/v2/bootfromvolume_test.go b/acceptance/openstack/compute/v2/bootfromvolume_test.go
index add0e5f..bbecfad 100644
--- a/acceptance/openstack/compute/v2/bootfromvolume_test.go
+++ b/acceptance/openstack/compute/v2/bootfromvolume_test.go
@@ -53,3 +53,64 @@
 	defer servers.Delete(client, server.ID)
 	t.Logf("Deleting server [%s]...", name)
 }
+
+func TestMultiEphemeral(t *testing.T) {
+	client, err := newClient()
+	th.AssertNoErr(t, err)
+
+	if testing.Short() {
+		t.Skip("Skipping test that requires server creation in short mode.")
+	}
+
+	choices, err := ComputeChoicesFromEnv()
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	name := tools.RandomString("Gophercloud-", 8)
+	t.Logf("Creating server [%s].", name)
+
+	bd := []bootfromvolume.BlockDevice{
+		bootfromvolume.BlockDevice{
+			BootIndex:           0,
+			UUID:                choices.ImageID,
+			SourceType:          bootfromvolume.Image,
+			DestinationType:     "local",
+			DeleteOnTermination: true,
+		},
+		bootfromvolume.BlockDevice{
+			BootIndex:           -1,
+			SourceType:          bootfromvolume.Blank,
+			DestinationType:     "local",
+			DeleteOnTermination: true,
+			GuestFormat:         "ext4",
+			VolumeSize:          1,
+		},
+		bootfromvolume.BlockDevice{
+			BootIndex:           -1,
+			SourceType:          bootfromvolume.Blank,
+			DestinationType:     "local",
+			DeleteOnTermination: true,
+			GuestFormat:         "ext4",
+			VolumeSize:          1,
+		},
+	}
+
+	serverCreateOpts := servers.CreateOpts{
+		Name:      name,
+		FlavorRef: choices.FlavorID,
+		ImageRef:  choices.ImageID,
+	}
+	server, err := bootfromvolume.Create(client, bootfromvolume.CreateOptsExt{
+		serverCreateOpts,
+		bd,
+	}).Extract()
+	th.AssertNoErr(t, err)
+	if err = waitForStatus(client, server, "ACTIVE"); err != nil {
+		t.Fatal(err)
+	}
+
+	t.Logf("Created server: %+v\n", server)
+	defer servers.Delete(client, server.ID)
+	t.Logf("Deleting server [%s]...", name)
+}