@@ -36,6 +36,33 @@ func TestAccComputeImage_basic(t *testing.T) {
36
36
})
37
37
}
38
38
39
+ func TestAccComputeImage_withLicense (t * testing.T ) {
40
+ t .Parallel ()
41
+
42
+ var image compute.Image
43
+
44
+ resource .Test (t , resource.TestCase {
45
+ PreCheck : func () { testAccPreCheck (t ) },
46
+ Providers : testAccProviders ,
47
+ CheckDestroy : testAccCheckComputeImageDestroy ,
48
+ Steps : []resource.TestStep {
49
+ resource.TestStep {
50
+ Config : testAccComputeImage_license ("image-test-" + acctest .RandString (10 )),
51
+ Check : resource .ComposeTestCheckFunc (
52
+ testAccCheckComputeImageExists (
53
+ "google_compute_image.foobar" , & image ),
54
+ testAccCheckComputeImageDescription (& image , "description-test" ),
55
+ testAccCheckComputeImageFamily (& image , "family-test" ),
56
+ testAccCheckComputeImageContainsLabel (& image , "my-label" , "my-label-value" ),
57
+ testAccCheckComputeImageContainsLabel (& image , "empty-label" , "" ),
58
+ testAccCheckComputeImageContainsLicense (& image , "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx" ),
59
+ testAccCheckComputeImageHasComputedFingerprint (& image , "google_compute_image.foobar" ),
60
+ ),
61
+ },
62
+ },
63
+ })
64
+ }
65
+
39
66
func TestAccComputeImage_update (t * testing.T ) {
40
67
t .Parallel ()
41
68
@@ -184,6 +211,19 @@ func testAccCheckComputeImageContainsLabel(image *compute.Image, key string, val
184
211
}
185
212
}
186
213
214
+ func testAccCheckComputeImageContainsLicense (image * compute.Image , expectedLicense string ) resource.TestCheckFunc {
215
+ return func (s * terraform.State ) error {
216
+
217
+ for _ , thisLicense := range image .Licenses {
218
+ if thisLicense == expectedLicense {
219
+ return nil
220
+ }
221
+ }
222
+
223
+ return fmt .Errorf ("Expected license '%s' was not found" , expectedLicense )
224
+ }
225
+ }
226
+
187
227
func testAccCheckComputeImageDoesNotContainLabel (image * compute.Image , key string ) resource.TestCheckFunc {
188
228
return func (s * terraform.State ) error {
189
229
if v , ok := image .Labels [key ]; ok {
@@ -242,6 +282,26 @@ resource "google_compute_image" "foobar" {
242
282
}` , name )
243
283
}
244
284
285
+ func testAccComputeImage_license (name string ) string {
286
+ return fmt .Sprintf (`
287
+ resource "google_compute_image" "foobar" {
288
+ name = "%s"
289
+ description = "description-test"
290
+ family = "family-test"
291
+ raw_disk {
292
+ source = "https://storage.googleapis.com/bosh-cpi-artifacts/bosh-stemcell-3262.4-google-kvm-ubuntu-trusty-go_agent-raw.tar.gz"
293
+ }
294
+ create_timeout = 5
295
+ labels = {
296
+ my-label = "my-label-value"
297
+ empty-label = ""
298
+ }
299
+ licenses = [
300
+ "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx",
301
+ ]
302
+ }` , name )
303
+ }
304
+
245
305
func testAccComputeImage_update (name string ) string {
246
306
return fmt .Sprintf (`
247
307
resource "google_compute_image" "foobar" {
0 commit comments