blob: 844a7cbe119d531b927eb53f32c4c1d20b3cea8a [file] [log] [blame]
Joe Topjianaa8e5e32016-07-25 20:09:52 +00001// +build acceptance compute bootfromvolume
Jon Perritt0b09d1d2014-10-24 13:26:18 -05002
3package v2
4
5import (
6 "testing"
7
Joe Topjian1c15e3f2016-08-08 10:48:38 -06008 "github.com/gophercloud/gophercloud/acceptance/clients"
Jon Perritt27249f42016-02-18 10:35:59 -06009 "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/bootfromvolume"
Jon Perritt0b09d1d2014-10-24 13:26:18 -050010)
11
Joe Topjianaa8e5e32016-07-25 20:09:52 +000012func TestBootFromVolumeSingleVolume(t *testing.T) {
Jon Perritt0b09d1d2014-10-24 13:26:18 -050013 if testing.Short() {
14 t.Skip("Skipping test that requires server creation in short mode.")
15 }
16
Joe Topjian1c15e3f2016-08-08 10:48:38 -060017 client, err := clients.NewComputeV2Client()
Joe Topjianaa8e5e32016-07-25 20:09:52 +000018 if err != nil {
19 t.Fatalf("Unable to create a compute client: %v", err)
20 }
21
Joe Topjian1c15e3f2016-08-08 10:48:38 -060022 choices, err := clients.AcceptanceTestChoicesFromEnv()
Jon Perritt0b09d1d2014-10-24 13:26:18 -050023 if err != nil {
24 t.Fatal(err)
25 }
26
Joe Topjianaa8e5e32016-07-25 20:09:52 +000027 blockDevices := []bootfromvolume.BlockDevice{
Jon Perritt01686cd2014-10-24 14:10:16 -050028 bootfromvolume.BlockDevice{
Joe Topjian50cdddf2016-09-16 10:56:09 -060029 UUID: choices.ImageID,
30 SourceType: bootfromvolume.Image,
31 DeleteOnTermination: true,
32 DestinationType: "volume",
33 VolumeSize: 2,
Jon Perritt01686cd2014-10-24 14:10:16 -050034 },
Jon Perritt0b09d1d2014-10-24 13:26:18 -050035 }
36
Joe Topjian1c15e3f2016-08-08 10:48:38 -060037 server, err := CreateBootableVolumeServer(t, client, blockDevices, choices)
Joe Topjianaa8e5e32016-07-25 20:09:52 +000038 if err != nil {
Joe Topjian50cdddf2016-09-16 10:56:09 -060039 t.Fatalf("Unable to create server: %v", err)
Jon Perritt0b09d1d2014-10-24 13:26:18 -050040 }
Joe Topjian1c15e3f2016-08-08 10:48:38 -060041 defer DeleteServer(t, client, server)
Jon Perrittcf01b932014-11-18 13:49:26 -070042
Joe Topjian1c15e3f2016-08-08 10:48:38 -060043 PrintServer(t, server)
Jon Perritt0b09d1d2014-10-24 13:26:18 -050044}
Joe Topjianecf63dd2015-12-12 20:33:50 +000045
Joe Topjian50cdddf2016-09-16 10:56:09 -060046func TestBootFromMultiEphemeralServer(t *testing.T) {
Joe Topjianecf63dd2015-12-12 20:33:50 +000047 if testing.Short() {
48 t.Skip("Skipping test that requires server creation in short mode.")
49 }
50
Joe Topjian1c15e3f2016-08-08 10:48:38 -060051 client, err := clients.NewComputeV2Client()
Joe Topjianaa8e5e32016-07-25 20:09:52 +000052 if err != nil {
53 t.Fatalf("Unable to create a compute client: %v", err)
54 }
55
Joe Topjian1c15e3f2016-08-08 10:48:38 -060056 choices, err := clients.AcceptanceTestChoicesFromEnv()
Joe Topjianecf63dd2015-12-12 20:33:50 +000057 if err != nil {
58 t.Fatal(err)
59 }
60
Joe Topjianaa8e5e32016-07-25 20:09:52 +000061 blockDevices := []bootfromvolume.BlockDevice{
Joe Topjianecf63dd2015-12-12 20:33:50 +000062 bootfromvolume.BlockDevice{
63 BootIndex: 0,
64 UUID: choices.ImageID,
65 SourceType: bootfromvolume.Image,
66 DestinationType: "local",
67 DeleteOnTermination: true,
Joe Topjianaa8e5e32016-07-25 20:09:52 +000068 VolumeSize: 5,
Joe Topjianecf63dd2015-12-12 20:33:50 +000069 },
70 bootfromvolume.BlockDevice{
71 BootIndex: -1,
72 SourceType: bootfromvolume.Blank,
73 DestinationType: "local",
74 DeleteOnTermination: true,
75 GuestFormat: "ext4",
76 VolumeSize: 1,
77 },
78 bootfromvolume.BlockDevice{
79 BootIndex: -1,
80 SourceType: bootfromvolume.Blank,
81 DestinationType: "local",
82 DeleteOnTermination: true,
83 GuestFormat: "ext4",
84 VolumeSize: 1,
85 },
86 }
87
Joe Topjian50cdddf2016-09-16 10:56:09 -060088 server, err := CreateMultiEphemeralServer(t, client, blockDevices, choices)
Joe Topjianaa8e5e32016-07-25 20:09:52 +000089 if err != nil {
90 t.Fatalf("Unable to create server: %v", err)
91 }
Joe Topjian1c15e3f2016-08-08 10:48:38 -060092 defer DeleteServer(t, client, server)
Joe Topjianaa8e5e32016-07-25 20:09:52 +000093
Joe Topjian1c15e3f2016-08-08 10:48:38 -060094 PrintServer(t, server)
Joe Topjianecf63dd2015-12-12 20:33:50 +000095}