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)
+}